routes.js
3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import Login from './views/Login.vue'
import NotFound from './views/404.vue'
import Home from './views/Home.vue'
import Main from './views/dashboard/index'
// import Table from './views/nav1/Table.vue'
import Role from './views/nav1/role.vue'
import Perm from './views/nav1/perm.vue'
import LOG from './views/nav1/Log.vue'
import PreManifest from './views/agent/PreManifest.vue'
import Company from './views/nav1/company.vue'
import Department from './views/nav1/department.vue'
import Group from './views/nav1/groupcompany.vue'
import User from './views/nav1/user.vue'
// 陆运运输
import Vehicle from './views/vehicle_manage/Vehicle.vue'
import Trailer from './views/vehicle_manage/Trailer.vue'
import Corporation from './views/vehicle_manage/Corporation.vue'
import Driver from './views/vehicle_manage/Driver.vue'
let routes = [
{
path: '/login',
component: Login,
name: '登录',
hidden: true
},
{
path: '/404',
component: NotFound,
name: '错误',
hidden: true
},
{
path: '/',
component: Home,
name: '主页',
leaf: true,
iconCls: 'el-icon-menu',
children: [
{path: '/main', component: Main, name: '首页'},
]
},
{
path: '/admin',
component: Home,
name: '系统设置',
iconCls: 'el-icon-setting',//图标样式class
children: [
{path: '/user', component: User, name: '用户管理'},
{path: '/role', component: Role, name: '组织机构'},
{path: '/perm', component: Perm, name: '权限管理'},
{path: '/log', component: LOG, name: '系统日志'},
{path: '/department', component: Department, name: '部门管理'},
{path: '/company', component: Company, name: '公司管理'},
{path: '/group', component: Group, name: '集团管理'}
]
},
{
path: '/',
component: Home,
name: '陆运运输',
iconCls: 'el-icon-setting',//图标样式class
children: [
{path: '/vehicle', component: Vehicle, name: '车辆管理'},
{path: '/trailer', component: Trailer, name: '挂车管理'},
{path: '/corporation', component: Corporation, name: '企业管理'},
{path: '/driver', component: Driver, name: '驾驶员管理'},
]
},
{
path: '*',
hidden: true,
redirect: {path: '/404'}
}
];
let initRouters = routes.concat();
let setUserMenus = function (list) {
routes = list;
}
/**
* 处理登陆后的账号对应的菜单
* @param menuList
*/
let handleMenuList = function (router, menu) {
var _self = this;
var routerName = "";
router.forEach(function (v_router) {
routerName = v_router.name;
menu.forEach(function (v_menu) {
//查找返回的目录列表是否包含路由名称,有就返回匹配到的元素,没有就移除
let result = menu.find(item => {
return item.name === routerName;
});
//匹配到继续判断是否子元素,有子元素继续递归
if (result) {
if (v_router.children) {
_self.handleMenuList(v_router.children, result.children);
}
//没有则可以移除
} else {
router.splice(router.findIndex(itm => itm.name === routerName), 1);
}
})
});
}
export default {
routes, setUserMenus, handleMenuList, initRouters
};