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

vue3:十三、分类管理-表格--模糊查询搜索框

一、效果

实现动态搜索列表,实现文本框、下拉列表、时间、单选等组件封装

实现精准查询、模糊查询

实现默认搜索数据展示

实现字段的显示与隐藏

二、基本信息配置

1、官网参考

Form 表单 | Element Plus

这里的模糊查询列表采用行内表单

2、创建搜索列表组件

在components组件中加入查询的组件页面Search.vue

三、分类父页面

在分类页面的主页面修改传递的数据信息

1、修改父分类下拉列表获取方式

(1)初始定义

引入ref方法,并且定义一个新数组parentOptions = ref([ ])

将默认的一条数据写入其中:{ label: '无', value: 0 }

(2)下拉数组数据修改

将下拉列表获取的数组存入到数组parentOptions中

(3)修改表单数据传递的数据

将存入下拉列表数据传入到表单数据的options中

2、修改表格列的基本信息(适配搜索列表)

(1)增加类型

在columns中增加搜索框的类型searchFormType,默认是text文本框(可以不写),特别的写入如这里的select

(2)增加子项(下拉、单选等)

这里的下拉列表需要下拉列表的数据,通过写入方法searchList,返回其列表值即可

(3)增加默认值

写入字段dafaultValue,其值为默认的value

例如:{label:'父分类1',value:1},那这里的默认值就是1

 

(4)增加查询方式

这里查询方式默认是模糊查询like和精准查询默认为空

这里写入一个字段search,如果是需要模糊查询就加入值'like'

(5)增加隐藏搜索字段

写入字段searchHide,其值为true表明需要隐藏该字段的搜索信息

四、表格组件

1、引入、使用搜索列表组件

在表格组件中引入search组件

(1)方法引入

在表格组件中引入搜索组件Search.vue

(2)视图层使用

在表格组件的视图层写入Search组件

2、写入子组件提交调用的方法

在搜索框提交进行搜索时需要使用父组件的方法,将需要搜索的数据传递给查询表格数据的请求方法中以便实现数据查询

(1)组件中写入方法

写入方法submitSearch,这里是子组件调用父方法写法

(2)创建空对象

创建一个空对象,用于专门存储传入后端的搜索数据

(3)将搜索数据存入数据请求

在获取表格数据的请求中,将搜索的对象这个参数传入后端

(4)父页面方法的编写

子组件执行该方法的时候传递了一个参数,这里使用data进行获取(存储的是传递的搜索数据,例如{ id: '1', pid: 2, name: '2', desc: '' })

  • 循环传递的数据
    • const element = data[key]获取 data[key] 每一项的值(后续要处理)
    • 循环总的columns数组(需要获取是否有搜索方式search:决定以什么方式查询数据)
      • const el = props.columns[k];获取columns数组的值,例如首项的值:{ label: '分类ID', field: 'id', width: 120, searchFormType: 'text' }
      • if (el.field == key)判断每一项field字段的值和搜索对象的key是否一致
        • if (typeof el.search != 'undefined')如果一致判断,columns中的项是否含有search
          • 一致设置数组searchField的值,为数组{opt:搜索方式,value:搜索的值}
        • 不一致:设置searchField的值还是为原始数据即这里的element
// 执行搜索功能
const submitSearch = (data) => {console.log('需要搜索的数据:', data); //例如 { id: '1', pid: 2, name: '2', desc: '' }//处理这里的搜索条件for (const key in data) {if (Object.hasOwnProperty.call(data, key)) {const element = data[key]; //获取搜索对应的字段key的值:例如查询到key为id时,这里的element就是id的值为1;查询第二项时key为pid时,这里的element就是pid的值为2//循环表头columnsfor (const k in props.columns) {if (Object.hasOwnProperty.call(props.columns, k)) {const el = props.columns[k];//获取表头对应的key的值// console.log('搜索条件:', el);  //例如 columns的值为[{ label: '分类ID', field: 'id', width: 120, searchFormType: 'text' },{ label: '分类名称', field: 'name', width: 200, search: 'like' }]//那这里第一条循环的el的值就是{ label: '分类ID', field: 'id', width: 120, searchFormType: 'text' }// console.log('搜索字段:', el.field);if (el.field == key) { // k
http://www.xdnf.cn/news/569503.html

相关文章:

  • 程序设计基础----排序(2)
  • Temporary failure in name resolution
  • C++ 01.vscode配置c++开发环境
  • 5.21本日总结
  • 两足行走机器人:仿生设计与智能控制的技术革命
  • Zabbix开源监控的全面详解!
  • 论文阅读:Auto-Encoding Variational Bayes
  • 信奥赛-刷题笔记-栈篇-T3-P1901发射站0521
  • 在 Windows 系统部署对冲基金分析工具 ai-hedge-fund 的笔记
  • 科普: 天然气蓝牙卡充值流程
  • CST软件基础四:电场和电导的设置
  • Unity基础学习(五)Mono中的重要内容(1)延时函数
  • Model 是 Agent 的大脑(以camel为例)
  • 补充Depends 和 request: Request 依赖注入用法的注意事项
  • 【C++ Primer 学习札记】智能指针
  • 构建 PyMNN
  • Halcon窗口的基本操作
  • Elasticsearch生产环境性能调优指南
  • Spring Boot + +小程序, 快速开发零工市场小程序
  • 如何使用 Docker Compose 部署 Immich
  • 《棒球百科知识》世界棒球十强国家是如何发展·棒球1号位
  • WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)
  • 实验分享|基于千眼狼sCMOS科学相机的流式细胞仪细胞核成像实验
  • XCOSnTh-fatfsShell
  • 腾讯位置服务地点搜索开发指南
  • [Min-Max Normalization] [Z-Score Normalization]
  • 使用vue2做一个生成二维码的案例【可当组件使用】
  • JC/T 2848-2024 玻璃纤维增强石膏(GRG)装饰制品检测
  • VS2022:使用命令行启动项目
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家