tree组件 通过一个id 去查询其所有上级数据并返回一个数组
1、前提是父级和子级数据有关联
2、本代码实现是使用ts实现的所以有些类型校验。
import BOrgTreeVO from 'model/remote/org/tree/BOrgTreeVO'
import BTreeVO from 'model/remote/basic/BTreeVO'
class LoopTree {
/**
* auth:wangyahao
* describe: 通过treeId 去找数组节点的所有上级数据并返回
*
* @param originalOptions // 原始tree list
* @param loopOptions // 循环中的找到的下级
* @param id // 使用id去寻找
*/
endResult: BTreeVO<BOrgTreeVO>[] = []
private forEachOption(originalOptions, loopOptions, id) {
const res = loopOptions.find(res1 => {
if (res1.treeId === id) {
return res1
} else {
if (res1.children && res1.children.length > 0) {
this.forEachOption(originalOptions, res1.children, id)
}
}
})
if (res) {
this.endResult.push(res)
if (res.value !== '0') {
this.forEachOption(originalOptions, originalOptions, res.treePid)
}
}
}
public initLoopTree(originalOptions, id) {
this.endResult = []
this.forEachOption(originalOptions, originalOptions, id)
return this.endResult
}
}
export default new LoopTree()