当前位置: 首页 > news >正文

纵向合并单元格——table

在这里插入图片描述

  • 将list数据处理成tableDate格式,id重复的数据,只有第一项有num字段(num是重复的个数)
  • 渲染表格,纵向合并第1、2、6列,id相同的合并
<template><div><el-table:data="tableData":span-method="objectSpanMethod"borderstyle="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>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python爬虫入门篇!
  • 【QNX+Android虚拟化方案】101 - Android GVM 虚拟网络 Virt-Net 配置
  • YOLOv9模型训练或测试过程中,无法打印模型的GFLOPs
  • shell脚本编程(数组)
  • 智能家居系统(基于STM32F103C8T6标准库+FreeRTOS+Qt串口开发实现)
  • 【系统架构设计师-2010年】综合知识-答案及详解
  • Java 7.3 - 分布式 id
  • QT教程:start()和startTimer()的区别
  • 第五章 Pytorch完成线性回归
  • 小白入门LLM大模型最牛X教程------上交《动手学大模型应用开发》!
  • 语音测试(一)ffmpeg视频转音频
  • 2024年全国大学生数学建模竞赛(A题) 建模解析|“板凳龙” 闹元宵|小鹿学长带队指引全代码文章与思路
  • OpenHarmony轻松玩转GIF数据渲染
  • 语言的自动类型
  • QueryWrapper中的or和and
  • 【5+】跨webview多页面 触发事件(二)
  • 2017 前端面试准备 - 收藏集 - 掘金
  • AHK 中 = 和 == 等比较运算符的用法
  • angular2开源库收集
  • Brief introduction of how to 'Call, Apply and Bind'
  • ES6--对象的扩展
  • Facebook AccountKit 接入的坑点
  • iOS 系统授权开发
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java2019面试题北京
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java的Interrupt与线程中断
  • Java新版本的开发已正式进入轨道,版本号18.3
  • JS函数式编程 数组部分风格 ES6版
  • Node项目之评分系统(二)- 数据库设计
  • Yeoman_Bower_Grunt
  • 闭包--闭包作用之保存(一)
  • 从输入URL到页面加载发生了什么
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 扑朔迷离的属性和特性【彻底弄清】
  • 区块链将重新定义世界
  • 实习面试笔记
  • 1.Ext JS 建立web开发工程
  • k8s使用glusterfs实现动态持久化存储
  • Python 之网络式编程
  • 通过调用文摘列表API获取文摘
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​Python 3 新特性:类型注解
  • #在 README.md 中生成项目目录结构
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (pycharm)安装python库函数Matplotlib步骤
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)Thymeleaf用法——Thymeleaf简介
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)jQuery 基础