权限控制分为三大块:
路由权限、菜单权限、按钮权限
路由权限
- 前端路由维护了两份路由表(静态路由表,也就是所有的人都可以看到的,直接在路由实例router上面挂载,还有一份动态路由表要根据用户当前权限动态筛选addRoutes添加上去的)
- 用户只能看到自己有权限访问的页面,如果访问不是自己能看到的页面就是404 不同的账号能看到的页面不一样,有的能看到全部,有的只能看到部分
菜单权限
后台左侧侧边栏导航是v-for动态渲染出来 有的用户能看到所有的菜单 有的只能看到部分
菜单是根据当前用户自己的路由表来v-for动态渲染出来
按钮权限
- 某个页面上有新增、删除、修改按钮,不同的账号登录之后有的可以操作所有的功能,有的只能新增 (一种思路是disabled,还有一种思路隐藏)
- 登录成功会得到一份权限点列表,里面记录了各个页面上面的按钮能不能操作的标识,我们可以定义一个mixin混入,在里面定义一个方法,用于判断当前这个页面上面某个按钮的权限点是不是在权限点列表中,如果是这个按钮是启用或者显示,如果不是,这个按钮就禁用或隐藏