fix(权限点): 修正树形顶级展示逻辑

This commit is contained in:
zhansihu 2023-09-15 15:08:45 +08:00
parent f3e1ac397e
commit 0aee92334e

View File

@ -74,11 +74,15 @@ public class PermissionPointServiceImpl implements PermissionPointService {
if (request.getParentId() != null || CollectionUtil.isEmpty(nodesResult)) {
return nodesResult;
}
return buildTopNodes(nodesResult);
//顶级展示 - 非特殊过滤时没有子节点也应该展示否则无法新增
boolean needAllTop = StrUtil.isBlank(request.getKeyword())
&& CollectionUtil.isEmpty(request.getTerminalList())
&& CollectionUtil.isEmpty(request.getWorkspaceType())
&& CollectionUtil.isEmpty(request.getIds());
return buildTopNodes(nodesResult, needAllTop);
}
private List<PermissionPointTreeNode> buildTopNodes(List<PermissionPointTreeNode> nodesResult) {
private List<PermissionPointTreeNode> buildTopNodes(List<PermissionPointTreeNode> nodesResult, boolean needAllTop) {
//构建workspace-terminal工作台层级
//按terminal分组
@ -94,7 +98,8 @@ public class PermissionPointServiceImpl implements PermissionPointService {
for (BasicDictTreeResp terminal : terminals) {
//有下级权限点 则建立上级
List<PermissionPointTreeNode> childrenNodes = mappingNode.get(terminal.getCode());
if (CollectionUtil.isNotEmpty(childrenNodes)) {
if (needAllTop || CollectionUtil.isNotEmpty(childrenNodes)) {
//需要保留顶级时没有子节点也要展示
PermissionPointTreeNode terminalTree = new PermissionPointTreeNode();
terminalTree.setPermissionName(terminal.getName());
terminalTree.setTerminal(terminal.getCode());