element-ui tree 进行节点过滤时加载对应子节点

1,377 阅读1分钟

element-ui tree 节点过滤加载对应子节点方法,官网给出的例子,不返回过滤节点的子节点,但需求需要其子节点,怎样解决呢?

解决方法:( 修改filterNode方法,其他的同官方相同 )

//优化之后的代码 不管有多少级都适用
    filterNode(value, data, node) {
      if (!value) {
        return true;
      }
      let level = node.level;
      let arr = []; 
      this.getNode(node, arr, value);
      let result = false;
      arr.forEach((item) => {
        result = result || item;
      });
      return result;
    },
    getNode(node, arr, value) {
      let isFlag =
        node.data && node.data.label && node.data.label.indexOf(value) !== -1;
      isFlag ? arr.push(isFlag) : "";
      if (!isFlag && node.level != 1 && node.parent) {
        this.getNode(node.parent, arr, value);
      }
    }