优化绑定指标搜索
This commit is contained in:
@@ -243,17 +243,25 @@ const filterTree1 = () => {
|
|||||||
|
|
||||||
const filterNodes = (node: any, query: any) => {
|
const filterNodes = (node: any, query: any) => {
|
||||||
if (searchKey.value) {
|
if (searchKey.value) {
|
||||||
const result: any = []
|
const keyword = query.trim().toLowerCase() // 获取搜索关键字并转换为小写
|
||||||
node.forEach((node: any) => {
|
const nodes = node
|
||||||
let newNode = { ...node }
|
// 使用递归函数过滤树形数据
|
||||||
if (node.children) {
|
const filteredNodes = []
|
||||||
newNode.children = filterNodes(node.children, query)
|
for (const node of nodes) {
|
||||||
|
if (node.label.toLowerCase().includes(keyword)) {
|
||||||
|
// 如果节点的标签包含关键字,将其添加到结果中
|
||||||
|
filteredNodes.push(node)
|
||||||
|
} else if (node.children && node.children.length > 0) {
|
||||||
|
// 如果节点有子节点,则递归过滤子节点
|
||||||
|
const filteredChildren: any = filterNodes(node.children, keyword)
|
||||||
|
if (filteredChildren.length > 0) {
|
||||||
|
// 如果子节点中有匹配的结果,则添加父节点
|
||||||
|
const clonedNode = { ...node, children: filteredChildren }
|
||||||
|
filteredNodes.push(clonedNode)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (newNode.label.includes(query) || (newNode.children && newNode.children.length)) {
|
}
|
||||||
result.push(newNode)
|
return (fromData.value = filteredNodes)
|
||||||
}
|
|
||||||
})
|
|
||||||
return (fromData.value = result)
|
|
||||||
} else {
|
} else {
|
||||||
init(1)
|
init(1)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user