vue 递归查询树

1668764060964.png
{{data.COMPANY_CODE}}-{{ node.label }}

this.listInitData 数据源 this.list 树渲染的数据

//递归搜索
    filterSearch(){
        this.isfilterSearch = true;
        //利用foreach循环遍历
        this.$refs.tree.setCheckedKeys([]);
        function find(arr,value,data){
          arr = arr.filter((item)=>{
            data.push(item);
            if(item.children&&item.children.length>0){
              
              item.children = find(item.children,value,data);
            }
            if((item.COMPANY_CODE+item.COMPANY_CODE_CN).indexOf(value.toUpperCase())> -1){
              item.isQuery = true;
              data = data.map((e)=>{
                e.isQuery = true;
                return e;
              })
            }
            if(item.isQuery){
              return item;
            }
          })
          return arr;
        }
        this.list = find(JSON.parse(JSON.stringify(this.listInitData)),this.companyCodeCn,[]);
    },

你可能感兴趣的:(vue 递归查询树)