vue3.x搭配el-tree搜索问题(包含el-tree内置搜索、接口搜索以及把搜索到的值进行高亮)

本文介绍了如何在Vue3.x环境中,结合el-tree组件实现关键字搜索功能,同时处理懒加载数据。通过调用Tree实例的filter方法并自定义filter-node-method,实现了数据过滤。在接口搜索场景下,临时关闭懒加载,重新赋值data属性以更新树结构。此外,文章还提及了搜索结果高亮显示的实现策略,并预告了下一篇文章将详细讨论高亮问题。
摘要由CSDN通过智能技术生成

在日常项目中,常常会遇到对el-tree进行关键字搜索的问题,我们先看一下el-tree提供的内置搜索:适用于我们已经把数据全部获取到的场景。

调用 Tree 实例的filter方法,参数为关键字。需要注意的是,此时需要设置filter-node-method,值为过滤函数。 

我们看一下接口搜索:因为el-tree懒加载不适用于接口搜索的场景,所以我的思想是可以在搜索时候把el-tree的懒加载去掉,给el-tree的data属性赋值即可。

<el-tree
class="filter-tree"
v-if="openTree==1"
:data="treeValData"
:props="defaultProps"
:expand-on-click-node="false"
:default-expand-all="expandAll"
 ref="quickTree"
:load="loadNode"
:lazy="lazyFlag"
 >



     const qutextchange = (data:string) =>{
      //关闭tree
      openTree.value = 2;
      if(input.value!=""){
        treeValData.value = [];
        networkSearch()
      }else{
          //全部清空  重载load方法
          openTree.value = 1;
          treeValData.value = [];
          loadNode( nodeObj.value,resolveFun.value);
          lazyFlag.value = true;
          expandAll.value=false;
      }
    )
    
    const networkSearch = ()=>{
        //接口ajax
        openTree.value = 1;
        lazyFlag.value = false;
        treeValData.value =  走接口获取的数据 
        expandAll.value=true;
    }

我先定义了el-tree的v-if去进行树结构的重绘, 在刚搜索的时候关闭树,走接口获取数据,关闭懒加载,给data赋值,这样等tree重绘完了之后就没有懒加载功能。等搜索值为空的时候再重绘一边树并且打开懒加载功能,调取loadNode函数,这里要注意loadNode函数所带的参数是我在一开始就存起来的,第一个是第一级的node,第二个是懒加载加载数据函数,是为了能正常调取loadNode方法。

关于搜索到的tree高亮的问题,这其中涉及到了el-tree的自定义内容,请看我下一篇:《vue3.x搭配el-tree的自定义内容+搜索值为高亮问题》

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值