权限验证

    该项目中权限的实现方式是:通过获取当前用户的权限去比对路由表,生成当前用户具的权限可访问的路由表,通过 动态挂载到 router 上。

    但其实很多公司的业务逻辑可能不是这样的,举一个例子来说,很多公司的需求是每个页面的权限是动态配置的,不像本项目中是写死预设的。但其实原理是相同的。如:你可以在后台通过一个 tree 控件或者其它展现形式给每一个页面动态配置权限,之后将这份路由表存储到后端。当用户登录后得到 ,前端根据roles 去向后端请求可访问的路由表,从而动态生成可访问页面,之后就是 router.addRoutes 动态挂载到 router 上,你会发现原来是相同的,万变不离其宗。

    只是多了一步将后端返回路由表和本地的组件映射到一起。相关

    现在路由层面权限的控制代码都在 中,如果想修改逻辑,直接在适当的判断逻辑中 next() 释放钩子即可。

    指令权限

    封装了一个指令权限,能简单快速的实现按钮级别的权限判断。 v-permission权限验证 - 图1

    使用

    In some cases it is not suitable to use v-permission, such as element Tab component which can only be achieved by manually setting the v-if.

    可以使用全局权限判断函数,用法和指令 类似。