vue2 eltable筛选列
时间: 2025-01-05 21:33:04 浏览: 6
### 实现 Vue2 中 Element UI 的 ElTable 列筛选功能
在 Vue2 和 Element UI 组件库中,`el-table-column` 提供了内置的过滤器支持。通过设置 `filters` 属性可以定义可供选择的条件列表,并使用 `filter-method` 来指定用于判断数据项是否符合条件的方法。
#### 基本配置与属性说明
为了启用列的筛选功能,需要为对应的表格列 (`el-table-column`) 设置如下几个重要参数:
- **`filters`:** 定义一系列可用作筛选选项的对象数组;每个对象应包含两个键——label (显示给用户的标签) 和 value (实际用来比较的数据值)[^1]。
- **`filter-method`:** 接收一个函数作为其值,此方法接收三个参数:value, row 和 column。返回 true 或 false 以决定该行记录是否应该被保留下来。
下面是一个简单的例子来展示如何应用这些特性到具体的项目当中去:
```html
<template>
<div id="app">
<!-- 创建一个带有可选过滤器的表单 -->
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="date" label="日期" sortable width="180"></el-table-column>
<el-table-column
prop="name"
label="姓名"
:filters="[{ text: '张三', value: '张三' }, { text: '李四', value: '李四' }]"
:filter-method="filterHandler"
></el-table-column>
<el-table-column prop="address" label="地址" show-overflow-tooltip></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{
date: "2016-05-03",
name: "张三",
address: "上海市普陀区金沙江路 1518 弄",
},
{
date: "2016-05-02",
name: "李四",
address: "北京市朝阳区东直门外大街 9 号",
},
// 更多条目...
],
};
},
methods: {
filterHandler(value, row, column) {
const property = column["property"];
return row[property] === value;
}
}
};
</script>
```
这段代码展示了怎样在一个名为 “姓名” 的列上添加自定义筛选器。这里设置了两个可能的选择:“张三” 和 “李四”。当用户点击下拉菜单并选择了某个名字之后,只有那些匹配所选名称的人才会留在视图内。
阅读全文