From a986e1a2ab4cd57d3c090a1b0597b6f1c60a8a0f Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 24 Oct 2025 10:27:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20v-access:role=E6=8C=87=E4=BB=A4=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=88=A4=E6=96=ADcode=E8=80=8C=E9=9D=9Erole?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + packages/effects/access/src/directive.ts | 6 ++---- packages/effects/access/src/use-access.ts | 4 ++++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4700606d..300709c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ **BUG FIX** - 菜单管理 新增没有加载下拉选择api +- v-access:role指令错误判断code而非role # 1.5.1 diff --git a/packages/effects/access/src/directive.ts b/packages/effects/access/src/directive.ts index 35d9d517..9af9b999 100644 --- a/packages/effects/access/src/directive.ts +++ b/packages/effects/access/src/directive.ts @@ -12,15 +12,13 @@ function isAccessible( el: Element, binding: DirectiveBinding, ) { - const { accessMode, hasAccessByCodes, hasAccessByRoles } = useAccess(); + const { hasAccessByCodes, hasAccessByRoles } = useAccess(); const value = binding.value; if (!value) return; const authMethod = - accessMode.value === 'frontend' && binding.arg === 'role' - ? hasAccessByRoles - : hasAccessByCodes; + binding.arg === 'role' ? hasAccessByRoles : hasAccessByCodes; const values = Array.isArray(value) ? value : [value]; diff --git a/packages/effects/access/src/use-access.ts b/packages/effects/access/src/use-access.ts index 05ac3483..692f367e 100644 --- a/packages/effects/access/src/use-access.ts +++ b/packages/effects/access/src/use-access.ts @@ -17,6 +17,10 @@ function useAccess() { */ function hasAccessByRoles(roles: string[]) { const userRoleSet = new Set(userStore.userRoles); + // 超管的角色 + if (userRoleSet.has('superadmin')) { + return true; + } const intersection = roles.filter((item) => userRoleSet.has(item)); return intersection.length > 0; }