需求级联选择器默认选中全部节点,分析:数据绑定值为二维父子节点id同级数组[[1,1-1,1-1-1],[2,2-1-,2-1-1]]这种结构,而数据源是树形结构,所以我们把树形结构转换成如上二维数组结构,算法如下:
// 1.options为树形数据 2.childrenKey 嵌套字段, 3.key绑定值字段
flattenOptions (options, arr = [], childrenKey = "children", key = "id") {
let flat = []
options.forEach(option => {
const stack = arr.concat(option[key])
if (!option[childrenKey]) {
flat.push(stack)
} else {
flat = flat.concat(this.flattenOptions(option[childrenKey], stack))
}
})
return flat
},