From fed47f5e059d0b006691b02e409358a2af5502fe Mon Sep 17 00:00:00 2001 From: vben Date: Sat, 1 Jun 2024 23:15:29 +0800 Subject: [PATCH] refactor: refacotr preference --- apps/antd-view/package.json | 5 +- apps/antd-view/src/app.vue | 10 +- apps/antd-view/src/bootstrap.ts | 7 +- apps/antd-view/src/layouts/basic.vue | 7 +- apps/antd-view/src/layouts/index.ts | 6 +- apps/antd-view/src/main.ts | 10 +- apps/antd-view/src/preference.ts | 7 - apps/antd-view/src/preferences.ts | 11 + apps/antd-view/src/router/guard/access.ts | 2 +- apps/antd-view/src/router/guard/index.ts | 10 +- .../antd-view/src/router/routes/_essential.ts | 4 +- .../src/router/routes/modules/vben.ts | 4 +- apps/antd-view/src/services/request.ts | 3 +- apps/antd-view/src/store/index.ts | 16 + .../src/store/modules/example.test.ts | 24 + apps/antd-view/src/store/modules/example.ts | 13 + .../views/_essential/authentication/login.vue | 3 +- .../lint-configs/eslint-config/package.json | 4 +- .../lint-configs/prettier-config/package.json | 4 +- .../stylelint-config/package.json | 2 +- internal/node-utils/package.json | 2 +- internal/vite-config/package.json | 2 +- package.json | 2 +- packages/@vben-core/README.md | 2 +- packages/@vben-core/forward/README.md | 3 + .../forward/preferences}/build.config.ts | 0 .../forward/preferences}/package.json | 6 +- .../forward/preferences/src/config.ts | 77 +++ .../forward/preferences/src/constants.ts | 26 + .../forward/preferences/src/index.ts | 32 + .../forward/preferences/src/preferences.ts | 289 +++++++++ .../forward/preferences/src/types.ts | 189 ++++++ .../preferences/src/use-preferences.ts} | 46 +- .../forward/preferences}/tsconfig.json | 0 packages/@vben-core/forward/request/.gitkeep | 0 .../forward}/stores/build.config.ts | 0 .../forward}/stores/package.json | 4 +- .../forward}/stores/shim-pinia.d.ts | 0 .../forward}/stores/src/index.ts | 0 .../stores/src/modules/access.test.ts | 4 +- .../forward}/stores/src/modules/access.ts | 0 .../forward}/stores/src/modules/index.ts | 0 .../forward}/stores/src/modules/tabs.ts | 0 .../forward}/stores/src/setup.ts | 17 +- .../forward}/stores/tsconfig.json | 0 packages/@vben-core/helpers/build.config.ts | 7 + packages/@vben-core/helpers/package.json | 45 ++ packages/@vben-core/helpers/src/index.ts | 1 + .../@vben-core/helpers/src/object.test.ts | 245 ++++++++ packages/@vben-core/helpers/src/object.ts | 164 ++++++ packages/@vben-core/helpers/tsconfig.json | 5 + packages/@vben-core/shared/chche/src/index.ts | 2 +- .../shared/chche/src/storage-cache.test.ts | 104 ---- .../shared/chche/src/storage-cache.ts | 145 ----- .../shared/chche/src/storage-manager.test.ts | 130 ++++ .../shared/chche/src/storage-manager.ts | 118 ++++ .../@vben-core/shared/design/src/tailwind.css | 2 +- .../@vben-core/shared/toolkit/src/index.ts | 1 + .../shared/toolkit/src/letter.test.ts | 55 ++ .../@vben-core/shared/toolkit/src/letter.ts | 20 + packages/@vben-core/shared/typings/src/app.ts | 22 + .../shared/typings/src/flatten.d.ts | 40 ++ .../@vben-core/shared/typings/src/index.ts | 3 +- .../shared/typings/src/preference.ts | 144 ----- .../uikit/layout-ui/src/vben-layout.ts | 8 +- .../uikit/layout-ui/src/vben-layout.vue | 2 +- .../uikit/menu-ui/src/interface/index.ts | 4 +- .../ui/breadcrumb/BreadcrumbLink.vue | 2 +- .../components/ui/popover/PopoverContent.vue | 2 +- packages/README.md | 1 + packages/business/common-ui/package.json | 2 +- .../src/authentication/color-toggle.vue | 26 +- .../src/authentication/layout-toggle.vue | 15 +- packages/business/common-ui/src/index.ts | 2 +- .../src/language-toggle/language-toggle.vue | 24 +- .../common-ui/src/preference/index.ts | 1 - .../src/preference/preference-widget.vue | 102 ---- .../src/preference/use-open-preference.ts | 16 - .../blocks/block.vue | 0 .../blocks/general/animation.vue | 0 .../blocks/general/general.vue | 13 +- .../blocks/index.ts | 0 .../blocks/layout/breadcrumb.vue | 0 .../blocks/layout/content.vue | 0 .../blocks/layout/footer.vue | 0 .../blocks/layout/header.vue | 4 +- .../blocks/layout/interface-control.vue | 0 .../blocks/layout/layout.vue | 0 .../blocks/layout/navigation.vue | 0 .../blocks/layout/sidebar.vue | 0 .../blocks/layout/tabs.vue | 0 .../blocks/select-item.vue | 0 .../blocks/switch-item.vue | 0 .../blocks/theme/color-mode.vue | 0 .../blocks/theme/color.vue | 0 .../blocks/theme/theme.vue | 0 .../blocks/toggle-item.vue | 0 .../icons/content-compact.vue | 0 .../icons/full-content.vue | 0 .../icons/header-nav.vue | 0 .../icons/index.ts | 0 .../icons/mixed-nav.vue | 0 .../icons/setting.vue | 0 .../icons/side-mixed-nav.vue | 0 .../icons/side-nav.vue | 0 .../common-ui/src/preferences/index.ts | 1 + .../src/preferences/preferences-widget.vue | 58 ++ .../preferences.vue} | 22 +- .../{preference => preferences}/trigger.vue | 0 .../src/preferences/use-open-preferences.ts | 16 + .../src/theme-toggle/theme-toggle.vue | 14 +- .../src/user-dropdown/user-dropdown.vue | 10 +- packages/business/layouts/package.json | 4 +- .../src/authentication/authentication.vue | 18 +- .../layouts/src/authentication/from-view.vue | 4 +- .../layouts/src/authentication/index.ts | 2 +- .../layouts/src/basic/content/content.vue | 19 +- .../layouts/src/basic/header/header.vue | 6 +- .../business/layouts/src/basic/layout.vue | 124 ++-- .../layouts/src/basic/menu/mixed-menu.vue | 2 +- .../layouts/src/basic/menu/use-extra-menu.ts | 11 +- .../layouts/src/basic/menu/use-mixed-menu.ts | 14 +- .../layouts/src/basic/tabs/tabs-toolbar.vue | 14 +- .../layouts/src/basic/tabs/use-tabs.ts | 2 +- .../layouts/src/basic/widgets/breadcrumb.vue | 4 +- .../layouts/src/iframe/iframe-router-view.vue | 11 +- packages/locales/package.json | 1 + packages/locales/src/i18n.ts | 4 +- packages/locales/src/langs/en-US.yaml | 2 +- packages/locales/src/langs/zh-CN.yaml | 2 +- packages/locales/src/typing.ts | 6 +- packages/preference/src/cache.ts | 59 -- packages/preference/src/config.ts | 76 --- packages/preference/src/index.ts | 19 - packages/preference/src/preference.ts | 198 ------- packages/preference/src/setup.ts | 26 - pnpm-lock.yaml | 554 +++++++++--------- pnpm-workspace.yaml | 2 + vben-admin.code-workspace | 20 +- 139 files changed, 2205 insertions(+), 1450 deletions(-) delete mode 100644 apps/antd-view/src/preference.ts create mode 100644 apps/antd-view/src/preferences.ts create mode 100644 apps/antd-view/src/store/index.ts create mode 100644 apps/antd-view/src/store/modules/example.test.ts create mode 100644 apps/antd-view/src/store/modules/example.ts create mode 100644 packages/@vben-core/forward/README.md rename packages/{preference => @vben-core/forward/preferences}/build.config.ts (100%) rename packages/{preference => @vben-core/forward/preferences}/package.json (82%) create mode 100644 packages/@vben-core/forward/preferences/src/config.ts create mode 100644 packages/@vben-core/forward/preferences/src/constants.ts create mode 100644 packages/@vben-core/forward/preferences/src/index.ts create mode 100644 packages/@vben-core/forward/preferences/src/preferences.ts create mode 100644 packages/@vben-core/forward/preferences/src/types.ts rename packages/{preference/src/use-preference.ts => @vben-core/forward/preferences/src/use-preferences.ts} (56%) rename packages/{preference => @vben-core/forward/preferences}/tsconfig.json (100%) create mode 100644 packages/@vben-core/forward/request/.gitkeep rename packages/{ => @vben-core/forward}/stores/build.config.ts (100%) rename packages/{ => @vben-core/forward}/stores/package.json (93%) rename packages/{ => @vben-core/forward}/stores/shim-pinia.d.ts (100%) rename packages/{ => @vben-core/forward}/stores/src/index.ts (100%) rename packages/{ => @vben-core/forward}/stores/src/modules/access.test.ts (83%) rename packages/{ => @vben-core/forward}/stores/src/modules/access.ts (100%) rename packages/{ => @vben-core/forward}/stores/src/modules/index.ts (100%) rename packages/{ => @vben-core/forward}/stores/src/modules/tabs.ts (100%) rename packages/{ => @vben-core/forward}/stores/src/setup.ts (50%) rename packages/{ => @vben-core/forward}/stores/tsconfig.json (100%) create mode 100644 packages/@vben-core/helpers/build.config.ts create mode 100644 packages/@vben-core/helpers/package.json create mode 100644 packages/@vben-core/helpers/src/index.ts create mode 100644 packages/@vben-core/helpers/src/object.test.ts create mode 100644 packages/@vben-core/helpers/src/object.ts create mode 100644 packages/@vben-core/helpers/tsconfig.json delete mode 100644 packages/@vben-core/shared/chche/src/storage-cache.test.ts delete mode 100644 packages/@vben-core/shared/chche/src/storage-cache.ts create mode 100644 packages/@vben-core/shared/chche/src/storage-manager.test.ts create mode 100644 packages/@vben-core/shared/chche/src/storage-manager.ts create mode 100644 packages/@vben-core/shared/toolkit/src/letter.test.ts create mode 100644 packages/@vben-core/shared/toolkit/src/letter.ts create mode 100644 packages/@vben-core/shared/typings/src/app.ts create mode 100644 packages/@vben-core/shared/typings/src/flatten.d.ts delete mode 100644 packages/@vben-core/shared/typings/src/preference.ts create mode 100644 packages/README.md delete mode 100644 packages/business/common-ui/src/preference/index.ts delete mode 100644 packages/business/common-ui/src/preference/preference-widget.vue delete mode 100644 packages/business/common-ui/src/preference/use-open-preference.ts rename packages/business/common-ui/src/{preference => preferences}/blocks/block.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/general/animation.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/general/general.vue (79%) rename packages/business/common-ui/src/{preference => preferences}/blocks/index.ts (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/breadcrumb.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/content.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/footer.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/header.vue (87%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/interface-control.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/layout.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/navigation.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/sidebar.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/layout/tabs.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/select-item.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/switch-item.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/theme/color-mode.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/theme/color.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/theme/theme.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/blocks/toggle-item.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/icons/content-compact.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/icons/full-content.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/icons/header-nav.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/icons/index.ts (100%) rename packages/business/common-ui/src/{preference => preferences}/icons/mixed-nav.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/icons/setting.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/icons/side-mixed-nav.vue (100%) rename packages/business/common-ui/src/{preference => preferences}/icons/side-nav.vue (100%) create mode 100644 packages/business/common-ui/src/preferences/index.ts create mode 100644 packages/business/common-ui/src/preferences/preferences-widget.vue rename packages/business/common-ui/src/{preference/preference.vue => preferences/preferences.vue} (95%) rename packages/business/common-ui/src/{preference => preferences}/trigger.vue (100%) create mode 100644 packages/business/common-ui/src/preferences/use-open-preferences.ts delete mode 100644 packages/preference/src/cache.ts delete mode 100644 packages/preference/src/config.ts delete mode 100644 packages/preference/src/index.ts delete mode 100644 packages/preference/src/preference.ts delete mode 100644 packages/preference/src/setup.ts diff --git a/apps/antd-view/package.json b/apps/antd-view/package.json index d4175345..5479fc2f 100644 --- a/apps/antd-view/package.json +++ b/apps/antd-view/package.json @@ -22,14 +22,14 @@ "typecheck": "vue-tsc --noEmit --skipLibCheck" }, "dependencies": { + "@vben-core/preferences": "workspace:*", + "@vben-core/stores": "workspace:*", "@vben/common-ui": "workspace:*", "@vben/constants": "workspace:*", "@vben/hooks": "workspace:*", "@vben/icons": "workspace:*", "@vben/layouts": "workspace:*", "@vben/locales": "workspace:*", - "@vben/preference": "workspace:*", - "@vben/stores": "workspace:*", "@vben/styles": "workspace:*", "@vben/types": "workspace:*", "@vben/utils": "workspace:*", @@ -37,6 +37,7 @@ "ant-design-vue": "^4.2.1", "axios": "^1.7.2", "dayjs": "^1.11.11", + "pinia": "2.1.7", "vue": "3.4.27", "vue-router": "^4.3.2" }, diff --git a/apps/antd-view/src/app.vue b/apps/antd-view/src/app.vue index b73e7fd2..692545e0 100644 --- a/apps/antd-view/src/app.vue +++ b/apps/antd-view/src/app.vue @@ -1,8 +1,9 @@ diff --git a/apps/antd-view/src/bootstrap.ts b/apps/antd-view/src/bootstrap.ts index 8917f6b7..14ebe828 100644 --- a/apps/antd-view/src/bootstrap.ts +++ b/apps/antd-view/src/bootstrap.ts @@ -1,8 +1,9 @@ import '@vben/styles'; +import { preferences } from '@vben-core/preferences'; + +import { setupStore } from '@/store'; import { setupI18n } from '@vben/locales'; -import { preference } from '@vben/preference'; -import { setupStore } from '@vben/stores'; import { createApp } from 'vue'; import App from './app.vue'; @@ -12,7 +13,7 @@ async function bootstrap(namespace: string) { const app = createApp(App); // 国际化 i18n 配置 - await setupI18n(app, { defaultLocale: preference.locale }); + await setupI18n(app, { defaultLocale: preferences.app.locale }); // 配置 pinia-store await setupStore(app, { namespace }); diff --git a/apps/antd-view/src/layouts/basic.vue b/apps/antd-view/src/layouts/basic.vue index 996113ac..031b5395 100644 --- a/apps/antd-view/src/layouts/basic.vue +++ b/apps/antd-view/src/layouts/basic.vue @@ -1,12 +1,13 @@ @@ -24,10 +25,7 @@ function handleUpdate(value: string) {
-