//动态路由
//动态路由
export function addRoute() {
let user = JSON.parse(localStorage.getItem(“user”)) || undefined;
if (user) {
//1和2一定要写在判断条件内,不然问题很大
//1 重置路由匹配规则对象,否则保存的还是上一次登录生成的匹配对象。
router.matcher = new VueRouter().matcher;
// 2重置路由对象
router.options.routes[0].children = [];
user.cates.forEach((oneLevel) => {
oneLevel.cates.forEach((twoLevel) => {
let routeObj = routeMap[twoLevel.path];
routeObj.meta[“rights”] = twoLevel.rights || [];
router.options.routes[0].children.push(routeObj);
});
});
router.addRoutes(router.options.routes);
//将发生变化的 router.options.routes 重新添加到 router 中,否则路由可以正常切换,但是无法加载组件。
// console.log(router.options.routes[0]);
}
}