需求:el-cascader在編輯頁面的回顯
思路:el-cascader顯示是根據關聯id做顯示的,即需對id進行數據處理
//回顯(多級)
changeDetSelect(key, treeData) {
let arr = []; // 在遞歸時操作的數組
let returnArr = []; // 存放結果的數組
let depth = 0; // 定義全局層級
// 定義遞歸函數
function childrenEach(childrenData, depthN) {
for (var j = 0; j < childrenData.length; j++) {
depth = depthN; // 將執行的層級賦值 到 全局層級
arr[depthN] = childrenData[j].id;
if (childrenData[j].id == key) {
returnArr = arr.slice(0, depthN + 1); //將目前匹配的數組,截斷并保存到結果數組,
break;
} else {
if (childrenData[j].children) {
depth++;
childrenEach(childrenData[j].children, depth);
}
}
}
return returnArr;
}
return childrenEach(treeData, depth);
},
this.SelectdeptId=this.changeDetSelect(data.deptId,this.deptData)
//數據雙向綁定 data.deptId(后端拿到的id) this.deptData(options綁定數據)