**

vue+elementUI+admin左侧菜单权限

**
1.登陆

在login文件下的index.vue(接口在store文件下modules/user.js)
(⚠️注意:登陆页面如果接口成功但进不去页面则需要看一下store/modules/pemission.js的
getUserPowers方法,看这里的返回值是不是正确的

在这里插入图片描述

2.获取用户信息

根据getInfo接口后台返回的信息(接口在store文件下modules/user.js)

3.获取左侧菜单

在router.js中的
asyncRoutes设置动态加载路由,才可以设置
在store/modules/pemission.js中,需要修改的是请求getUserPowers接口,获取后台返回的数据后,使用循环插入layout,最后在自组件中插入组件路径
(//layout需要引入模块才可以用,否则报错)
在这里插入图片描述

4.最主要的是下面这段代码,将遍历好的数据塞到已有的路由

if (roles.data.roles.includes(‘admin’)) {
// if (roles.includes(‘admin’)) {
// console.log(‘6dian’, asyncRoutes)
accessedRoutes = asyncRoutes || []
} else {
// console.log(‘7dian’)
accessedRoutes = filterAsyncRoutes(asyncRoutes, roles)
}
5.退出登陆

接口在store文件下modules/user.js

⚠️注意事项:
asyncRoutes(动态加载路由)变量中,只能写在
constantRoutes(静态加载路由)静态数据中
解决办法:后台返回的数据中添加一个参数‘hidden:true/false’,控制是否显示在左侧
//后台返回的路由参数需要和在本地文件router.js中的参数一致

Logo

前往低代码交流专区

更多推荐