第二种:
let data= [
{
"id": 100,
"parentId": 0,
"isLeaf": "0",
"level": 1,
"code": "taskAnalyse",
"name": "数据机构",
"canEdit": "0"
},
{
"id": 101,
"parentId": 100,
"isLeaf": "1",
"level": 2,
"code": "module",
"name": "数据机构2",
"canEdit": "1"
},
{
"id": 102,
"parentId": 100,
"isLeaf": "1",
"level": 2,
"code": "task",
"name": "数据机构3",
"canEdit": "1"
},
{
"id": 103,
"parentId": 100,
"isLeaf": "1",
"level": 2,
"code": "fid",
"name": "1.3 确定典型任务",
"canEdit": "1"
},
{
"id": 200,
"parentId": 0,
"isLeaf": "0",
"level": 1,
"code": "competencyAnalyse",
"name": "二绘制能力图谱",
"canEdit": "0"
},
{
"id": 201,
"parentId": 200,
"isLeaf": "1",
"level": 2,
"code": "knowledge",
"name": "2绘制知识图谱",
"canEdit": "1"
},
{
"id": 205,
"parentId": 203,
"isLeaf": "1",
"level": 3,
"code": "qualityLevel",
"name": "数据机构11111",
"canEdit": "1"
},
{
"id": 206,
"parentId": 203,
"isLeaf": "1",
"level": 3,
"code": "qualityType",
"name": "数据机构111111",
"canEdit": "1"
}
]
let _index = 0;
for (let i = 0; i < arr.length - 1; i++) {
//初始化类为small-title
arr[i].className = "small-title"
if(i>0){
//当前arr[i].canEdit === '0' 下一组为arr[i + 1].canEdit === '1',设置当前arr[i].canEdit = '1'
if (arr[i].canEdit === '0' && arr[i + 1].canEdit === '1') {
arr[i].canEdit = '1';
}
}
//获取最后canEdit == 1的
if(arr[i].canEdit === '1'){
_index = i;
}
}
// canEdit == 1初始化最后一个为选中状态
arr[_index].className = "bg-title";
始化最后一个为选中状态
arr[_index].className = "bg-title";
function buildTree (data, parentId = 0) {
return data.filter(item => item.parentId === parentId).map(item => ({
...item,
childrenMenuList: buildTree(data, item.id)
}));
}
this.flowList = buildTree(data);