| | |
| | | const router = new Router({ |
| | | mode: 'hash', |
| | | scrollBehavior: () => ({ y: 0 }), |
| | | isAddDynamicMenuRoutes: false, // 是否已经添加动态(菜单)路由 |
| | | isAddDynamiCMEnuRoutes: false, // 是否已经添加动态(菜单)路由 |
| | | routes: globalRoutes.concat(mainRoutes) |
| | | }) |
| | | |
| | |
| | | // 添加动态(菜单)路由 |
| | | // 1. 已经添加 or 全局路由, 直接访问 |
| | | // 2. 获取菜单列表, 添加并保存本地存储 |
| | | if (router.options.isAddDynamicMenuRoutes || fnCurrentRouteType(to, globalRoutes) === 'global') { |
| | | if (router.options.isAddDynamiCMEnuRoutes || fnCurrentRouteType(to, globalRoutes) === 'global') { |
| | | next() |
| | | } else { |
| | | // sessionStorage.setItem('authorities', JSON.stringify(menu.authorities || '[]')) |
| | | // fnAddDynamicMenuRoutes(menu) |
| | | // fnAddDynamiCMEnuRoutes(menu) |
| | | // sessionStorage.setItem('menuList', JSON.stringify(menu.menuList || '[]')) |
| | | http({ |
| | | url: http.adornUrl('/sys/menu/nav'), |
| | |
| | | }).then(({ data }) => { |
| | | sessionStorage.setItem('authorities', JSON.stringify(data.authorities || '[]')) |
| | | //sessionStorage.setItem('authorities', JSON.stringify(menu.authorities || '[]'))(本地模拟) |
| | | //fnAddDynamicMenuRoutes(menu.menuList)(本地模拟) |
| | | fnAddDynamicMenuRoutes(data.menuList) |
| | | router.options.isAddDynamicMenuRoutes = true |
| | | //fnAddDynamiCMEnuRoutes(menu.menuList)(本地模拟) |
| | | fnAddDynamiCMEnuRoutes(data.menuList) |
| | | router.options.isAddDynamiCMEnuRoutes = true |
| | | sessionStorage.setItem('menuList', JSON.stringify(data.menuList || '[]')) |
| | | //sessionStorage.setItem('menuList', JSON.stringify(menu.menuList || '[]'))(本地模拟) |
| | | next({ ...to, replace: true }) |
| | |
| | | * @param {*} menuList 菜单列表 |
| | | * @param {*} routes 递归创建的动态(菜单)路由 |
| | | */ |
| | | function fnAddDynamicMenuRoutes (menuList = [], routes = []) { |
| | | function fnAddDynamiCMEnuRoutes (menuList = [], routes = []) { |
| | | var temp = [] |
| | | for (var i = 0; i < menuList.length; i++) { |
| | | if (menuList[i].list && menuList[i].list.length >= 1) { |
| | |
| | | } |
| | | } |
| | | if (temp.length >= 1) { |
| | | fnAddDynamicMenuRoutes(temp, routes) |
| | | fnAddDynamiCMEnuRoutes(temp, routes) |
| | | } else { |
| | | mainRoutes.name = 'main-dynamic' |
| | | mainRoutes.children = routes |
| | |
| | | mainRoutes, |
| | | { path: '*', redirect: { name: '404' } } |
| | | ]) |
| | | sessionStorage.setItem('dynamicMenuRoutes', JSON.stringify(mainRoutes.children || '[]')) |
| | | sessionStorage.setItem('dynamiCMEnuRoutes', JSON.stringify(mainRoutes.children || '[]')) |
| | | } |
| | | } |
| | | |