element-ui table中filter-method和filter-change使用随笔

上班接到新的任务,表格表头筛选,但是element-ui中给的事例 filter-method 为前端筛选,翻页,整体过滤都不满足,所以找到了以下方法。

filter-method: ‘数据过滤使用的方法,如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示。’


<el-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'}, {text: '2016-05-04', value: '2016-05-04'}]"
      :filter-method="filterHandler">
</el-table-column>
//在methods里
filterHandler(value, row, column) {
        const property = column['property'];
        return row[property] === value;
      }

:filter-method="dataFilter"可以自定义一个筛选条件,在dataFilter里写自己的逻辑代码,但是在console.log中打印出来,我们可以看到每次筛选都会打印出很多条数据,表格有多少条数据就会打印出多少次,说明filter-method方法会遍历每一行数据,方法里面的操作有多少条数据就会执行多少次。

filter-change:‘当表格的筛选条件发生变化的时候会触发该事件,参数的值是一个对象,对象的 key 是 column 的 columnKey,对应的 value 为用户选择的筛选条件的数组。’

<el-table @filter-change="filterChange">
</el-table>

//在methods里
filterChange (column) { 
  console.log(column)
}

在使用filter-change时,需要在相对应属性上标识是哪个 column 的筛选条件,从而获取columnKey值

在筛选中,我们的需求可能需要多次筛选,但是filter-change方法每次只能获取一个column对象,我们可以声明一个变量,把过滤的值存在变量里,再去调用接口。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容