菜单权限控制
当用户登录后,会获取所有用户所在角色拥有的所有权限节点,程序自动筛选出菜单等数据注入到路由中从而展示菜单,所以说用户没有的菜单权限在菜单中是不展示的,并且没有注入路由,即使用户知道访问地址进行直接访问也是访问不了的会进入error页面。
页面内如何进行权限控制
所有权限都通过引入import { authCheck } from '@/common/function'
函数进行判断,authCheck
函数传入权限节点名称,如果有权限返回false
,无权限返回true
,为什么不有权限返回true呢,因为此函数多数是用在按钮的disabled
属性上。
按钮权限控制
jsx
<Popconfirm
title="确认要删除吗?"
onConfirm={() => {
del(render.id);
}}
disabled={authCheck('adminUserDelete')}
>
<Button
type="link"
size="small"
danger
disabled={authCheck('adminUserDelete')}
>删除</Button>
</Popconfirm>
如果是打开内页权限控制
jsx
<NavLink to={authCheck('newsUpdate') ? '' : `/news/list/update?id=${render.id}`}>
<Button
type="link"
size="small"
disabled={authCheck('newsUpdate')}
>修改</Button>
</NavLink>