国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

element ui table 增加篩選的方法示例

2019-11-19 12:35:28
字體:
來源:轉載
供稿:網友

網上大部分都可以增加篩選功能,但沒有找到下列這種情況。

若表頭數據較多,而表頭是自己通過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},

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岗巴县| 丰顺县| 潮州市| 武夷山市| 墨玉县| 平山县| 大宁县| 马尔康县| 白银市| 汉寿县| 邳州市| 化隆| 怀仁县| 隆化县| 枣强县| 蓬安县| 九龙坡区| 莱西市| 左云县| 皋兰县| 盐源县| 江华| 彭州市| 海宁市| 正镶白旗| 和硕县| 安吉县| 武陟县| 崇信县| 溧水县| 古丈县| 红原县| 阳朔县| 临高县| 龙川县| 中超| 濮阳市| 商南县| 合作市| 阳新县| 赤水市|