1.如搜索节点时出现下面问题
2.原来代码
methods: {
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
}
},
3.修改后代码
filterNode(value, data, node) {
// 如果没有查询信息,则返回 true,表示所有节点都应显示
if (!value) return true;
// 初始化当前节点,并创建一个空数组用于存储所有层级的标签
let current = node;
const labels = [];
// 向上收集所有层级的 label,并确保非空
while (current) {
const label = current.label?.toString() || ''; // 确保 label 是字符串
labels.push(label); // 将当前节点的 label 添加到 labels 数组中
current = current.parent; // 移动到当前节点的父节点
}
// 检查是否有任意一个 label 包含 value(大小写不敏感)
// 如果有匹配,则返回 true,表示该节点应显示;否则返回 false,表示不应显示
return labels.some(label =>
label.toLowerCase().includes(value.toLowerCase())
);
},
4.替换后效果如下