一.动态路由权限(例子在尚品汇后台项目的store/use.js 和 router/index.js里)
1.权限管理,就是你输入相应的账号密码,就会出现你这个权限对应的菜单栏。
2.我们要对路由的权限管理有一定的认识,权限管理就是不同的角色登录管理系统,所看到的菜单栏是不一样的,比如超级管理员可以看到完整的菜单栏,但是其他角色可能只能看到菜单栏中的某些菜单,这就是权限管理。
3.那我们是怎么做到权限管理的呢?看下面,
首先我们在vuex里面的actions里调登录接口获取了登陆时的用户信息,返回的数据包括用户名,用户头像,routes(不同的用户应该展示哪些菜单的标记),roles(用户角色信息),buttons(按钮的信息:按钮权限用的标记)。将这些信息储存到state里面,
4.接下来就拿服务器返回过来的信息routes(不同的用户应该展示哪些菜单的标记)去和路由里面原来的路由去比较,需要先把原来的路由进行拆分,拆分为:
常量路由(任何角色都可以看见的路由:登录页,404页,首页echars),
异步路由(不同的角色,看到的不同),
任意路由(当路径出现错误的时候重定向404),
5.定义一个函数,将原来的路由和routes进行对比,过滤出当前登录用户最终需要展示的异步路由,最终将需要展示的异步路由和原来的常量路由,任意路由进行合并,这个最终合并的路由就是最终展示出来的路由,这样就实现了不同用户登录进来可以看到不同的路由了。
二.按钮权限(例子在view/test和store/use.js里)
1.按钮权限:分配了菜单权限,还可以分配按钮权限,我们可以直接在页面中操作增删改查来直接分配按钮权限,然后再去路由里面增加页面,去页面里面增加按钮就可以了,然后再给每个按钮增加一个判断,看state里面有没有存储分配的按钮权限,分配给你了就显示这个按钮,没有分配给你按钮权限,就不显示这个按钮。
三.菜单权限
本文介绍了如何在前端应用中实现动态路由权限管理和按钮权限控制。通过解析用户角色信息和菜单权限,动态生成路由;同时根据按钮权限决定按钮是否显示。

1272

被折叠的 条评论
为什么被折叠?



