优化绑定指标搜索

This commit is contained in:
zhujiyan
2024-07-15 09:51:43 +08:00
parent b7547be989
commit b19cbb51db

View File

@@ -243,17 +243,25 @@ const filterTree1 = () => {
const filterNodes = (node: any, query: any) => {
if (searchKey.value) {
const result: any = []
node.forEach((node: any) => {
let newNode = { ...node }
if (node.children) {
newNode.children = filterNodes(node.children, query)
const keyword = query.trim().toLowerCase() // 获取搜索关键字并转换为小写
const nodes = node
// 使用递归函数过滤树形数据
const filteredNodes = []
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 = result)
}
return (fromData.value = filteredNodes)
} else {
init(1)
}