From 215d8bab380728164d7fe2958c2d2d1151fce892 Mon Sep 17 00:00:00 2001 From: Vben Date: Sat, 10 Apr 2021 19:25:49 +0800 Subject: [PATCH] refactor: refactor store --- build/generate/generateModifyVars.ts | 1 + index.html | 8 +- package.json | 12 +- .../Application/src/AppProvider.vue | 16 +- .../src/search/AppSearchKeyItem.vue | 8 +- src/components/SimpleMenu/src/SimpleMenu.vue | 7 - src/hooks/setting/useHeaderSetting.ts | 151 +++++---- src/hooks/setting/useMenuSetting.ts | 232 +++++++------- src/hooks/setting/useMultipleTabSetting.ts | 33 +- src/hooks/setting/useRootSetting.ts | 117 ++++--- src/hooks/setting/useTransitionSetting.ts | 36 +-- .../web/useEcharts/echarts.ts} | 0 .../{useECharts.ts => useEcharts/index.ts} | 10 +- src/hooks/web/useFullContent.ts | 3 +- src/hooks/web/useLockPage.ts | 17 +- src/hooks/web/usePage.ts | 24 +- src/hooks/web/usePermission.ts | 31 +- src/hooks/web/useTabs.ts | 91 +++++- .../default/header/components/ErrorAction.vue | 11 +- .../header/components/lock/LockModal.vue | 12 +- .../header/components/user-dropdown/index.vue | 5 +- src/layouts/default/index.vue | 4 - src/layouts/default/menu/useLayoutMenu.ts | 5 +- .../setting/components/SettingFooter.vue | 30 +- src/layouts/default/setting/handler.ts | 11 +- .../default/tabs/components/FoldButton.vue | 25 +- .../default/tabs/components/QuickButton.vue | 21 -- .../default/tabs/components/TabContent.vue | 41 ++- .../default/tabs/components/TabRedo.vue | 18 +- src/layouts/default/tabs/index.less | 9 +- src/layouts/default/tabs/index.vue | 37 ++- src/layouts/default/tabs/types.ts | 10 - src/layouts/default/tabs/useMultipleTabs.ts | 16 +- src/layouts/default/tabs/useTabDropdown.ts | 51 ++- src/layouts/iframe/useFrameKeepAlive.ts | 9 +- src/layouts/page/index.vue | 9 +- src/locales/setupI18n.ts | 3 +- src/locales/useLocale.ts | 9 +- src/logics/error-handle/index.ts | 32 +- src/logics/initAppConfig.ts | 10 +- src/logics/theme/updateBackground.ts | 13 +- src/main.ts | 12 +- src/router/constant.ts | 10 - src/router/guard/index.ts | 18 +- src/router/guard/pageLoadingGuard.ts | 12 +- src/router/guard/permissionGuard.ts | 12 +- src/router/guard/progressGuard.ts | 3 +- src/router/guard/stateGuard.ts | 20 +- src/router/menus/index.ts | 8 +- src/settings/designSetting.ts | 5 +- src/settings/projectSetting.ts | 1 - src/settings/siteSetting.ts | 2 + src/store/index.ts | 13 +- src/store/modules/app.ts | 191 ++++++------ src/store/modules/error.ts | 81 ----- src/store/modules/errorLog.ts | 77 +++++ src/store/modules/locale.ts | 79 +++-- src/store/modules/lock.ts | 108 ++++--- src/store/modules/multipleTab.ts | 288 +++++++++++++++++ src/store/modules/permission.ts | 251 +++++++-------- src/store/modules/tab.ts | 294 ------------------ src/store/modules/user.ts | 251 +++++++-------- src/store/types.ts | 24 -- src/utils/cache/persistent.ts | 5 +- src/utils/env.ts | 1 + src/utils/http/axios/index.ts | 6 +- .../demo/permission/CurrentPermissionMode.vue | 7 +- src/views/demo/permission/back/Btn.vue | 5 +- src/views/demo/permission/front/Btn.vue | 10 +- src/views/demo/permission/front/index.vue | 10 +- src/views/sys/error-log/DetailModal.vue | 7 +- src/views/sys/error-log/data.tsx | 2 +- src/views/sys/error-log/index.vue | 12 +- src/views/sys/lock/LockPage.vue | 40 +-- src/views/sys/lock/index.vue | 10 +- src/views/sys/lock/useNow.ts | 3 +- src/views/sys/login/Login.vue | 3 +- src/views/sys/login/LoginForm.vue | 3 +- types/store.ts | 44 +++ yarn.lock | 91 +++--- 80 files changed, 1628 insertions(+), 1579 deletions(-) rename src/{plugins/echarts/index.ts => hooks/web/useEcharts/echarts.ts} (100%) rename src/hooks/web/{useECharts.ts => useEcharts/index.ts} (92%) delete mode 100644 src/layouts/default/tabs/components/QuickButton.vue delete mode 100644 src/store/modules/error.ts create mode 100644 src/store/modules/errorLog.ts create mode 100644 src/store/modules/multipleTab.ts delete mode 100644 src/store/modules/tab.ts delete mode 100644 src/store/types.ts create mode 100644 types/store.ts diff --git a/build/generate/generateModifyVars.ts b/build/generate/generateModifyVars.ts index fc2e6264..8037324b 100644 --- a/build/generate/generateModifyVars.ts +++ b/build/generate/generateModifyVars.ts @@ -28,6 +28,7 @@ export function generateModifyVars(dark = false) { 'success-color': '#55D187', // Success color 'error-color': '#ED6F6F', // False color 'warning-color': '#EFBD47', // Warning color + 'border-color-base': '#EEEEEE', 'font-size-base': '14px', // Main font size 'border-radius-base': '2px', // Component/float fillet 'link-color': primary, // Link color diff --git a/index.html b/index.html index e41a82d2..55da86ac 100644 --- a/index.html +++ b/index.html @@ -16,9 +16,11 @@
diff --git a/package.json b/package.json index 77a463aa..f8e2a94b 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ }, "dependencies": { "@iconify/iconify": "^2.0.0-rc.6", - "@vueuse/core": "^4.8.0", + "@vueuse/core": "^4.8.1", "@zxcvbn-ts/core": "^0.3.0", "ant-design-vue": "^2.1.2", "axios": "^0.21.1", @@ -43,6 +43,7 @@ "mockjs": "^1.1.0", "nprogress": "^0.2.0", "path-to-regexp": "^6.2.0", + "pinia": "^2.0.0-alpha.12", "print-js": "^1.6.0", "qrcode": "^1.4.4", "sortablejs": "^1.13.0", @@ -52,8 +53,6 @@ "vue-i18n": "9.0.0", "vue-router": "^4.0.6", "vue-types": "^3.0.2", - "vuex": "^4.0.0", - "vuex-module-decorators": "^1.0.1", "xlsx": "^0.16.9" }, "devDependencies": { @@ -81,7 +80,7 @@ "conventional-changelog-cli": "^2.1.1", "cross-env": "^7.0.3", "dotenv": "^8.2.0", - "eslint": "^7.23.0", + "eslint": "^7.24.0", "eslint-config-prettier": "^8.1.0", "eslint-define-config": "^1.0.7", "eslint-plugin-prettier": "^3.3.1", @@ -115,13 +114,14 @@ "vite-plugin-style-import": "^0.9.2", "vite-plugin-svg-icons": "^0.4.1", "vite-plugin-theme": "^0.6.3", - "vite-plugin-windicss": "0.12.5", + "vite-plugin-windicss": "0.13.1", "vue-eslint-parser": "^7.6.0" }, "resolutions": { "//": "Used to install imagemin dependencies, because imagemin may not be installed in China.If it is abroad, you can delete it", "bin-wrapper": "npm:bin-wrapper-china", - "rollup": "^2.44.0" + "rollup": "^2.45.1", + "esbuild": "^0.11.6" }, "repository": { "type": "git", diff --git a/src/components/Application/src/AppProvider.vue b/src/components/Application/src/AppProvider.vue index 35e6867e..d0722bfe 100644 --- a/src/components/Application/src/AppProvider.vue +++ b/src/components/Application/src/AppProvider.vue @@ -3,22 +3,24 @@ import { createAppProviderContext } from './useAppContext'; - import designSetting from '/@/settings/designSetting'; + import { prefixCls } from '/@/settings/designSetting'; import { createBreakpointListen } from '/@/hooks/event/useBreakpoint'; import { propTypes } from '/@/utils/propTypes'; - import { appStore } from '/@/store/modules/app'; + import { useAppStore } from '/@/store/modules/app'; import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum'; export default defineComponent({ name: 'AppProvider', inheritAttrs: false, props: { - prefixCls: propTypes.string.def(designSetting.prefixCls), + prefixCls: propTypes.string.def(prefixCls), }, setup(props, { slots }) { const isMobile = ref(false); const isSetState = ref(false); + const appStore = useAppStore(); + createBreakpointListen(({ screenMap, sizeEnum, width }) => { const lgWidth = screenMap.get(sizeEnum.LG); if (lgWidth) { @@ -42,20 +44,20 @@ split: menuSplit, }, } = appStore.getProjectConfig; - appStore.commitProjectConfigState({ + appStore.setProjectConfig({ menuSetting: { type: MenuTypeEnum.SIDEBAR, mode: MenuModeEnum.INLINE, split: false, }, }); - appStore.commitBeforeMiniState({ menuMode, menuCollapsed, menuType, menuSplit }); + appStore.setBeforeMiniInfo({ menuMode, menuCollapsed, menuType, menuSplit }); } } else { if (unref(isSetState)) { isSetState.value = false; - const { menuMode, menuCollapsed, menuType, menuSplit } = appStore.getBeforeMiniState; - appStore.commitProjectConfigState({ + const { menuMode, menuCollapsed, menuType, menuSplit } = appStore.getBeforeMiniInfo; + appStore.setProjectConfig({ menuSetting: { type: menuType, mode: menuMode, diff --git a/src/components/Application/src/search/AppSearchKeyItem.vue b/src/components/Application/src/search/AppSearchKeyItem.vue index 48af367c..9f5bf853 100644 --- a/src/components/Application/src/search/AppSearchKeyItem.vue +++ b/src/components/Application/src/search/AppSearchKeyItem.vue @@ -1,17 +1,13 @@ diff --git a/src/components/SimpleMenu/src/SimpleMenu.vue b/src/components/SimpleMenu/src/SimpleMenu.vue index 77d67d6e..1342b308 100644 --- a/src/components/SimpleMenu/src/SimpleMenu.vue +++ b/src/components/SimpleMenu/src/SimpleMenu.vue @@ -6,7 +6,6 @@ :class="prefixCls" :activeSubMenuNames="activeSubMenuNames" @select="handleSelect" - @open-change="handleOpenChange" >