Vue2.0+ElementUI实现查询条件展开和收起功能组件

一、需求

  1. el-form如果查询条件过多,影响页面的展示效果。
  2. 查询条件表单是我们系统中非常常见的功能,我们需要把它封装成一个通用的组件,方便在系统开发中提升开发效率。
  3. 除了在实现基本查询条件的功能上,还需要实现多条件的折叠和展开功能

二、效果图

在这里插入图片描述
在这里插入图片描述

三、 代码示例

  1. 封装查询条件表单组件 SearchButton.vue
<template><div><el-col :span="1.5" class="elrow"><el-form-item><el-button type="primary" icon="el-icon-search" size="mini">查询</el-button></el-form-item></el-col><el-col :span="1.5" class="elrow"><el-form-item><el-button type="primary" icon="el-icon-refresh" size="mini">重置</el-button></el-form-item></el-col><el-col :span="1.5" class="elrow"><el-form-item><el-button type="text" size="mini" @click="closeSearch">{{ word }}<i :class="showAll ? 'el-icon-arrow-up ': 'el-icon-arrow-down'" /></el-button></el-form-item></el-col></div>
</template><script>
export default {props: {showAll: {type: Boolean,defalut: true}},computed: {word: function() {if (this.showAll === false) {// 对文字进行处理return '展开搜索'} else {return '收起搜索'}}},mounted() {/*** 收起搜索*/this.$nextTick(function() {this.closeSearch()})},methods: {closeSearch() {//					this.showAll = !this.showAll;this.$emit('closepop')console.log('子组件的状态:' + this.showAll)}}
}
</script><style>
</style>
  1. 使用查询条件表单组件(引入组件即可)
<template><div class="app-container"><el-row :gutter="20"><el-form ref="condForm" :model="condForm" label-width="100px" :inline="true"><el-row class="btnRow"><el-col :span="6" class="elrow"><el-form-item label="线索编号1" prop="xsbh" style="padding-left: 10px;"><el-input v-model="condForm.xsbh" size="mini" clearable style="width: 160px;" /></el-form-item></el-col><el-col :span="6" class="elrow"><el-form-item label="线索类型1" prop="xslx"><el-select v-model="condForm.xslx" size="mini" style="width: 160px;"><el-optionv-for="item in xslxoptions":key="item.id":label="item.name":value="item.id"/></el-select></el-form-item></el-col><el-col :span="6" class="elrow"><el-form-item label="线索来源1" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col><el-col :span="6" :class="!showAll ? 'btnRow' : 'unBtnRow'"><el-form-item label="线索编号1" prop="xsbh" style="padding-left: 10px;"><el-input v-model="condForm.xsbh" size="mini" clearable style="width: 160px;" /></el-form-item></el-col><search-button v-show="showAll" :show-all="showAll" @closepop="closepop" /></el-row><el-row :class="!showAll ? 'btnRow' : 'unBtnRow'"><el-col :span="6" class="elrow"><el-form-item label="线索编号2" prop="xsbh" style="padding-left: 10px;"><el-input v-model="condForm.xsbh" size="mini" clearable style="width: 160px;" /></el-form-item></el-col><el-col :span="6" class="elrow"><el-form-item label="线索类型2" prop="xslx"><el-select v-model="condForm.xslx" size="mini" style="width: 160px;"><el-optionv-for="item in xslxoptions":key="item.id":label="item.name":value="item.id"/></el-select></el-form-item></el-col><el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col><el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col>    <el-col :span="6" class="elrow"><el-form-item label="线索来源2" prop="xsxz"><el-select v-model="condForm.xsxz" size="mini" style="width: 160px;"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"/></el-select></el-form-item></el-col><SearchButton v-show="!showAll" :show-all="showAll" @closepop="closepop" /></el-row></el-form></el-row><el-tableref="multipleTable":data="tableData"size="medium":header-cell-style="{background:'#f5f7fa'}":height="tableHeight"stripefithighlight-current-rowborderstyle="width: 100%;height:50px"><el-table-column type="selection" width="55" align="center" </el-table-column><el-table-column type="index" width="55" align="center" label="序号" min-width="209" /><el-table-column label="查看" width="60" align="center"><template slot-scope="scope"><el-button type="text" size="small" align="center">查看</el-button></template></el-table-column><el-table-column label="删除" width="60" align="center"><template slot-scope="scope"><el-button type="text" size="small" align="center">删除</el-button></template></el-table-column><el-table-column prop="jhbh" label="计划编号" :show-overflow-tooltip="true" align="center" /><el-table-column prop="xszt" label="状态" align="center" min-width="100" /></el-table-column></el-table><!--分页查询工具条--><el-col :span="24" class="toolbar"><el-paginationstyle="margin-right: 8px;text-align: right;":page-sizes="pageSizes":page-size="pageSize":total="totalPage":current-page.sync="pageIndex"backgroundlayout="total, sizes, prev, pager, next, jumper"/></el-col></div>
</template><script>
import SearchButton from '@/components/SearchButton/index.vue'
export default {name: 'User',dicts: ['sys_normal_disable', 'sys_user_sex'],components: {SearchButton},data() {return {showAll: true,tableData: [],// 查询条件formcondForm: {},condition: '',xslxoptions: [{id: '1',name: '土地'},{id: '2',name: '房屋'},{id: '3',name: '矿产'}],options: [{value: '1',label: '动态巡查'}, {value: '2',label: '电话举报'}, {value: '3',label: '信访举报'}, {value: '4',label: '媒体曝光'}, {value: '5',label: '其他单位转交'}, {value: '6',label: '其他'}],pageIndex: 0,pageSize: 0,pageSizes: [20, 50, 100, 200],totalPage: 0//					height: window.innerHeight - 200,}},computed: {tableHeight() {if (this.showAll) {return window.innerHeight - 140} else {return window.innerHeight - 200}}},methods: {closepop() {this.showAll = !this.showAllconsole.log('父组件的状态:' + this.showAll)}}
}
</script>
<style>.btnRow {display: block;}.unBtnRow {display: none;}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/893543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter 使用 flutter_inappwebview 加载 App 本地 HTML 文件

在 Flutter 开发中&#xff0c;加载本地 HTML 文件是一个常见的需求&#xff0c;尤其是在需要展示离线内容或自定义页面时。flutter_inappwebview 是一个功能强大的插件&#xff0c;支持加载本地文件和网络资源。本文将详细介绍如何使用 flutter_inappwebview 加载 App 本地 HT…

Scrapy之一个item包含多级页面的处理方案

目标 在实际开发过程中&#xff0c;我们所需要的数据往往需要通过多个页面的数据汇总得到&#xff0c;通过列表获取到的数据只有简单的介绍。站在Scrapy框架的角度来看&#xff0c;实际上就是考虑如何处理一个item包含多级页面数据的问题。本文将以获取叶子猪网站的手游排行榜及…

LINQ 和 LINQ 扩展方法(2)

1.表联接&#xff08;连接&#xff09; Join() 相当于 join on equals 默认是inner join内联系 JoinGroup()是左外联 数据关联&#xff1a;Join 是在数据库查询中常用的操作&#xff0c;用于基于某个共同的键关联两个表。在内存中处理集合时&#xff0c;LINQ的 Join 方法提…

MySQL8【学习笔记】

第一章前提须知 1.1 需要学什么 Dbeaver 的基本使用SQL 语句&#xff1a;最重要的就是查询&#xff08;在实战的时候&#xff0c;你会发现我们做的绝大部分工作就是 “查询”&#xff09;MySQL 存储过程&#xff08;利用数据库底层提供的语言&#xff0c;去进行业务逻辑的封装…

聊一聊 CSS 样式的导入方式

一、CSS 的导入方式有哪些 1、内联样式&#xff0c;在HTML 元素上使用 style 属性&#xff0c;设置当前标签元素的样式 <p style"color: red;">Hello world!</p>2、嵌入样式表&#xff0c;直接在head标签内使用style标签定义元素样式 <head><st…

【JVM】垃圾收集器详解

你将学到 1. Serial 收集器 2. ParNew 收集器 3. Parallel Scavenge 收集器 4. Serial Old 收集器 5. Parallel Old 收集器 6. CMS 收集器 7. G1 收集器 在 Java 中&#xff0c;垃圾回收&#xff08;GC&#xff09;是自动管理内存的一个重要机制。HotSpot JVM 提供了多种…

前端Vue框架——npm ci与npm install的区别以及package-lock.json文件与package.json的区别

目录 一、npm ci与npm install的区别 &#xff08;一&#xff09;npm ci 的作用 &#xff08;二&#xff09;与 npm install 的区别 二、package-lock.json文件与package.json的区别 1️⃣ package.json 2️⃣ package-lock.json 3️⃣ 区别对比 4️⃣ 使用建议 5️⃣…

项目上线后,是否会进行复盘?

是的&#xff0c;定期复盘在软件测试项目里极为关键&#xff0c;我会按以下步骤开展复盘工作&#xff1a; 复盘周期确定 短期项目&#xff1a;针对周期较短&#xff08;如 1 - 2 个月&#xff09;的项目&#xff0c;会在项目结束后的一周内进行复盘&#xff0c;确保大家对项目…

SOME/IP服务接口

本系列文章将分享我在学习 SOME/IP 过程中积累的一些感悟&#xff0c;并结合 SOME/IP 的理论知识进行讲解。主要内容是对相关知识的梳理&#xff0c;并结合实际代码展示 SOME/IP 的使用&#xff0c;旨在自我复习并与大家交流。文中引用了一些例图&#xff0c;但由于未能找到原作…

编写0号中断的处理程序

实验内容、程序清单及运行结果 编写0号中断的处理程序&#xff08;课本实验12&#xff09; 解&#xff1a; assume cs:code code segment start: mov ax,cs mov ds,ax mov si,offset do mov ax,0 mov es,ax mov di,200h mov cx,offset doend-offset do ;安装中断例…

Android系统开发(十五):从 60Hz 到 120Hz,多刷新率进化简史

引言 欢迎来到“帧率探索实验室”&#xff01;今天&#xff0c;我们要聊聊 Android 11 中对多种刷新率设备的支持。你可能会问&#xff1a;“这和我写代码有什么关系&#xff1f;”别急&#xff0c;高刷新率不仅仅让屏幕更顺滑&#xff0c;还会直接影响用户体验。想象一下&…

基于JAVA的微信点餐小程序设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

【Arduino】语言参考功能

前言 翻译Arduino 参考处列出的常用函数。文中为了减少篇幅&#xff0c;达到能快速翻到查询的目标&#xff0c;在介绍函数中&#xff0c;对部分内容进行了省略&#xff0c;不会列出函数输入参数类型&#xff0c;以及使用注意事项等等&#xff0c;所以若是首次使用或者是调试时出…

Alibaba Spring Cloud 二 Seata 的详细介绍、使用场景以及集成方法

Seata 是一个开源的分布式事务解决方案&#xff0c;它由阿里巴巴开源&#xff0c;专注于解决微服务架构中的分布式事务问题。它支持高性能的分布式事务处理&#xff0c;提供了多种事务模型&#xff08;AT、TCC、SAGA 和 XA&#xff09;&#xff0c;并与 Spring Boot 和 Spring …

ChatGPT结合Excel辅助学术数据分析详细步骤分享!

目录 一.Excel在学术论文中的作用✔ 二.Excel的提示词✔ 三. 编写 Excel 命令 四. 编写宏 五. 执行复杂的任务 六. 将 ChatGPT 变成有用的 Excel 助手 一.Excel在学术论文中的作用✔ Excel作为一种广泛使用的电子表格软件&#xff0c;在学术论文中可以发挥多种重要作用&a…

flume和kafka整合 flume和kafka为什么一起用?

‌Flume和Kafka一起使用的主要原因是为了实现高效、可靠的数据采集和实时处理。‌‌12 实时流式日志处理的需求 Flume和Kafka结合使用的主要目的是为了完成实时流式的日志处理。Flume负责数据的采集和传输,而Kafka则作为消息缓存队列,能够有效地缓冲数据,防止数据堆积或丢…

国内有哪些著名的CRM系统提供商?

嘿&#xff0c;你有没有想过&#xff0c;在这个信息爆炸的时代里&#xff0c;企业怎么才能更好地管理客户关系呢&#xff1f;答案就是使用高效的CRM系统。今天我就来给大家聊聊那些在国际上非常有名的CRM系统提供商吧。 悟空CRM 首先不得不提的就是悟空CRM了&#xff01;这可…

Linux中的几个基本指令(二)

文章目录 1、cp指令例一&#xff1a;例二&#xff1a;例三&#xff1a;例四&#xff1a;例五&#xff1a; 2、mv 指令例一&#xff1a;例二&#xff1a; 3、cat指令例一&#xff1a; 4、tac指令5、which指令6、date指令时间戳&#xff1a;7、zip指令 今天我们继续学习Linux下的…

mock可视化生成前端代码

介绍&#xff1a;mock是我们前后端分离的必要一环、ts、axios编写起来也很麻烦。我们就可以使用以下插件&#xff0c;来解决我们的问题。目前支持vite和webpack。&#xff08;配置超级简单&#xff01;&#xff09; 欢迎小伙伴们提issues、我们共建。提升我们的开发体验。 vi…

【Linux】APT 密钥管理迁移指南:有效解决 apt-key 弃用警告

引言 随着 Debian 11 和 Ubuntu 22.04 版本的推出&#xff0c;APT 的密钥管理方式发生了重大的变化。apt-key 命令被正式弃用&#xff0c;新的密钥管理机制要求使用 /etc/apt/keyrings/ 或 /etc/apt/trusted.gpg.d/ 来存储和管理密钥。这一变化对管理员和普通用户来说至关重要…