保留组织机构关系
保留匹配节点的祖、父,和所有子节点
function filterTree(nodes: any[], query: string) {
const newChildren: any[] = []
nodes.forEach(node => {
const children = filterTree(node.children || [], query)
if (node.orgName.includes(query)) {
newChildren.push(node)
} else if (children.length) {
node.children = children
newChildren.push(node)
selectedKeysByFilter.push(node.orgId)
}
})
return newChildren
}
保留组织机构关系
保留匹配节点的祖、父,如果子节点中没有匹配的则保留所有子节点,如果子节点中有匹配的则只保留所有匹配的子节点
function filterTree(nodes: any[], query: string) {
const newChildren: any[] = []
nodes.forEach(node => {
const children = filterTree(node.children || [], query)
if (children.length) {
node.children = children
newChildren.push(node)
selectedKeysByFilter.push(node.orgId)
} else if (node.orgName.includes(query)) {
newChildren.push(node)
}
})
return newChildren
}
不保留组织机构关系
function filterTree(nodes: any[], query: string) {
const newChildren: any[] = []
nodes.forEach(node => {
// 以下只需要考虑自身的节点满足条件即可,不用带上父节点
if (node.orgName.includes(query)) {
node.children = filterTree(node.children || [], query)
newChildren.push(node)
} else {
newChildren.push(...filterTree(node.children || [], query))
}
})
return newChildren
}