VUE —— el-table组件数据结构,实现精确筛选和模糊筛选数据
/ 如果不符合任何筛选条件,返回 false,表示该数据不显示。// 将搜索文本转换为小写,以便进行大小写不敏感的比较。// 初始化筛选后的数据,确保表格一开始显示所有数据。// 当搜索文本或搜索类型发生变化时,触发筛选逻辑。// 精确筛选:检查姓名字段是否完全匹配搜索文本。// 模糊筛选:检查姓名字段是否包含搜索文本。// 如果没有搜索文本,显示所有数据。// 用于存储筛选后的数据。// 将姓名
·
<template>
<div>
<div style="margin-bottom: 20px">
<el-input
v-model="searchText"
placeholder="请输入搜索内容"
style="width: 300px; margin-right: 10px"
@input="handleSearch"
></el-input>
<el-select v-model="searchType" placeholder="请选择筛选方式" style="width: 150px" @change="handleSearch">
<el-option label="模糊筛选" value="fuzzy"></el-option>
<el-option label="精确筛选" value="exact"></el-option>
</el-select>
</div>
<el-table :data="filteredTableData" border style="width: 100%">
<el-table-column prop="id" label="ID" width="100"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="age" label="年龄" width="100"></el-table-column>
<el-table-column prop="email" label="邮箱"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ id: 1, name: "张三", age: 25, email: "zhangsan@example.com" },
{ id: 2, name: "李四", age: 30, email: "lisi@example.com" },
{ id: 3, name: "王五", age: 28, email: "wangwu@example.com" },
{ id: 4, name: "赵六", age: 35, email: "zhaoliu@example.com" },
],
searchText: "",
searchType: "fuzzy",
filteredTableData: [], // 用于存储筛选后的数据
};
},
created() {
// 初始化筛选后的数据,确保表格一开始显示所有数据
this.filteredTableData = this.tableData;
},
methods: {
handleSearch() {
// 当搜索文本或搜索类型发生变化时,触发筛选逻辑
const { searchText, searchType, tableData } = this;
if (!searchText) {
// 如果没有搜索文本,显示所有数据
this.filteredTableData = tableData;
return;
}
this.filteredTableData = tableData.filter((item) => {
const lowerSearchText = searchText.toLowerCase(); // 将搜索文本转换为小写,以便进行大小写不敏感的比较
const name = item.name.toLowerCase(); // 将姓名字段转换为小写
if (searchType === "fuzzy") {
// 模糊筛选:检查姓名字段是否包含搜索文本
return name.includes(lowerSearchText);
} else if (searchType === "exact") {
// 精确筛选:检查姓名字段是否完全匹配搜索文本
return name === lowerSearchText;
}
return false; // 如果不符合任何筛选条件,返回 false,表示该数据不显示
});
},
},
};
</script>
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)