原始数据staticData=[ {value:1,chiledren:[{value:1-1,children:{value:1-1-1}},{value:1-2,children:{value:1-2-1}}]},
{value:2,chiledren:[{value:2-1,children:{value:2-1-1}}]},
{value:3,chiledren:[{value:3-1,children:{value:3-1-1}}]}
]
结果val={value:2,children:{value:2-1,children:{2-1-1}}}
// 及联下拉value是object类型的 判断原始数据的层级数和选中的层级数
export function cascadeselectAll2 (staticData, val, callback) {
if (!val || val.length === 0) {
callback()
}
const childs = staticData.childs || []
const valArr = []
const fn = (obj) => {
if (obj.value) {
valArr.push(obj.value)
if (obj.children) {
fn(obj.children)
}
}
}
fn(val)
let index = 0
let a = true
const deep = (childs) => {
let childrens = null
let flg = childs.some((item) => {
if (item.value === valArr[index]) {
childrens = item.children
return true
} else {
return false
}
})
if (flg) {
index = index + 1
if (index === valArr.length) {
if (childrens) {
a = false
}
}
if (childrens) {
deep(childrens)
}
}
}
deep(childs)
if (a) {
console.log('asdf', 'a || valArr.length === 0')
callback()
} else {
console.log('asdf', 'Error')
callback(new Error('请重新选择,该选项必须选到最后一层'))
}
}