element中节点过滤搜索只显示当前搜索的级,而子级则被隐藏不显示

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.替换后效果如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值