场景描述
假设表格中有一个考核状态字段,我需要在这个列的表头,对该列的数据进行筛选,但是,我需要的功能是:“通过调用后端接口的形式进行筛选”。而element-ui示例中是仅对表格当前页进行筛选的。
官方提供了对列进行筛选的方式,为该列添加filters,该属性是数据过滤的选项,数组格式,数组中的元素需要有 text 和 value 属性。Array[{ text, value }]。然后再配合filter-method属性就可以实现列筛选功能。
filter-method
所以,我就想在filter-method的方法中调用接口去请求接口,就在我以为搞定的时候!出现BUG了!大大的BUG!页面请求了10次,因为我一页展示的数据条数是10条,所以调用了10次。也就是说filter-method方法一页有多少条数据就调用几次。完全不符合我想要的要求。仔细查看element-ui的文档后,发现el-table还有一个filter-change事件。
filter-change
当表格的筛选条件发生变化的时候会触发该事件,参数的值是一个对象,对象的 key 是 column 的 columnKey,对应的 value 为用户选择的筛选条件的数组,重点是他筛选条件发生变化时只触发一次!!。
columnKey:column 的 key,如果需要使用 filter-change 事件,则需要此属性标识是哪个 column 的筛选条件。
value: 就是筛选的下拉选择框的值。
拿到下拉选项框的value值,接着将value作为请求参数传给后端就可以实现筛选的效果啦!