elmenetui表格二次封装包含查询框和分页
<!--dataList: 表格数据columnList: 表头字段 宽度minWidth使用slotName字段: 需要对列数据进行处理,不写prop字段,使用slotName字段btnText<String>: 按钮字段btnIcon<String>: 按钮的iconbtnEvent: 按钮事件btnType: 按钮类型getHeight<String>: 表格高度pagination: 分页回调方法formItemList: 查询条件List -----label字段名 type类型(select、input、daterange、cascader)select(selectOptions下拉框数据、defaultSelect下拉框默认选中数据)cascader(options级联选择框数据) param(用来接收查询参数)search: 查询事件isAddBtn: 是否显示添加按钮
-->
<template><div class="app-container"><el-form:inline="true"ref="ruleForm":model="formInline"class="demo-form-inline"><el-form-itemv-for="(item, index) in formItemList":key="index":label="item.label"><!-- 下拉选择框 --><el-selectv-if="item.type == 'select'"v-model="formInline[item.param]":multiple="item.multiple"placeholder="请选择"size="mini"clearable><el-optionv-for="(item2, index2) in item.selectOptions":key="index2":label="item2.dictLabel":value="item2.dictValue"></el-option></el-select><!-- 下拉选择框end --><!-- 输入框 --><el-inputv-if="item.type == 'input'"v-model="formInline[item.param]"size="mini"placeholder="请输入"clearable></el-input><!-- 输入框 --><!-- 日期范围选择框 --><el-date-pickerv-if="item.type == 'daterange' ||item.type == 'datetimerange' ||item.type == 'date' ||item.type == 'datetime'"v-model="formInline[item.param]":value-format="item.valueFormat || 'yyyy-MM-dd hh:mm:ss'":format="item.format || 'yyyy-MM-dd hh:mm:ss'"clearable:type="item.type || ''":range-separator="item.rangeSeparator || '至'":start-placeholder="item.startPlaceholder":end-placeholder="item.endPlaceholder"placeholder="请选择"size="mini"></el-date-picker><!-- 日期范围选择框end --><!-- 级联选择器 --><el-cascaderv-if="item.type == 'cascader'"v-model="formInline[item.param]"size="mini":options="item.options":props="item.props"clearable></el-cascader><!-- 级联选择器end --></el-form-item><slot name="formItem"></slot><el-form-item style="width:10rem"><el-button type="primary" size="mini" @click="onSubmit">查询</el-button><el-button type="" size="mini" @click="resetForm('ruleForm')">重置</el-button></el-form-item><!-- 可用于显示其他按钮 --><el-form-item style="width:10rem" v-if="isAddBtn"><el-button :type="btnType" :icon="btnIcon" @click="btnEvent">{{ btnText }}</el-button></el-form-item></el-form><el-tableref="table"v-loading="loading":data="dataList":height="getHeight"stripe:header-cell-style="headerCellStyle"><el-table-column label="序号" align="center" width="50" type="index" /><el-table-columnv-for="(item, index) in columnList"ref="table":label="item.label":key="index":prop="item.prop":fixed="item.fixed":min-width="item.minWidth"align="center"><template slot-scope="scope"><slot v-if="item.slotName" :name="item.slotName" :row="scope.row"></slot><div v-else>{{scope.row[item.prop]}}</div></template></el-table-column></el-table><div class="tabListPage"><el-paginationsmallclass="text-center"@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page="page.page":page-sizes="pageSizes":page-size="page.limit"layout="total, sizes, prev, pager, next, jumper":total="total"ref="pagination"></el-pagination></div></div>
</template><script>
export default {data(){let formInline = {};for (const obj of this.formItemList) {formInline[obj.param] = obj.defaultSelect || "";}return{formInline,loading:false,headerCellStyle:{background:'#4d5564',textAlign:'center',flexWrap:'wrap',color:'#fff',fontWeight:'600'},pageSizes: [10, 20, 50, 100],page: {page: 1,limit: 10,},}},props:{dataList:{type:Array,},columnList:{type:Array,},btnText:{type:String,default:'增加'},btnIcon:{type:String,default:'el-icon-plus'},getHeight:{type:String,default:'730'},total: {type: Number,}, // 总条数btnType:{type:String,default:'primary'},isAddBtn:{type:Boolean,default: true},formItemList: {type: Array,default() {return [{label: "下拉框",type: "select",selectOptions: [{ text: 111, value: 111 }],param: "company",defaultSelect: "222", // 下拉框默认选中项multiple: false},{label: "输入框",type: "input",param: "name"},];}}},watch: {// emitSearch(newVal, oldVal) {// // 是否立即触发搜索 用在弹窗中异步请求下拉框后 或者给下拉框赋值默认值后 需要用到这个方法// if (newVal) {// console.log("此时触发--立即执行搜索");// this.$emit("search", this.formInline);// }// },formItemList: {handler(newVal, oldVal) {for (const obj of this.formItemList) {if (obj.defaultSelect) {this.formInline[obj.param] = obj.defaultSelect;}}},deep: true},total(newdata, olddata) {if (newdata != olddata) {this.$refs.pagination.internalCurrentPage = 1;this.page.limit = 10;}},},methods:{btnEvent(){this.$emit('btnEvent', );},// 每页条数变更handleSizeChange(val) {this.page.limit = val;this.page.page = 1;this.$emit("pageChange", this.page);},// 当前页码变更handleCurrentChange(val) {this.page.page = val;// this.$refs.pagination.internalCurrentPage = 1;this.$emit("pageChange", this.page);},onSubmit() {this.$emit("search", this.formInline);},resetForm(formName) {this.$refs[formName].resetFields();let formInline = {};for (const obj of this.formItemList) {// formInline[obj.param] = obj.defaultSelect || ""; // 重置时下拉框的默认值如果要保留就选用这个formInline[obj.param] = ""; // 所有筛选条件清空}this.formInline = formInline;this.$emit("search", this.formInline);}}
}
</script><style>
.headerBox{display: flex;justify-content: flex-end;align-items: center;margin-bottom: 10px;
}
.tabListPage{display: flex;justify-content: flex-end;align-items: center;margin-top: 10px;
}
</style>
相关文章:
elmenetui表格二次封装包含查询框和分页
<!--dataList: 表格数据columnList: 表头字段 宽度minWidth使用slotName字段: 需要对列数据进行处理,不写prop字段,使用slotName字段btnText<String>: 按钮字段btnIcon<String>: 按钮的iconbtnEvent: 按钮事件btnType: 按钮类型getHeigh…...

【机器学习Python实战】线性回归
🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习python实战 欢迎订阅!后面的内容会越来越有意思~ ⭐内容说明:本专栏主要针对机器学习专栏的基础内容进行python的实现,部分…...
做外贸这么久,为什么一直做不好?
很多外贸业务员在开发客户过程中,总感觉自己做了很多事情,聊了很多客户,但却总是拿不到单子。 其实,这是由于缺乏对采购商心理的认识程度,没有换位思考,该做的事没做,不该做的事却忙得忘乎所以&…...

IPv4数据报格式
IPv4是IP协议的第四个版本(版本1-3和版本5都未曾使用过)IP地址不能反映任何有关主机位置的地理信息以前还有个逆地址解析协议RAPR(Reverse APR),它的作用是使只知道自己MAC地址的主机能通过RAPR找到其IP地址,而现在的DHCP(Dynamic Host Configuration Pr…...

搭建网关服务器实现DHCP自动分配、HTTP服务和免密登录
目录 一. 实验要求 二. 实验准备 三. 实验过程 1. 网关服务器新建网卡并改为仅主机模式 2. 修改新建网卡IP配置文件并重启服务 3. 搭建网关服务器的dhcp服务 4. 修改server2网卡配置文件重启服务并效验 5. 设置主机1的网络连接为仅主机模式 6. 给server2和网关服务器之…...

【18年扬大真题】给定有m个整数的递增有序数组a和有n个整数的递减有序数组b,将a数组和b数组归并为递增有序的数组c
【18年扬大真题】 给定有m个整数的递增有序数组a和有n个整数的递减有序数组b, 将a数组和b数组归并为递增有序的数组c。 void Merge(int arr[],int m ,int brr[],int n,int crr[]) {int i 0;int j n-1;int k 0;while(i < m&&j > 0) {if (arr[i] &l…...

图片叠加_图片压缩
图片叠加 try {/* 1 读取第一张图片*/File fileOne new File("1.png");BufferedImage imageFirst ImageIO.read(fileOne);/* 2读取第二张图片 */File fileTwo new File("2.png");BufferedImage imageSecond ImageIO.read(fileTwo);//创建一个最底层画…...

Mybatis-Plus《学习笔记 22版尚硅谷 》——感谢【尚硅谷】官方文档
Mybatis-Plus《学习笔记 22版尚硅谷 》 一、MyBatis-Plus1.简介2.特性3.支持数据库4.框架结构5.官方地址 二、入门案例1.开发环境2.建库建表3.创建工程4.配置编码5.测试查询 三、增删改查1.BaseMapper<T>2.调用Mapper层实现CRUD2.1 插入2.2 删除a、根据ID删除数据b、根据…...
git安装后报git: ‘remote-https‘ is not a git command. See ‘git --help‘.
1. 问题说明 使用的是linux系统,采用编译安装的方式进行安装,安装完成clone项目后提示“git: ‘remote-https’ is not a git command. See ‘git --help’.” 2. 问题解决 需要安装1个额外的库:libcurl4-openssl-de sudo apt-get install …...

场景交互与场景漫游-交运算与对象选取(8-1)
交运算与对象选取 在面对大规模的场景管理时,场景图形的交运算和图形对象的拾取变成了一项基本工作。OSG作为一个场景管理系统,自然也实现了场景图形的交运算,交运算主要封装在osgUtil 工具中在OSG中,osgUtil是一个非常强有力的工…...
Vue中动态Class实战
效果展示 需求 想实现一个假如有5个div块,默认都是灰色,鼠标悬浮到哪个div上,那个div就显示为黑色。 具体的实现业务逻辑可根据这个进行演变 设计 通过动态 class 类名来实现,实现鼠标悬浮到div时动态绑定class 版本 Vue 3.…...

B站短视频如何去水印?一键解析下载B站视频!
在浏览B站视频时,我们有时会遇到带有水印的场景。这些水印可能会干扰我们对视频内容的观看体验,特别是在全屏观看时。此外,当我们想要保存或分享这些视频时,水印也会成为一种障碍。因此,去除水印的需求就变得非常迫切。…...

最大子段和(分治法+动态规划法)
求最大子段和 此类问题通常是求数列中连续子段和的最大值,经典的股票问题就是考察的这个思想及拓展。 例题: AcWing:1054. 股票买卖 Leetcode:53. 最大子数组和 分治法O(nlogn) 此类问题时分适合采用分治思想,因为所有子区间 [ s t a r t …...

内置函数和消息传递API
消息传递范式 消息函数、聚合函数与更新函数 消息函数接受一个参数 edges,这是一个 EdgeBatch 的实例, 在消息传递时,它被DGL在内部生成以表示一批边。edges 有 src、 dst 和 data 共3个成员属性, 分别用于访问源节点、目标节点…...

不标年份的葡萄酒质量好吗?
我们在葡萄酒标上经常看到生产年份,也就是指全部葡萄采摘的年份。旧世界葡萄酒产国认为葡萄酒年份对他们的影响较大,而新世界葡萄酒,年份的意义就稍微小些。甚至有一部分葡萄酒酒标上没有年份。在酒标上没有标注年份的葡萄酒,被称…...

2023年【高处安装、维护、拆除】模拟考试题及高处安装、维护、拆除模拟考试题库
题库来源:安全生产模拟考试一点通公众号小程序 2023年【高处安装、维护、拆除】模拟考试题及高处安装、维护、拆除模拟考试题库,包含高处安装、维护、拆除模拟考试题答案和解析及高处安装、维护、拆除模拟考试题库练习。安全生产模拟考试一点通结合国家…...

简单模拟 Spring 创建的动态代理类(解释一种@Transactional事务失效的场景)
模拟 Spring 创建的动态代理类 本文主要目的是从父类和子类继承的角度去分析为什么在 Service 标注的业务类中使用 this 调用方法会造成事务失效。解释在这种情况下 this 为什么是原始类对象而不是代理类对象。 问题描述 在 Service 标注的业务类中,如果调用本类…...

万户OA upload任意文件上传漏洞复现
0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息…...

如何写好一篇软文?怎样写软文比较有吸引力?
软文,即柔性广告,是一种通过文字、图片等形式,将广告信息融入到内容中,以达到宣传、推广、营销目的的文章。企业和品牌每天都会在互联网上投放大量软文,软文起到润物细无声的作用,可以在无形中影响用户心智…...

从0开始学习JavaScript--JavaScript中的对象
JavaScript中的对象是一种重要的数据结构,它不仅是语言的基石,还提供了丰富的功能和灵活性。本文将深入研究JavaScript对象的创建、属性访问、方法定义,以及实际应用中的技巧,通过丰富的示例代码,帮助读者更全面地了解…...

96. 2017年蓝桥杯省赛 - Excel地址(困难)- 进制转换
96. Excel地址(进制转换) 1. 2017年蓝桥杯省赛 - Excel地址(困难) 标签:2017 省赛 1.1 题目描述 Excel 单元格的地址表示很有趣,它使用字母来表示列号。 比如, A 表示第 1 列,…...
JavaSec-SPEL - 表达式注入
简介 SPEL(Spring Expression Language):SPEL是Spring表达式语言,允许在运行时动态查询和操作对象属性、调用方法等,类似于Struts2中的OGNL表达式。当参数未经过滤时,攻击者可以注入恶意的SPEL表达式,从而执行任意代码…...

分布式锁-Redisson实现
目录 本地锁的局限性 Redisson解决分布式锁问题 在分布式环境下,分布式锁可以保证在多个节点上的并发操作时数据的一致性和互斥性。分布式锁有多种实现方案,最常用的两种方案是:zookeeper和redis,本文介绍redis实现分布式锁方案…...

【C语言】C语言经典小游戏:贪吃蛇(上)
文章目录 一、游戏背景及其功能二、Win32 API介绍1、Win32 API2、控制台程序3、定位坐标(COORD)4、获得句柄(GetStdHandle)5、获得光标属性(GetConsoleCursorInfo)1)描述光标属性(CO…...

0x-1 记一次SGA PGA设置失败,重新开库
0、生产侧定时平台上传数据库11g hang,修改无法startup 厂商统一发放的虚拟机作为前置机导入平台后,直接开机使用。主机在虚拟化平台中,实例卡死后,按照虚拟机系统64G,原SGA2g,不知哪个大聪明给默认设置的。保守计划修…...
Spring Cloud 2025 正式发布啦
文章目录 一、版本兼容性二、Spring Cloud Gateway 重大更新1、新增功能1.1 Function & Stream 处理器集成1.2 Bucket4j 限流器支持 2、重要弃用2.1. WebClientRouting 基础设施2.2. 模块和启动器重命名 3、破坏性变更3.1 X-Forwarded-* 头部默认禁用3.2 配置受信任代理:3.…...
Hive中ORC存储格式的优化方法
优化Hive中的ORC(Optimized Row Columnar)存储格式可显著提升查询性能、降低存储成本。以下是详细的优化方法,涵盖参数配置、数据组织、写入优化及监控调优等维度: 一、ORC核心参数优化 1. 存储与压缩参数 SET orc.block.size=268435456; -- 块大小(默认256MB)…...

UCRT 和 MSVC 的区别(Windows 平台上 C/C++ 开发相关)
UCRT 和 MSVC 是与 Windows 平台上 C/C 开发相关的两个重要概念,它们都属于 Microsoft 的开发工具链的一部分。下面详细解释它们的含义、区别以及用途。 一、UCRT(Universal C Runtime) 1. 含义: UCRT(Universal C …...
深度学习姿态估计实战:基于ONNX Runtime的YOLOv8 Pose部署全解析
本文将详细介绍如何脱离YOLO官方环境,使用ONNX Runtime部署YOLOv8姿态估计模型。内容包括模型加载、图像预处理(Letterbox缩放和填充)、推理执行、输出解码(边界框和关键点处理)、非极大值抑制(NMS…...

数据分析Agent构建
数据分析agent构建 代码资料来源于 Streamline-Analyst,旨在通过该仓库上的代码了解如何使用大语言模型构建数据分析工具; 个人仓库:Data-Analysis-Agent-Tutorial 不同的在于 Data-Analysis-Agent-Tutorial 是在 Streamline-Analyst 基础…...