| | |
| | | import { cloneDeep } from 'lodash-es' |
| | | import remainingRouter from '@/router/modules/remaining' |
| | | import { flatMultiLevelRoutes, generateRoute } from '@/utils/routerHelper' |
| | | import { CACHE_KEY, useCache } from '@/hooks/web/useCache' |
| | | import {CACHE_KEY, useSessionCache} from '@/hooks/web/useCache' |
| | | |
| | | const { wsCache } = useCache() |
| | | const { wsSessionCache } = useSessionCache() |
| | | |
| | | export interface PermissionState { |
| | | routers: AppRouteRecordRaw[] |
| | |
| | | return new Promise<void>(async (resolve) => { |
| | | // 获得菜单列表,它在登录的时候,setUserInfoAction 方法中已经进行获取 |
| | | let res: AppCustomRouteRecordRaw[] = [] |
| | | if (wsCache.get(CACHE_KEY.ROLE_ROUTERS)) { |
| | | res = wsCache.get(CACHE_KEY.ROLE_ROUTERS) as AppCustomRouteRecordRaw[] |
| | | const roleRouters = wsSessionCache.get(CACHE_KEY.ROLE_ROUTERS) |
| | | if (roleRouters) { |
| | | res = roleRouters as AppCustomRouteRecordRaw[] |
| | | } |
| | | const routerMap: AppRouteRecordRaw[] = generateRoute(res) |
| | | // 动态路由,404一定要放到最后面 |
| | | // preschooler:vue-router@4以后已支持静态404路由,此处可不再追加 |
| | | this.addRouters = routerMap.concat([ |
| | | { |
| | | path: '/:path(.*)*', |
| | | redirect: '/404', |
| | | // redirect: '/404', |
| | | component: () => import('@/views/Error/404.vue'), |
| | | name: '404Page', |
| | | meta: { |
| | | hidden: true, |