element-ui 表格的表头自定义筛选方法

需求:表格的表头可以筛选
在这里插入图片描述
element-ui 自带了方法可以筛选,筛选的原理是将不满足条件的隐藏了
element-ui 自带的方法:在列中设置filters、filter-method属性即可开启该列的筛选,
filters 是一个数组,filter-method是一个方法,它用于决定某些数据是否显示,会传入三个参数:value, row 和 column。

   <co-table-column
      prop="date"
      label="日期"
      sortable
      width="180"
      column-key="date"
      :filters="[{text: '2016-05-01', value: '2016-05-01'}, {text: '2016-05-02', value: '2016-05-02'}, {text: '2016-05-03', value: '2016-05-03'}]"
      :filter-method="filterHandler"
    >
    </co-table-column>
    // method
     filterHandler(value, row, column) {
        const property = column['property'];
        return row[property] === value;
      }

但是我想要重新接口获取数据,所以这个方法不行,最终的解决方案就是将其与filter-change事件(该事件是写在el-table里面的)结合
在这里插入图片描述
使用了element的插槽,将表头的样式加了一个下拉筛选的图表

//  html
<el-table @filter-change="filterChange" :data="dataList" >
<el-table-column
	label="名字"
    prop="name"
    :filter-multiple="false"  
    :column-key="'name'"
    :filters="filterArr"
 > 
       // 修改了表头的样式 加了一个筛选图标
     <template slot="header" slot-scope="{column}">
          <co-tooltip placement="top">
            <div slot="content">方法</div>
            <span>{{ column.label }}<i class="co-icon-filter" /></span>
          </co-tooltip>
      </template>
 // filter-multiple 下拉筛选的单选还是多选
 // column-key 给这一列标记一个名字
 // filters 下拉的列表
 </el-table-column>
</el-table >

// data
dataList:[]
filterArr: [{text: '下拉1', value: '下拉1'}, {text: '下拉2', value: '下拉2'}],

// method
filterChange(filters){
   // 判断是哪一列筛选
   if(filters.name){
     赋值这一列绑定的值
     this.dataList.name= filters.name[0]
   }
   this.getTableList(); // 通过接口获取数据的方法
},

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值