1、我是用elementui框架做的前后端分离的后台管理系统;
2、管理系统中有不同的管理角色,而不同的角色看到的导航菜单不相同;
3、在展示的页面中,不同角色看到的数据不同、页面级的操作也有所区别,比如说,权限高的管理员除了查看数据还能进行一些操作:新增、删除,而权限低的用户只能看到数据,并不能看到操作按钮;
问题如上所述,欢迎各位同道中人不吝赐教!
导航菜单的数据格式
[{
"menuId": 1,
"parentId": 0,
"parentName": null,
"name": "运维管理",
"path": "/",
"perms": null,
"type": null,
"children": [{
"menuId": 5,
"parentId": 1,
"parentName": null,
"name": "工单管理",
"path": "/",
"perms": null,
"type": null,
"children": [{
"menuId": 11,
"parentId": 5,
"parentName": null,
"name": "装机工单",
"path": "/mechanicOrder",
"perms": null,
"type": null,
"children": [{
"menuId": 15,
"parentId": 11,
"parentName": null,
"name": "新建装机",
"path": "",
"perms": null,
"type": null,
"children": [{
"menuId": 22,
"parentId": 15,
"parentName": null,
"name": "修改撤机",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}, {
"menuId": 16,
"parentId": 11,
"parentName": null,
"name": "修改装机",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}, {
"menuId": 12,
"parentId": 5,
"parentName": null,
"name": "配送工单",
"path": "/dispatchOrder",
"perms": null,
"type": null,
"children": [{
"menuId": 17,
"parentId": 12,
"parentName": null,
"name": "新增配送",
"path": "",
"perms": null,
"type": null,
"children": null
}, {
"menuId": 18,
"parentId": 12,
"parentName": null,
"name": "修改配送",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}, {
"menuId": 13,
"parentId": 5,
"parentName": null,
"name": "维修工单",
"path": "/maintainOrder",
"perms": null,
"type": null,
"children": [{
"menuId": 19,
"parentId": 13,
"parentName": null,
"name": "新增配送",
"path": "",
"perms": null,
"type": null,
"children": null
}, {
"menuId": 20,
"parentId": 13,
"parentName": null,
"name": "修改配送",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}, {
"menuId": 14,
"parentId": 5,
"parentName": null,
"name": "撤机工单",
"path": "/leaveOrder",
"perms": null,
"type": null,
"children": [{
"menuId": 21,
"parentId": 14,
"parentName": null,
"name": "新建撤机",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}]
}, {
"menuId": 6,
"parentId": 1,
"parentName": null,
"name": "点位管理",
"path": "/",
"perms": null,
"type": null,
"children": [{
"menuId": 23,
"parentId": 6,
"parentName": null,
"name": "点位管理",
"path": "/",
"perms": null,
"type": null,
"children": [{
"menuId": 24,
"parentId": 23,
"parentName": null,
"name": "新建点位",
"path": "",
"perms": null,
"type": null,
"children": null
}, {
"menuId": 25,
"parentId": 23,
"parentName": null,
"name": "修改点位",
"path": "",
"perms": null,
"type": null,
"children": null
}, {
"menuId": 26,
"parentId": 23,
"parentName": null,
"name": "删除点位",
"path": "",
"perms": null,
"type": null,
"children": null
}, {
"menuId": 27,
"parentId": 23,
"parentName": null,
"name": "配置补货员",
"path": "",
"perms": null,
"type": null,
"children": null
}, {
"menuId": 28,
"parentId": 23,
"parentName": null,
"name": "配置维修员",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}]
}, {
"menuId": 7,
"parentId": 1,
"parentName": null,
"name": "设备管理",
"path": "/",
"perms": null,
"type": null,
"children": [{
"menuId": 29,
"parentId": 7,
"parentName": null,
"name": "设备管理",
"path": "/equipManage",
"perms": null,
"type": null,
"children": [{
"menuId": 30,
"parentId": 29,
"parentName": null,
"name": "新增设备",
"path": "",
"perms": null,
"type": null,
"children": null
}, {
"menuId": 31,
"parentId": 29,
"parentName": null,
"name": "投放设备",
"path": "",
"perms": null,
"type": null,
"children": null
}, {
"menuId": 32,
"parentId": 29,
"parentName": null,
"name": "查看设备",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}, {
"menuId": 33,
"parentId": 7,
"parentName": null,
"name": "设备状态",
"path": "/equipStatus",
"perms": null,
"type": null,
"children": null
}]
}, {
"menuId": 8,
"parentId": 1,
"parentName": null,
"name": "策略管理",
"path": "/",
"perms": null,
"type": null,
"children": [{
"menuId": 35,
"parentId": 8,
"parentName": null,
"name": "货道策略",
"path": "/cargoLane",
"perms": null,
"type": null,
"children": [{
"menuId": 36,
"parentId": 35,
"parentName": null,
"name": "货道配置",
"path": "/cargoLane",
"perms": null,
"type": null,
"children": [{
"menuId": 37,
"parentId": 36,
"parentName": null,
"name": "新建策略",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}]
}, {
"menuId": 38,
"parentId": 8,
"parentName": null,
"name": "皮肤策略",
"path": "/skin",
"perms": null,
"type": null,
"children": null
}]
}, {
"menuId": 9,
"parentId": 1,
"parentName": null,
"name": "广告管理",
"path": "/video",
"perms": null,
"type": null,
"children": [{
"menuId": 39,
"parentId": 9,
"parentName": null,
"name": "广告管理",
"path": "/video",
"perms": null,
"type": null,
"children": [{
"menuId": 40,
"parentId": 39,
"parentName": null,
"name": "视频管理",
"path": "/video",
"perms": null,
"type": null,
"children": [{
"menuId": 42,
"parentId": 40,
"parentName": null,
"name": "新增视频",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}, {
"menuId": 41,
"parentId": 39,
"parentName": null,
"name": "图片管理",
"path": "/picture",
"perms": null,
"type": null,
"children": [{
"menuId": 43,
"parentId": 41,
"parentName": null,
"name": "新增图片",
"path": "",
"perms": null,
"type": null,
"children": null
}]
}]
}]
}, {
"menuId": 10,
"parentId": 1,
"parentName": null,
"name": "库存管理",
"path": "/stock",
"perms": null,
"type": null,
"children": [{
"menuId": 45,
"parentId": 10,
"parentName": null,
"name": "库存管理",
"path": "/stock",
"perms": null,
"type": null,
"children": null
}]
}]
设置两个管理模块,一个是管理你的导航菜单,包括你的操作按钮,就是请求接口的所有按钮,另一个是管理你的角色,设置权限管理按钮,打开后展示的是你所有的导航菜单,然后选择 你要赋权的节点,当设置的用户登录的时候,从后台获取当前角色的所有节点,然后写一个全局的公共方法,验证当前按钮的节点是否存在于角色的节点数组中,如果是返回true,否则false,同时后台验证请求的接口是否存在节点中





导航菜单管理
用户组管理
用户权限分配
节点验证
节点判断