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,一经查实,立即删除!

相关文章

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

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

MySQL8【学习笔记】

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

【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 提供了多种…

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;…

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

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

国内有哪些著名的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…

9. 神经网络(一.神经元模型)

首先&#xff0c;先看一个简化的生物神经元结构&#xff1a; 生物神经元有多种类型&#xff0c;内部也有复杂的结构&#xff0c;但是可以把单个神经元简化为3部分组成&#xff1a; 树突&#xff1a;一个神经元往往有多个树突&#xff0c;用于接收传入的信息。轴突&#xff1a;…

Web 音视频(二)在浏览器中解析视频

前言 浏览器中已经能直接播放视频&#xff0c;为什么还需要手动写代码解析&#xff1f; 因为&#xff0c;某些场景需要对视频进行更细致的处理&#xff0c;比如截取关键帧、提取视频中的文字、人物打码、极低延时播放视频等等。 总之&#xff0c;除了最单纯的视频播放外&…

ETLCloud在iPaas中的是关键角色?

在当今的数字化时代&#xff0c;企业越来越依赖于其处理和分析数据的能力。为了实现这一目标&#xff0c;企业需要将各种异构的应用和数据源集成在一起&#xff0c;形成一个统一的数据视图。在这一过程中&#xff0c;ETL&#xff08;Extract, Transform, Load&#xff09;和iPa…

以太网实战AD采集上传上位机——FPGA学习笔记27

一、设计目标 使用FPGA实现AD模块驱动采集模拟电压&#xff0c;通过以太网上传到电脑上位机。 二、框架设计 数据位宽转换模块&#xff08;ad_10bit_to_16bit&#xff09;&#xff1a;为了方便数据传输&#xff0c;数据位宽转换模块实现了将十位的 AD 数据转换成十六位&#…

YOLOv1、YOLOv2、YOLOv3目标检测算法原理与实战第十三天|YOLOv3实战、安装Typora

1.学习哔哩哔哩《YOLOv1、YOLOv2、YOLOv3目标检测算法原理与实战》 炮哥带你学视频链接 第5章 YOLOv3实战 5.1 YOLOv3实战先导 5.2 pycharm与anaconda的安装 之前已经安装过了&#xff0c;见Pytorch框架与经典卷积神经网络与实战第一天|安装PyCharm&Anaconda&#xff0…

数据库SQLite和SCADA DIAView应用教程

课程简介 此系列课程大纲主要包含七个课时。主要使用到的开发工具有&#xff1a;SQLite studio 和 SCADA DIAView。详细的可成内容大概如下&#xff1a; 1、SQLite 可视化管理工具SQLite Studio &#xff1a;打开数据库和查询数据&#xff1b;查看视频 2、创建6个变量&#x…

YOLOv8改进,YOLOv8检测头融合DSConv(动态蛇形卷积),并添加小目标检测层(四头检测),适合目标检测、分割等

精确分割拓扑管状结构例如血管和道路,对各个领域至关重要,可确保下游任务的准确性和效率。然而,许多因素使任务变得复杂,包括细小脆弱的局部结构和复杂多变的全局形态。在这项工作中,注意到管状结构的特殊特征,并利用这一知识来引导 DSCNet 在三个阶段同时增强感知:特征…

Addressable学习

AssetsBundle是Unity的资源管理机制,将资源打包到AssetsBundle资源包并提供接口能从ab包里面加载资源出来。有了这个机制以后&#xff0c;我们要做资源管理&#xff0c;还需要做: a: 根据项目需求,编写编辑器扩展,提供指定资源打入对应bundle包工具策略; b: 根据项目的需求,资源…

概率密度函数(PDF)分布函数(CDF)——直方图累积直方图——直方图规定化的数学基础

对于连续型随机变量&#xff0c;分布函数&#xff08;Cumulative Distribution Function, CDF&#xff09;是概率密度函数&#xff08;Probability Density Function, PDF&#xff09;的变上限积分&#xff0c;概率密度函数是分布函数的导函数。 如果我们有一个连续型随机变量…