mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-11-11 03:33:48 +08:00
feat(ui): 管理后台新增权限及部分组合式函数优化
This commit is contained in:
32
new-ui/projects/admin/src/directives/permission.ts
Normal file
32
new-ui/projects/admin/src/directives/permission.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { useAuthStore } from "@/stores/auth";
|
||||
|
||||
// 判断操作权限
|
||||
export function hasPermission(permissionTag: string | string[] | boolean) {
|
||||
const authStore = useAuthStore();
|
||||
const { is_super_admin, permissions = [] } = authStore;
|
||||
if (is_super_admin) {
|
||||
return true;
|
||||
}
|
||||
if (Array.isArray(permissionTag)) {
|
||||
return permissionTag.every((tag) => permissions.includes(tag));
|
||||
}
|
||||
if (typeof permissionTag === "string") {
|
||||
return permissions.includes(permissionTag);
|
||||
}
|
||||
return permissionTag;
|
||||
}
|
||||
|
||||
function checkPermission(el, binding) {
|
||||
if (!hasPermission(binding.value)) {
|
||||
el.parentNode && el.parentNode.removeChild(el);
|
||||
}
|
||||
}
|
||||
|
||||
export const permission = {
|
||||
mounted(el, binding) {
|
||||
checkPermission(el, binding);
|
||||
},
|
||||
updated(el, binding) {
|
||||
checkPermission(el, binding);
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user