修改菜单逻辑.

This commit is contained in:
lijiahang
2023-08-02 17:08:40 +08:00
parent 4322f01354
commit 7915198be4
16 changed files with 230 additions and 94 deletions

View File

@@ -4,26 +4,46 @@ import { useUserStore } from '@/store';
export default function usePermission() {
const userStore = useUserStore();
return {
// TODO test
/**
* 是否可访问路由
*/
accessRouter(route: RouteLocationNormalized | RouteRecordRaw) {
return (
!route.meta?.requiresAuth ||
!route.meta?.permission ||
userStore.permission?.includes(route.meta?.permission)
);
// route.name
// TODO
},
findFirstPermissionRoute(_routers: any, permission: string) {
const cloneRouters = [..._routers];
while (cloneRouters.length) {
const firstElement = cloneRouters.shift();
if (firstElement?.meta?.permission === permission) {
return { name: firstElement.name };
}
if (firstElement?.children) {
cloneRouters.push(...firstElement.children);
}
}
return null;
/**
* 是否有权限
*/
hasPermission(permission: string) {
return userStore.permission?.includes('*') ||
userStore.permission?.includes(permission);
},
/**
* 是否有权限
*/
hasAnyPermission(permission: string[]) {
return userStore.permission?.includes('*') ||
permission.map(s => userStore.permission?.includes(s))
.filter(Boolean).length > 0;
},
/**
* 是否有角色
*/
hasRole(role: string) {
return userStore.roles?.includes('admin') ||
userStore.roles?.includes(role);
},
/**
* 是否有角色
*/
hasAnyRole(role: string[]) {
return userStore.roles?.includes('*') ||
role.map(s => userStore.roles?.includes(s))
.filter(Boolean).length > 0;
}
};
}