element-plus 表格-合并单元格

利用表格:span-method="" 方法实现合并单元格

合并前

合并后

重点代码generateIndexGroups ,找到合并的单元格的index号

代码实现如下

<template><h2>实现表格的合并</h2><div><!--  :span-method="arraySpanMethod" --><el-button type="primary" @click="testf">合并 </el-button><el-table:data="tableData"border:span-method="arraySpanMethod"style="width: 100%"@cell-click="cellClick"><el-table-columnalign="center"v-for="(item, index) in tabHeader":key="index":prop="item.prop":label="item.label":width="item.width"></el-table-column></el-table></div>
</template><script setup>
import { onMounted, reactive, ref } from "vue";
const tabHeader = [{ prop: "dept", label: "部门", width: 180 },{ prop: "name", label: "姓名" },{ prop: "area", label: "所属地" },
];const tableData = reactive([{dept: "部门1",name: "李1",area: "1",},{dept: "部门1",name: "李2",area: "1",},{dept: "部门1",name: "李3",area: "3",},{dept: "部门1",name: "李4",area: "2",},{dept: "部门2",name: "李1",area: "5",},{dept: "部门2",name: "李想3",area: "5",},{dept: "部门3",name: "李想33",area: "7",},
]);let mindexGroups = reactive([]);
let mnameGroups = reactive([]);
const merge = ref(false)onMounted(() => {mindexGroups = generateIndexGroups(tableData, ["dept"]);mnameGroups = generateIndexGroups(tableData, ["dept", "area"]);
});
function testf() {console.log(mindexGroups);merge.value = !merge.value;
}function arraySpanMethod({ row, column, rowIndex, columnIndex }) {if (merge.value != true){return;}//第0列if (columnIndex == 0) {for (let i = 0; i < mindexGroups.length; ++i) {if (rowIndex == mindexGroups[i].start) {return [mindexGroups[i].end - mindexGroups[i].start + 1, 1];}}return [0, 0];}//第2列if (columnIndex == 2) {for (let i = 0; i < mnameGroups.length; ++i) {if (rowIndex == mnameGroups[i].start) {return [mnameGroups[i].end - mnameGroups[i].start + 1, 1];}}return [0, 0];}
}function generateIndexGroups(data, field) {let tmp = data.map((i) => {let rstr = "";for (let j = 0; j < field.length; ++j) {rstr += "+" + i[field[j]];}console.log(i, rstr);return rstr;}); //排序return findIndexs(tmp);
}function findIndexs(array) {/* @params:数组return:一个包含重复序列,开始索引和结束索引的数组如:[{start:0;end:2},{start:3;end:5}]*/let current = array[0];let result = []; //返回结果let startIndex = 0;for (let i = 1; i < array.length; i++) {if (array[i] != current) {//if (startIndex == i -1) continue;result.push({ start: startIndex, end: i - 1 });current = array[i];startIndex = i;}}result.push({ start: startIndex, end: array.length - 1 });return result;
}
</script><style lang="scss" scoped></style>

参考:element-ui 合并行单元格,列-CSDN博客

element-ui 合并表格行_elementui表格合并行_nuise_的博客-CSDN博客

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

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

相关文章

项目出错汇总

java: 错误: 无效的源发行版&#xff1a;15 java: 无效的目标发行版: 17 四步加上这个,改一下

【diffuser系列】ControlNet

ControlNet: TL;DRControl TypeStableDiffusionControlNetPipeline1. Canny ControlNet1.1 模型与数据加载1.2 模型推理1.3 DreamBooth微调 2. Pose ControlNet2.1 数据和模型加载2.2 模型推理 ControlNet: TL;DR ControlNet 是在 Lvmin Zhang 和 Maneesh Agrawala 的 Adding …

gd32关于IO引脚配置的一些问题

一、gd32f103的PA15问题 1、 #define GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U) /*!< full SWJ(JTAG-DP SW-DP),but without NJTRST */ #define GPIO_SWJ_SWDPENABLE_REMAP ((uint32_t)0x00300200U) /*!< JTAG-DP disabled and SW-DP enab…

c语言:解决数组有关的删除,排序,合并等问题。

题目1&#xff1a;判断数组是否有序&#xff08;升序或者降序&#xff09; 思路和代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int a 0;scanf("%d", &a);int arr[50];int flag1 0;//是降序int flag2 0;//是升序…

Zabbix实现故障自愈

一、简介 Zabbix agent 可以运行被动检查和主动检查。 在被动检查模式中 agent 应答数据请求。Zabbix server&#xff08;或 proxy&#xff09;询求数据&#xff0c;例如 CPU load&#xff0c;然后 Zabbix agent 返还结果。 主动检查处理过程将相对复杂。Agent 必须首先从 Z…

Web之JavaScript(jQuery)笔记

Web之HTML、CSS、JavaScript 三、JavaScriptJS调试变量自定义函数数据类型及转换运算符优先级内置函数数组事件DOM(Document Object Model 文档对象模型)jQuery Web之HTML笔记 Web之CSS笔记 三、JavaScript JavaScript&#xff08;简称“JS”&#xff09;是一种轻量级的面向对…

关于缓存和数据库一致性问题的深入研究

如何保证缓存和数据库一致性&#xff0c;这是一个老生常谈的话题了。 但很多人对这个问题&#xff0c;依旧有很多疑惑&#xff1a; 到底是更新缓存还是删缓存&#xff1f;到底选择先更新数据库&#xff0c;再删除缓存&#xff0c;还是先删除缓存&#xff0c;再更新数据库&…

2023最新最全【内网渗透工具】零基础安装教程

1.1 简介 nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发&#xff0c;可支持任何tcp、udp上层协议&#xff08;访问内网网站、本地支付接口调试、ssh访问、远程桌面&#xff0c;内网dns解析等等……&#xff09;&#xff0c;此外还支持内网…

LeetCode(29)三数之和【双指针】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; 三数之和 1.题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复…

【Java SE】循环一些基本练习

判定一个数字是否是素数 public class Test {public static int is_sushu(int n) {if(n 1) {return 0;}int i ;for (i 2; i < Math.sqrt(n); i) {if(n % i 0 ) {break;}}if (i > n) {return 1;}return 0;}public static void main(String[] args) {Scanner scanner …

高效背单词——单词APP安利

大英赛&#xff0c;CET四六级&#xff0c;以及考研英语&#xff0c;都在不远的未来再度来临&#xff0c;年复一年的考试不曾停息&#xff0c;想要取得好成绩&#xff0c;需要我们的重视并赋予相应的努力。对于应试英语&#xff0c;词汇量是不可忽略的硬性要求。相比于传统默写&…