通过后台代码生成树形结构的属性,其中包括 children id text 等属性,主要属性的设置是要看我们前端界面使用的什么插件。
但是我们实际开发中,调用了他人写的树形结构,其中缺少一个你需要的属性,但是我们重新书写又太麻烦,这时候我们就需要在他人的属性结构中添加我们需要的属性。
这里我们前端需要的数据为List
@Override
public List<Map<String, Object>> getModuleTree(List<Map<String, Object>> list ,String flowId) {
List<?> modulesId = getModulesId(flowId);
moduleTree(list,modulesId);
return list;
}
void moduleTree(List<Map<String, Object>> list,List<?> modulesId){
for (Map<String, Object> map : list) {
List<Map<String, Object>> child = (List<Map<String, Object>>) map.get("children");
if (child!=null) {
if (modulesId.contains(map.get("id"))) {
map.put("checked", true);
}
//递归
moduleTree(child,modulesId);
}
}
};
下面是通过递归调用构造一个树