Kaynağa Gözat

菜单信息缓存

zhangchong 2 yıl önce
ebeveyn
işleme
d1ccce6ecf
2 değiştirilmiş dosya ile 16 ekleme ve 9 silme
  1. 15 8
      src/router/backEnd.ts
  2. 1 1
      src/router/frontEnd.ts

+ 15 - 8
src/router/backEnd.ts

@@ -3,7 +3,7 @@ import {RouteRecordRaw} from 'vue-router';
 import pinia from '/@/stores/index';
 import {useUserInfo} from '/@/stores/userInfo';
 import {useRequestOldRoutes} from '/@/stores/requestOldRoutes';
-import {Session} from '/@/utils/storage';
+import {Session,Local} from '/@/utils/storage';
 import {NextLoading} from '/@/utils/loading';
 import {dynamicRoutes, notFoundAndNoPower} from '/@/router/route';
 import {formatFlatteningRoutes, formatTwoStageRoutes, router} from '/@/router/index';
@@ -75,20 +75,27 @@ export async function initBackEndControlRoutes() {
 	// 无 token 停止执行下一步
 	if (!Session.get('token')) return false;
 	// 触发初始化用户信息 pinia
-	// https://gitee.com/lyt-top/vue-next-admin/issues/I5F1HP
 	await useUserInfo().setUserInfos();
-	// 获取路由菜单数据
-	let res:any = await getBackEndControlRoutes();
-	// 路由内容格式化
-	let resRouter = formatRouter(res.result);
-	// 存储接口原始路由(未处理component),根据需求选择使用
-	useRequestOldRoutes().setRequestOldRoutes(JSON.parse(JSON.stringify(resRouter)));
+	let resRouter = null;
+	if(Local.get('requestOldRoutes')){ //获取到缓存
+		resRouter = Local.get('requestOldRoutes');
+	}else{
+		// 获取路由菜单数据
+		let res:any = await getBackEndControlRoutes();
+		// 路由内容格式化
+		resRouter = formatRouter(res.result);
+		// 存储接口原始路由(未处理component),根据需求选择使用
+		useRequestOldRoutes().setRequestOldRoutes(JSON.parse(JSON.stringify(resRouter)));
+		// 存入缓存
+		Local.set('requestOldRoutes',resRouter);
+	}
 	// 处理路由(component),替换 dynamicRoutes(/@/router/route)第一个顶级 children 的路由
 	dynamicRoutes[0].children = await backEndComponent(resRouter);
 	// 添加动态路由
 	await setAddRoute();
 	// 设置路由到 vuex routesList 中(已处理成多级嵌套路由)及缓存多级嵌套数组处理后的一维数组
 	await setFilterMenuAndCacheTagsViewRoutes();
+	// 检查是否修改过密码
 	checkPwd();
 }
 

+ 1 - 1
src/router/frontEnd.ts

@@ -38,7 +38,7 @@ export async function initFrontEndControlRoutes() {
 	await setAddRoute();
 	// 设置递归过滤有权限的路由到 vuex routesList 中(已处理成多级嵌套路由)及缓存多级嵌套数组处理后的一维数组
 	await setFilterMenuAndCacheTagsViewRoutes();
-
+	// 检查是否修改过密码
 	checkPwd();
 }