elementuitable如何增加筛选-创新互联
                                            这篇文章将为大家详细讲解有关element ui table如何增加筛选,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

网上大部分都可以增加筛选功能,但没有找到下列这种情况。
若表头数据较多,而表头是自己通过v-for循环产生,这种情况怎么给虚拟dom添加筛选规则。
列表头是通过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如何增加筛选”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
网页题目:elementuitable如何增加筛选-创新互联
文章分享:http://www.cqwzjz.cn/article/cepsic.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 