diff --git a/src/router/index.js b/src/router/index.js index 7d46d67d..cae63e54 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -66,28 +66,32 @@ router.beforeEach(async (to, from, next) => { } //加载动态/静态路由 if (!isGetRouter) { - // let apiMenu = tool.data.get("MENU") || [] - let permissions = tool.data.get("PERMISSIONS") || [];//账号页面权限 - let userMenu = userRoutes;//静态路由 - // debugger; - // console.log(userRoutes); - userMenu = treeFilter(userRoutes, node => { - return node.meta.perms ? node.meta.perms.filter(item => permissions.indexOf(item) > -1).length > 0 : true - }); - // debugger; - // console.log(userMenu); - // let userMenu = checkRoute(userRoutes, permissions) - // let menu = [...userMenu, ...apiMenu] - var menuRouter = filterAsyncRouter(userMenu); - menuRouter = flatAsyncRoutes(menuRouter); - menuRouter.forEach(item => { - router.addRoute("layout", item) - }); - routes_404_r = router.addRoute(routes_404); - if (to.matched.length == 0) { - router.push(to.fullPath); + let userMenu = []; + if(tool.data.get('BASE_INFO').base.base_menucate=='dynamic'){ + userMenu = tool.data.get("MENU") || []; + }else{ + let permissions = tool.data.get("PERMISSIONS") || [];//账号页面权限 + // console.log("permissions",permissions); + userMenu = userRoutes;//静态路由 + userMenu = treeFilter(userRoutes, node => { + return node.meta.perms ? node.meta.perms.filter(item => permissions.indexOf(item) > -1).length > 0 : true + }); } - isGetRouter = true; + try { + var menuRouter = filterAsyncRouter(userMenu); + menuRouter = flatAsyncRoutes(menuRouter); + menuRouter.forEach(item => { + router.addRoute("layout", item) + }); + routes_404_r = router.addRoute(routes_404); + if (to.matched.length == 0) { + router.push(to.fullPath); + } + isGetRouter = true; + }catch (e) { + + } + } beforeEach(to, from) next(); @@ -108,14 +112,17 @@ router.onError((error) => { //入侵追加自定义方法、对象 router.sc_getMenu = () => { - // var apiMenu = tool.data.get("MENU") || [] - let permissions = tool.data.get("PERMISSIONS") || []; - let userMenu = userRoutes; - userMenu = treeFilter(userRoutes, node => { - return node.meta.perms ? node.meta.perms.filter(item => permissions.indexOf(item) > -1).length > 0 : true - }); - let menus = checkRoute(userMenu, permissions) - return menus + if(tool.data.get('BASE_INFO').base.base_menucate=='dynamic'){ + return tool.data.get("MENU") || [] + } + else{ + let permissions = tool.data.get("PERMISSIONS") || []; + let userMenu = treeFilter(userRoutes, node => { + return node.meta.perms ? node.meta.perms.filter(item => permissions.indexOf(item) > -1).length > 0 : true + }); + userMenu = checkRoute(userMenu, permissions) + return userMenu + } } //转换 @@ -131,8 +138,8 @@ function filterAsyncRouter(routerMap) { //MAP转路由对象 var route = { path: item.path, - name: item.name, - meta: item.meta, + name: item.name?item.name:'', + meta: item.meta?item.meta:{}, redirect: item.redirect, children: item.children ? filterAsyncRouter(item.children) : null, component: loadComponent(item.component) @@ -185,16 +192,6 @@ function treeFilter(tree, func) { return func(node) || (node.children && node.children.length) }) } -//过滤树 -// function treeFilter(tree, func) { -// let treemap = tree.map(node => ({ ...node })); - -// let returnTree = treemap.filter(node => { -// node.children = node.children && treeFilter(node.children, func) -// return func(node) || (node.children && node.children.length) -// }) -// return returnTree; -// } function hasPerm(perms_need, perms_have) { @@ -231,18 +228,6 @@ function checkRoute(routes, perms) { }else{ routes.splice(i, 1) } - // else if (routes[i].children) { - // for (var m = 0; m < routes[i].children.length; m++) { - // let child = routes[i].children[m] - // console.log(m, child) - // if (child.meta && child.meta.perms) { - // let has = hasPerm(child.meta.perms, perms) - // if (!has) { - // routes[i].children.splice(m, 1) - // } - // } - // } - // } } return routes } diff --git a/src/views/login/components/passwordForm.vue b/src/views/login/components/passwordForm.vue index 7db5fb74..90bf35c5 100644 --- a/src/views/login/components/passwordForm.vue +++ b/src/views/login/components/passwordForm.vue @@ -141,7 +141,15 @@ export default { if (base_dashboard == null || base_dashboard == undefined) { base_dashboard = '/dashboard' } - if (this.$TOOL.data.get('BASE_INFO').base.base_name_short.indexOf('曲阳') != -1) { + if(this.$TOOL.data.get('BASE_INFO').base.base_menucate=='dynamic'){ + try{ + var res = await that.$API.system.user.routers.req({}) + this.$TOOL.data.set("MENU",res) + console.log(res) + } catch (err) { + } + } + if (this.$TOOL.data.get('BASE_INFO').base.base_name_short.indexOf('曲阳') != -1) { if (res1.type === 'employee') { this.$router.replace({ path: base_dashboard, @@ -162,10 +170,11 @@ export default { } }) } else { - this.$router.replace({ + that.$router.replace({ path: base_dashboard, }); } + } catch (err) { that.islogin = false; console.log(err);