Element Plus el-table 自定义合并行和列

原文链接:Element Plus el-table 自定义合并行和列

前言

目标效果是将表格行数据中某个属性值相同的项合并到一起,效果如下:

节点名称相同的合并

<el-table :data="tableData" :span-method="spanMethod" style="width: 100%"><el-table-column prop="StoAlias" label="节点名称" /><el-table-column prop="Name" label="存储池名称" /><el-table-column prop="Type" label="存储池类型" /><el-table-column prop="Capacity" label="总容量" /><el-table-column prop="Available" label="可用容量" /><el-table-column prop="Used" label="已使用容量" /><el-table-column prop="Status" label="状态" />
</el-table>
import type { TableColumnCtx } from 'element-plus'const tableData = [{ "Available": 0, "Capacity": 0, "Name": "test05", "Status": 0, "StoAlias": "test", "Type": 0, "Used": 0 },{ "Available": 0, "Capacity": 0, "Name": "test01", "Status": 0, "StoAlias": "169.254.218", "Type": 0, "Used": 0 },{ "Available": 0, "Capacity": 0, "Name": "tset03", "Status": 0, "StoAlias": "test", "Type": 1, "Used": 0 },{ "Available": 0, "Capacity": 0, "Name": "test02", "Status": 0, "StoAlias": "test03", "Type": 0, "Used": 0 },{ "Available": 0, "Capacity": 0, "Name": "test06", "Status": 0, "StoAlias": "test03", "Type": 0, "Used": 0 },{ "Available": 0, "Capacity": 0, "Name": "test04", "Status": 0, "StoAlias": "169.254.218", "Type": 0, "Used": 0 },{ "Available": 0, "Capacity": 0, "Name": "test07", "Status": 0, "StoAlias": "169.254.218", "Type": 1, "Used": 0 }
]let cellList: any[] = [] // 单元格数组
let count: number = 0 // 计数const computeCell = (tableList: any[]) => {cellList = []count = 0for (let i = 0; i < tableList.length; i++) {if (i === 0) {// 先设置第一项cellList.push(1); // 初为1,若下一项和此项相同,就往cellList数组中追加0count = 0; // 初始计数为0} else {if (tableList[i].StoAlias == tableList[i - 1].StoAlias) {cellList[count] += 1; // 增加计数cellList.push(0); // 相等就往cellList数组中追加0} else {cellList.push(1); // 不等就往cellList数组中追加1count = i; // 将索引赋值为计数}}}
}const sortArray = (x: any, y: any) => {if (x.StoAlias < y.StoAlias) { return -1 }else if (x.StoAlias > y.StoAlias) { return 1 }else { return 0 }
}interface SpanMethodProps {row: StoragePoolItemcolumn: TableColumnCtx<StoragePoolItem>rowIndex: numbercolumnIndex: number
}const spanMethod = ({rowIndex,columnIndex,
}: SpanMethodProps) => {computeCell(tableData.sort(sortArray))if (columnIndex === 0) {const fRow = cellList[rowIndex]const fCol = fRow > 0 ? 1 : 0return {rowspan: fRow, // 合并的行数colspan: fCol // 合并的列数,为0表示不显示}}
}

sortArray()此方法根据目标属性值(StoAlias)排序了。

点击 传送门 查看更多关于【el-table 合并行或列】的信息。

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

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

相关文章

Set up the compilation environment for ESP8266-RTOS-SDK using Git on Windows

Software to be installed&#xff1a; Git BashPython Environment&#xff0c;ESP8266 Master require Python v3 environment. Please check “add to PATH” while installing Open Git Bash&#xff0c;Enter a local disk&#xff0c;create an empty folder, enter the …

JVM常用参数

以下是 JVM 常用参数的配置 内存相关参数&#xff1a; -Xmx&#xff1a;指定 JVM 最大可用内存&#xff0c;例如 -Xmx2g 表示最大可用内存为 2GB。 -Xms&#xff1a;指定 JVM 初始内存大小&#xff0c;例如 -Xms512m 表示初始内存为 512MB。 -XX:MaxPermSize&#xff1a;指定…

Leap AI + Python 开发绘图应用

使用python语言&#xff0c;并借助Leap AI网站的api key&#xff0c;可以轻松实现AI绘图功能。使用时&#xff0c;用户只要输入prompt提示词&#xff0c;几秒钟之内服务器就能生成图片并返回图片的链接地址。开发人员可以利用这个功能开发个性化的绘图软件&#xff0c;或者整合…

Redis常见命令和使用示例

目录 1.使用官方文档学习redis 2.核心命令 SET GET 3.全局/通用命令 KEYS EXISTS DEL EXPIRE TTL TYPE 1.使用官方文档学习redis redis官网 点击搜索&#xff0c;输入&#xff0c;比如输入ping&#xff0c;会显示Commands,是一个命令&#xff0c;点击ping&#xff…

「深度学习之优化算法」(十二)水波算法

1. 水波算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读)   水波算法(Water wave optimization)是根据水波理论提出的优化算法。什么是水波理论?简单来说就是水波的宽度越小,其频率越高,频率与水波宽度的平方根成反比(具体细节我也不懂,物理方面的)。水波…

Spring AOP

Spring AOP &#x1f50e;定义&#x1f50e;AOP 的组成切面(Aspect)切点(Pointcut)通知(Advice)连接点(Join Point)总结 &#x1f50e;Spring AOPSpring AOP 的创建Spring AOP 的使用切点表达式Spring AOP 的实现原理 &#x1f50e;&#x1f338;&#x1f338;&#x1f338;完结…

报名开启 | DolphinDB 粉丝节,与你相约上海

作为量化爱好者&#xff0c;你是否在寻找更多志同道合的朋友&#xff1f; 作为技术达人&#xff0c;想探索因子挖掘、深度学习、AI领域的前沿技术&#xff1f; 7月22日 机会来了&#xff01; DolphinDB 首届线下粉丝节将于7月22日下午在上海举行&#xff01; 来现场&#xf…

面向对象进阶一(static,继承,多态)

面向对象进阶一 一、static二、继承2.1 继承的定义和特点2.2 继承内容、成员变量和成员方法的访问特点2.2.1继承内容2.2.2 成员变量的访问特点2.2.3 成员方法的访问方法、方法的重写 2.3 继承中构造方法的访问特点 三、this、super使用总结四、多态4.1 多态的基本概念4.2 多态调…

系统架构设计师-软件工程(4)

一、软件测试 1、软件测试类型&#xff08;动态测试 / 静态测试&#xff09; ● 动态测试【计算机运行】 &#xff08;1&#xff09;白盒测试法【结构测试】&#xff1a;主要用于单元测试阶段。 a&#xff1a;控制流测试【逻辑覆盖测试&#xff08;语句覆盖最弱&#…

PHY芯片的使用(三)在U-boot下网络PHY的移植

1、概述 以太网 PHY 驱动移植&#xff0c;主要包括 Linux、 u-boot 及设备树等三个方面标准框架下的移植。本文以裕太8511PHY为例展开说明。一般国产芯片厂商会提供在uboot/linux下PHY的驱动。在uboot/linux的PHY框架是有区别的&#xff0c;这点要注意。 YT8511 PHY 驱动的移…

【C语言初阶(14)】扫雷游戏(优化:标记地雷+自动展开)

文章目录 Ⅰ游戏规则Ⅱ 游戏实现思路Ⅲ 游戏实现步骤⒈菜单界面⒉创建棋盘① 创建两个棋盘② 防止数组越界 ⒊棋盘初始化⒋棋盘的打印⒌布置地雷⒍玩家排查雷实现步骤⒎计算 x&#xff0c;y 周围有多少雷⒏展开非雷区⒐标记地雷⒑取消标记 Ⅳ 模块化代码实现⒈test.c⒉game.h⒊…