WangJunZzz
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
26 additions and
9 deletions
-
aspnet-core/modules/BasicManagement/src/Lion.AbpPro.BasicManagement.Application/Roles/RolePermissionAppService.cs
-
vben28/src/views/admin/roles/PermissionAbpRole.vue
|
|
|
@ -60,7 +60,10 @@ namespace Lion.AbpPro.BasicManagement.Roles |
|
|
|
? L[$"Permission:SystemManagement"] |
|
|
|
: group.DisplayName |
|
|
|
}; |
|
|
|
result.Grants.Add(group.Name); |
|
|
|
if (group.Permissions.Any(p => p.IsGranted == true && p.Name.StartsWith(group.Name))) |
|
|
|
{ |
|
|
|
result.Grants.Add(group.Name); |
|
|
|
} |
|
|
|
// 获取所有已授权和未授权权限集合
|
|
|
|
foreach (var item in group.Permissions) |
|
|
|
{ |
|
|
|
@ -71,12 +74,12 @@ namespace Lion.AbpPro.BasicManagement.Roles |
|
|
|
{ |
|
|
|
result.Grants.Add(item.Name); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
// 只要没有授权的,就移除顶级的分组
|
|
|
|
result.Grants.Remove(group.Name); |
|
|
|
result.Grants.Remove(item.ParentName); |
|
|
|
} |
|
|
|
//else
|
|
|
|
//{
|
|
|
|
// // 只要没有授权的,就移除顶级的分组
|
|
|
|
// result.Grants.Remove(group.Name);
|
|
|
|
// result.Grants.Remove(item.ParentName);
|
|
|
|
//}
|
|
|
|
} |
|
|
|
|
|
|
|
// 递归菜单
|
|
|
|
|
|
|
|
@ -1,6 +1,6 @@ |
|
|
|
<template> |
|
|
|
<BasicDrawer @register="registerDrawer" :maskClosable="false" :title="t('routes.admin.roleManagement_permission')" width="20%"> |
|
|
|
<BasicTree :treeData="allPermissionsRef" checkable ref="treeRef" style="margin-bottom: 50px" /> |
|
|
|
<BasicTree :treeData="allPermissionsRef" @check="handleCheck" :checkStrictly="'false'" checkable ref="treeRef" style="margin-bottom: 50px" /> |
|
|
|
<div |
|
|
|
:style="{ |
|
|
|
position: 'absolute', |
|
|
|
@ -79,7 +79,7 @@ export default defineComponent({ |
|
|
|
totalRolePermissionsRef.forEach((item:string)=>{ |
|
|
|
let permisstion = new UpdatePermissionDto(); |
|
|
|
permisstion.name = item; |
|
|
|
if((keys as []).some(e=>e==item)){ |
|
|
|
if((keys.checked as []).some(e=>e==item)){ |
|
|
|
permisstion.isGranted = true; |
|
|
|
permisstions.push(permisstion); |
|
|
|
}else{ |
|
|
|
@ -97,6 +97,19 @@ export default defineComponent({ |
|
|
|
message.success(t('common.operationSuccess')); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// 自定义级联选中 |
|
|
|
const handleCheck = (checkedKeys, e) => { |
|
|
|
if (e.checked === true) { |
|
|
|
// 新增权限时,向下级联选中 |
|
|
|
var filteredKeys = totalRolePermissionsRef.filter(key => key.startsWith(e.node.key)); |
|
|
|
checkedKeys.checked = checkedKeys.checked.concat(filteredKeys.filter(key => checkedKeys.checked.indexOf(key) === -1)); |
|
|
|
} else { |
|
|
|
// 取消权限时,向下级联反选 |
|
|
|
checkedKeys.checked = checkedKeys.checked.filter(key => !key.startsWith(e.node.key)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
t, |
|
|
|
registerDrawer, |
|
|
|
@ -104,6 +117,7 @@ export default defineComponent({ |
|
|
|
submitRolePermisstionAsync, |
|
|
|
closeDrawer, |
|
|
|
treeRef, |
|
|
|
handleCheck, |
|
|
|
}; |
|
|
|
}, |
|
|
|
}); |
|
|
|
|