element ui table 增加筛选的方法示例
程序员文章站
2023-10-28 21:14:58
网上大部分都可以增加筛选功能,但没有找到下列这种情况。
若表头数据较多,而表头是自己通过v-for循环产生,这种情况怎么给虚拟dom添加筛选规则。
<...
网上大部分都可以增加筛选功能,但没有找到下列这种情况。
若表头数据较多,而表头是自己通过v-for循环产生,这种情况怎么给虚拟dom添加筛选规则。
<el-table-column v-for="item in tablehead" :key="item.id" :prop="item.id" :label="item.label" :filters="item.filter" :filter-method="item.filter && filterhandler">
列表头是通过v-for循环遍历出来的数据
如何添加规则内容
首先,element提供了filters,filter-method两个属性,一个是写规则的内容,一个是写的方法。
this.tablehead = [ {id: '1', label: xxx}, {id: '2', label: xxx, filter: []}, {id: '3', label: xxx, filter: []}, {id: '4', label: xxx}, {id: '5', label: xxx}, {id: '6', label: xxx, filter: []} ]
只需要在要添加规则的上面加上filter这个key值。
filter里面的内容要按照element ui 上面的格式塞进去
:filters="[{ text: '家', value: '家' }, { text: '公司', value: '公司' }]"
所以只能用方法来找到相应的id然后再处理。
let filterlist = this.tablehead.filter(i => i.id === '1')[0].filter
规则的内容是和列表内容有关系,而一般情况下列表的内容也是从后端数据拿到的。所以要对规则的内容进行处理。
this.tabledata.foreach((item) => { filterlist.push({ text: item.xxx, value: item.yyy }) })
这样操作肯定会有重复的text和value,所以需要去重。
去重方法:
uniqarrobject (arr) { let result = {} let finalresult = [] for (let i = 0; i < arr.length; i++) { result[arr[i].text] = arr[i] } for (let key in result) { finalresult.push(result[key]) } return finalresult },
得到最终的规则内容:
filterlist = this.uniqarrobject(filterlist)
规则方法
filterhandler (value, row, column) { const property = column['property'] return row[property] === value || row[property].value === value },
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 富硒蔬菜的营养价值有哪些
下一篇: 巨黑爆冷的段子
推荐阅读
-
element ui table 增加筛选的方法示例
-
详解使用element-ui table组件的筛选功能的一个小坑
-
vue2.0 + element UI 中 el-table 数据导出Excel的方法
-
动态实现element ui的el-table某列数据不同样式的示例
-
element-ui中Table表格省市区合并单元格的方法实现
-
基于element-ui封装表单金额输入框的方法示例
-
element-ui组件table实现自定义筛选功能的示例代码
-
VUE element-ui 写个复用Table组件的示例代码
-
Vue+element-ui添加自定义右键菜单的方法示例
-
element ui table 增加筛选的方法示例