当前位置: 首页 > 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.dtcms.com/a/267141.html

相关文章:

  • ✨ OpenAudio S1:影视级文本转语音与语音克隆Mac整合包
  • 2025使用VM虚拟机安装配置Macos苹果系统下Flutter开发环境保姆级教程--中篇
  • Ubuntu:Mysql服务器
  • 用户中心Vue3网页开发(1.0版)
  • 类图+案例+代码详解:软件设计模式----适配器模式
  • HarmonyOS学习3---ArkUI
  • Java零基础笔记01(JKD及开发工具IDEA安装配置)
  • 【Linux网络篇】:网络中的其他重要协议或技术——DNS,ICMP协议,NAT技术等
  • STM32第十四天串口
  • uniapp启动图被拉伸问题
  • 国产 OFD 标准公文软件数科 OFD 阅读器:OFD/PDF 双格式支持,公务办公必备
  • React Hooks 内部实现原理与函数组件更新机制
  • 【LeetCode 热题 100】73. 矩阵置零——(解法二)空间复杂度 O(1)
  • stm32的三种开发方式
  • Zigbee/Thread
  • 车载以太网-防火墙
  • 【深度学习】强化学习(Reinforcement Learning, RL)主流架构解析
  • 2025使用VM虚拟机安装配置Macos苹果系统下Flutter开发环境保姆级教程--下篇
  • React Native 开发环境搭建--mac--android--奔溃的一天
  • App爬虫实战篇-以华为真机手机爬取集换社的app为例
  • Pytest 测试发现机制详解:自动识别测试函数与模块
  • 在 Ubuntu 下配置 oh-my-posh —— 普通用户 + root 各自使用独立主题(共享可执行)
  • Redis Cluster 与 Sentinel 笔记
  • 文本方式和二进制方式打开文件的不同
  • Flutter 使用http库获取网络数据的方法(一)
  • Excel 数据透视表不够用时,如何处理来自多个数据源的数据?
  • MAX3485在MCU芯片AS32S601-485通信外设中的应用
  • 线程的礼让和加入
  • 1004、最大连续1的个数 III
  • SpringBatch使用介绍