fix: v-access:role指令错误判断code而非role

This commit is contained in:
dap 2025-10-24 10:27:03 +08:00
parent 9822d2af8a
commit a986e1a2ab
3 changed files with 7 additions and 4 deletions

View File

@ -13,6 +13,7 @@
**BUG FIX** **BUG FIX**
- 菜单管理 新增没有加载下拉选择api - 菜单管理 新增没有加载下拉选择api
- v-access:role指令错误判断code而非role
# 1.5.1 # 1.5.1

View File

@ -12,15 +12,13 @@ function isAccessible(
el: Element, el: Element,
binding: DirectiveBinding<string | string[]>, binding: DirectiveBinding<string | string[]>,
) { ) {
const { accessMode, hasAccessByCodes, hasAccessByRoles } = useAccess(); const { hasAccessByCodes, hasAccessByRoles } = useAccess();
const value = binding.value; const value = binding.value;
if (!value) return; if (!value) return;
const authMethod = const authMethod =
accessMode.value === 'frontend' && binding.arg === 'role' binding.arg === 'role' ? hasAccessByRoles : hasAccessByCodes;
? hasAccessByRoles
: hasAccessByCodes;
const values = Array.isArray(value) ? value : [value]; const values = Array.isArray(value) ? value : [value];

View File

@ -17,6 +17,10 @@ function useAccess() {
*/ */
function hasAccessByRoles(roles: string[]) { function hasAccessByRoles(roles: string[]) {
const userRoleSet = new Set(userStore.userRoles); const userRoleSet = new Set(userStore.userRoles);
// 超管的角色
if (userRoleSet.has('superadmin')) {
return true;
}
const intersection = roles.filter((item) => userRoleSet.has(item)); const intersection = roles.filter((item) => userRoleSet.has(item));
return intersection.length > 0; return intersection.length > 0;
} }