|
@@ -1,5 +1,5 @@
|
|
|
-import { useUserStoreHook } from '@/store/modules/user';
|
|
|
-import { Directive, DirectiveBinding } from 'vue';
|
|
|
+import { useUserStoreHook } from "@/store/modules/user";
|
|
|
+import { Directive, DirectiveBinding } from "vue";
|
|
|
|
|
|
/**
|
|
|
* 按钮权限
|
|
@@ -7,8 +7,8 @@ import { Directive, DirectiveBinding } from 'vue';
|
|
|
export const hasPerm: Directive = {
|
|
|
mounted(el: HTMLElement, binding: DirectiveBinding) {
|
|
|
// 「超级管理员」拥有所有的按钮权限
|
|
|
- const { roles, perms } = useUserStoreHook();
|
|
|
- if (roles.includes('ROOT')) {
|
|
|
+ const { role, perms } = useUserStoreHook();
|
|
|
+ if (role == "ROOT") {
|
|
|
return true;
|
|
|
}
|
|
|
// 「其他角色」按钮权限校验
|
|
@@ -16,7 +16,7 @@ export const hasPerm: Directive = {
|
|
|
if (value) {
|
|
|
const requiredPerms = value; // DOM绑定需要的按钮权限标识
|
|
|
|
|
|
- const hasPerm = perms?.some(perm => {
|
|
|
+ const hasPerm = perms?.some((perm) => {
|
|
|
return requiredPerms.includes(perm);
|
|
|
});
|
|
|
|
|
@@ -28,7 +28,7 @@ export const hasPerm: Directive = {
|
|
|
"need perms! Like v-has-perm=\"['sys:user:add','sys:user:edit']\""
|
|
|
);
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
};
|
|
|
|
|
|
/**
|
|
@@ -40,10 +40,11 @@ export const hasRole: Directive = {
|
|
|
|
|
|
if (value) {
|
|
|
const requiredRoles = value; // DOM绑定需要的角色编码
|
|
|
- const { roles } = useUserStoreHook();
|
|
|
- const hasRole = roles.some(perm => {
|
|
|
- return requiredRoles.includes(perm);
|
|
|
- });
|
|
|
+ const { role } = useUserStoreHook();
|
|
|
+ // const hasRole = roles.some(perm => {
|
|
|
+ // return requiredRoles.includes(perm);
|
|
|
+ // });
|
|
|
+ const hasRole = requiredRoles.includes(role);
|
|
|
|
|
|
if (!hasRole) {
|
|
|
el.parentNode && el.parentNode.removeChild(el);
|
|
@@ -51,5 +52,5 @@ export const hasRole: Directive = {
|
|
|
} else {
|
|
|
throw new Error("need roles! Like v-has-role=\"['admin','test']\"");
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
};
|