当前位置: 首页 > news >正文

Vue2+ElementUI:用计算属性实现搜索框功能

前言:

本文代码使用vue2+element UI。

输入框搜索的功能,可以在前端通过计算属性过滤实现,也可以调用后端写好的接口。本文介绍的是通过计算属性对表格数据实时过滤,后附完整代码,代码中提供的是死数据,可供学习使用。

效果展示:

完整代码:

<template><div class="container"><h1 class="page-title">兴奋剂系统数据展示</h1><!-- 搜索框 --><el-inputv-model="searchTerm"placeholder="搜索单位、姓名或身份证号"prefix-icon="el-icon-search"clearableclass="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数组,即不做任何筛选,返回全部数据;

②当用户输入数据时,则进行匹配过滤。

http://www.lryc.cn/news/486012.html

相关文章:

  • 抖音热门素材去哪找?优质抖音视频素材网站推荐!
  • spring-cache concurrentHashMap 自定义过期时间
  • 解析传统及深度学习目标检测方法的原理与具体应用之道
  • shell数组
  • 高斯混合模型回归(Gaussian Mixture Model Regression,GMM回归)
  • 【3D Slicer】的小白入门使用指南八
  • 【流量分析】常见webshell流量分析
  • 基于树莓派的边缘端 AI 目标检测、目标跟踪、姿态估计 视频分析推理 加速方案:Hailo with ultralytics YOLOv8 YOLOv11
  • Java在算法竞赛中的常用方法
  • Vulnhub靶场案例渗透[10]- Momentum2
  • Spark RDD中常用聚合算子源码层面的对比分析
  • 计算机网络 (6)物理层的基本概念
  • 快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux)
  • kafka消费者出现频繁Rebalance
  • rk3399开发环境使用Android 10初体验蓝牙功能
  • ASP.NET 部署到IIS,访问其它服务器的共享文件 密码设定
  • 将自定义函数添加到MATLAB搜索路径的方法
  • 云原生之运维监控实践-使用Telegraf、Prometheus与Grafana实现对InfluxDB服务的监测
  • 什么是MySQL,有什么特点
  • 初始化mysql5.7
  • C# 字典应用
  • CDH安装与配置及相关大数据组件实践
  • fastapi 调用ollama之下的sqlcoder模式进行对话操作数据库
  • YOLO系列基础(六)YOLOv1原理详解,清晰明了!
  • LeetCode100之环形链表(141)--Java
  • 【ict基础软件赛道】真题-50%openEuler
  • <AI 学习> 下载 Stable Diffusions via Windows OS
  • 计算机图形学在游戏开发中的应用
  • 【CubeMX-HAL库】STM32H743II——SDRAM配置所遇问题
  • mac上使用docker搭建gitlab