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