花了半天时间,写了一个 树,show code
总结:基本每个项目 都有各种各样的树形结构,什么组织机构,权限 什么的,商品分类的,之前也用ztree 写过,今天用layui 自带组件一个
后台代码: 重点 说下 分类树吧
前端:
效果:
2. 平铺方式 相比递归简单 思路 1. 循环一边所有节点 2.获取每个节点所有子节点
/**
* 构建树
* @param flowNodeListTOS
* @param rootId
* @return
*/
private List<FlowNodeListTO> buildTree(List<FlowNodeListTO> flowNodeListTOS,Long rootId){
if(CollectionUtils.isNotEmpty(flowNodeListTOS)){
flowNodeListTOS.stream().forEach(node -> {
List<FlowNodeListTO> child = getChild(flowNodeListTOS, node.getId());
node.setChildNode(child);
});
List<FlowNodeListTO> rootNode = flowNodeListTOS.stream().filter(node -> Objects.equals(node.getParentNodeId(), rootId))
.collect(Collectors.toList());
return rootNode;
}
return flowNodeListTOS;
}
/**
* 获取子节点
* @param flowNodeListTOS
* @param parentNodeId
* @return
*/
private List<FlowNodeListTO> getChild(List<FlowNodeListTO> flowNodeListTOS,Long parentNodeId){
List<FlowNodeListTO> nodeList = flowNodeListTOS.stream().filter(node -> Objects.equals(node.getParentNodeId(), parentNodeId))
.collect(Collectors.toList());
return nodeList;
}
elk