需求: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绑定数据)