根据RBAC思想,已经分配好了对应的角色、和角色对应的权限。接下来就是控制权限页面的显示
主要核心是router.addRoutes
在权限管理页面已经设置了对应的标识,根据权限添加对应标识我们可以根据路由模块相关联,其主要思路就是。遍历动态路由看登录人的menus中存在的标识在动态路由中存在几个,将存在的返回出新数组再和静态路由合并。通过addRoutes追加在路由守卫放行。
人资页面权限步骤:
1.去掉asyncRoutes的默认合并
2.拿到权限信息之后,根据权限信息,从动态路由筛选出,需要追加的路由
3.在vuex中添加一个权限的模块,将所有的路由routes数组弄成响应式的
4.在vuex中设置mutations方法,静态路由的基础上,累加其他权限路由并负责给state
5.在登录成功后个人信息会有menus信息,基于menus来过滤出我们需要的add路由
6.将路由模块的name属性命名和权限标识一致就可以通过过滤动态数组再通过includes去对比用户存在的路由标识。过滤完成后调用mutations中的方法将过滤的动态路由跟静态合并,并赋值给state中的routes数组
7.在路由前置首页调用actions中的过滤路由方法,因为是异步的需要通过await拿结果,再将结果追加到addRoutes中
8.再路由渲染的index中先去除原有的通过默认配置项渲染的路由导航,换成提到getters全局中的routes路由数组。即可实现对用户导航的显示和路由的控制