tree組件 通過(guò)一個(gè)id 去查詢其所有上級(jí)數(shù)據(jù)并返回一個(gè)數(shù)組
1、前提是父級(jí)和子級(jí)數(shù)據(jù)有關(guān)聯(lián)
2、本代碼實(shí)現(xiàn)是使用ts實(shí)現(xiàn)的所以有些類(lèi)型校驗(yàn)。
import BOrgTreeVO from 'model/remote/org/tree/BOrgTreeVO'
import BTreeVO from 'model/remote/basic/BTreeVO'
class LoopTree {
/**
* auth:wangyahao
* describe: 通過(guò)treeId 去找數(shù)組節(jié)點(diǎn)的所有上級(jí)數(shù)據(jù)并返回
*
* @param originalOptions // 原始tree list
* @param loopOptions // 循環(huán)中的找到的下級(jí)
* @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()