vxe-table proxyConfig根据条件前端筛选数据
时间: 2023-08-05 13:10:36 浏览: 98
多条件筛选前端插件
vxe-table 的 `proxy-config` 可以用来实现根据条件前端筛选数据。具体步骤如下:
1. 在 `proxy-config` 中定义一个 `ajax` 请求来获取数据。
```js
proxyConfig: {
// 定义请求数据的方法
ajax: {
url: 'http://xxx.xxx.xxx.xxx/api/table',
method: 'POST',
headers: {
'Content-Type': 'application/json;charset=UTF-8'
},
transformRequest: (data) => {
return JSON.stringify(data)
}
}
}
```
2. 在 `fetch` 方法中添加筛选条件,并从后端获取数据。
```js
fetch(params) {
// 添加筛选条件
let data = this.tableData
if (params.filters) {
params.filters.forEach((item) => {
if (item.data) {
data = data.filter((row) => {
let cell = row[item.column.property]
return cell.indexOf(item.data) > -1
})
}
})
}
// 返回符合条件的数据
return Promise.resolve(data)
}
```
3. 在表格中添加筛选条件。
```html
<vxe-table
:proxy-config="proxyConfig"
:fetch="fetch"
:columns="columns">
<vxe-table-column
v-for="(column, index) in columns"
:key="index"
:field="column.prop"
:title="column.label">
<template #filter="{column}">
<!-- 添加筛选条件 -->
<vxe-input
v-model="column.data"
type="text"
placeholder="请输入筛选条件"
@input="filterData">
</vxe-input>
</template>
</vxe-table-column>
</vxe-table>
```
4. 实现筛选功能。
```js
methods: {
filterData() {
// 触发筛选操作
this.$refs.table.filter()
}
}
```
这样,当用户输入筛选条件时,表格会根据条件前端筛选数据,并渲染符合条件的数据。
阅读全文