diff --git a/water-design-const/src/main/java/com/bonus/waterdesign/domain/ProjectVo.java b/water-design-const/src/main/java/com/bonus/waterdesign/domain/ProjectVo.java index 5358243..9be6bd3 100644 --- a/water-design-const/src/main/java/com/bonus/waterdesign/domain/ProjectVo.java +++ b/water-design-const/src/main/java/com/bonus/waterdesign/domain/ProjectVo.java @@ -27,6 +27,7 @@ public class ProjectVo { private String nodeId; private String modelUrl; private Integer nodeCount; + private boolean isLeaf; private List nodes; diff --git a/water-design-const/src/main/java/com/bonus/waterdesign/service/impl/ModelServiceImpl.java b/water-design-const/src/main/java/com/bonus/waterdesign/service/impl/ModelServiceImpl.java index 3f6e6dd..3d61849 100644 --- a/water-design-const/src/main/java/com/bonus/waterdesign/service/impl/ModelServiceImpl.java +++ b/water-design-const/src/main/java/com/bonus/waterdesign/service/impl/ModelServiceImpl.java @@ -45,11 +45,10 @@ public class ModelServiceImpl implements ModelService { // 2. 创建全局节点映射(id -> 节点) Map idToNodeMap = new HashMap<>(); - // 第一遍遍历:初始化项目和节点映射 + // 第一遍遍历:初始化项目和节点映射,标记末级节点 for (ProjectVo vo : flatList) { - // 使用 nodeId 作为节点唯一标识(因为前端数据中 nodeId 与 id 相同) + // 使用 nodeId 作为节点唯一标识 String nodeId = vo.getNodeId(); - // 添加到全局映射 idToNodeMap.put(nodeId, vo); @@ -58,6 +57,11 @@ public class ModelServiceImpl implements ModelService { vo.setNodes(new ArrayList<>()); } + // 标记末级节点:nodelevel == nodeCount(最后一层节点) + boolean isLeaf = vo.getNodelevel() != null && vo.getNodeCount() != null + && vo.getNodelevel().equals(vo.getNodeCount().toString()); + vo.setLeaf(isLeaf); // 给ProjectVo添加isLeaf属性,用于前端判断是否显示复选框 + // 初始化项目节点 String projectId = vo.getProjectId(); if (!projectMap.containsKey(projectId)) {