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表(菜单、按钮)

idresource_noresource_nameresource_type
1001order_menumenu
2101pay_buttonbuttion

user表(用户)
iduser_iduser_name
1c81b6fac387cd3jack
2d69884fa23286eric

role

idrole_name
1普通管理员

user_role_ref

iduser_idrole_id
111
221

role_resource_ref

idrole_idresource_id
111
212

以上四张表应该由超级管理员维护。当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" 

Logo

前往低代码交流专区

更多推荐