diff --git a/.vscode/settings.json b/.vscode/settings.json index 4776e894..ffba678d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -165,11 +165,11 @@ }, "cssVariables.lookupFiles": [ - "packages/@vben-core/shared/design-tokens/src/**/*.css" + "packages/@vben-core/shared/design/src/**/*.css" ], "i18n-ally.localesPaths": [ - "packages/@core/locales/src/langs", + "packages/locales/src/langs", "apps/*/src/locales/langs" ], "i18n-ally.enabledParsers": ["json", "ts", "js", "yaml"], diff --git a/apps/web-antd/package.json b/apps/web-antd/package.json index a19d0761..b970d8ca 100644 --- a/apps/web-antd/package.json +++ b/apps/web-antd/package.json @@ -26,11 +26,6 @@ "#/*": "./src/*" }, "dependencies": { - "@vben-core/helpers": "workspace:*", - "@vben-core/locales": "workspace:*", - "@vben-core/preferences": "workspace:*", - "@vben-core/request": "workspace:*", - "@vben-core/stores": "workspace:*", "@vben/access": "workspace:*", "@vben/chart-ui": "workspace:*", "@vben/common-ui": "workspace:*", @@ -38,6 +33,10 @@ "@vben/hooks": "workspace:*", "@vben/icons": "workspace:*", "@vben/layouts": "workspace:*", + "@vben/locales": "workspace:*", + "@vben/preferences": "workspace:*", + "@vben/request": "workspace:*", + "@vben/stores": "workspace:*", "@vben/styles": "workspace:*", "@vben/types": "workspace:*", "@vben/utils": "workspace:*", diff --git a/apps/web-antd/src/apis/core/auth.ts b/apps/web-antd/src/apis/core/auth.ts index c389f423..227d0f2a 100644 --- a/apps/web-antd/src/apis/core/auth.ts +++ b/apps/web-antd/src/apis/core/auth.ts @@ -1,6 +1,6 @@ import type { UserApi } from '../types'; -import { requestClient } from '#/forward'; +import { requestClient } from '#/apis/request'; /** * 登录 diff --git a/apps/web-antd/src/apis/core/menu.ts b/apps/web-antd/src/apis/core/menu.ts index 432b228d..57088aca 100644 --- a/apps/web-antd/src/apis/core/menu.ts +++ b/apps/web-antd/src/apis/core/menu.ts @@ -1,6 +1,6 @@ import type { RouteRecordStringComponent } from '@vben/types'; -import { requestClient } from '#/forward'; +import { requestClient } from '#/apis/request'; /** * 获取用户所有菜单 diff --git a/apps/web-antd/src/apis/core/user.ts b/apps/web-antd/src/apis/core/user.ts index 4fc6f12c..5eecf0bd 100644 --- a/apps/web-antd/src/apis/core/user.ts +++ b/apps/web-antd/src/apis/core/user.ts @@ -1,6 +1,6 @@ import type { UserInfo } from '@vben/types'; -import { requestClient } from '#/forward'; +import { requestClient } from '#/apis/request'; /** * 获取用户信息 diff --git a/apps/web-antd/src/apis/demos/status.ts b/apps/web-antd/src/apis/demos/status.ts index 00ef6e98..7da2d49c 100644 --- a/apps/web-antd/src/apis/demos/status.ts +++ b/apps/web-antd/src/apis/demos/status.ts @@ -1,4 +1,4 @@ -import { requestClient } from '#/forward'; +import { requestClient } from '#/apis/request'; /** * 模拟任意状态码 diff --git a/apps/web-antd/src/forward/request.ts b/apps/web-antd/src/apis/request.ts similarity index 90% rename from apps/web-antd/src/forward/request.ts rename to apps/web-antd/src/apis/request.ts index e115ca33..f56ba744 100644 --- a/apps/web-antd/src/forward/request.ts +++ b/apps/web-antd/src/apis/request.ts @@ -1,10 +1,10 @@ /** * 该文件可自行根据业务逻辑进行调整 */ -import type { HttpResponse } from '@vben-core/request'; +import type { HttpResponse } from '@vben/request'; -import { preferences } from '@vben-core/preferences'; -import { RequestClient } from '@vben-core/request'; +import { preferences } from '@vben/preferences'; +import { RequestClient } from '@vben/request'; import { message } from 'ant-design-vue'; diff --git a/apps/web-antd/src/app.vue b/apps/web-antd/src/app.vue index 4ff69a7d..7ffe37b4 100644 --- a/apps/web-antd/src/app.vue +++ b/apps/web-antd/src/app.vue @@ -2,7 +2,7 @@ import { computed } from 'vue'; import { GlobalProvider } from '@vben/common-ui'; -import { preferences, usePreferences } from '@vben-core/preferences'; +import { preferences, usePreferences } from '@vben/preferences'; import { App, ConfigProvider, theme } from 'ant-design-vue'; diff --git a/apps/web-antd/src/bootstrap.ts b/apps/web-antd/src/bootstrap.ts index 600db698..607f7fa7 100644 --- a/apps/web-antd/src/bootstrap.ts +++ b/apps/web-antd/src/bootstrap.ts @@ -1,8 +1,8 @@ import { createApp } from 'vue'; +import { preferences } from '@vben/preferences'; import '@vben/styles'; import '@vben/styles/antd'; -import { preferences } from '@vben-core/preferences'; import { loadMessages, setupI18n } from '#/locales'; import { setupStore } from '#/store'; diff --git a/apps/web-antd/src/forward/README.md b/apps/web-antd/src/forward/README.md deleted file mode 100644 index 67152c3d..00000000 --- a/apps/web-antd/src/forward/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# forward - -用于扩展、转发大仓的包以及其他功能,方便在app内自定义不同的逻辑 - -## request - -用于扩展请求的功能,例如添加header、错误响应等 - -## locale - -用于扩展国际化的功能,例如扩展 dayjs、antd组件库的多语言切换 diff --git a/apps/web-antd/src/forward/index.ts b/apps/web-antd/src/forward/index.ts deleted file mode 100644 index 2766e57b..00000000 --- a/apps/web-antd/src/forward/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './access'; -export * from './request'; diff --git a/apps/web-antd/src/layouts/basic.vue b/apps/web-antd/src/layouts/basic.vue index fcd2c57f..5c92f3f3 100644 --- a/apps/web-antd/src/layouts/basic.vue +++ b/apps/web-antd/src/layouts/basic.vue @@ -12,12 +12,12 @@ import { NotificationItem, UserDropdown, } from '@vben/layouts'; +import { preferences } from '@vben/preferences'; import { openWindow } from '@vben/utils'; -import { preferences } from '@vben-core/preferences'; import { $t } from '#/locales'; import { resetRoutes } from '#/router'; -import { storeToRefs, useAccessStore, useAppStore } from '#/store'; +import { resetAllStores, storeToRefs, useAccessStore } from '#/store'; const notifications = ref([ { @@ -84,10 +84,8 @@ const menus = computed(() => [ }, ]); -const appStore = useAppStore(); const accessStore = useAccessStore(); -const { isLockScreen, lockScreenPassword } = storeToRefs(appStore); const { loading: loginLoading, openLoginExpiredModal, @@ -101,8 +99,7 @@ const avatar = computed(() => { const router = useRouter(); async function handleLogout() { - appStore.resetAppState(); - appStore.unlockScreen(); + resetAllStores(); resetRoutes(); await router.replace(LOGIN_PATH); } @@ -114,10 +111,6 @@ function handleNoticeClear() { function handleMakeAll() { notifications.value.forEach((item) => (item.isRead = true)); } - -function handleLockScreen(password: string) { - appStore.lockScreen(password); -} @@ -152,13 +144,7 @@ function handleLockScreen(password: string) { /> diff --git a/apps/web-antd/src/locales/index.ts b/apps/web-antd/src/locales/index.ts index 70bfab5e..11438544 100644 --- a/apps/web-antd/src/locales/index.ts +++ b/apps/web-antd/src/locales/index.ts @@ -3,7 +3,7 @@ import type { Locale } from 'ant-design-vue/es/locale'; import { ref } from 'vue'; -import { $t, loadLocalesMap, setupI18n } from '@vben-core/locales'; +import { $t, loadLocalesMap, setupI18n } from '@vben/locales'; import antdEnLocale from 'ant-design-vue/es/locale/en_US'; import antdDefaultLocale from 'ant-design-vue/es/locale/zh_CN'; diff --git a/apps/web-antd/src/main.ts b/apps/web-antd/src/main.ts index 260946b3..89d7b2cd 100644 --- a/apps/web-antd/src/main.ts +++ b/apps/web-antd/src/main.ts @@ -1,4 +1,4 @@ -import { preferencesManager } from '@vben-core/preferences'; +import { initPreferences } from '@vben/preferences'; import { overridesPreferences } from './preferences'; @@ -12,7 +12,7 @@ async function initApplication() { const namespace = `${import.meta.env.VITE_APP_NAMESPACE}-${env}`; // app偏好设置初始化 - await preferencesManager.initPreferences({ + await initPreferences({ namespace, overrides: overridesPreferences, }); diff --git a/apps/web-antd/src/preferences.ts b/apps/web-antd/src/preferences.ts index 5b542173..9683596a 100644 --- a/apps/web-antd/src/preferences.ts +++ b/apps/web-antd/src/preferences.ts @@ -1,4 +1,4 @@ -import { defineOverridesPreferences } from '@vben-core/preferences'; +import { defineOverridesPreferences } from '@vben/preferences'; /** * @description 项目配置文件 diff --git a/apps/web-antd/src/forward/access.ts b/apps/web-antd/src/router/access.ts similarity index 95% rename from apps/web-antd/src/forward/access.ts rename to apps/web-antd/src/router/access.ts index 3900ab80..b2a0a4f8 100644 --- a/apps/web-antd/src/forward/access.ts +++ b/apps/web-antd/src/router/access.ts @@ -4,7 +4,7 @@ import type { } from '@vben/types'; import { generateAccessible } from '@vben/access'; -import { preferences } from '@vben-core/preferences'; +import { preferences } from '@vben/preferences'; import { message } from 'ant-design-vue'; diff --git a/apps/web-antd/src/router/guard.ts b/apps/web-antd/src/router/guard.ts index 90967bb1..0661cb37 100644 --- a/apps/web-antd/src/router/guard.ts +++ b/apps/web-antd/src/router/guard.ts @@ -1,16 +1,17 @@ import type { Router } from 'vue-router'; import { LOGIN_PATH } from '@vben/constants'; +import { preferences } from '@vben/preferences'; import { startProgress, stopProgress } from '@vben/utils'; -import { preferences } from '@vben-core/preferences'; import { useTitle } from '@vueuse/core'; -import { generateAccess } from '#/forward'; import { $t } from '#/locales'; import { coreRouteNames, dynamicRoutes } from '#/router/routes'; import { useAccessStore } from '#/store'; +import { generateAccess } from './access'; + /** * 通用守卫配置 * @param router diff --git a/apps/web-antd/src/router/routes/index.ts b/apps/web-antd/src/router/routes/index.ts index cc829703..78da5436 100644 --- a/apps/web-antd/src/router/routes/index.ts +++ b/apps/web-antd/src/router/routes/index.ts @@ -1,7 +1,6 @@ import type { RouteRecordRaw } from 'vue-router'; -import { traverseTreeValues } from '@vben/utils'; -import { mergeRouteModules } from '@vben-core/helpers'; +import { mergeRouteModules, traverseTreeValues } from '@vben/utils'; import { coreRoutes, fallbackNotFoundRoute } from './core'; diff --git a/apps/web-antd/src/store/index.ts b/apps/web-antd/src/store/index.ts index 4deb7341..dc786550 100644 --- a/apps/web-antd/src/store/index.ts +++ b/apps/web-antd/src/store/index.ts @@ -1,8 +1,8 @@ -import type { InitStoreOptions } from '@vben-core/stores'; +import type { InitStoreOptions } from '@vben/stores'; import type { App } from 'vue'; -import { initStore, storeToRefs } from '@vben-core/stores'; +import { initStore, resetAllStores, storeToRefs } from '@vben/stores'; /** * @zh_CN 初始化pinia @@ -13,7 +13,6 @@ async function setupStore(app: App, options: InitStoreOptions) { app.use(pinia); } -export { setupStore, storeToRefs }; +export { resetAllStores, setupStore, storeToRefs }; export { useAccessStore } from './modules/access'; -export { useAppStore } from './modules/app'; diff --git a/apps/web-antd/src/store/modules/access.ts b/apps/web-antd/src/store/modules/access.ts index 13ced8c3..c459931d 100644 --- a/apps/web-antd/src/store/modules/access.ts +++ b/apps/web-antd/src/store/modules/access.ts @@ -6,7 +6,7 @@ import { computed, ref } from 'vue'; import { useRouter } from 'vue-router'; import { DEFAULT_HOME_PATH, LOGIN_PATH } from '@vben/constants'; -import { useCoreAccessStore } from '@vben-core/stores'; +import { resetAllStores, useCoreAccessStore } from '@vben/stores'; import { notification } from 'ant-design-vue'; import { defineStore } from 'pinia'; @@ -50,7 +50,7 @@ export const useAccessStore = defineStore('access', () => { onSuccess?: () => Promise | void, ) { // 异步处理用户登录操作并获取 accessToken - let userInfo: UserInfo | null = null; + let userInfo: null | UserInfo = null; try { loading.value = true; const { accessToken, refreshToken } = await login(params); @@ -102,7 +102,7 @@ export const useAccessStore = defineStore('access', () => { } async function logout() { - coreStoreAccess.$reset(); + resetAllStores(); openLoginExpiredModal.value = false; // 回登陆页带上当前路由地址 @@ -115,17 +115,19 @@ export const useAccessStore = defineStore('access', () => { } async function fetchUserInfo() { - let userInfo: UserInfo | null = null; + let userInfo: null | UserInfo = null; userInfo = await getUserInfo(); coreStoreAccess.setUserInfo(userInfo); return userInfo; } - function reset() { - coreStoreAccess.$reset(); + function $reset() { + loading.value = false; + openLoginExpiredModal.value = false; } return { + $reset, accessRoutes, accessToken, authLogin, @@ -134,7 +136,6 @@ export const useAccessStore = defineStore('access', () => { logout, openLoginExpiredModal, refreshToken, - reset, setAccessMenus, setAccessRoutes, setAccessToken, diff --git a/apps/web-antd/src/views/_core/authentication/code-login.vue b/apps/web-antd/src/views/_core/authentication/code-login.vue index 9abab341..36cf50ec 100644 --- a/apps/web-antd/src/views/_core/authentication/code-login.vue +++ b/apps/web-antd/src/views/_core/authentication/code-login.vue @@ -4,6 +4,7 @@ import type { LoginCodeParams } from '@vben/common-ui'; import { ref } from 'vue'; import { AuthenticationCodeLogin } from '@vben/common-ui'; +import { LOGIN_PATH } from '@vben/constants'; defineOptions({ name: 'CodeLogin' }); @@ -21,5 +22,9 @@ async function handleLogin(values: LoginCodeParams) { diff --git a/apps/web-antd/src/views/_core/authentication/forget-password.vue b/apps/web-antd/src/views/_core/authentication/forget-password.vue index add1f518..74ccc27e 100644 --- a/apps/web-antd/src/views/_core/authentication/forget-password.vue +++ b/apps/web-antd/src/views/_core/authentication/forget-password.vue @@ -2,6 +2,7 @@ import { ref } from 'vue'; import { AuthenticationForgetPassword } from '@vben/common-ui'; +import { LOGIN_PATH } from '@vben/constants'; defineOptions({ name: 'ForgetPassword' }); @@ -14,5 +15,9 @@ function handleSubmit(value: string) { diff --git a/apps/web-antd/src/views/_core/authentication/qrcode-login.vue b/apps/web-antd/src/views/_core/authentication/qrcode-login.vue index 82f0c624..23f5f2da 100644 --- a/apps/web-antd/src/views/_core/authentication/qrcode-login.vue +++ b/apps/web-antd/src/views/_core/authentication/qrcode-login.vue @@ -1,9 +1,10 @@ diff --git a/apps/web-antd/src/views/_core/authentication/register.vue b/apps/web-antd/src/views/_core/authentication/register.vue index af3e820c..f6b227d9 100644 --- a/apps/web-antd/src/views/_core/authentication/register.vue +++ b/apps/web-antd/src/views/_core/authentication/register.vue @@ -4,6 +4,7 @@ import type { LoginAndRegisterParams } from '@vben/common-ui'; import { ref } from 'vue'; import { AuthenticationRegister } from '@vben/common-ui'; +import { LOGIN_PATH } from '@vben/constants'; defineOptions({ name: 'Register' }); @@ -16,5 +17,9 @@ function handleSubmit(value: LoginAndRegisterParams) { diff --git a/apps/web-antd/src/views/dashboard/workspace/index.vue b/apps/web-antd/src/views/dashboard/workspace/index.vue index 69ae0574..2ba195c6 100644 --- a/apps/web-antd/src/views/dashboard/workspace/index.vue +++ b/apps/web-antd/src/views/dashboard/workspace/index.vue @@ -16,7 +16,7 @@ import { WorkbenchTodo, WorkbenchTrends, } from '@vben/common-ui'; -import { preferences } from '@vben-core/preferences'; +import { preferences } from '@vben/preferences'; import { useAccessStore } from '#/store'; diff --git a/apps/web-antd/src/views/demos/access/button-control.vue b/apps/web-antd/src/views/demos/access/button-control.vue index cae47d48..89f403c8 100644 --- a/apps/web-antd/src/views/demos/access/button-control.vue +++ b/apps/web-antd/src/views/demos/access/button-control.vue @@ -7,7 +7,7 @@ import { AccessControl, useAccess } from '@vben/access'; import { Button } from 'ant-design-vue'; -import { useAccessStore, useAppStore } from '#/store'; +import { resetAllStores, useAccessStore } from '#/store'; defineOptions({ name: 'AccessButtonControl' }); @@ -28,7 +28,6 @@ const accounts: Record = { const { accessMode, hasAccessByCodes } = useAccess(); const accessStore = useAccessStore(); -const appStore = useAppStore(); const router = useRouter(); function roleButtonType(role: string) { @@ -41,7 +40,7 @@ async function changeAccount(role: string) { } const account = accounts[role]; - appStore.resetAppState(); + resetAllStores(); await accessStore.authLogin(account, async () => { router.go(0); }); diff --git a/apps/web-antd/src/views/demos/access/index.vue b/apps/web-antd/src/views/demos/access/index.vue index 93705f92..a902ce5d 100644 --- a/apps/web-antd/src/views/demos/access/index.vue +++ b/apps/web-antd/src/views/demos/access/index.vue @@ -7,7 +7,7 @@ import { useAccess } from '@vben/access'; import { Button } from 'ant-design-vue'; -import { useAccessStore, useAppStore } from '#/store'; +import { resetAllStores, useAccessStore } from '#/store'; defineOptions({ name: 'Access' }); @@ -28,7 +28,6 @@ const accounts: Record = { const { accessMode, toggleAccessMode } = useAccess(); const accessStore = useAccessStore(); -const appStore = useAppStore(); const router = useRouter(); function roleButtonType(role: string) { @@ -41,7 +40,7 @@ async function changeAccount(role: string) { } const account = accounts[role]; - appStore.resetAppState(); + resetAllStores(); await accessStore.authLogin(account, async () => { router.go(0); }); @@ -49,7 +48,8 @@ async function changeAccount(role: string) { async function handleToggleAccessMode() { await toggleAccessMode(); - appStore.resetAppState(); + resetAllStores(); + await accessStore.authLogin(accounts.super, async () => { router.go(0); }); diff --git a/apps/web-antd/src/views/demos/features/login-expired/index.vue b/apps/web-antd/src/views/demos/features/login-expired/index.vue index 73f2bb9a..ffb0d179 100644 --- a/apps/web-antd/src/views/demos/features/login-expired/index.vue +++ b/apps/web-antd/src/views/demos/features/login-expired/index.vue @@ -1,7 +1,7 @@