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

elementui表格增加搜索功能

elementUI表格组件默认只能过滤数据,不能搜索。

1.0增加输入框,配合搜索

<el-input  v-model="form.searchValue" class="searchinput" placeholder="输入商品名称" prefix-icon="el-icon-search" ><el-button slot="append" class="searchbtn" @click="search">搜索</el-button>
</el-input>
    search() {this.currentPage = 1;this.tableData = this.tableData.filter((item) => {return item.PluName.includes(this.form.searchValue);});},

2.0 封装组件

由于1.0核心改变了表格数据,导致只能搜索一次,接下来封装组件来实现其他页面复用

2.1新建 SearchFilter.vue ,包含输入框和过滤逻辑:

<template><div class="search-filter"><el-inputv-model="searchValue"placeholder="请输入搜索内容"@input="handleSearch"/></div>
</template><script>
export default {name: 'SearchFilter',props: {// 原始数据(必传)originalData: {type: Array,required: true},// 搜索字段(可选,默认 'PluName')searchKey: {type: String,default: 'PluName'}},data() {return {searchValue: ''}},computed: {// 计算过滤后的数据filteredData() {return this.originalData.filter(item => {const value = item[this.searchKey] || '';return value.toString().includes(this.searchValue);});}},methods: {handleSearch() {// 触发事件,将过滤后的数据传递给父组件this.$emit('update:filtered-data', this.filteredData);}}
}
</script>

2.2. 在父组件(如 Kucun.vue )中使用

<template><div><SearchFilter:original-data="originalData":search-key="'PluName'"v-model:filtered-data="tableData"/><el-table :data="tableData"><!-- 表格列定义 --></el-table></div>
</template><script>
import SearchFilter from '@/components/SearchFilter.vue';
export default {components: { SearchFilter },data() {return {originalData: [], // 原始数据(从接口获取)tableData: [] // 过滤后的数据(由组件传递)}}
}
</script>

说明
- props 说明 :
  - originalData :父组件传递的原始数据(必传)。
  - searchKey :指定搜索的字段(可选,默认 PluName )。
- 事件 :通过 @update:filtered-data 实时传递过滤后的数据,父组件使用 v-model:filtered-data 接收。
- 扩展性 :支持自定义搜索字段、输入框样式(可通过插槽修改输入框),或添加“重置”按钮等功能。

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

相关文章:

  • 供应链管理学习笔记4-供应链网络设计
  • 【MySQL进阶】错误日志,二进制日志,mysql系统库
  • 每日算法刷题Day42 7.5:leetcode前缀和3道题,用时2h
  • Android PNG/JPG图ARGB_8888/RGB_565‌解码形成Bitmap在物理内存占用大小的简单计算
  • WPF学习笔记(25)MVVM框架与项目实例
  • Kali Linux Wifi 伪造热点
  • LLM:位置编码详解与实现
  • 通过 Windows 共享文件夹 + 手机访问(SMB协议)如何实现
  • Git 版本控制完全指南:从入门到精通
  • 2025年3月青少年电子学会等级考试 中小学生python编程等级考试三级真题答案解析(判断题)
  • 如何解决Spring Boot中@Valid对List校验失效问题
  • Kafka消息积压的多维度解决方案:超越简单扩容的完整策略
  • 南山科技园的步行
  • LangChain:向量存储和检索器(入门篇三)
  • 利用已有的 PostgreSQL 和 ZooKeeper 服务,启动dolphinscheduler-standalone-server3.1.9 镜像
  • CppCon 2018 学习:Standard Library Compatibility Guidelines (SD-8)
  • 【Elasticsearch】检索排序 分页
  • 大数据学习1:Hadoop单机版环境搭建
  • 标定系列(三):lidar-gnss标定
  • 自动化Prompt生成平台的研发体系设计
  • pytorch学习-11卷积神经网络(高级篇)
  • VS Code中使用Git的方法:环境配置与Git操作
  • JavaFX:观察者集合(Observable Collections)的监听事件处理
  • 业务快速接入OSS对象存储和文件上传下载SDK对接
  • VMware 17安装Centos8.5虚拟机
  • Bootstrap 5学习教程,从入门到精通,Bootstrap 5 表单验证语法知识点及案例代码(34)
  • 1. 两数之和 (leetcode)
  • Delta、Jackknife、Bootstrap
  • FreeCAD傻瓜教程-拉簧拉力弹簧的画法及草图的附着位置设定和Part工作台中形体构建器的妙用
  • Playwright 测试节奏控制指南