From df16e38a629187a9bbb385b23a2d83a94e15c628 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 28 五月 2023 17:01:15 +0800 Subject: [PATCH] 1 --- src/views/Tools/LayerTree.vue | 32 +++++++++++++++++++++++++++++++- 1 files changed, 31 insertions(+), 1 deletions(-) diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index 8f9935d..4a1975c 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -171,14 +171,44 @@ }, // 璁剧疆鏍戞暟鎹� setTreeData (source) { - let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 + /*let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 return cloneData.filter((father) => { // 寰幆鎵�鏈夐」 let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁 branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛岄偅涔� a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛� return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� + });*/ + + let arr = []; + let data = JSON.parse(JSON.stringify(source)); + this.setTreeChildData(data, arr, 0); + + return arr; + }, + // 璁剧疆鏍戝瓙鑺傜偣鏁版嵁 + setTreeChildData (data, arr, pid) { + let i = 0; + while (i < data.length) { + let d = data[i]; + if (d.pid == pid) { + arr.push(d); + data.splice(i, 1); + continue; + } + + i++; + } + + arr.sort(function (a, b) { + return a.orderNum - b.orderNum; }); + + for (let i in arr) { + let children = []; + this.setTreeChildData(data, children, arr[i].id); + if (children.length) arr[i].children = children; + } }, // 鑺傜偣鑾峰緱鐒︾偣浜嬩欢 nodeBlur (node, data) { -- Gitblit v1.9.3