路由配置解决
This commit is contained in:
parent
dc9b3aaa08
commit
5d89acd012
|
@ -277,7 +277,6 @@ export default {
|
|||
// delete reqData[config.request.pageSize]
|
||||
}
|
||||
Object.assign(reqData, this.tableParams);
|
||||
debugger;
|
||||
try {
|
||||
var res = await this.apiObj.req(reqData);
|
||||
if (this.hidePagination) {
|
||||
|
|
|
@ -34,7 +34,6 @@ const routes = [
|
|||
"title": "首页",
|
||||
"icon": "el-icon-home-filled",
|
||||
"type": "menu",
|
||||
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
|
@ -75,7 +74,7 @@ const routes = [
|
|||
"meta": {
|
||||
"title": "事件",
|
||||
"icon": "el-icon-goods-filled",
|
||||
"type": "menu"
|
||||
"type": "menu",
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
|
@ -84,8 +83,9 @@ const routes = [
|
|||
"meta": {
|
||||
"title": "事件列表",
|
||||
"icon": "el-icon-document",
|
||||
"perms": ["event"]
|
||||
},
|
||||
"component": "ecm/event"
|
||||
"component": "ecm/event",
|
||||
}
|
||||
,
|
||||
{
|
||||
|
@ -262,7 +262,6 @@ const routes = [
|
|||
},
|
||||
"component": "opm/oplcate"
|
||||
},
|
||||
,
|
||||
{
|
||||
"name": "opl",
|
||||
"path": "/opm/opl",
|
||||
|
@ -273,7 +272,6 @@ const routes = [
|
|||
},
|
||||
"component": "opm/opl"
|
||||
},
|
||||
,
|
||||
{
|
||||
"name": "fire",
|
||||
"path": "/opm/fire",
|
||||
|
@ -284,7 +282,6 @@ const routes = [
|
|||
},
|
||||
"component": "opm/fire"
|
||||
},
|
||||
,
|
||||
{
|
||||
"name": "space",
|
||||
"path": "/opm/space",
|
||||
|
@ -295,7 +292,6 @@ const routes = [
|
|||
},
|
||||
"component": "opm/space"
|
||||
},
|
||||
,
|
||||
{
|
||||
"name": "clear",
|
||||
"path": "/opm/clear",
|
||||
|
@ -346,7 +342,6 @@ const routes = [
|
|||
},
|
||||
"component": "opm/cooler"
|
||||
},
|
||||
,
|
||||
{
|
||||
"name": "soil",
|
||||
"path": "/opm/soil",
|
||||
|
|
|
@ -67,12 +67,14 @@ router.beforeEach(async (to, from, next) => {
|
|||
//加载动态/静态路由
|
||||
if (!isGetRouter) {
|
||||
// let apiMenu = tool.data.get("MENU") || []
|
||||
debugger;
|
||||
let userInfo = tool.data.get("USER_INFO");
|
||||
let permissions = tool.data.get("PERMISSIONS");
|
||||
let userMenu = treeFilter(userRoutes, node => {
|
||||
return node.meta.perms ? node.meta.perms.filter(item=>userInfo.perms.indexOf(item)>-1).length > 0 : true
|
||||
let userMenu = userRoutes;
|
||||
if(permissions.indexOf('superuser')==-1){
|
||||
userMenu = treeFilter(userRoutes, node => {
|
||||
return node.meta.perms ? node.meta.perms.filter(item => permissions.indexOf(item) > -1).length > 0 : true
|
||||
});
|
||||
}
|
||||
// let userMenu = checkRoute(userRoutes, permissions)
|
||||
// let menu = [...userMenu, ...apiMenu]
|
||||
var menuRouter = filterAsyncRouter(userMenu);
|
||||
menuRouter = flatAsyncRoutes(menuRouter);
|
||||
|
@ -80,8 +82,7 @@ router.beforeEach(async (to, from, next) => {
|
|||
router.addRoute("layout", item)
|
||||
});
|
||||
routes_404_r = router.addRoute(routes_404);
|
||||
debugger;
|
||||
if (to.matched.length ==0||permissions[0]==='superuser') {
|
||||
if (to.matched.length == 0) {
|
||||
router.push(to.fullPath);
|
||||
}
|
||||
isGetRouter = true;
|
||||
|
@ -106,10 +107,14 @@ router.onError((error) => {
|
|||
//入侵追加自定义方法、对象
|
||||
router.sc_getMenu = () => {
|
||||
// var apiMenu = tool.data.get("MENU") || []
|
||||
let userInfo = tool.data.get("USER_INFO")
|
||||
let userMenu = treeFilter(userRoutes, node => {
|
||||
return node.meta.perms ? node.meta.perms.filter(item=>userInfo.perms.indexOf(item)>-1).length > 0 : true
|
||||
})
|
||||
let permissions = tool.data.get("PERMISSIONS");
|
||||
let userMenu = userRoutes;
|
||||
if(permissions.indexOf('superuser')==-1){
|
||||
userMenu = treeFilter(userRoutes, node => {
|
||||
return node.meta.perms ? node.meta.perms.filter(item => permissions.indexOf(item) > -1).length > 0 : true
|
||||
});
|
||||
}
|
||||
// let userMenu = checkRoute(userRoutes, permissions)
|
||||
// var menu = [...userMenu, ...apiMenu]
|
||||
return userMenu
|
||||
}
|
||||
|
@ -180,4 +185,52 @@ function treeFilter(tree, func) {
|
|||
})
|
||||
}
|
||||
|
||||
function hasPerm(perms_need, perms_have) {
|
||||
let has = false
|
||||
for(var m=0;m<perms_need.length;m++){
|
||||
if(perms_have.indexOf(perms_need[m])>-1){
|
||||
has = true
|
||||
}
|
||||
}
|
||||
return has
|
||||
}
|
||||
|
||||
function checkRoute(routes, perms) {
|
||||
if(perms.indexOf('superuser')>-1){
|
||||
return routes
|
||||
}
|
||||
for (var i = 0; i < routes.length; i++) {
|
||||
if (routes[i].meta && routes[i].meta.perms) {
|
||||
let has = hasPerm(routes[i].meta.perms, perms)
|
||||
if(!has){
|
||||
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]
|
||||
if (child.meta && child.meta.perms) {
|
||||
let has = hasPerm(child.meta.perms, perms)
|
||||
if(!has){
|
||||
routes[i].children.splice(m,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
|
||||
}
|
||||
|
||||
export default router
|
||||
|
|
Loading…
Reference in New Issue