VUE前端下,后台的菜单资源管理
1 总体思路是VUE的菜单id和用户对应的菜单id进行对比2 VUE配置的路由中的菜单id需要和数据库中的菜单id(resource_no)对应,超级管理员应当读取到所有的菜单,普通管理员读取到普通管理员菜单,由VUE端将子菜单和VUE中的所有菜单id进行交运算,交结果即普通管理员的VUE显示菜单。3 VUE需要显示按钮权限时,在页面写入按钮组件,但是是否显示,需要从后台获
1 总体思路是VUE配置的菜单id和用户从接口获取的菜单id进行对比
2 VUE配置的路由中的菜单id需要和数据库中的菜单id(resource_no)一一对应,超级管理员应当读取到所有的菜单。普通管理员从云端请求普通管理所有菜单id,由VUE端将普通管理员的菜单id和VUE中的所有菜单id进行交运算,交结果即普通管理员的VUE显示菜单。
3 VUE需要显示按钮权限时,在页面写入按钮组件,但是是否显示,需要从后台获取普通管理员按钮id进行比较
4 VUE的权限id(菜单、按钮)一般在用户登陆时就由云端返回给VUE,由VUE保存到本地,随时可用。
5 数据库采用细颗粒的菜单和按钮权限设计 用户 - 角色 - 菜单/按钮
resource表(菜单、按钮)
id | resource_no | resource_name | resource_type |
1 | 001 | order_menu | menu |
2 | 101 | pay_button | buttion |
user表(用户)
id | user_id | user_name |
1 | c81b6fac387cd3 | jack |
2 | d69884fa23286 | eric |
role
id | role_name |
1 | 普通管理员 |
user_role_ref
id | user_id | role_id |
1 | 1 | 1 |
2 | 2 | 1 |
role_resource_ref
id | role_id | resource_id |
1 | 1 | 1 |
2 | 1 | 2 |
以上四张表应该由超级管理员维护。当VUE普通管理员登录系统时,通过以sql将菜单权限和按钮权限查出来,返回给VUE
select
r.resource_num, resource_type
from
resource as r
inner join
role_resource_ref as rrf on rrf.resource_id = r.id
inner join
user_role_ref on urf on urf.role_id = rrf.role_id
inner_join
user as u on u.id = urf_user_id
where
u.user_id = ''c81b6fac387cd3"
更多推荐
所有评论(0)