vue中使用el-table筛选tree树形结构的数据

实现难点:

1.对于普通列数据el-table表格可做到多条件筛选,但是对于带tree树形结构类型的数据只能筛选到最上层节点,子节点不会筛选
2.考虑到缺陷,因此查看文档只能通过文档提供的filter-change事件手动筛选数据。
思路:1.通过filter-change事件使用filterObj对象保存点击的筛选状态
    2.先将当前树形数据转变成普通列数据,再进行手动过滤,过滤后以 普通列数据展示
   3.当无筛选条件时再以树形结构展示

图例:

vue中使用el-table筛选tree树形结构的数据_第1张图片

 


实现步骤:

1.数据初始化

data:{
    return{
         targetNode:{},//总数据,保持tree数据类型
         tableData:[],//展示在table上的数据
         filterObj:{isEnable:[],filterTypeAttr:[],filterTypeCondition:[]},//过滤条件,由于表        格组件filterchange方法只会提示当前的筛选项,
            //所以使用filterObj来保存所有筛选过的选项   
    }
}

2.表格


 
    
 
 
    


    
    


    
     


 


  


   
   

要点:

  1. default-expand-all:默认展开全部子节点
  2. filterChange:获取点击的筛选条件状态,对应列表头上设置:filters属性的列