telement-plus中table合并行或者列

#element-plus中会有自带的合并方法

通过给 table 传入span-method方法可以实现合并行或列, 方法的参数是一个对象,里面包含当前行 row、当前列 column、当前行号 rowIndex、当前列号 columnIndex 四个属性。 该函数可以返回一个包含两个元素的数组,第一个元素代表 rowspan,第二个元素代表 colspan。 也可以返回一个键名为 rowspan 和 colspan 的对象。

行合并(竖着合并单元格)

第一种方法可以直接复制用

1.全都需要再table中加入  :span-method="objectMethod"  这个方法2.js代码可以直接复制用const propertyData: any = reactive({});
const contactDotData: any = reactive({});
const getRowdata = () => {let tableData: Array<any> = props.tableData;tableData.forEach((item: any, i) => {for (let key in item) {if (props.objectMethodData?.includes(key)) {if (i == 0) {propertyData[key] = [];contactDotData[key] = 0;propertyData[key].push(1);} else {if (item[key] === tableData[i - 1][key]) {propertyData[key][contactDotData[key]] =propertyData[key][contactDotData[key]] + 1;propertyData[key].push(0);} else {contactDotData[key] = i;propertyData[key].push(1);}}}}});
};const objectMethod = ({ row, column, rowIndex, columnIndex }: any) => {if (props.objectMethodData?.length) {if (props.objectMethodData.includes(column.property)) {if (propertyData[column.property] &&propertyData[column.property][rowIndex]) {return [propertyData[column.property][rowIndex], 1];} else {return [0, 0];}}else {return [1, 1];}}else{return [1, 1]}};watch(() => props.tableData,(newVal) => {if (props.objectMethodData?.length) getRowdata();},{ deep: true, immediate: true }
);3.在使用组件的地方传入props.objectMethodData 它是个listobjectMethodData?: any;  props接受使用的地方只需要将需要合并的这个竖排的prop(关联的value)传入即可:objectMethodData="['hospitalCategory','hospitalDepartment']"   这样传入就可以实现咯

第二种行合并方法

const objectMethod = ({ row, column, rowIndex, columnIndex }) => {if (props.spanMethod) {return props.spanMethod({ row, column, rowIndex, columnIndex })} else {if (props.mergeFiled.length === 0) {return [1, 1]}if (props.mergeFiled.includes(column.property)) {const detailCellsMergeData = props.mergeData[row.productId]if (detailCellsMergeData) {if (rowIndex === detailCellsMergeData.startIndex) {return {rowspan: detailCellsMergeData.rowspan,colspan: 1,}} else {return {rowspan: 0,colspan: 0,}}}}}
}//这里的话只是传入的list名字改变了而已  mergeFiledspanMethod 根据自己是需要自定义合并需要就传true 这里的话默认的是false

列合并(横着合并单元格)

在 element-plus 的 el-table 组件中,原生并不支持横向合并(span-method 通常是用来纵向合并单元格的)。但你可以通过一些技巧来模拟横向合并的效果。

<template>  <el-table :data="tableData" :span-method="spanMethod" style="width: 100%">  <el-table-column prop="date" label="日期" width="180"></el-table-column>  <el-table-column prop="name" label="姓名" width="180"></el-table-column>  <el-table-column prop="address" label="地址" width="200"></el-table-column>  <!-- 其他列... -->  </el-table>  
</template>  <script>  
export default {  data() {  return {  tableData: [  // 假设第一行的"姓名"和"地址"列需要合并  {  date: '2023-05-01',  name: '张三',  address: '北京',  spanData: {  name: { rowspan: 1, colspan: 2 }, // 合并姓名和地址列  address: { rowspan: 0, colspan: 0 }, // 隐藏地址列  },  },  // 其他行数据...  ],  };  },  methods: {  spanMethod({ row, column, rowIndex, columnIndex }) {  if (row.spanData && row.spanData[column.property]) {  return row.spanData[column.property];  }  return {  rowspan: 1,  colspan: 1,  };  },  },  
};  
</script>  <style scoped>  
/* 你可以在这里添加一些额外的CSS样式来处理合并后的单元格 */  
</style>进行封装的的话是下面的
1.通过接口获取data的数据list然后进行格式化data.forEach((i:any,index:number)=>{for(let key in i){if(i[key] == '妇科'){i.spanData = {hsdy:{rowspan: 1, colspan: 2},hssr:{rowspan: 0, colspan: 0}}}}})备注:i[key] == '妇科' 这里根据你的情况来改变 需要合并的i.spanData 这里面的话表示的是第一个开始合并的prop然后clospan表示你需要你合并几列2.在table组件中实现
const objectMethod = ({ row, column, rowIndex, columnIndex }: any) => {if (props.iscolSpan) {if (row.spanData && row.spanData[column.property]) {return row.spanData[column.property];}else {return [1, 1];}  } 
};iscolSpan属性是布尔类型true/false 需要合并吗?
spanData 需要进行对应关系
然后就可以咯

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

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

相关文章

农作物害虫检测数据集VOC+YOLO格式18975张97类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;18975 标注数量(xml文件个数)&#xff1a;18975 标注数量(txt文件个数)&#xff1a;18975 标…

minio忘记密码

安装minio 对象存储minio-CSDN博客 cat << EOF > /etc/default/minio# Volume to be used for Minio server. MINIO_VOLUMES"/data"# Use if you want to run Minio on a custom port. #MINIO_OPTS"--address :9001" MINIO_OPTS"--address …

卷积神经网络要点和难点实际案例和代码解析

卷积神经网络(Convolutional Neural Networks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。卷积神经网络仿造生物的视知觉机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够…

Boost读写xml

Boost读写xml 文章目录 Boost读写xml写在前面准备工作简单读写写xml读xml键值查找遍历 设置默认值异常处理 具有属性的xml写xml读xml键值查找遍历 知识补充 写在前面 ​ 前面我们讲过了如何使用Boost读写ini文件&#xff0c;这一篇我们将介绍如何用Boost读写xml文件。 ​ XML…

C++入门系列-类对象模型this指针

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 类对象模型 如何计算类对象的大小 class A { public:void printA(){cout << _a << endl;} private:char _a; }; 算算看&#xff0c;这个类的大小是多少 我们知道…

掌握JavaScript面向对象编程核心密码:深入解析JavaScript面向对象机制对象概念、原型模式与继承策略全面指南,高效创建高质量、可维护代码

ECMAScript&#xff08;简称ES&#xff0c;是JavaScript的标准规范&#xff09;支持面向对象编程&#xff0c;通过构造函数模拟类&#xff0c;原型链实现继承&#xff0c;以及ES6引入的class语法糖简化面向对象开发。对象可通过构造函数创建&#xff0c;使用原型链共享方法和属…

从0开始linux(1)——文件操作

欢迎来到博主的专栏——从0开始linux 博主ID&#xff1a;代码小豪 博主使用的linux发行版是&#xff1a;CentOS 7.6 不同版本下的操作可能存在差异 文章目录 命令文件操作命令文件树和文件路径文件树绝对路径相对路径 文件属性tree指令删除文件复制文件 大家还记得在小学第一次…

Amazon EKS创建EBS的存储类

1、创建 Amazon EBS CSI 驱动程序 IAM 角色 相关文档 先决条件&#xff0c;是否有 IAM OIDC 提供商&#xff0c;详情 IAM OIDC 提供商创建文档 IAM OIDC 提供商id 在 Select trusted entity&#xff08;选择受信任的实体&#xff09;页面上操作&#xff0c;最后点击下一步 在…

代码随想录算法训练营第25天 | 216.组合总和III、17.电话号码的字母组合

代码随想录算法训练营第25天 | 216.组合总和III、17.电话号码的字母组合 自己看到题目的第一想法看完代码随想录之后的想法 链接: 216.组合总和III 链接: 17.电话号码的字母组合 自己看到题目的第一想法 216.组合总和III&#xff1a;递归函数终止条件为搜索得到的数相加为n&…

Rust 和 Go 哪个更好?

在讨论 Rust 与 Go 两种编程语言哪种更优秀时&#xff0c;我们将探讨它们在性能、简易性、安全性、功能、规模和并发处理等方面的比较。同时&#xff0c;我们看看它们有什么共同点和根本的差异。现在就来看看这个友好而公平的对比。 Rust 和 Go 都是优秀的选择 首先&#xff…

OD试题(11)

文章目录 1.自守数2.等差数列3.输入整形数组和排序标识&#xff0c;对其元素按照升序或降序4. 字符统计5.记负均正II 1.自守数 描述&#xff1a;自守数是指一个数的平方的尾数等于该数自身的自然数。例如&#xff1a;25^2 625&#xff0c;76^2 5776&#xff0c;9376^2 8790…

ssh远程访问windows系统下的jupyterlab

网上配置这一堆那一堆&#xff0c;特别乱&#xff0c;找了好久整理后发在这里 由于既想打游戏又想做深度学习&#xff0c;不舍得显卡性能白白消耗&#xff0c;这里尝试使用笔记本连接主机 OpenSSH 最初是为 Linux 系统开发的&#xff0c;现在也支持包括 Windows 和 macOS 在内…

【JAVA项目】基于SSM的【寝室管理系统设计】

技术简介&#xff1a;采用B/S架构、ssm 框架和 java 开发的 Web 框架&#xff0c; eclipse开发工具。 系统简介&#xff1a;寝室管理设计的主要使用者分为管理员、宿舍长和学生&#xff0c;实现功能包括管理员权限&#xff1a;首页、个人中心、学生管理、宿舍号管理、宿舍长管理…

链舞算法谱---链表经典题剖析

前言&#xff1a;探究链表算法的奥秘&#xff0c;解锁编程新世界&#xff01; 欢迎来到我的链表算法博客&#xff0c;这将是您深入了解链表算法&#xff0c;提升编程技能的绝佳机会。链表作为数据结构的重要成员之一&#xff0c;其动态性和灵活性在实现某些功能上发挥不可替代的…

生成树协议(STP,MSTP,RSTP)详解

目录 STP生成树协议 二层环路出现的原因&#xff1a; 二层环路引发的危害&#xff1a; stp生成树防环的基本思路&#xff1a; 802.1D生成树协议&#xff1a; 配置BPDU的报文结构&#xff1a; 配置BPDU中某些字段的解析&#xff1a; TCN BPDU报文格式&#xff1a; stp中…

Java中接口的默认方法

为什么要使用默认方法 当我们把一个程序的接口写完后 用其他的类去实现&#xff0c;此时如果程序需要再添加一个抽象方法的时候我们只有两种选择 将抽象方法写在原本的接口中 但是这样写会导致其他所有改接口的实现类都需要实现这个抽象方法比较麻烦 写另一个接口 让需要的实…

程序的机器级表示——Intel x86 汇编讲解

往期地址&#xff1a; 操作系统系列一 —— 操作系统概述操作系统系列二 —— 进程操作系统系列三 —— 编译与链接关系操作系统系列四 —— 栈与函数调用关系操作系统系列五 —— 目标文件详解操作系统系列六 —— 详细解释【静态链接】操作系统系列七 —— 装载操作系统系列…

VBA 拆分Excel中的各sheet为文件

一. 方式1 xlOpenXMLWorkbook&#xff1a;.xlsx格式的文件xlWorkbookDefault&#xff1a;当前Excel的格式(当前Excel是什么格式&#xff0c;被拆分出的sheet页所生成的文件就是什么格式)"\"&#xff1a;可以使用Application.PathSeparator代替 Sub 拆分工作表() 初…

基于肤色模型的人脸识别FPGA实现,包含tb测试文件和MATLAB辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 matlab2022a的测试结果如下&#xff1a; vivado2019.2的仿真结果如下&#xff1a; 将数据导入到matlab中&#xff0c; 系统的RTL结构图如下图所示…

多态的原理

前言:以下的内容均是在VS2019的环境中&#xff0c;32位平台下的 目录 1.多态的实现条件 虚函数重写的两个例外 一个题加深理解 总结 重载 重写 重定义区别 2.多态的实现原理 单继承 多继承 动态多态和静态多态 多态的好问题 1.多态的实现条件 虚函数&#xff1a;被…