为何Vuex store中user中的state中的roles有admin,但是Permission 的路由还不显示
时间: 2024-03-15 21:47:54 浏览: 119
在 Vue-element-admin 中,权限控制是通过在路由元信息中设置 `roles` 属性来实现的。当用户登录后,前端会通过调用后端提供的接口获取用户信息,包括该用户的角色信息。前端会将用户的角色信息存储到 Vuex store 中的 `user` 模块的 `roles` 属性中。
当用户访问一个需要权限控制的路由时,前端会根据路由元信息中的 `roles` 属性,判断当前用户是否有权限访问该路由。如果当前用户的角色包含在路由元信息的 `roles` 列表中,则认为该用户有权限访问该路由,否则认为该用户无权限访问该路由。
因此,如果用户在 Vuex store 中的 `roles` 属性中包含了 `admin` 角色,但是访问 `Permission` 路由时仍然无法显示,可能是因为该路由的元信息中的 `roles` 属性没有包含 `admin` 角色。您可以在该路由的元信息中添加 `admin` 角色,例如:
```js
{
path: '/permission',
component: Layout,
redirect: '/permission/page',
alwaysShow: true,
name: 'Permission',
meta: {
title: 'Permission',
icon: 'lock',
roles: ['admin', 'editor'] // 添加 admin 角色
}
}
```
这样,用户在 Vuex store 中的 `roles` 属性中包含 `admin` 角色时,就可以访问该路由了。
阅读全文