vue實現iview表格添加篩選功能的示例代碼
給table
的某列添加篩選功能
在table
中通過給columns
數據的項,設置 filters
,可進行篩選,filters
接收一個數組。
然后再指定一個篩選函數 filterMethod
才可以進行篩選,filterMethod
傳入兩個參數value
和 row
。
如果指定 filterMultiple: false
,則只能單選,默認為多選。
注意,篩選并不會影響到表格的源數據 data
。
基礎示例
<template> <Table border :columns="columns" :data="data"></Table> </template> <script> export default { data () { return { columns: [ { title: '名稱', key: 'name' }, { title: '年齡', key: 'age', filters: [ { label: '大于25', value: 1 }, { label: '小于25', value: 2 } ], filterMultiple: false, filterMethod (value, row) { if (value === 1) { return row.age > 25; } else if (value === 2) { return row.age < 25; } } }, { title: '地址', key: 'address', filters: [ { label: '北京', value: '北京' }, { label: '上海', value: '上海' }, { label: '四川', value: '四川' } ], filterMethod (value, row) { return row.address.indexOf(value) > -1; } } ], data: [ { name: '張三', age: 10, address: '四川', }, { name: '李四', age: 25, address: '上海', }, { name: '王五', age: 35, address: '北京', }, { name: '秀豆', age: 27, address: '四川', } ], } } } </script>
特殊情況改造
filters中的數據需要動態(tài)獲取
當filters
中的內容需要從后端接口中獲取,如果我們直接把從接口中獲取到的數據賦值給filters
的話,篩選不會生效。錯誤示例
{ title: '年齡', key: 'age', filters: this.filters, // 從接口返回的數據 filterMultiple: false, filterMethod (value, row) { // ... } },
正確示例
// 偽代碼 const res = await this.$axois(...); // 獲取對應接口數據 this.filters = res; this.columns[1].filters = this.filters; // 當前把需要的數據賦值給columns
filters中的數據過多,導致超出了屏幕內容以外的區(qū)域
這種情況怎么辦?可以會想沒法用了,得自己重新寫個了,但轉念一想,這是css樣式問題,我們可以檢查對應元素,通過javascript
拿到指定元素,然后去修改元素的相關樣式啊。解決方法
// 接上面的示例,當filters中的數據從接口中獲取到后,我們`f12`拿到指定元素,修改它的高度等屬性即可。 this.$nextTick(() => { if (this.filters.length) { let listDom = document.querySelector(".main-ui-table-filter-list-item"); listDom.style.height = "400px"; listDom.style.overflow = "auto"; } })
修改后的樣式就沒撒問題了
到此這篇關于vue實現iview表格添加篩選功能的示例代碼的文章就介紹到這了,更多相關vue iview表格添加篩選內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Vue實戰(zhàn)指南之依賴注入(provide/inject)
這篇文章主要介紹了詳解Vue實戰(zhàn)指南之依賴注入(provide/inject),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11Vue中使用a標簽下載靜態(tài)資源文件(如excel、pdf等)純前端操作方法
這篇文章主要介紹了Vue中使用a標簽下載靜態(tài)資源文件(如excel、pdf等)純前端操作方法的相關資料,需要的朋友可以參考下2025-02-02解決vue ui報錯Couldn‘t parse bundle asset“C:
這篇文章主要介紹了解決vue ui報錯Couldn‘t parse bundle asset“C:\Users\Administrator\vue_project1\dist\js\about.js“. Analyzer問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04