Skip to content
store中书写
Appearance
使用文档
权限管理
TinyPro of Vue通过在src/store/moudles/user文件结合路由,建立switchRoles方法来实现角色权限管理的。
项目使用方式
路由中设置角色显示标签[roles]
ts
export default {
path: 'exception',
name: 'Exception',
id: 'Exception',
label: 'Exception',
component: () => import('@/views/exception/index.vue'),
meta: {
locale: 'menu.exception',
requiresAuth: true,
icon: 'icon-exclamation-circle',
order: 6,
},
children: [
{
path: '403',
name: '403',
id: '403',
label: '403',
component: () => import('@/views/exception/403/index.vue'),
meta: {
locale: 'menu.exception.403',
requiresAuth: true,
roles: ['admin'],
},
},
{
path: '404',
name: '404',
id: '404',
label: '404',
component: () => import('@/views/exception/404/index.vue'),
meta: {
locale: 'menu.exception.404',
requiresAuth: true,
roles: ['*'],
},
},
{
path: '500',
name: '500',
id: '500',
label: '500',
component: () => import('@/views/exception/500/index.vue'),
meta: {
locale: 'menu.exception.500',
requiresAuth: true,
roles: ['*'],
},
},
],
};store中书写switchRoles方法
ts
switchRoles() {
return new Promise((resolve) => {
this.role = this.role === 'user' ? 'admin' : 'user';
resolve(this.role);
});
},页面中调用方法,来做到路由权限管理
ts
const switchRoles = async () => {
const res = await userStore.switchRoles();
Modal.message({
message: res as string,
status: 'success',
});
};