This commit is contained in:
@@ -830,19 +830,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
// 检查节点是否有子节点(子菜单或按钮)
|
||||
const hasChildren = (data: any): boolean => {
|
||||
return data.children && data.children.length > 0
|
||||
}
|
||||
|
||||
// 移除单个权限
|
||||
const removeSinglePermission = async (data: any) => {
|
||||
// 检查是否有子菜单或按钮
|
||||
if (hasChildren(data)) {
|
||||
ElMessage.warning('该权限下还有子菜单或按钮,请先移除子项后再移除此权限')
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
// 保存右侧树的展开节点
|
||||
const expandedKeys = rightTreeRef.value?.store?.nodesMap
|
||||
@@ -851,10 +840,16 @@
|
||||
.map((key) => Number(key))
|
||||
: []
|
||||
|
||||
await RoleService.removePermission(currentRoleId.value, data.id)
|
||||
// 获取要移除的所有权限ID(包括当前节点和所有子节点)
|
||||
const idsToRemove = [data.id, ...getAllChildrenIds(data.id)]
|
||||
|
||||
// 更新已选权限列表
|
||||
selectedPermissions.value = selectedPermissions.value.filter((id) => id !== data.id)
|
||||
// 调用API批量移除权限(传递所有需要移除的权限ID)
|
||||
await RoleService.removePermissions(currentRoleId.value, idsToRemove)
|
||||
|
||||
// 更新已选权限列表(移除当前节点及其所有子节点)
|
||||
selectedPermissions.value = selectedPermissions.value.filter(
|
||||
(id) => !idsToRemove.includes(id)
|
||||
)
|
||||
|
||||
// 重新构建左右两侧树
|
||||
const fullTreeData = buildTreeData(originalPermissionTree.value)
|
||||
|
||||
Reference in New Issue
Block a user