diff --git a/config/unplugin/auto-import.ts b/config/unplugin/auto-import.ts index c49e54d..3a380a1 100644 --- a/config/unplugin/auto-import.ts +++ b/config/unplugin/auto-import.ts @@ -21,7 +21,7 @@ export function configAutoImport() { '@vueuse/core', { dayjs: [['default', 'dayjs']], - 'lodash-es': ['cloneDeep', 'omit', 'pick', 'union', 'isNumber', 'uniqBy'], + 'lodash-es': ['cloneDeep', 'omit', 'pick', 'union', 'uniq', 'isNumber', 'uniqBy'], '@/hooks': ['useModal'], }, ], diff --git a/src/permission/permission.ts b/src/permission/permission.ts index 0f4b046..7c12722 100644 --- a/src/permission/permission.ts +++ b/src/permission/permission.ts @@ -6,6 +6,5 @@ export function checkRoutePermission(routeName: string) { if (!routeName) return false; - const route = allowAccessRoutes.find((route) => route.name === routeName); - return !!route; + return allowAccessRoutes.includes(routeName); } diff --git a/src/stores/modules/user/index.ts b/src/stores/modules/user/index.ts index a560cdb..a298716 100644 --- a/src/stores/modules/user/index.ts +++ b/src/stores/modules/user/index.ts @@ -18,7 +18,7 @@ interface UserInfo { interface UserState { token: string; userInfo: UserInfo | null; - allowAccessRoutes: RouteRecordNormalized[]; + allowAccessRoutes: string[]; // isLogin: boolean; } @@ -81,17 +81,18 @@ export const useUserStore = defineStore('user', { getUserAllowAccessRoutes() { const sidebarStore = useSidebarStore(); const menuList = sidebarStore.menuList; - const appRoutes = router.getRoutes(); appRoutes.forEach((route: any) => { if (!route.meta?.requiresAuth) { - this.allowAccessRoutes.push(route); + this.allowAccessRoutes.push(route.name); } }); const pushAllowAccessRoutes = (pathNames: string[]) => { - const matchedRoute = appRoutes.filter((route: any) => pathNames.includes(route.name)); + const matchedRoute = appRoutes + .filter((route: any) => pathNames.includes(route.name)) + .map((route: any) => route.name); this.allowAccessRoutes.push(...matchedRoute); }; @@ -105,7 +106,7 @@ export const useUserStore = defineStore('user', { } }); - this.allowAccessRoutes = uniqBy(this.allowAccessRoutes, 'name'); + this.allowAccessRoutes = uniq(this.allowAccessRoutes); slsWithCatch('allowAccessRoutes', JSON.stringify(this.allowAccessRoutes)); }, },