javascript類庫:element ui table 增加篩選的方法示例
文章主要介紹了element ui table 增加篩選的方法示例,詳細(xì)的介紹了如何添加規(guī)則內(nèi)容,具有一定的參考價值,感興趣的小伙伴們可以參考一下網(wǎng)上大部分都可以增加篩選功能,但沒有找...
網(wǎng)上大部分都可以增加篩選功能,但沒有找到下列這種情況。
若表頭數(shù)據(jù)較多,而表頭是自己通過v-for循環(huán)產(chǎn)生,這種情況怎么給虛擬dom添加篩選規(guī)則。
- <- 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循環(huán)遍歷出來的數(shù)據(jù)
如何添加規(guī)則內(nèi)容
首先,element提供了filters,filter-method兩個屬性,一個是寫規(guī)則的內(nèi)容,一個是寫的方法。
- 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: []}
- ]
只需要在要添加規(guī)則的上面加上filter這個key值。
filter里面的內(nèi)容要按照element ui 上面的格式塞進(jìn)去
- :filters=- "[{ text: '家', value: '家' }, { text: '公司', value: '公司' }]"
所以只能用方法來找到相應(yīng)的id然后再處理。
- let filterList =- this- .tableHead.filter(i => i.id ===- '1'- )[0].filter
規(guī)則的內(nèi)容是和列表內(nèi)容有關(guān)系,而一般情況下列表的內(nèi)容也是從后端數(shù)據(jù)拿到的。所以要對規(guī)則的內(nèi)容進(jìn)行處理。
- this- .tableData.forEach((item) => {
- filterList.push({
- text: item.xxx, value: item.yyy
- })
- })
這樣操作肯定會有重復(fù)的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
- },
得到最終的規(guī)則內(nèi)容:
- filterList =- this- .uniqArrObject(filterList)
規(guī)則方法
- filterHandler (value, row, column) {
- const property = column[- 'property'- ]
- return- row[property] === value || row[property].value === value
- },
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
  - PHP遭棄用!Wordpress.com開源并轉(zhuǎn)用Javascript- 據(jù)外媒消息稱,Wordpress母公司Automattic將完全重寫Wordpress.com網(wǎng)站代碼,并將此項計劃命名為“Calypso”,代碼開源并被托管于Github平臺。此外,最新的wordpress.com放... 

