vue+elementUI+admin左侧菜单权限、动态路由
**vue+elementUI+admin左侧菜单权限**1.登陆在login文件下的index.vue(接口在store文件下modules/user.js)(⚠️注意:登陆页面如果接口成功但进不去页面则需要看一下store/modules/pemission.js的getUserPowers方法,看这里的返回值是不是正确的)2.获取用户信息根据getInfo接口后台返回的信...
**
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中的参数一致
更多推荐
所有评论(0)