Jelajahi Sumber

update 优化代码 统一store用法

疯狂的狮子Li 1 bulan lalu
induk
melakukan
7feead9afc

+ 2 - 2
src/App.vue

@@ -5,9 +5,9 @@
 </template>
 
 <script setup lang="ts">
-import useSettingsStore from '@/store/modules/settings';
+import { useSettingsStore } from '@/store/modules/settings';
 import { handleThemeStyle } from '@/utils/theme';
-import useAppStore from '@/store/modules/app';
+import { useAppStore } from '@/store/modules/app';
 
 const appStore = useAppStore();
 

+ 1 - 1
src/components/Breadcrumb/index.vue

@@ -11,7 +11,7 @@
 
 <script setup lang="ts">
 import { RouteLocationMatched } from 'vue-router';
-import usePermissionStore from '@/store/modules/permission';
+import { usePermissionStore } from '@/store/modules/permission';
 
 const route = useRoute();
 const router = useRouter();

+ 1 - 1
src/components/HeaderSearch/index.vue

@@ -21,7 +21,7 @@
 import Fuse from 'fuse.js';
 import { getNormalPath } from '@/utils/ruoyi';
 import { isHttp } from '@/utils/validate';
-import usePermissionStore from '@/store/modules/permission';
+import { usePermissionStore } from '@/store/modules/permission';
 import { RouteRecordRaw } from 'vue-router';
 
 type Router = Array<{

+ 1 - 1
src/components/SizeSelect/index.vue

@@ -16,7 +16,7 @@
 </template>
 
 <script setup lang="ts">
-import useAppStore from '@/store/modules/app';
+import { useAppStore } from '@/store/modules/app';
 
 const appStore = useAppStore();
 const size = computed(() => appStore.size);

+ 3 - 3
src/components/TopNav/index.vue

@@ -22,9 +22,9 @@
 <script setup lang="ts">
 import { constantRoutes } from '@/router';
 import { isHttp } from '@/utils/validate';
-import useAppStore from '@/store/modules/app';
-import useSettingsStore from '@/store/modules/settings';
-import usePermissionStore from '@/store/modules/permission';
+import { useAppStore } from '@/store/modules/app';
+import { useSettingsStore } from '@/store/modules/settings';
+import { usePermissionStore } from '@/store/modules/permission';
 import { RouteRecordRaw } from 'vue-router';
 
 // 顶部栏初始数

+ 1 - 1
src/directive/permission/index.ts

@@ -1,5 +1,5 @@
 import { Directive, DirectiveBinding } from 'vue';
-import useUserStore from '@/store/modules/user';
+import { useUserStore } from '@/store/modules/user';
 /**
  * 操作权限处理
  */

+ 2 - 2
src/layout/components/AppMain.vue

@@ -15,8 +15,8 @@
 </template>
 
 <script setup name="AppMain" lang="ts">
-import useSettingsStore from '@/store/modules/settings';
-import useTagsViewStore from '@/store/modules/tagsView';
+import { useSettingsStore } from '@/store/modules/settings';
+import { useTagsViewStore } from '@/store/modules/tagsView';
 
 import IframeToggle from './IframeToggle/index.vue';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;

+ 1 - 1
src/layout/components/IframeToggle/index.vue

@@ -11,7 +11,7 @@
 <script setup lang="ts">
 import InnerLink from '../InnerLink/index.vue';
 
-import useTagsViewStore from '@/store/modules/tagsView';
+import { useTagsViewStore } from '@/store/modules/tagsView';
 
 const route = useRoute();
 const tagsViewStore = useTagsViewStore();

+ 4 - 4
src/layout/components/Navbar.vue

@@ -90,10 +90,10 @@
 
 <script setup lang="ts">
 import SearchMenu from './TopBar/search.vue';
-import useAppStore from '@/store/modules/app';
-import useUserStore from '@/store/modules/user';
-import useSettingsStore from '@/store/modules/settings';
-import useNoticeStore from '@/store/modules/notice';
+import { useAppStore } from '@/store/modules/app';
+import { useUserStore } from '@/store/modules/user';
+import { useSettingsStore } from '@/store/modules/settings';
+import { useNoticeStore } from '@/store/modules/notice';
 import { getTenantList } from '@/api/login';
 import { dynamicClear, dynamicTenant } from '@/api/system/tenant';
 import { TenantVO } from '@/api/types';

+ 3 - 3
src/layout/components/Settings/index.vue

@@ -89,9 +89,9 @@
 
 <script setup lang="ts">
 import { useDynamicTitle } from '@/utils/dynamicTitle';
-import useAppStore from '@/store/modules/app';
-import useSettingsStore from '@/store/modules/settings';
-import usePermissionStore from '@/store/modules/permission';
+import { useAppStore } from '@/store/modules/app';
+import { useSettingsStore } from '@/store/modules/settings';
+import { usePermissionStore } from '@/store/modules/permission';
 import { handleThemeStyle } from '@/utils/theme';
 import { SideThemeEnum } from '@/enums/SideThemeEnum';
 import defaultSettings from '@/settings';

+ 1 - 1
src/layout/components/Sidebar/Logo.vue

@@ -24,7 +24,7 @@
 <script setup lang="ts">
 import variables from '@/assets/styles/variables.module.scss';
 import logo from '@/assets/logo/logo.png';
-import useSettingsStore from '@/store/modules/settings';
+import { useSettingsStore } from '@/store/modules/settings';
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 
 defineProps({

+ 3 - 3
src/layout/components/Sidebar/index.vue

@@ -24,9 +24,9 @@
 import Logo from './Logo.vue';
 import SidebarItem from './SidebarItem.vue';
 import variables from '@/assets/styles/variables.module.scss';
-import useAppStore from '@/store/modules/app';
-import useSettingsStore from '@/store/modules/settings';
-import usePermissionStore from '@/store/modules/permission';
+import { useAppStore } from '@/store/modules/app';
+import { useSettingsStore } from '@/store/modules/settings';
+import { usePermissionStore } from '@/store/modules/permission';
 import { RouteRecordRaw } from 'vue-router';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;

+ 1 - 1
src/layout/components/TagsView/ScrollPane.vue

@@ -6,7 +6,7 @@
 
 <script setup lang="ts">
 import { RouteLocationNormalized } from 'vue-router';
-import useTagsViewStore from '@/store/modules/tagsView';
+import { useTagsViewStore } from '@/store/modules/tagsView';
 
 const tagAndTagSpacing = ref(4);
 

+ 3 - 3
src/layout/components/TagsView/index.vue

@@ -32,9 +32,9 @@
 <script setup lang="ts">
 import ScrollPane from './ScrollPane.vue';
 import { getNormalPath } from '@/utils/ruoyi';
-import useSettingsStore from '@/store/modules/settings';
-import usePermissionStore from '@/store/modules/permission';
-import useTagsViewStore from '@/store/modules/tagsView';
+import { useSettingsStore } from '@/store/modules/settings';
+import { usePermissionStore } from '@/store/modules/permission';
+import { useTagsViewStore } from '@/store/modules/tagsView';
 import { RouteRecordRaw, RouteLocationNormalized } from 'vue-router';
 
 const visible = ref(false);

+ 1 - 1
src/layout/components/TopBar/search.vue

@@ -28,7 +28,7 @@
 <script setup lang="ts" name="layoutBreadcrumbSearch">
 import { getNormalPath } from '@/utils/ruoyi';
 import { isHttp } from '@/utils/validate';
-import usePermissionStore from '@/store/modules/permission';
+import { usePermissionStore } from '@/store/modules/permission';
 import { RouteRecordRaw } from 'vue-router';
 type Router = Array<{
   path: string;

+ 1 - 1
src/layout/components/notice/index.vue

@@ -25,7 +25,7 @@
 
 <script setup lang="ts" name="layoutBreadcrumbUserNews">
 import { storeToRefs } from 'pinia';
-import useNoticeStore from '@/store/modules/notice';
+import { useNoticeStore } from '@/store/modules/notice';
 
 const noticeStore = storeToRefs(useNoticeStore());
 const { readAll } = useNoticeStore();

+ 2 - 2
src/layout/index.vue

@@ -24,8 +24,8 @@
 <script setup lang="ts">
 import SideBar from './components/Sidebar/index.vue';
 import { AppMain, Navbar, Settings, TagsView } from './components';
-import useAppStore from '@/store/modules/app';
-import useSettingsStore from '@/store/modules/settings';
+import { useAppStore } from '@/store/modules/app';
+import { useSettingsStore } from '@/store/modules/settings';
 import { initWebSocket } from '@/utils/websocket';
 import { initSSE } from '@/utils/sse';
 

+ 4 - 3
src/permission.ts

@@ -5,9 +5,10 @@ import 'nprogress/nprogress.css';
 import { getToken } from '@/utils/auth';
 import { isHttp, isPathMatch } from '@/utils/validate';
 import { isRelogin } from '@/utils/request';
-import useUserStore from '@/store/modules/user';
-import useSettingsStore from '@/store/modules/settings';
-import usePermissionStore from '@/store/modules/permission';
+import { useUserStore } from '@/store/modules/user';
+import { useSettingsStore } from '@/store/modules/settings';
+import { usePermissionStore } from '@/store/modules/permission';
+import { ElMessage } from 'element-plus/es';
 
 NProgress.configure({ showSpinner: false });
 const whiteList = ['/login', '/register', '/social-callback', '/register*', '/register/*'];

+ 1 - 1
src/plugins/auth.ts

@@ -1,4 +1,4 @@
-import useUserStore from '@/store/modules/user';
+import { useUserStore } from '@/store/modules/user';
 
 const authPermission = (permission: string): boolean => {
   const all_permission = '*:*:*';

+ 1 - 1
src/plugins/tab.ts

@@ -1,6 +1,6 @@
 import router from '@/router';
 import { RouteLocationMatched, RouteLocationNormalized, RouteLocationRaw } from 'vue-router';
-import useTagsViewStore from '@/store/modules/tagsView';
+import { useTagsViewStore } from '@/store/modules/tagsView';
 
 export default {
   /**

+ 2 - 0
src/store/index.ts

@@ -1,3 +1,5 @@
+import { createPinia } from "pinia";
+
 const store = createPinia();
 
 export default store;

+ 3 - 2
src/store/modules/app.ts

@@ -1,5 +1,8 @@
 import zhCN from 'element-plus/es/locale/lang/zh-cn';
 import enUS from 'element-plus/es/locale/lang/en';
+import { defineStore } from 'pinia';
+import { useStorage } from '@vueuse/core';
+import { ref, reactive, computed } from 'vue';
 
 export const useAppStore = defineStore('app', () => {
   const sidebarStatus = useStorage('sidebarStatus', '1');
@@ -68,5 +71,3 @@ export const useAppStore = defineStore('app', () => {
     toggleSideBarHide
   };
 });
-
-export default useAppStore;

+ 2 - 2
src/store/modules/dict.ts

@@ -1,3 +1,5 @@
+import { defineStore } from 'pinia';
+
 export const useDictStore = defineStore('dict', () => {
   const dict = ref<Map<string, DictDataOption[]>>(new Map());
 
@@ -61,5 +63,3 @@ export const useDictStore = defineStore('dict', () => {
     cleanDict
   };
 });
-
-export default useDictStore;

+ 1 - 2
src/store/modules/notice.ts

@@ -1,4 +1,5 @@
 import { defineStore } from 'pinia';
+import { reactive } from 'vue';
 
 interface NoticeItem {
   title?: string;
@@ -38,5 +39,3 @@ export const useNoticeStore = defineStore('notice', () => {
     clearNotice
   };
 });
-
-export default useNoticeStore;

+ 1 - 4
src/store/modules/permission.ts

@@ -4,11 +4,10 @@ import store from '@/store';
 import { getRouters } from '@/api/menu';
 import auth from '@/plugins/auth';
 import { RouteRecordRaw } from 'vue-router';
-
 import Layout from '@/layout/index.vue';
 import ParentView from '@/components/ParentView/index.vue';
 import InnerLink from '@/layout/components/InnerLink/index.vue';
-
+import { ref } from 'vue';
 import { createCustomNameComponent } from '@/utils/createCustomNameComponent';
 
 // 匹配views里面所有的.vue文件
@@ -206,5 +205,3 @@ function duplicateRouteChecker(localRoutes: Route[], routes: Route[]) {
     nameList.push(route.name.toString());
   });
 }
-
-export default usePermissionStore;

+ 2 - 2
src/store/modules/settings.ts

@@ -1,6 +1,8 @@
 import { defineStore } from 'pinia';
 import defaultSettings from '@/settings';
 import { useDynamicTitle } from '@/utils/dynamicTitle';
+import { useStorage } from '@vueuse/core';
+import { ref } from 'vue';
 
 export const useSettingsStore = defineStore('setting', () => {
   const storageSetting = useStorage<LayoutSetting>('layout-setting', {
@@ -43,5 +45,3 @@ export const useSettingsStore = defineStore('setting', () => {
     setTitle
   };
 });
-
-export default useSettingsStore;

+ 2 - 1
src/store/modules/tagsView.ts

@@ -1,4 +1,6 @@
 import { RouteLocationNormalized } from 'vue-router';
+import { defineStore } from 'pinia';
+import { ref } from 'vue';
 
 export const useTagsViewStore = defineStore('tagsView', () => {
   const visitedViews = ref<RouteLocationNormalized[]>([]);
@@ -230,4 +232,3 @@ export const useTagsViewStore = defineStore('tagsView', () => {
     delIframeView
   };
 });
-export default useTagsViewStore;

+ 1 - 3
src/store/modules/user.ts

@@ -3,7 +3,7 @@ import { getToken, removeToken, setToken } from '@/utils/auth';
 import { login as loginApi, logout as logoutApi, getInfo as getUserInfo } from '@/api/login';
 import { LoginData } from '@/api/types';
 import defAva from '@/assets/images/profile.jpg';
-import store from '@/store';
+import { ref } from 'vue';
 
 export const useUserStore = defineStore('user', () => {
   const token = ref(getToken());
@@ -83,5 +83,3 @@ export const useUserStore = defineStore('user', () => {
     setAvatar
   };
 });
-
-export default useUserStore;

+ 1 - 1
src/utils/permission.ts

@@ -1,4 +1,4 @@
-import useUserStore from '@/store/modules/user';
+import { useUserStore } from '@/store/modules/user';
 
 /**
  * 字符权限校验

+ 1 - 1
src/utils/sse.ts

@@ -1,6 +1,6 @@
 import { getToken } from '@/utils/auth';
 import { ElNotification } from 'element-plus';
-import useNoticeStore from '@/store/modules/notice';
+import { useNoticeStore } from '@/store/modules/notice';
 
 // 初始化
 export const initSSE = (url: any) => {

+ 1 - 1
src/utils/websocket.ts

@@ -1,6 +1,6 @@
 import { getToken } from '@/utils/auth';
 import { ElNotification } from 'element-plus';
-import useNoticeStore from '@/store/modules/notice';
+import { useNoticeStore } from '@/store/modules/notice';
 
 // 初始化socket
 export const initWebSocket = (url: any) => {

+ 1 - 1
src/views/system/dict/data.vue

@@ -126,7 +126,7 @@
 </template>
 
 <script setup name="Data" lang="ts">
-import useDictStore from '@/store/modules/dict';
+import { useDictStore } from '@/store/modules/dict';
 import { optionselect as getDictOptionselect, getType } from '@/api/system/dict/type';
 import { listData, getData, delData, addData, updateData } from '@/api/system/dict/data';
 import { DictTypeVO } from '@/api/system/dict/type/types';

+ 1 - 1
src/views/system/dict/index.vue

@@ -108,7 +108,7 @@
 </template>
 
 <script setup name="Dict" lang="ts">
-import useDictStore from '@/store/modules/dict';
+import { useDictStore } from '@/store/modules/dict';
 import { listType, getType, delType, addType, updateType, refreshCache } from '@/api/system/dict/type';
 import { DictTypeForm, DictTypeQuery, DictTypeVO } from '@/api/system/dict/type/types';
 

+ 1 - 1
src/views/system/tenant/index.vue

@@ -155,7 +155,7 @@ import {
   syncTenantDict
 } from '@/api/system/tenant';
 import { selectTenantPackage } from '@/api/system/tenantPackage';
-import useUserStore from '@/store/modules/user';
+import { useUserStore } from '@/store/modules/user';
 import { TenantForm, TenantQuery, TenantVO } from '@/api/system/tenant/types';
 import { TenantPkgVO } from '@/api/system/tenantPackage/types';
 

+ 1 - 1
src/views/system/user/profile/thirdParty.vue

@@ -58,7 +58,7 @@
 <script setup lang="ts">
 import { authUnlock, authBinding } from '@/api/system/social/auth';
 import { propTypes } from '@/utils/propTypes';
-import useUserStore from '@/store/modules/user';
+import { useUserStore } from '@/store/modules/user';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 

+ 1 - 1
src/views/system/user/profile/userAvatar.vue

@@ -59,7 +59,7 @@
 import 'vue-cropper/dist/index.css';
 import { VueCropper } from 'vue-cropper';
 import { uploadAvatar } from '@/api/system/user';
-import useUserStore from '@/store/modules/user';
+import { useUserStore } from '@/store/modules/user';
 import { UploadRawFile } from 'element-plus';
 
 interface Options {