vex table动态渲染筛选条件

<vxe-column width="200" align="center" field="zy" title="摘要" :filters="zyOptions" show-overflow></vxe-column>
<vxe-column width="80" align="center" field="fsd" title="发货地" :filters="fsdOptions"></vxe-column>


// 去重数据中相同的条件
unique(arr, key) {
  const res = new Map();
  return arr.filter((a) => !res.has(a[key]) && res.set(a[key], 1));
},

 this.zyOptions.push({
 	label: r.zy, value: r.zy
 })
 this.zyOptions = this.unique(this.zyOptions, 'value') 
 // 需要用 setFilter 方法重置渲染筛选数据
 this.$refs.tableRef.setFilter('zy', this.zyOptions)
 this.fsdOptions.push({
   label: r.fsd, value: r.fsd
 })
this.fsdOptions = this.unique(this.fsdOptions, 'value') 
this.$refs.tableRef.setFilter('fsd', this.fsdOptions)
vex-table是一个用于生成表格的轻量级库,它允许用户动态自定义表头并实现筛选功能。在vex-table中,你可以通过以下几个步骤来自定义表头并添加筛选功能: 1. **初始化表头**:创建表头数组,并将其传递给`vex-table`组件的`table`选项。例如: ```javascript const headers = [ { field: 'name', text: '姓名' }, { field: 'age', text: '年龄' }, ]; const tableData = ...; // 表格数据 const options = { table: { data: tableData, headers, frozenHead: true, // 如果需要固定表头 }, }; ``` 2. **添加筛选功能**:vex-table本身并不内置筛选功能,但是你可以结合其他库如`vue-table-filter`来实现。首先安装所需的库,然后在表头处理函数里集成筛选逻辑。例如: ```javascript import Filter from 'vue-table-filter'; // ... Vue.use(Filter); function createTable() { const filteredTable = new Vue({ components: { Filter }, data() { return { filterOptions: { name: '', age: '', }, }; }, computed: { filteredData() { // 这里应用筛选条件tableData return this.tableData.filter((row) => { return Object.values(this.filterOptions).every((value, key) => value === '' || row[key].toString().toLowerCase().includes(value.toLowerCase()) ); }); }, }, mounted() { this.$filter.init({ fields: ['name', 'age'] }); // 初始化过滤器 }, methods: { handleFilterChange(field, value) { // 更新筛选选项 this.filterOptions[field] = value; }, }, }).$mount('#your-table-container'); return filteredTable.$el; } ``` 将上述代码放入适当的地方,比如在页面挂载完成后,就可以得到一个可以自定义筛选的表格。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值