前端获取json字符串转换为树状结构:
<script>
export default {
data() {
return {
treeData: [],
setTree: [],
};
},
methods: {
getListData() {
let dataArray = [];
this.setTree.forEach((data) => {
let parentId = data.parentId;
if (parentId === 0) {
let objTemp = {
id: data.id,
name: data.name,
remark: data.remark,
perms: data.perms,
parentId: parentId,
icon: data.icon,
orderNum: data.orderNum,
url: data.url,
type: data.type,
};
dataArray.push(objTemp);
}
});
dataArray.sort((a, b) => a.orderNum - b.orderNum);
this.treeData = this.data2treeDG(this.setTree, dataArray);
},
data2treeDG(datas, dataArray) {
for (let j = 0; j < dataArray.length; j++) {
let dataArrayIndex = dataArray[j];
let childrenArray = [];
let Id = dataArrayIndex.id;
for (let i = 0; i < datas.length; i++) {
let data = datas[i];
let parentId = data.parentId;
if (parentId == Id) {
let objTemp = {
id: data.id,
name: data.name,
remark: data.remark,
perms: data.perms,
parentId: parentId,
icon: data.icon,
orderNum: data.orderNum,
url: data.url,
type: data.type,
};
childrenArray.push(objTemp);
}
}
childrenArray.sort((a, b) => a.orderNum - b.orderNum);
dataArrayIndex.children = childrenArray;
if (childrenArray.length > 0) {
this.data2treeDG(datas, childrenArray);
}
}
return dataArray;
},
},
};
</script>