el-table自定义合并表格

news2024/11/17 7:25:04

前沿 :

        为了更好的展示数据,很多地方用到表格合并,但是element文档里面没有好的合并方法,只能自定义合并表格来解决需求。于是乎,写了以下方法,方面以后拿来即用。

 

自定义合并表格

 表格数据

 tableData: [
        {
          id: "1",
          date: "2016-05-03",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
          articleNumber: 10,
          zipNumber: 15,
        },
        {
          id: "1",
          date: "2016-05-02",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
          articleNumber: 10,
          zipNumber: 15,
        },
        {
          id: "2",
          date: "2016-05-04",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
          articleNumber: 10,
          zipNumber: 15,
        },
        {
          id: "3",
          date: "2016-05-01",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
          articleNumber: 10,
          zipNumber: 15,
        },
        {
          id: "3",
          date: "2016-05-08",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
          articleNumber: 10,
          zipNumber: 15,
        },
        {
          id: "3",
          date: "2016-05-06",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
          articleNumber: 10,
          zipNumber: 15,
        },
        {
          id: "4",
          date: "2016-05-07",
          name: "王小虎",
          province: "上海",
          city: "普陀区",
          address: "上海市普陀区金沙江路 1518 弄",
          zip: 200333,
          articleNumber: 10,
          zipNumber: 15,
        },
      ],

 计算每行需要合并的数量


  // 计算每行需要合并的数量   tableData为请求获取的表格数据源
  getSpanArr() {
    this.spanArr = [];
    for (let i = 0; i < this.tableData.datalist.length; i++) {
      if (i === 0) {
        this.spanArr.push(1);
        this.pos = 0;
      } else {
        // 判断当前元素与上一个元素的ID是否相同
        if (this.tableData.datalist[i].productId === this.tableData.datalist[i - 1].productId) {
          this.spanArr[this.pos] += 1;
          this.spanArr.push(0);
        } else {
          this.spanArr.push(1);
          this.pos = i;
        }
      }
    }

getSpanArr 方法:这个方法用于计算每一行需要合并的数量,并存储在 spanArr 数组中。使用 productId 来判断当前行是否与前一行相同,如果相同则增加合并数量,否则重置合并计数。

 

 // 根据列索引和 spanArr 中的值来确定单元格的 rowspan 和 colspan 

支持不合并的列,增加判断条件即可,如:不合并第五列 :  columnIndex !== 5 


  // 根据列索引和 spanArr 中的值来确定单元格的 rowspan 和 colspan
  objectSpanMethod({ row, column, rowIndex, columnIndex }) {
    // 页面列表上 表格合并行 -> 第几列(从0开始)
    // 需要合并多个单元格时 依次增加判断条件即可
    if (columnIndex !== 4 && columnIndex !== 5 && columnIndex !== 6) { 
      const _row = this.spanArr[rowIndex];
      const _col = _row > 0 ? 1 : 0;
      return {
        rowspan: _row,
        colspan: _col
      };
    } else {
      return false;
    }

 objectSpanMethod 方法: 这个方法根据列索引和 spanArr 中的值来确定单元格的 rowspan 和 colspan,从而实现表格行的合并。 我这里的需求是排除第4、5和6列的合并(基于0索引),其他列根据 spanArr 来设置合并属性。

// 异步获取数据并调用 getSpanArr 进行行合并计算

 getDataList() {
    //。。。。。
    this.tableData = res;
    //中间获取列表数据
    this.getSpanArr();
}

 附上效果图

 

🍉🍉🍉教程结束,觉得有帮助帮忙点个👍收藏关注,即拿即用,支持一下~

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

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

相关文章

图片怎么裁剪中间部分?这几种裁剪方法每个人都学的会!

图片怎么裁剪中间部分&#xff1f;在数字生活的广阔图景中&#xff0c;图片裁剪作为一项基本技能&#xff0c;其重要性日益凸显&#xff0c;这一操作不仅是对图像边界的精准界定&#xff0c;更是通往个性化表达与标准化应用的桥梁。从日常社交媒体的瞬间分享&#xff0c;到专业…

多模态工业异常检测算法整理

本文统计了MVTec 3D-AD上的多个多模态异常检测算法&#xff0c;仅对比其I-AUROC指标。数据的来源为多模态工业异常检测Benchmark | Ziuch の Blog&#xff0c;这位博主经常分享很多工业异常检测的优秀博文&#xff0c;质量很高。 MVTec 3D-AD相关的异常检测算法包含3大类&#…

智慧公厕系统,重塑公共卫生间新生态@卓振思众

在快节奏的现代生活中&#xff0c;公共卫生间作为城市基础设施的重要组成部分&#xff0c;其管理效率和使用体验直接关系到市民的生活质量。近年来&#xff0c;随着科技的飞速发展&#xff0c;智慧卫生间系统应运而生&#xff0c;以其智能化、便捷化的特点&#xff0c;正逐步改…

低代码用户中心的构建与应用

引言 在现代软件开发中&#xff0c;低代码平台因其高效、灵活、用户友好的特性而逐渐受到青睐。特别是在用户中心的构建方面&#xff0c;低代码平台能够显著提升开发效率&#xff0c;降低开发成本。本文将探讨如何利用低代码平台构建一个高效的用户中心&#xff0c;并分享一些…

树形dp + 位运算 + 差分,MC0362 异或

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 码题集OJ-异或 (matiji.net) 二、解题报告 1、思路分析 考虑每个结点u&a…

工作 6 年,@Transactional 注解用的一塌糊涂

接手新项目一言难尽&#xff0c;别的不说单单就一个 Transactional 注解用的一塌糊涂&#xff0c;五花八门的用法&#xff0c;很大部分还失效无法回滚。 有意识的在涉及事务相关方法上加Transactional注解&#xff0c;是个好习惯。不过&#xff0c;很多同学只是下意识地添加这个…

Redis的ZSet底层数据结构

一、ZSet底层数据结构 typedef struct zset{// 跳表zskiplist *zsl;// 字典dict *dic; }zset类型的底层数据结构是由压缩列表或跳表、**字典&#xff08;哈希表&#xff09;**实现的。 如果zset中元素个数小于128个&#xff0c;并且每个元素的值小于64字节时&#xff0c;redi…

Prompt提示词如何写才能发挥大语言模型LLM的最大潜力

提示词 提示工程学是一门相对较新的学科&#xff0c;用于开发和优化提示&#xff0c;以便高效地利用语言模型&#xff08;LM&#xff09;来进行各种应用和研究主题。提示工程技能有助于更好地了解大型语言模型&#xff08;LLM&#xff09;的能力和限制。研究人员使用提示工程来…

错误处理与日志记录:在自动化脚本中实施的有效策略

目录 引言 错误处理机制 1. 异常捕获与处理 2. finally子句 3. 异常信息的打印输出 日志记录 1. 使用logging模块 基本配置 日志级别 日志回滚 2. 自定义日志格式 3. 多处理器和过滤器 实践案例 自动化测试中的错误处理与日志记录 脚本示例 结论 在自动化测试领…

载流子的产生与复合

文章目录 前言有三种形式能够产生载流子 前言 半导体中能贡献导电作用的电子和空穴称为载流子 有三种形式能够产生载流子 热激发&#xff08;本征激发&#xff09;&#xff1a;价带中的电子受到热激发可能会跃迁至导带&#xff0c;成为能够起导电作用的电子&#xff0c;同时对…

给自己复盘用的tjxt笔记day12第一部分

优惠券使用 优惠券规则定义 对优惠券的下列需求: 判断一个优惠券是否可用,也就是检查订单金额是否达到优惠券使用门槛 按照优惠规则计算优惠金额,能够计算才能比较并找出最优方案 生成优惠券规则描述,目的是在页面直观的展示各种方案,供用户选择 因此,任何一张优惠券都…

SpringWeb 重定向

现在前端后分离&#xff1a;如何确认是跳转到前端页面还是后端的方法呢&#xff1f;RedirectView&#xff1a;重定向如何区分重定向的是前端页面还是后端的一个controller呢 先看下&#xff1a;SpringBoot系列教程web篇之重定向-阿里云开发者社区 ## 根据浏览器中返回的状态码…

vue3中,vue-echarts基本使用(关系图、知识图谱、柱状图、饼图、折线图)

vue3 安装vue-echarts npm i -S vue-echarts echarts//cnpm 安装 cnpm i -S vue-echarts echartsvue2 注意:Vue 2 下使用 vue-echarts,必须还要安装 @vue/composition-api : npm i -D @vue/composition-api //cnpm 安装 cnpm i -D @vue/composition-api main.js中全局注册…

【支付】PayPal支付通道注册(中国大陆、香港)

PayPal支付通道分个人版和企业版&#xff0c;在注册和功能以及收费上都有所区别&#xff0c;如果在测试阶段个人版也有sandbox账户&#xff08;包括Client ID和Secret&#xff09;&#xff0c;如果要切换到生产环境&#xff0c;会让你升级为企业版&#xff0c;只有企业版才可以…

华清远见元宇宙实验中心,开启嵌入式、物联网与人工智能教学新篇章

2024年8月23日&#xff0c;在北京举行的“匠心服务智启新程”2025新品发布会上&#xff0c;华清远见教育科技集团向行业展示了其最新的科技成果。其中最引人注目的焦点之一&#xff0c;莫过于元宇宙实验中心的发布。 正值华清远见教育科技集团20周年的里程碑时刻&#xff0c;这…

【零知识证明】构建第一个zk

1 必要步骤 视频学习&#xff1a;5. Circcom 中的基本算术电路_哔哩哔哩_bilibili 文字学习&#xff1a;https://hackmd.io/YlNLZS2ESI21OSqdTW_mPw/S1jqN-h80/edit 第五课&#xff0c;circom实践&#xff0c;需要安装 1 vscode 2 rust&#xff1a;Windows安装Rust环境&…

深入了解 ThinkSNS:开源社交网络系统的强大力量

深入了解 ThinkSNS&#xff1a;开源社交网络系统的强大力量 一、概述 在如今的互联网时代&#xff0c;社交网络已成为人们生活中不可或缺的一部分。无论是企业还是个人开发者&#xff0c;都可能需要构建一个功能强大的社交平台。而在众多的解决方案中&#xff0c;ThinkSNS 脱颖…

MySQL数据库用户管理和授权

一、数据库用户管理 1. 创建用户 要创建新用户&#xff0c;可以使用 CREATE USER 语句。语法如下&#xff1a; CREATE USER 用户名来源地址 [IDENTIFIED BY [PASSWORD] 密码];用户名&#xff1a;指定要创建的用户名。来源地址&#xff1a;指定用户可以从哪些主机登录&#x…

【科研】如何查询导师的国家自然科学基金

国家自然科学基金查询工具 下拉则可以看到国自然基金 点进去可以看到相关的成果

【鸿蒙开发从0到1 day02】

css初体验 一.css引入方式二. 标签选择器三.类选择器四. id选择器五.通配符选择器六.画盒子七.文字控制属性八.水平对齐方式-图片九.文本修饰线十.文字颜色取值十一.调试工具十二.复合选择器十三.伪类选择器十四.css的特性十五.背景图十六.背景图位置十七.背景图的缩放十八.标签…