diff --git a/package.json b/package.json index 28ec27d..46e51f5 100644 --- a/package.json +++ b/package.json @@ -31,8 +31,8 @@ "dependencies": { "@ctrl/tinycolor": "^3.4.1", "@pureadmin/descriptions": "^1.1.0", - "@pureadmin/table": "^1.8.3", - "@pureadmin/utils": "^1.7.5", + "@pureadmin/table": "^1.9.0", + "@pureadmin/utils": "^1.8.2", "@vueuse/core": "^9.6.0", "@vueuse/motion": "2.0.0-beta.12", "animate.css": "^4.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 065250f..264f718 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,9 @@ specifiers: "@iconify-icons/ri": ^1.2.3 "@iconify/vue": ^4.0.0 "@pureadmin/descriptions": ^1.1.0 - "@pureadmin/table": ^1.8.3 + "@pureadmin/table": ^1.9.0 "@pureadmin/theme": ^2.4.0 - "@pureadmin/utils": ^1.7.5 + "@pureadmin/utils": ^1.8.2 "@types/element-resize-detector": 1.1.3 "@types/js-cookie": ^3.0.1 "@types/lodash": ^4.14.180 @@ -90,8 +90,8 @@ specifiers: dependencies: "@ctrl/tinycolor": 3.4.1 "@pureadmin/descriptions": 1.1.1_element-plus@2.2.26 - "@pureadmin/table": 1.8.3_element-plus@2.2.26 - "@pureadmin/utils": 1.7.5_aotapuqn7htzdjltsyimavekky + "@pureadmin/table": 1.9.0_element-plus@2.2.26 + "@pureadmin/utils": 1.8.2_echarts@5.4.0+vue@3.2.45 "@vueuse/core": 9.6.0_vue@3.2.45 "@vueuse/motion": 2.0.0-beta.12_vue@3.2.45 animate.css: 4.1.1 @@ -1041,10 +1041,10 @@ packages: vue: 3.2.45 dev: false - /@pureadmin/table/1.8.3_element-plus@2.2.26: + /@pureadmin/table/1.9.0_element-plus@2.2.26: resolution: { - integrity: sha512-M+I+CDu74s/ffNybbDg0rHhiMHTdkgVIaksfmmrEwjuLB2nEaz7R0tob2qC5rKE96U2Z246meDHBidyQNx2z9w== + integrity: sha512-3cGbQc5QV0E7i1h0QZJWVuwJKXn1Kk2Ae6T/Z/pxEVRbwE0L+vixI/x9WO31/yZEL7qNz2lD+OIOtUU+HjTbYA== } peerDependencies: element-plus: ^2.0.0 @@ -1064,24 +1064,20 @@ packages: string-hash: 1.1.3 dev: true - /@pureadmin/utils/1.7.5_aotapuqn7htzdjltsyimavekky: + /@pureadmin/utils/1.8.2_echarts@5.4.0+vue@3.2.45: resolution: { - integrity: sha512-WqjtvMD67egsIJuPYx9V9aaXG3iYOTMj48XPfYxBzWTuUSvGkEj9M+3P1IrgG6GZQlK8dCPqaog8B0vujLjYJA== + integrity: sha512-9mr/y3RZJZGCYpKuRVngR6XVumdMjRNPLkFfljwU9KS5UQio70cfqsH6TQ8uL/Oh0eepDym+/KkSVTMx2EsOyQ== } peerDependencies: - dayjs: "*" echarts: "*" vue: "*" peerDependenciesMeta: - dayjs: - optional: true echarts: optional: true vue: optional: true dependencies: - dayjs: 1.11.6 echarts: 5.4.0 vue: 3.2.45 dev: false diff --git a/src/layout/components/setting/index.vue b/src/layout/components/setting/index.vue index 69af67a..206d9bf 100644 --- a/src/layout/components/setting/index.vue +++ b/src/layout/components/setting/index.vue @@ -132,8 +132,8 @@ const multiTagsCacheChange = () => { /** 清空缓存并返回登录页 */ function onReset() { removeToken(); - storageLocal.clear(); - storageSession.clear(); + storageLocal().clear(); + storageSession().clear(); const { Grey, Weak, MultiTagsCache, EpThemeColor, Layout } = getConfig(); useAppStoreHook().setLayout(Layout); setEpThemeColor(EpThemeColor); diff --git a/src/layout/components/sidebar/horizontal.vue b/src/layout/components/sidebar/horizontal.vue index 1817396..053f14a 100644 --- a/src/layout/components/sidebar/horizontal.vue +++ b/src/layout/components/sidebar/horizontal.vue @@ -99,6 +99,7 @@ watch( :deep(.el-loading-mask) { opacity: 0.45; } + .logout { max-width: 120px; diff --git a/src/layout/components/sidebar/mixNav.vue b/src/layout/components/sidebar/mixNav.vue index b276999..19bbe51 100644 --- a/src/layout/components/sidebar/mixNav.vue +++ b/src/layout/components/sidebar/mixNav.vue @@ -131,6 +131,7 @@ watch( :deep(.el-loading-mask) { opacity: 0.45; } + .logout { max-width: 120px; diff --git a/src/layout/components/sidebar/vertical.vue b/src/layout/components/sidebar/vertical.vue index 6a94524..c25a005 100644 --- a/src/layout/components/sidebar/vertical.vue +++ b/src/layout/components/sidebar/vertical.vue @@ -12,7 +12,8 @@ import { usePermissionStoreHook } from "@/store/modules/permission"; const route = useRoute(); const showLogo = ref( - storageLocal.getItem("responsive-configure")?.showLogo ?? true + storageLocal().getItem("responsive-configure")?.showLogo ?? + true ); const { routers, device, pureApp, isCollapse, menuSelect, toggleSideBar } = diff --git a/src/layout/hooks/useTag.ts b/src/layout/hooks/useTag.ts index a7f4d46..0571cf9 100644 --- a/src/layout/hooks/useTag.ts +++ b/src/layout/hooks/useTag.ts @@ -40,13 +40,13 @@ export function useTags() { /** 显示模式,默认灵动模式 */ const showModel = ref( - storageLocal.getItem("responsive-configure")?.showModel || + storageLocal().getItem("responsive-configure")?.showModel || "smart" ); /** 是否隐藏标签页,默认显示 */ const showTags = ref( - storageLocal.getItem("responsive-configure").hideTabs + storageLocal().getItem("responsive-configure").hideTabs ) ?? ref("false"); const multiTags: any = computed(() => { return useMultiTagsStoreHook().multiTags; @@ -194,11 +194,11 @@ export function useTags() { onMounted(() => { if (!showModel.value) { - const configure = storageLocal.getItem( + const configure = storageLocal().getItem( "responsive-configure" ); configure.showModel = "card"; - storageLocal.setItem("responsive-configure", configure); + storageLocal().setItem("responsive-configure", configure); } }); diff --git a/src/router/index.ts b/src/router/index.ts index a6ddefc..146a969 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -105,7 +105,7 @@ router.beforeEach((to: toRouteType, _from, next) => { handleAliveRoute(newMatched); } } - const userInfo = storageSession.getItem>(sessionKey); + const userInfo = storageSession().getItem>(sessionKey); NProgress.start(); const externalLink = isUrl(to?.name as string); if (!externalLink) { diff --git a/src/router/utils.ts b/src/router/utils.ts index df8d813..bf43a35 100644 --- a/src/router/utils.ts +++ b/src/router/utils.ts @@ -84,7 +84,7 @@ function isOneOfArray(a: Array, b: Array) { /** 从sessionStorage里取出当前登陆用户的角色roles,过滤无权限的菜单 */ function filterNoPermissionTree(data: RouteComponent[]) { const currentRoles = - storageSession.getItem>(sessionKey)?.roles ?? []; + storageSession().getItem>(sessionKey)?.roles ?? []; const newTree = cloneDeep(data).filter((v: any) => isOneOfArray(v.meta?.roles, currentRoles) ); @@ -196,7 +196,7 @@ function initRouter() { if (getConfig()?.CachingAsyncRoutes) { // 开启动态路由缓存本地sessionStorage const key = "async-routes"; - const asyncRouteList = storageSession.getItem(key) as any; + const asyncRouteList = storageSession().getItem(key) as any; if (asyncRouteList && asyncRouteList?.length > 0) { return new Promise(resolve => { handleAsyncRoutes(asyncRouteList); @@ -206,7 +206,7 @@ function initRouter() { return new Promise(resolve => { getAsyncRoutes().then(({ data }) => { handleAsyncRoutes(cloneDeep(data)); - storageSession.setItem(key, data); + storageSession().setItem(key, data); resolve(router); }); }); diff --git a/src/store/modules/app.ts b/src/store/modules/app.ts index cd28301..6b1fcbb 100644 --- a/src/store/modules/app.ts +++ b/src/store/modules/app.ts @@ -9,14 +9,14 @@ export const useAppStore = defineStore({ state: (): appType => ({ sidebar: { opened: - storageLocal.getItem("responsive-layout") + storageLocal().getItem("responsive-layout") ?.sidebarStatus ?? getConfig().SidebarStatus, withoutAnimation: false, isClickCollapse: false }, // 这里的layout用于监听容器拖拉后恢复对应的导航模式 layout: - storageLocal.getItem("responsive-layout")?.layout ?? + storageLocal().getItem("responsive-layout")?.layout ?? getConfig().Layout, device: deviceDetection() ? "mobile" : "desktop" }), @@ -30,7 +30,8 @@ export const useAppStore = defineStore({ }, actions: { TOGGLE_SIDEBAR(opened?: boolean, resize?: string) { - const layout = storageLocal.getItem("responsive-layout"); + const layout = + storageLocal().getItem("responsive-layout"); if (opened && resize) { this.sidebar.withoutAnimation = true; this.sidebar.opened = true; @@ -45,7 +46,7 @@ export const useAppStore = defineStore({ this.sidebar.isClickCollapse = !this.sidebar.opened; layout.sidebarStatus = this.sidebar.opened; } - storageLocal.setItem("responsive-layout", layout); + storageLocal().setItem("responsive-layout", layout); }, async toggleSideBar(opened?: boolean, resize?: string) { await this.TOGGLE_SIDEBAR(opened, resize); diff --git a/src/store/modules/epTheme.ts b/src/store/modules/epTheme.ts index 6db58d0..77f582c 100644 --- a/src/store/modules/epTheme.ts +++ b/src/store/modules/epTheme.ts @@ -7,10 +7,10 @@ export const useEpThemeStore = defineStore({ id: "pure-epTheme", state: () => ({ epThemeColor: - storageLocal.getItem("responsive-layout")?.epThemeColor ?? - getConfig().EpThemeColor, + storageLocal().getItem("responsive-layout") + ?.epThemeColor ?? getConfig().EpThemeColor, epTheme: - storageLocal.getItem("responsive-layout")?.theme ?? + storageLocal().getItem("responsive-layout")?.theme ?? getConfig().Theme }), getters: { @@ -30,12 +30,13 @@ export const useEpThemeStore = defineStore({ }, actions: { setEpThemeColor(newColor: string): void { - const layout = storageLocal.getItem("responsive-layout"); + const layout = + storageLocal().getItem("responsive-layout"); this.epTheme = layout?.theme; this.epThemeColor = newColor; if (!layout) return; layout.epThemeColor = newColor; - storageLocal.setItem("responsive-layout", layout); + storageLocal().setItem("responsive-layout", layout); } } }); diff --git a/src/store/modules/multiTags.ts b/src/store/modules/multiTags.ts index 0288975..5099e25 100644 --- a/src/store/modules/multiTags.ts +++ b/src/store/modules/multiTags.ts @@ -9,12 +9,13 @@ export const useMultiTagsStore = defineStore({ id: "pure-multiTags", state: () => ({ // 存储标签页信息(路由信息) - multiTags: storageLocal.getItem("responsive-configure") + multiTags: storageLocal().getItem("responsive-configure") ?.multiTagsCache - ? storageLocal.getItem("responsive-tags") + ? storageLocal().getItem("responsive-tags") : [...routerArrays], - multiTagsCache: storageLocal.getItem("responsive-configure") - ?.multiTagsCache + multiTagsCache: storageLocal().getItem( + "responsive-configure" + )?.multiTagsCache }), getters: { getMultiTagsCache() { @@ -25,14 +26,14 @@ export const useMultiTagsStore = defineStore({ multiTagsCacheChange(multiTagsCache: boolean) { this.multiTagsCache = multiTagsCache; if (multiTagsCache) { - storageLocal.setItem("responsive-tags", this.multiTags); + storageLocal().setItem("responsive-tags", this.multiTags); } else { - storageLocal.removeItem("responsive-tags"); + storageLocal().removeItem("responsive-tags"); } }, tagsCache(multiTags) { this.getMultiTagsCache && - storageLocal.setItem("responsive-tags", multiTags); + storageLocal().setItem("responsive-tags", multiTags); }, handleTags( mode: string, diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 8e4512f..5d6b337 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -14,9 +14,9 @@ export const useUserStore = defineStore({ state: (): userType => ({ // 用户名 username: - storageSession.getItem>(sessionKey)?.username ?? "", + storageSession().getItem>(sessionKey)?.username ?? "", // 页面级别权限 - roles: storageSession.getItem>(sessionKey)?.roles ?? [] + roles: storageSession().getItem>(sessionKey)?.roles ?? [] }), actions: { /** 存储用户名 */ diff --git a/src/utils/auth.ts b/src/utils/auth.ts index f8e1b70..a673803 100644 --- a/src/utils/auth.ts +++ b/src/utils/auth.ts @@ -23,7 +23,7 @@ export function getToken(): DataInfo { // 此处与`TokenKey`相同,此写法解决初始化时`Cookies`中不存在`TokenKey`报错 return Cookies.get(TokenKey) ? JSON.parse(Cookies.get(TokenKey)) - : storageSession.getItem(sessionKey); + : storageSession().getItem(sessionKey); } /** @@ -47,7 +47,7 @@ export function setToken(data: DataInfo) { function setSessionKey(username: string, roles: Array) { useUserStoreHook().SET_USERNAME(username); useUserStoreHook().SET_ROLES(roles); - storageSession.setItem(sessionKey, { + storageSession().setItem(sessionKey, { refreshToken, expires, username, @@ -60,9 +60,9 @@ export function setToken(data: DataInfo) { setSessionKey(username, roles); } else { const username = - storageSession.getItem>(sessionKey)?.username ?? ""; + storageSession().getItem>(sessionKey)?.username ?? ""; const roles = - storageSession.getItem>(sessionKey)?.roles ?? []; + storageSession().getItem>(sessionKey)?.roles ?? []; setSessionKey(username, roles); } }