前言
本文代码使用vue2+element ui。
输入框搜索的功能,可以在前端通过计算属性过滤实现,也可以调用后端写好的接口。本文介绍的是通过计算属性对表格数据实时过滤,后附完整代码,代码中提供的是死数据,可供学习使用。
效果展示
完整代码
<template> <div class="container"> <h1 class="page-title">兴奋剂系统数据展示</h1> <!-- 搜索框 --> <el-input v-model="searchterm" placeholder="搜索单位、姓名或身份证号" prefix-icon="el-icon-search" clearable class="search-input" > </el-input> <!-- 数据表格 --> <el-table :data="filtereddata" border=""> <el-table-column prop="unit" label="单位" width="150"></el-table-column> <el-table-column prop="name" label="姓名" width="120"></el-table-column> <el-table-column prop="idnumber" label="身份证号"></el-table-column> </el-table> <!-- 没有数据时显示 --> <div v-if="filtereddata.length === 0" class="empty-message"> 没有找到匹配的结果 </div> </div> </template> <script> export default { data() { return { searchterm: "", mockimporteddata: [ { unit: "北京队", name: "张三", idnumber: "110101199001011234" }, { unit: "上海队", name: "李四", idnumber: "310101199203033456" }, { unit: "广州队", name: "王五", idnumber: "440101199405055678" }, { unit: "深圳队", name: "赵六", idnumber: "440301199607077890" }, { unit: "北京队", name: "刘七", idnumber: "110101199809099012" }, ], }; }, computed: { filtereddata() { const lowercasedsearch = this.searchterm.tolowercase(); return this.mockimporteddata.filter( (item) => item.unit.tolowercase().includes(lowercasedsearch) || item.name.tolowercase().includes(lowercasedsearch) || item.idnumber.includes(this.searchterm) ); }, }, }; </script> <style lang="scss" scoped> /* 容器整体样式 */ .container { padding: 15px; .page-title { font-size: 24px; font-weight: bold; margin: 5px 0; } .search-input { padding: 10px 0; margin-bottom: 10px; } /* 表格容器样式 */ .table-wrapper { margin-top: 20px; } /* 空结果提示 */ .empty-message { text-align: center; margin-top: 20px; color: #a0aec0; } } </style>
知识点:
1. 数组的filter()方法:
上述代码中filter() 方法会遍历 mockimporteddata 中的每个数据项,对每一项执行回调函数进行判断,满足以下任意一个条件,才会保留在数组中。
2.空字符串匹配逻辑
在 javascript 中,任何字符串调用 .includes("") 都会返回 true。
这意味着空字符串会被视为“包含在任何字符串中”。
所以①当用户不输入任何数据,即searchterm为空时,filter()返回原始的mockimporteddata数组,即不做任何筛选,返回全部数据;
②当用户输入数据时,则进行匹配过滤。
到此这篇关于vue2+elementui利用计算属性实现搜索框功能的文章就介绍到这了,更多相关vue2搜索框功能内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论