element table表格行列合并span-method,根据数据动态行列合并

表格行列合并需要用到 table的方法 span-method

在这里插入图片描述

根据数据来进行动态的行列合并,实例如下:

 <el-table
      :data="tableData"
      :span-method="objectSpanMethod" 
      style="width: 100%">
      <el-table-column
        prop="key"
        label="分类"
        width="180">
      </el-table-column>
      <el-table-column
        prop="id"
        label="编号"
        width="180">
      </el-table-column>
      <el-table-column
        prop="name"
        label="名称">
      </el-table-column>
    </el-table>
let data = [
	{ key:'test1', id:0, name:'xxx' },
	{ key:'test1', id:1, name:'xxx' },
	{ key:'test2', id:2, name:'xxx' },
	{ key:'test1', id:3, name:'xxx' },
	{ key:'test2', id:4, name:'xxx' },
	{ key:'test1', id:5, name:'xxx' },
]

我们要根据 key 进行列合并,将test1合并到一起,test2合并到一起

//先处理数据
let one = data.filter(item => item.key === 'test1')
let two= data.filter(item => item.key === 'test2')

//保证test1 在一堆,test2在一堆
tableData = one.concat(two)

//列合并方法
objectSpanMethod =({ row, column, rowIndex, columnIndex })=>{
	const { key } = row
        // test1 使用 rowIndex作为开始
        // test2 采用rowIndex - test1 长度开始
        let last = rowIndex - one.length
        if (columnIndex === 0) { //判断是否是第一列
          if(key === 'test1'){ //判断合并项 R1 R2
             if (rowIndex % one.length === 0) {
              return {
                rowspan: one.length, // 需要合并的行数
                colspan: 1
              }
            }else{ //不在范围内 直接返回默认
              return {
                rowspan: 0,
                colspan: 0
              }
            }
          }else if(key === 'test2'){
            if(last % two.length === 0){
              return {
                rowspan: two.length, // 需要合并的行数
                colspan: 1
              }
           }else{
            return {
              rowspan: 0,
              colspan: 0
            }
           }
          }  
        }
}

我们根据 key 进行列合并,按照合并规则 id 为0 1 3 5的数据合并到 test1 中,id为2 4的数据合并到test2中

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JSON源码类学习

json源码学习 parse把json转换成Object parseObject转换为jsonObject parseArray从字符串数组解析成真正的数组 tojsonString把真正的json解析json 数组的方法 作用&#xff1a;类型转换 为什么要做类型转换 开发一个方法验证 这个方法先封装方法&#xff0c;是否为json …

成功解决“ImportError: cannot import name ‘mapping‘ from ‘collections‘”错误的全面指南

成功解决“ImportError: cannot import name ‘mapping’ from ‘collections’”错误的全面指南 成功解决“ImportError: cannot import name ‘mapping’ from ‘collections’”错误的全面指南 一、引言 在Python编程中&#xff0c;当我们尝试从某个模块中导入某个名称时&…

污水净化之旅:可视化技术揭秘城市“血液”的循环奥秘

在繁华的都市背后&#xff0c;有一个默默守护着我们的“肾脏”——污水处理厂。它悄无声息地处理着每天产生的污水&#xff0c;确保我们的生活环境洁净美好。但你知道这个“肾脏”是如何工作的吗&#xff1f;今天&#xff0c;就让我们一起走进污水处理的神秘世界&#xff0c;通…

手机改ip地址的软件怎么用

随着互联网的普及&#xff0c;我们的日常生活和工作已经离不开网络。然而&#xff0c;有时出于安全或隐私的需要&#xff0c;我们可能希望更改手机的IP地址。IP地址作为网络设备的标识&#xff0c;具有极高的敏感性&#xff0c;因此&#xff0c;如何安全、有效地更改手机IP地址…

Java使用Hutool工具类轻松生成验证码

&#x1f469;&#x1f3fd;‍&#x1f4bb;个人主页&#xff1a;阿木木AEcru &#x1f525; 系列专栏&#xff1a;《Docker容器化部署系列》 《Java每日面筋》 &#x1f4b9;每一次技术突破&#xff0c;都是对自我能力的挑战和超越。 目录 一、效果展示1.1 扭曲干扰的验证码1.…

使用pytorch构建ResNet50模型训练猫狗数据集

数据集 1.导包 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader from torchvision import datasets, transforms, models import numpy as np import matplotlib.pyplot as plt import os from tqdm.auto import t…

java期末突击

目录 1. 快速入门 2. 类 3. 成员方法 4. 构造器 5. 单例模式 6. 继承 7. 抽象类 8. 多线程&#xff08;Thread与Runnable&#xff09; 1. 快速入门 public class Hello {public static void main(String[] args){System.out.println("Hello,World&q…

开源项目的 README.md 这样写,hr 看了都心动

大家好&#xff0c;我是南城余。 最近在搞项目的开源 README.md 时&#xff0c;看到有的大佬的 README.md 前面都会有 badge 标识和多彩的 tag 标签。都看着超级高级&#xff0c;就想着也来实践下。 今天一篇文章带着大家个性化你的 README.md。如下图片&#xff1a; 这里我先…

【Linux】进程池

大致草稿 思维导图 学习目标 一、进程池的代码编写顺序 在进程池中&#xff0c;我们要创建多个子进程&#xff0c;并且对多个子进程和父进程建立管道的关系&#xff0c;确保父进程和子进程之间可以进行相互通信。 父进程就是master&#xff0c;而子进程就是work/slaver。大致…

低代码平台如何革新客户管理

引言 在当今快节奏的商业环境中&#xff0c;企业对于客户管理的需求日益增长。同时&#xff0c;随着技术的不断发展&#xff0c;低代码开发作为一种创新的软件开发方法正在逐渐崭露头角。低代码开发为企业提供了一种更快速、更灵活的方式来构建应用程序&#xff0c;使得传统的软…

烧脑的逻辑图又来了,精力绝对不是花费在做图上。

逻辑图设计之所以比较耗费精力&#xff0c;主要是因为它需要进行深入的思考和分析&#xff0c;以确保设计的逻辑正确、完整和可行。以下是一些可能导致逻辑图设计耗费精力的原因&#xff1a; 复杂性&#xff1a;逻辑图设计通常涉及到复杂的业务流程和系统架构。设计师需要理解各…

04-树5 Root of AVL Tree(浙大数据结构PTA习题)

04-树5 Root of AVL Tree 分数 25 作者 陈越 单位 浙江大学 An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more th…

VMware虚拟机安装Ubuntu-Server版教程(超详细)

目录 1. 下载2. 安装 VMware3. 安装 Ubuntu3.1 新建虚拟机3.2 安装操作系统 4. SSH方式连接操作系统4.1 好用的SSH工具下载&#xff1a;4.2 测试SSH连接 5. 开启root用户登录5.1 设置root用户密码5.2 传统方式切换root用户5.3 直接用root用户登录5.4 SSH启用root用户登录 6. 安…

Kali 我来了

Kali 我来了 1、官网下载2、修改密码3、开启SSH远程登录服务4、关闭kali图形化界面 1、官网下载 官方链接: https://www.kali.org/ 下载链接: https://cdimage.kali.org/kali-2024.1/kali-linux-2024.1-vmware-amd64.7z 解压后 直接导入 VmWare 就可使用可爱的小 Kali 了。 …

太阳能智能农业气象站:创新科技引领现代农业革命

TH-NQ14在科技日新月异的今天&#xff0c;现代农业正迎来一场由智能化、精准化、绿色化驱动的深刻变革。太阳能智能农业气象站作为这场变革的先锋力量&#xff0c;以其独特的优势和强大的功能&#xff0c;为现代农业的发展注入了新的活力&#xff0c;并引领着农业生产的未来趋势…

el-date-picker的使用,及解决切换type时面板样式错乱问题

这里选择器的类型可以选择日月年和时间范围&#xff0c;根据类型不同&#xff0c;el-date-picker的面板也展示不同&#xff0c;但是会出现el-date-picker错位&#xff0c;或者面板位置和层级等问题。 源代码&#xff1a; <el-selectv-model"dateType"placeholder&…

【漏洞复现】Check Point 安全网关任意文件读取漏洞(CVE-2024-24919)

0x01 产品简介 Check Point Security Gateways 是 Check Point Sofware 提供的一系列 网络安全Q解决方案。这些解决方案包括下一代防火墙(NGFW)、数据中心安全网关和 A1驱动的量子网关&#xff0c;旨在为企业提供针对复杂网络威胁的先进防护。它们通过集成的威胁防护、统的安全…

微信小程序 npm构建+vant-weaap安装

微信小程序&#xff1a;工具-npm构建 报错 解决&#xff1a; 1、新建miniprogram文件后&#xff0c;直接进入到miniprogram目录&#xff0c;再次执行下面两个命令&#xff0c;然后再构建npm成功 npm init -y npm install express&#xff08;Node js后端Express开发&#xff…

初出茅庐的小李博客之使用立创开发板(ESP32)连接到EMQX Platform【MQTT TLS/SSL 端口连接】

介绍 手上有一块立创开发板&#xff0c;本着不吃灰的原则把它用起来&#xff0c;今天就来用它来连接上自己部署的MQTT服务器进行数据通信。 硬件&#xff1a;立创开发板 开发环境&#xff1a;Arduino IDE Win11 MQTT 平台&#xff1a;EMQX Platform 立创开发板介绍&#xff1…

ChatGPT AI专题资料合集【65GB】

介绍 ChatGPT & AI专题资料合集【65GB】 &#x1f381;【七七云享】资源仓库&#xff0c;海量资源&#xff0c;无偿分享√