elemeentui el-table封装

elemeentui el-table封装 

<template><div style="height: 100%;"><el-table ref="sneTable"  element-loading-text="加载中" element-loading-spinner="el-icon-loading"element-loading-background="rgba(45,47,79, 0.8)" :border="border" :stripe="stripe" :height="height":max-height="maxHeight" :size="size" :row-key="rowKey" :data="dataSource" style="width: 99%;font-size: 14px ":default-expand-all="isExpandAll" :tree-props="treeProps" :span-method="onSpanMethod"@current-change="currentRowChange" @selection-change="selectionChange" @row-click="rowClick"@sort-change="sortChange"><div slot="empty" class="relative"><empty /></div><el-table-column v-if="selector" reserve-selection fixed="left" type="selection" header-align="center"align="center" width="50" :selectable="checkSelectTable" /><el-table-column v-if="index" align="center" fixed="left" type="index" label="序号" width="50"></el-table-column><template v-for="(column, i) in columns"><el-table-column v-if="isShow(column)" :key="i" :prop="column.prop" :label="column.label" :width="column.width":min-width="column.minWidth" :sortable="column.sortable || false" :align="column.align || 'left'":fixed="column.fixed" :show-overflow-tooltip="showTooltip"><template #default="{ row }"><span v-if="!column.slotName">{{row[column.prop] || row[column.prop] === 0? row[column.prop]: "--"}}</span><slot v-else :name="column.slotName" :data="row" /></template></el-table-column></template></el-table></div>
</template>
<script setup>
const props = defineProps({// 加载loading: { type: Boolean, default: false },// 是否带边框border: { type: Boolean, default: false },// 是否带斑马纹stripe: { type: Boolean, default: false },// 是否有序号index: { type: Boolean, default: true },// 表格高度 不传默认是计算后的高度height: { type: [Number, String], default: null },// 表格最大高度maxHeight: { type: Number, default: null },// 表格大小size: { type: String, default: "small" },// 唯一标识rowKey: { type: String, default: null },// 表数据dataSource: { type: Array, default: () => [] },// 是否多选selector: { type: Boolean, default: false },// 表头columns: { type: [String, Object, Array], required: true },// 是否展开isExpandAll: { type: Boolean, default: false },// 渲染嵌套数据的配置选项treeProps: {type: Object,default: () => { }},small: { type: Boolean, default: false },showTooltip: {type: Boolean,default: true}
})
const emit = defineEmits()
function sortChange({ column, prop, order }) {emit("sortChange", { column, prop, order });
}
function onSpanMethod({ rowIndex, columnIndex }) {let obj = { rowspan: 1, colspan: 1 };emit("onSpanMethod", { rowIndex, columnIndex }, val => {obj = val;});return obj;
}
function isShow(c) {return c.show === undefined ? true : c.show;
}
// 当前行变化
function currentRowChange(row) {if (row) emit("currentRowChange", row);
}// 多选
function selectionChange(values) {emit("selection-change", values);
}// 设置多选框(数据增加selectionIsSelect字段,判断当前是否可勾选)
function checkSelectTable(row) {return row.selectionIsSelect !== undefined ? row.selectionIsSelect : true;
}
// 点击某一行
function rowClick(row) {if (row) emit("row-click", row);
}
</script>

父使用

  <sne-table ref="sRef" :loading="loading" :selector="true" size="mini" row-key="id" height="calc( 100% - 140px )":data-source="noticeList" :columns="columns" @selection-change="handleSelectionChange"><template #noticeType="{data}"><dict-tag :options="sys_notice_type" :value="data.noticeType" /></template><template #status="{ data }"><dict-tag :options="sys_notice_status" :value="data.status" /></template><template #createTime="{ data }"><span>{{ parseTime(data.createTime, '{y}-{m}-{d}') }}</span></template><template #operate="{ data }"><el-button  link type="primary" :icon="EditPen" @click="handleUpdate(data)">修改</el-button><el-button link type="primary" icon="Delete" @click="handleDelete(data)" v-hasPermi="['system:notice:remove']">删除</el-button></template></sne-table>

elemeentuiPlus el-table封装   vue3

<template><div style="height: 100%;"><!-- element-loading-text="加载中" element-loading-spinner="el-icon-loading"element-loading-background="rgba(45,47,79, 0.8)"  --><el-table ref="sneTable"  :data="dataSource" :row-key="rowKey"v-loading="loading":default-expand-all="isExpandAll" :tree-props="treeProps" :border="border" :stripe="stripe" :height="height":max-height="maxHeight" size="default" @row-click="rowClick"@selection-change="selectionChange" @sort-change="sortChange"@current-change="currentRowChange" :span-method="onSpanMethod"style="width: 99%;font-size: 14px "><el-table-column v-if="selector" reserve-selection fixed="left" type="selection" header-align="center"align="center" width="50" :selectable="checkSelectTable" /><el-table-column v-if="index" align="center" fixed="left" type="index" label="序号" width="50"></el-table-column><template  v-for="(column, i) in columns"><el-table-column  v-if="isShow(column)" :prop="column.prop" :label="column.label" :width="column.width":min-width="column.minWidth" :sortable="column.sortable || false" :align="column.align || 'left'":fixed="column.fixed" :show-overflow-tooltip="showTooltip"><template #default="{ row }"><span v-if="!column.slotName">{{ row[column.prop] ||  row[column.prop] === 0? row[column.prop] :'' }}</span><slot :name="column.slotName" :data="row" /></template></el-table-column></template></el-table></div>
</template>
<script setup>
const props = defineProps({// 是否带边框border: { type: Boolean, default: false },// 是否带斑马纹stripe: { type: Boolean, default: false },// 是否有序号index: { type: Boolean, default: true },// 表格高度 不传默认是计算后的高度height: { type: [Number, String], default: null },// 表格最大高度maxHeight: { type: Number, default: null },// 表格大小size: { type: String, default: "large" },// 表数据dataSource: {type: Array,default: () => []},// 加载loading: {type: Boolean, default: false},// 表头columns: { type: [String, Object, Array], required: true },// 是否显示tooltipshowTooltip: {type: Boolean,default: true},// 是否多选selector: { type: Boolean, default: false },// 唯一标识rowKey: { type: String, default: null },// 是否展开isExpandAll: { type: Boolean, default: false },// 渲染嵌套数据的配置选项treeProps: { type: Object, default: () => { }},
})
const emit = defineEmits()function onSpanMethod({ rowIndex, columnIndex }) {// let obj = { rowspan: 1, colspan: 1 };// emit("onSpanMethod", { rowIndex, columnIndex }, val => {obj = val;});// return obj;
}
function isShow(c) {return c.show === undefined ? true : c.show;
}
// 当前行变化
function currentRowChange(row) {// if (row) emit("currentRowChange", row);
}
function sortChange({ column, prop, order }) {// emit("sortChange", { column, prop, order });
}
// 多选
function selectionChange(values) {emit("selection-change", values);
}// 设置多选框(数据增加selectionIsSelect字段,判断当前是否可勾选)
function checkSelectTable(row) {return row.selectionIsSelect !== undefined ? row.selectionIsSelect : true;
}
// // 点击某一行
function rowClick(row) {// if (row) emit("row-click", row);
}
</script>

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

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

相关文章

限制API接口访问速率

文章目录 依赖注解aophelperTest 免责声明&#xff1a;本人无意侵权&#xff0c;奈何找不到原文作者&#xff0c;也找不到网址&#xff0c;于是自己记录一下&#xff0c;如果有侵权之嫌&#xff0c;请联系我删除文章 依赖 <!-- https://mvnrepository.com/artifact/com.goo…

在SpringBoot 3.2.1中使用JPA报错

在SpringBoot 3.2.1中使用JPA报错 最近在对接大模型&#xff0c;需要把机器人信息持久化到数据库&#xff0c;使用最简单的方式就是JPA了&#xff0c;所以我在pom.xml文件中引入了下面的依赖。 <dependency><groupId>org.springframework.boot</groupId>&l…

Java线程池配置由繁至简,找到适合自己的天命线程池

Java线程池配置由繁至简&#xff0c;找到适合自己的天命线程池 任务队列workQueue和饱和策略handler什么时候登场&#xff1f; 首先这里有几道经常考的线程池面试题&#xff1a; 简单介绍下线程池&#xff0c;核心数从corePoolSize 到maximumPoolSize 的变化过程&#xff1f;…

我用 ChatGPT 做了一次探索性数据分析,真的太太太实用了!

ChatGPT 经过短短1年时间的发展&#xff0c;其功能越来越强&#xff0c;现在已经是大多数企业和个人不可或缺的助手。特别是最新的 GPT-4 版本&#xff0c;专门在左边菜单栏给出了两个工具&#xff08;一个是数据分析&#xff0c;另一个是根据文字描述生成图片&#xff09;&…

教育的本质与教师发展:对能力大赛模板化现象的深度反思与批判——以快速技术迭代背景下的教学策略为审视视角

在我国当前的教育体系中&#xff0c;教师能力大赛等活动在一定程度上确实扮演了提升教师专业素养、推动教学改革的角色。它们通过竞争机制激发了教师自我提升的动力&#xff0c;并提供了一个展示教师教学才华的平台。然而&#xff0c;随着时间推移&#xff0c;此类活动却呈现出…

天拓分享:汽车零部件制造企业如何利用边缘计算网关和数网星平台实现数控机床数据采集分析

一、项目背景 某汽车零部件制造企业为了提高生产效率、降低能耗和提高产品质量&#xff0c;决定引入TDE边缘计算网关和数网星工业互联网平台&#xff0c;对数控机床进行数据采集与分析。 二、解决方案 1、设备选型与配置&#xff1a;考虑到企业生产需求和数控机床的特性&…

Opencv小项目——手势数字刷TIKTOK

​ 写在前面&#xff1a; 很久没更新了&#xff0c;之前的实习的记录也算是烂尾了&#xff0c;但是好在自己的实习记录还是有的&#xff0c;最近也忙碌了很多&#xff0c;终于放假了&#xff0c;今天下午正好没事&#xff0c;闲来无事就随便做个小玩意吧。 思来想去&#xff…

yolo9000:Better, Faster, Stronger的目标检测网络

目录 一、回顾yolov1二、yolov2详细讲解2.1 Better部分创新点&#xff08;1&#xff09;Batch Normalization(批量归一化)&#xff08;2&#xff09;High Resolution Classifier---高分辨率分类器&#xff08;3&#xff09;Anchor Boxes---锚框&#xff08;4&#xff09;Dimens…

k8s学习-Deployment

Kubernetes通过各种Controller来管理Pod的生命周期 。 为了满足不同业 务 景 &#xff0c; Kubernetes 开发了Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job等多种Controller。我们⾸先学习最常用Deployment。 1.1 Kubectl命令直接创建 第一种是通过kubectl命令直接…

ROS第 9 课 编写简单的服务端 Server

文章目录 第 9 课 编写简单的服务端 Server1.创建服务器代码2.运行服务器节点 第 9 课 编写简单的服务端 Server 1.创建服务器代码 注意&#xff1a;在创建服务器代码之前&#xff0c;需要先创建工作空间和功能包&#xff0c;具体操作过程可前往目录“第4课 创建工作空间与功能…

蓝桥杯每日一题---基数排序

题目 分析 在实际的比赛过程中很少会自己手写排序&#xff0c;顶多是定义一下排序规则。之所以要练习一下基数排序&#xff0c;是因为在后续学习过程中学到后缀数组时需要自己手写基数排序&#xff0c;那么这里使用的方法也和后缀数组一致&#xff0c;理解这里也便于后缀数组的…

领域特定语言(Domain-Specific Language, DSL)在 Visual Studio 2022中的实验——建立领域模型

一、环境 dotnet --version 8.0.101 Microsoft Visual Studio Enterprise 2022 (64 位) - Current 版本 17.8.4 已安装组件 ComponentLinkVisual Studiohttp://go.microsoft.com/fwlink/?LinkId185579Visual Studio SDKhttps://go.microsoft.com/fwlink/?li…

MILP加速运算技巧(三)——以OR-Tools设置惰性约束为例

文章目录 前言OR-Tools添加惰性约束的方法基于简单TSP的对比实验无惰性约束部分惰性约束完全惰性约束完整代码前言 在运筹学建模和求解过程中1,“lazy constraints”(惰性约束)是一种动态添加约束的策略。通常,在使用整数规划(Integer Programming)或混合整数规划(Mixe…

RTC讲解

RTC&#xff08;Real Time Clock&#xff09;实时时钟 RTC实时时钟本质上是一个独立的定时器。RTC模块拥有一组连续计数的32位无符号计数器&#xff0c;在相应软件配置下&#xff0c;可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配…

提升开发效率,Fiddler Everywhere for Mac助您解决网络调试难题

在现代软件开发中&#xff0c;网络调试是一个不可或缺的环节。无论是前端开发还是后端开发&#xff0c;我们经常需要对网络请求进行监控和调试&#xff0c;以便及时发现并解决问题。而Fiddler Everywhere for Mac作为一款强大的网络调试工具&#xff0c;能够帮助开发者提升工作…

Ubuntu重启后进入initramfs导致无法开机

今晚&#xff0c;我的电脑意外关机&#xff0c;重新开机后打开了虚拟机后出现initramfs&#xff0c;一直无法开机。该虚拟机使用的是 vm17,系统是ubuntu20, 解决方案 使用如下命令查看和识别磁盘、分区或文件系统的信息 在initramfs后面输入 fsck /dev/sdb4 ,即修复上面损坏的…

git碰到最常见相关疑难操作记录

git相关疑难操作记录 文章目录 git相关疑难操作记录1 codeup里的git1.1 git 拉取v1代码1.2 git拉取V1代码最直接不用解决冲突的方法1.3 方法21.4 pre-commit 如果检查提示no files时候1.5 git ssh1.6 git push到算法库1.7 git push origin dev bug1.8 新环境配置codeup git ssh…

32 选择组件

效果演示 实现了一个复选框的动画效果&#xff0c;当复选框被选中时&#xff0c;复选框的前面会出现一个勾号&#xff0c;同时复选框的背景颜色会变成灰色&#xff0c;复选框旁边会出现一个火花效果。当复选框被取消选中时&#xff0c;复选框的勾号会消失&#xff0c;复选框的背…

线程同步--生产者消费者模型

文章目录 一.条件变量pthread线程库提供的条件变量操作 二.生产者消费者模型生产者消费者模型的高效性基于环形队列实现生产者消费者模型中的数据容器 一.条件变量 条件变量是线程间共享的全局变量,线程间可以通过条件变量进行同步控制条件变量的使用必须依赖于互斥锁以确保线…

Docker(三)使用 Docker 镜像

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 使用 Docker 镜像 在之前的介绍中&#xff0c;我们知道镜像是 Docker 的三大组件之一。 Docker 运行容器前需要本地存在对应的镜像&#x…