通過後臺代碼生成樹形結構的屬性,其中包括 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);
}
}
};
下面是通過遞歸調用構造一個樹