/**
* 级联回显
* @param {idlists} key
* @param {数据树} treeData
* @param {id属性名} fielKey
*/
cascader(key, treeData, fielKey) {
let echoTreeArr = []
let eachAry
//回显分类value转为数组
eachAry = [...key]
let itemAry = [] //分类树组件,每一项的value数组
// 递归分类数据
let recursionCategory = (data) => {
console.log(data)
let len = data.length
for (let i = 0; i < len; i++) {
//循环data参数,匹配回显的value
itemAry.push(data[i][fielKey]) //构建分类树数组项,入栈
for (let j = 0; j < eachAry.length; j++) {
//遍历子节点分类value,拼凑成数组项value,并终止循环
if (eachAry[j] == data[i][fielKey]) {
//匹配到子节点value
echoTreeArr.push(JSON.parse(JSON.stringify(itemAry))) //push进树分类数据
eachAry.splice(j, 1) //删除以匹配到的value
break
}
}
if (eachAry.length <= 0) {
//所有回显value匹配完成后,跳出循环
break
} else if (data[i].children && data[i].children.length > 0) {
// 如果存在子分类,递归继续
recursionCategory(data[i].children)
}
itemAry.pop() //出栈
}
}
recursionCategory(treeData) //调用递归
return echoTreeArr
},
// 递归整理分类
getTreeData(data) {
for (let i = 0; i < data.length; i++) {
if (data[i].children.length < 1) {
// 最后一级没有数据将children变成undefined
data[i].children = undefined
} else {
// children不为空时继续调用该方法
this.getTreeData(data[i].children)
}
}
return data
},
this.cascader(
res.data.group_info,
this.groupTree,
'id'
)