diff --git a/src/directives/permission/index.ts b/src/directives/permission/index.ts index 8645357..841b686 100644 --- a/src/directives/permission/index.ts +++ b/src/directives/permission/index.ts @@ -5,14 +5,15 @@ import { useUserStoreHook } from "@/store/modules/user" export const permission: Directive = { mounted(el, binding) { const { value } = binding - const roles = useUserStoreHook().roles - if (value && value instanceof Array && value.length > 0) { + const { roles } = useUserStoreHook() + if (Array.isArray(value) && value.length > 0) { const permissionRoles = value - const hasPermission = roles.some((role) => { - return permissionRoles.includes(role) - }) + const hasPermission = roles.some((role) => permissionRoles.includes(role)) if (!hasPermission) { - el.style.display = "none" + // 隐藏 + // el.style.display = "none" + // 销毁 + el.parentNode?.removeChild(el) } } else { throw new Error(`need roles! Like v-permission="['admin','editor']"`)