优化绑定指标搜索
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user