一、效果
二、数据库表
1、菜单表
包含权限名称,模块名称,图标名称,页面跳转的方法,菜单是否显示栏位
2、角色对应权限表
包含角色id和权限id,这个表将角色和菜单角色连接,给角色赋予权限功能
3、 账户表
用于绑定账号隶属于什么角色,绑定的角色表
4、角色表
菜单的权限是赋予给角色的,根据角色去设置菜单功能
表之间的关系
-
账号表(Account) 和 角色表(Role) 之间的关系:
-
一个账号属于一个角色,一个角色可以有多个账号。
-
账号表通过字段连接角色表。
-
-
权限表(Permission) 和 角色表(Role) 之间的关系:
-
一个角色可以拥有多个菜单权限,一个菜单可以被多个角色拥有。
-
权限表通过字段连接角色表。
-
权限表通过字段连接菜单表。
-
-
菜单表(Menu) 和 权限表(Permission) 之间的关系:
-
菜单表列出了所有可用的菜单项。
-
权限表通过字段连接菜单表,表示某个角色对某个菜单的权限。
-
三、根据数据库查询整合数据
这里使用一个数组对象嵌套
数组中每一个对象就表明一个大菜单项,子项中包含大标题module,和权限菜单permission,
permission中又是一个数组对象,每一项就是一个菜单,菜单信息包含菜单名称、图标路径、图标跳转路径
数据库查询数据如下
{"check": 1,"info": [{"module": "生产","permission": [{"permissions_id": 1,"permission_name": "开始生产","icon": "index/index/produce_start.png","handler": "../Produce/ProduceStart/index/index"},{"permissions_id": 2,"permission_name": "首件确认","icon": "index/index/produce_first.png","handler": "../Produce/ProduceFirstSure/index/index"},{"permissions_id": 3,"permission_name": "生产产出","icon": "index/index/produce_end.png","handler": "../Produce/ProduceEnd/index/index"}]},{"module":