纵向合并单元格——table

news2024/9/30 1:40:04

在这里插入图片描述

  • 将list数据处理成tableDate格式,id重复的数据,只有第一项有num字段(num是重复的个数)
  • 渲染表格,纵向合并第1、2、6列,id相同的合并
<template>
  <div>
    <el-table
      :data="tableData"
      :span-method="objectSpanMethod"
      border
      style="width: 60%; margin: 20px"
    >
      <el-table-column prop="id" label="ID" width="180"> </el-table-column>
      <el-table-column prop="num" label="num" width="180"> </el-table-column>
      <el-table-column prop="name" label="姓名"> </el-table-column>
      <el-table-column prop="amount1" label="数值 1(元)"> </el-table-column>
      <el-table-column prop="amount2" label="数值 2(元)"> </el-table-column>
      <el-table-column prop="amount3" label="数值 3(元)"> </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      list: [
        {
          id: "1",
          num: 3,
          car: [
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
          ],
          amount3: 3,
        },
        {
          id: "2",
          num: 2,
          car: [
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
          ],
          amount3: 3,
        },
        {
          id: "3",
          num: 1,
          car: [
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
          ],
          amount3: 3,
        },
        {
          id: "4",
          num: 4,
          car: [
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
            {
              name: "大萨达",
              amount1: 22,
              amount2: 1000,
            },
          ],
          amount3: 30,
        },
      ],
      tableData: [
        {
          id: "1",
          num: 3,
          name: "王小虎1",
          amount1: "234",
          amount2: "3.2",
          amount3: 10,
        },
        {
          id: "1",
          name: "王小虎2",
          amount1: "234",
          amount2: "3.2",
        },
        {
          id: "1",
          name: "王小虎3",
          amount1: "234",
          amount2: "3.2",
        },
        {
          id: "2",
          num: 2,
          name: "王小虎4",
          amount1: "165",
          amount2: "4.43",
          amount3: 12,
        },
        {
          id: "2",
          name: "王小虎5",
          amount1: "165",
          amount2: "4.43",
        },
        {
          id: "3",
          num: 1,
          name: "王小虎6",
          amount1: "324",
          amount2: "1.9",
          amount3: 9,
        },
        {
          id: "4",
          num: 4,
          name: "王小虎7",
          amount1: "621",
          amount2: "2.2",
          amount3: 17,
        },
        {
          id: "4",
          name: "王小虎8",
          amount1: "539",
          amount2: "4.1",
        },
        {
          id: "4",
          name: "王小虎9",
          amount1: "539",
          amount2: "4.1",
        },
        {
          id: "4",
          name: "王小虎10",
          amount1: "539",
          amount2: "4.1",
        },
      ],
    };
  },
  methods: {
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0 || columnIndex === 1 || columnIndex === 5) {
        if (row.num) {
          return { rowspan: row.num, colspan: 1 };
        } else {
          return { rowspan: 0, colspan: 0 };
        }
      }
      return { rowspan: 1, colspan: 1 };
    },
    flattenAndMerge(data) {
      const result = [];

      // 遍历原始数据
      data.forEach((item) => {
        // 提取公共字段
        const commonFields = {
          id: item.id,
          amount3: item.amount3,
        };

        // 遍历 car 数组
        item.car.forEach((carItem, index) => {
          // 复制公共字段
          const rowData = { ...commonFields };

          // 添加 car 数组中的字段
          rowData.name = carItem.name;
          rowData.amount1 = carItem.amount1;
          rowData.amount2 = carItem.amount2;

          // 如果是第一个元素,则保留 num 字段
          if (index === 0) {
            rowData.num = item.num;
          }

          result.push(rowData);
        });
      });

      return result;
    },
  },
  mounted() {
    this.tableData = this.flattenAndMerge(this.list);
    console.log(this.tableData);
  },
};
</script>

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

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

相关文章

力扣刷题--137. 只出现一次的数字 II【中等】

题目描述&#x1f357; 给你一个整数数组 nums &#xff0c;除某个元素仅出现 一次 外&#xff0c;其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 示例 1&#xff1a; 输入&am…

knime一行代码都不用写,就可以清洗数据,详细文字

knime数据清洗案例 最终效果 解决办法&#xff1a; 图文并茂的解决办法见我公众号&#xff1a;链接: knime一行代码都不用写&#xff0c;就可以清洗数据,详细步骤如下 具体使用的节点说明如下&#xff1a; 1、使用Excel Reader结节&#xff0c;将数据导入进来。 2.使用…

科技馆可视化系统:全新互动体验

通过图扑科技馆可视化平台&#xff0c;参观者可以体验互动式展示和虚拟现实展览&#xff0c;深入理解科学现象和技术创新&#xff0c;增强学习的趣味性和参与感。

HarmonyOS(52) 使用安全控件SaveButton保存图片

SaveButton使用简介 前言SaveButton简介约束与限制 实现点击事件全部源码 参考资料&#xff1a; 前言 在HarmonyOS(50) 截图保存功能实现一文中简单介绍了截图保存功能&#xff0c;本篇博文介绍一个更简单的保存图片控件SaveButton. SaveButton简介 SaveButton允许用户通过点…

全球财经动态:科技巨头风云再起,市场趋势显分化

一、美股大盘与债市动向 昨夜美股市场呈现分化格局&#xff0c;中概股表现强劲&#xff0c;而科技龙头英伟达却遭遇重挫。道指微涨&#xff0c;纳指小幅收跌&#xff0c;标普500指数则基本持平。美债收益率攀升&#xff0c;十年期国债收益率触及3.863%&#xff0c;市场避险情绪…

JavaWeb学习——原理篇学习

一、SpringBoot配置优先级 首先我们先知道三种SpringBoot支持的配置文件: 而当在一个Spring项目中&#xff0c;如果同时存在这三个配置文件&#xff0c;那么执行的优先级顺序应是&#xff1a; properties > yml > yaml 。 补充&#xff1a;属性配置 另外我们可以通过打包…

把http网站变成https

网站建设好后默认是HTTP网站&#xff0c;会被浏览器直接标注为不安全站点&#xff0c;甚至搜索引擎上也排名也不是那么出色。 HTTP协议是浏览网站和在线资源的基本协议。由于HTTP的连接未加密&#xff0c;因此往往不安全。HTTPS是默认HTTP协议的安全扩展。 访问HTTPS网站时&…

FFmpeg开发笔记(五十三)移动端的国产直播录制工具EasyPusher

EasyPusher是一款国产的RTSP直播录制推流客户端工具&#xff0c;它支持Windows、Linux、Android、iOS等操作系统。EasyPusher采用RTSP推流协议&#xff0c;其中安卓版EasyPusher的Github托管地址为https://github.com/EasyDarwin/EasyPusher-Android。 不过EasyPusher有好几年没…

DAG路径搜索优化性能提高百倍

问题描述&#xff1a; 从一个DAG图中给定的起点 begin_line 寻找一条路径到达给定的终点 end_line。 图的拓扑关系由 top 这个映射&#xff08;map<int64, vector<int64>>&#xff09;表示&#xff0c;每条边都有一个或多个邻接的后继。begin_line 和 end_line 都…

javax.imageio.IIOException: Not a JPEG file: starts with 0xff 0xd9

目录 问题描述&#xff1a; 解决思路&#xff1a; 问题出现的原因&#xff1a; 解决方法&#xff1a; 问题描述&#xff1a; 最近在用java做一个上传图像识别文字的功能&#xff0c;上传图像后报错。 接口返回&#xff1a; {"code": 500,"success":…

滚动懒加载升级版:添加滚动回收策略

在之前的1.0版本的基础上&#xff0c;添加滚动回收策略&#xff0c;保持页面只保留固定数量的数据&#xff0c;优化渲染 否则一直往数组里push内容&#xff0c;当数组长度过大&#xff0c;可能页面会崩溃&#xff08;本需求是日志列表&#xff0c;由于日志数据可能会非常庞大&…

C++入门基础知识41——【关于C++ 运算符——杂项运算符】

成长路上不孤单&#x1f60a;【14后&#xff0c;C爱好者&#xff0c;持续分享所学&#xff0c;如有需要欢迎收藏转发&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

URP custompasscustom render objects

https://dbbh666.blog.csdn.net/article/details/141296728?spm1001.2014.3001.5502 上一次 custom render pass的时候&#xff0c;直接是quad的渲染&#xff0c;如果想把任意对象绘制到FBO怎么写呢 参考这两个高手的文章&#xff0c;总结一下 https://www.bilibili.com/read…

换毛季猫咪化身掉毛怪,宠物浮毛如何清理?推荐用宠物空气净化器

我家现在有三只毛孩子&#xff0c;养宠的幸福是三倍&#xff0c;除毛的烦恼也是三倍。尤其还有两只是银渐层&#xff0c;掉毛量实在是太夸张了&#xff0c;衣服、地板、水杯家里到处都是。我也每天早晚都给它们梳毛&#xff0c;卫生也定期清理&#xff0c;可还是浮毛满天飞。 …

【前缀和】--- 初阶题目赏析

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 算法Journey 了解完一维和二维前缀和模板之后&#xff0c;我们来看几道题目感受前缀和的算法原理以及使用场景。 &#x1f3e0; 寻找数组的中心下标 &am…

多张图片拼接在线制作难吗?学会这招让拼接变得很简单

你是否曾遇到过这样的困境&#xff1f;手机里的照片堆积如山&#xff0c;想要在社交平台上分享&#xff0c;却发现限制多多&#xff0c;根本没办法一次性分享完所有的精彩瞬间。这真是让人既兴奋又苦恼的事情啊&#xff01; 记得上次旅行回来&#xff0c;我拍了一大堆照片&…

精益生产管理咨询师OS:我需要时间!!!

最近一位企业的老板和我聊起管理企业的问题&#xff1a;之前听说精益生产管理不错&#xff0c;就试着在企业推行精益生产管理&#xff0c;结果精益培训搞了一个多月, 课上完了,可总是感觉精益并没有在企业落地,反倒感觉越来越越迷茫了。还抱怨说请精益生产管理咨询师花了很多钱…

AI智能对话绘画二合一系统源码 输入文字就可以快速生成高清图片 带源代码包以及搭建部署教程

系统概述 AI 智能对话绘画二合一系统源码是一款集智能对话与绘画功能于一体的先进系统。它融合了人工智能、计算机视觉等多项技术&#xff0c;能够实现自然语言处理与图像生成的高度协同。 该系统通过对大量文本和图像数据的学习与训练&#xff0c;具备了理解用户意图、生成相…

智游剪辑1.7.0 发布

最近又简单给桌面版升级了一下&#xff0c;一起来看看有啥新功能吧 支持实时输出 之前的文字类功能一般都需要等一会才能给出完整结果&#xff0c;现在它支持实时显示输出结果了&#xff0c;不仅输出更快了&#xff0c;而且还可以实时看到效果 字幕生成功能优化 旧版的字幕生…

vscode开发uniapp项目教程

一&#xff0c;在HB编辑器中用命令行创建uniapp项目&#xff08;vitevue3TS) npx degit dcloudio/uni-preset-vue#vite-ts 项目名称注意&#xff1a;搭梯子在创建或者连手机网络创建&#xff0c;按官方提示的下载模板也行。 在HB编辑器中安装vue3插件 二&#xff0c;在vscod…