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

vue3中el-table实现多表头并表格合并行或列

1、el-table中添加事件 :span-method="genderSpanCity"
<el-table :span-method="genderSpanCity":data="data.tableData":fit="true" table-layout="fixed" header-align="center" stripestyle="width:100%;height: 96%;":cell-style="{borderColor:'#aaa'}":header-cell-style="{color:'#000',textAlign:'center',borderColor:' #CCC',background:'#f9f9f9',height:'50px'}"v-else><el-table-column :label="$t('wms.dailyProduct')" align="center" height="70px"><el-table-column><el-table-column prop="process" :label="$t('mes.workingProcedure')" width="100" align="center"/><el-table-column prop="item" width="130"/><el-table-column prop="item2" width="150"/></el-table-column><!--二级标题日期--><el-table-column v-for="(name,index) in data.title" :key="name" :label="name" align="center"><!-- 三级标题--><el-table-column v-for="column in data.tableColumns" :key="column.prop":prop="column.prop":label="column.label" align="center"><template #default="scope">{{ scope.row.custom.length > 0 ? scope.row.custom[index][column.prop] : scope.row.custom[column.prop] }}</template></el-table-column></el-table-column></el-table-column></el-table>
2、js添加函数
// 合并列
const genderSpanCity = ({row,column,rowIndex,columnIndex
}) => {// 合并前4行的2列与3列for (let i = 0; i < 13; i++) {if (columnIndex === 1 && rowIndex === i) {return {rowspan: 1,colspan: 2}} else if (columnIndex === 2 && rowIndex === i) {return {rowspan: 0,colspan: 0}}}// 合并第4行以后的数据for (let i = 4; i < data.tableData.length; i++) {if (columnIndex > 3 && columnIndex % 2 === 0 && rowIndex === i) {return [1, 3]} else if (columnIndex >= 3 && columnIndex % 2 === 1 && rowIndex === i) {return [0, 0]}}// 合并前两列的数据if (columnIndex === 0 || columnIndex === 1) {// 获取当前单元格的值const currentValue = row[column.property]// 获取上一行相同列的值const preRow = data.tableData[rowIndex - 1]const preValue = preRow ? preRow[column.property] : null// 如果当前值和上一行的值相同,则将当前单元格隐藏if (currentValue === preValue) {return {rowspan: 0,colspan: 0}} else {// 否则计算当前单元格应该跨越多少行let rowspan = 1for (let i = rowIndex + 1; i < data.tableData.length; i++) {const nextRow = data.tableData[i]const nextValue = nextRow[column.property]if (nextValue === currentValue) {rowspan++} else {break}}return {rowspan,colspan: 1}}}
}
效果图为
3、数据格式参考:

const data = reactive({// tableData: [//   {//     process: '混料',//     item: '11CAAF02/碳酸钙',//     item2: '11CAAF02/碳酸钙',//     custom: '{"本周/This Week": 1, "上周/Last Week": "哈哈哈"}'//   }, {//     process: '混料',//     item: '11PVAF03/5型树脂',//     item2: '11PVAF03/5型树脂',//     custom: '{"本周/This Week": 1 }'//   }, {//     process: '混料',//     item: '11PVAF04/7型树脂',//     item2: '11PVAF04/7型树脂',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   }, {//     process: '混料',//     item: '4330AF01/回料',//     item2: '4330AF01/回料',//     custom: '{"本周/This Week": 1 }'//   },//   {//     process: '挤出',//     item: '产出总托数',//     item2: '产出总托数',//     custom: '{"本周/This Week": 1 }'//   }, {//     process: '挤出',//     item: 'RGV调度次数',//     item2: 'RGV调度次数',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   }, {//     process: '挤出',//     item: 'ng板数量',//     item2: 'ng板数量',//     custom: '{"本周/This Week": 1, "上周/Last Week": "哈哈哈"}'//   }, {//     process: '挤出',//     item: '养生区ng板数量',//     item2: '养生区ng板数量',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   },//   {//     process: '',//     item: '',//     item2: '',//     custom: ''//   }, {//     process: '贴合',//     item: '发泡板',//     item2: '投料记录',//     custom: '{"本周/This Week": 1, "上周/Last Week": "哈哈哈"}'//   }, {//     process: '贴合',//     item: '发泡板',//     item2: 'RGV调度次数',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   }, {//     process: '贴合',//     item: '上基材',//     item2: '投料记录',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   }, {//     process: '贴合',//     item: '上基材',//     item2: '上料扫码次数',//     custom: '{"本周/This Week": 1}'//   }, {//     process: '贴合',//     item: '码垛',//     item2: '产出记录',//     custom: '{"本周/This Week": 1, "上周/Last Week": "哈哈哈"}'//   }, {//     process: '贴合',//     item: '码垛',//     item2: 'RGV调度次数',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   }, {//     process: '贴合',//     item: '汇总数量',//     item2: '发泡板',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   }, {//     process: '贴合',//     item: '汇总数量',//     item2: '上基材',//     custom: '{"本周/This Week": 1}'//   },//   {//     process: '',//     item: '',//     item2: '',//     custom: ''//   }, {//     process: '锯开检',//     item: '贴合大张',//     item2: '投料记录',//     custom: '{"本周/This Week": 1}'//   }, {//     process: '锯开检',//     item: '贴合大张',//     item2: 'RGV调度次数',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   }, {//     process: '锯开检',//     item: 'CCD',//     item2: '前光电1计数',//     custom: '{"本周/This Week": 1}'//   }, {//     process: '锯开检',//     item: 'CCD',//     item2: '前光电2计数',//     custom: '{"本周/This Week": 1, "上周/Last Week": "哈哈哈"}'//   }, {//     process: '锯开检',//     item: 'CCD',//     item2: '后光电计数',//     custom: '{"本周/This Week": 1, "其他/Other": "哈哈哈"}'//   }, {//     process: '锯开检',//     item: '汇总数量',//     item2: '贴合大张',//     custom: '{"本周/This Week": 1}'//   }, {//     process: '锯开检',//     item: '汇总数量',//     item2: 'CCD产出',//     custom: '{"本周/This Week": 1}'//   },//   {//     process: '',//     item: '',//     item2: '',//     custom: ''//   }, {//     process: 'PE',//     item: '汇总数量',//     item2: '投入',//     custom: '{"本周/This Week": 1, "上周/Last Week": "哈哈哈"}'//   }, {//     process: 'PE',//     item: '汇总数量',//     item2: '产出',//     months: '9月1日',//     custom: '{"本周/This Week": 1 }'//   },//   {//     process: '',//     item: '',//     item2: '',//     custom: ''//   }, {//     process: '打包',//     item: '汇总数量',//     item2: '投入',//     custom: '{"本周/This Week": 1, "上周/Last Week": "哈哈哈"}'//   }, {//     process: '打包',//     item: '汇总数量',//     item2: '产出',//     custom: '{"本周/This Week": 1 }'//   }// ], // 表头数据tableColumns: [],propArr: [],title: [],tableData: []
})

相关文章:

vue3中el-table实现多表头并表格合并行或列

1、el-table中添加事件 :span-method"genderSpanCity" <el-table :span-method"genderSpanCity":data"data.tableData":fit"true" table-layout"fixed" header-align"center" stripestyle"width:100%;he…...

HTML+CSS+JS制作中国传统节日主题网站(内附源码,含5个页面)

一、作品介绍 HTMLCSSJS制作一个中国传统节日主题网站&#xff0c;包含首页、节日介绍页、民俗文化页、节日活动页、联系我们页等5个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部横幅区 包含传统中国风格的网站标题中国传统…...

时空笔记:CBEngine(微观交通模拟引擎)

CBEngine 是一个微观交通模拟引擎&#xff0c;可以支持城市规模的道路网络交通模拟。CBEngine 能够快速模拟拥有数千个交叉路口和数十万辆车辆的道路网络交通。 以下内容基本翻译自CBEngine — CBLab 1.0.0 documentation 1 模拟演示 1.0 模拟演示结构 config.cfg 定义了 roa…...

【LeetCode】力扣刷题热题100道(26-30题)附源码 轮转数组 乘积 矩阵 螺旋矩阵 旋转图像(C++)

目录 1.轮转数组 2.除自身以外数组的乘积 3.矩阵置零 4.螺旋矩阵 5.旋转图像 1.轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 class Solution { public:void rotate(vector<int>& nums, int k) …...

【C++】字符串的 += 和 + 运算详解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;1. 字符串的 和 基本用法1.1 的用法1.2 的用法 &#x1f4af;2. 示例代码的剖析与解释代码分析 &#x1f4af;3. 底层实现与性能分析3.1 的实现原理3.2 的实现原理3.…...

多模态大模型部署:结合dify

文章目录 前言minicpm-vDify测试一下总结部署过程回顾集成与测试实验结果分析展望未来 前言 上回说道&#xff0c;我们用ollama部署了一个多模态的大模型&#xff0c;也就是minicpm-v&#xff1a; 但这玩意儿感觉只能打字啊。 怎么给它发图片呢&#xff1f; minicpm-v Mini…...

Matlab Steger提取条纹中心(非极大值抑制)

文章目录 一、简介二、实现代码三、实现效果一、简介 由于在确定条纹的ROI区域之后,会计算出多个条纹中心坐标,因此这里就需要对其进行则优选择,毕竟条纹只有一条,这最简单的方式就是使用非极大值抑制,即选择每一行/列最好的条纹中心。 二、实现代码 Hessian2D.m function…...

springboot + vue+elementUI图片上传流程

1.实现背景 前端上传一张图片&#xff0c;存到后端数据库&#xff0c;并将图片回显到页面上。上传组件使用现成的elementUI的el-upload。、 2.前端页面 <el-uploadclass"upload-demo"action"http://xxxx.xxx.xxx:9090/file/upload" :show-file-list&q…...

LabVIEW 系统诊断

LabVIEW 系统诊断是指通过各种工具和方法检测、评估、分析和解决 LabVIEW 程序和硬件系统中可能存在的故障和性能问题。系统诊断不仅涵盖软件层面的调试与优化&#xff0c;还包括硬件交互、数据传输、实时性能等方面的检查和分析。一个成功的系统诊断能够显著提升LabVIEW应用程…...

韩国机场WebGIS可视化集合Google遥感影像分析

目录 前言 一、相关基础数据介绍 1、韩国的机场信息 2、空间数据准备 二、Leaflet叠加Google地图 1、叠加google地图 2、空间点的标记及展示 3、韩国机场空间分布 三、相关成果展示 1、务安国际机场 2、有同类问题的机场 四、总结 前言 12月29日8时57分左右务安国际机…...

springCloudGateWay使用总结

1、什么是网关 功能: ①身份认证、权限验证 ②服务器路由、负载均衡 ③请求限流 2、gateway搭建 2.1、创建一个空项目 2.2、引入依赖 2.3、加配置 3、断言工厂 4、过滤工厂 5、全局过滤器 6、跨域问题...

使用new Vue创建Vue 实例并使用$mount挂载到元素上(包括el选项和$mount区别)

new Vue({...}) 是创建一个新的 Vue 实例的方式。你可以通过传递一个选项对象来配置这个实例。常见的选项包括&#xff1a; •data&#xff1a;定义组件的数据属性。 •el&#xff1a;指定 Vue 实例应该挂载到哪个 DOM 元素上&#xff08;通常是一个选择器字符串&#xff0c;如…...

GTX750Ti打DP补丁

背景 咸鱼收了一个二手的GTX750Ti,用于4K60Hz显示器,HDMI接口勉强可以4K60Hz,不过色彩和帧率都不是太正常,理论上它的HDMI接口是不支持的,原本也是打算用DP接口接显示器的,但是发现接DP口之后无法通过bios的vga检测最终一直重启,在华硕B760-K的BIOS中使能CSM是可以使用…...

springmvc前端传参,后端接收

RequestMapping注解 Target({ElementType.METHOD, ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented Mapping public interface RequestMapping {String name() default "";AliasFor("path")String[] value() default {};AliasFor(&quo…...

PyTorch 张量的分块处理介绍

分块处理是将大型张量分解成较小的块&#xff0c;以便更高效地进行计算&#xff0c;减少内存占用&#xff0c;特别适用于处理超大张量的场景&#xff08;如深度学习中的大批量数据或大型模型训练&#xff09;。 PyTorch 提供了多种方法来分块张量&#xff0c;包括 chunk、spli…...

在Ubuntu中使用systemd设置后台自启动服务

引言 在Ubuntu系统中&#xff0c;systemd 是一个非常强大的系统和服务管理器。它不仅负责系统的启动和初始化&#xff0c;还可以帮助我们管理各种后台服务。通过使用 systemd&#xff0c;我们可以轻松地设置服务在系统启动时自动运行&#xff0c;并且能够方便地管理服务的启动…...

mongodb清理删除历史数据

批量清理mongodb历史数据 清理程序的原来 目前项目组上很多平台上线历史数据积压&#xff0c;导致入库查询数据缓慢&#xff0c;历史数据有些已经归档&#xff0c;进行历史数据清理删除。 之前临时写shell脚本&#xff0c;太简陋&#xff0c;重新使用Python进行改造&#xff0c…...

C++字体库开发之字体回退策略十六

回退表 { "blocks": [ "UBLOCK_BASIC_LATIN", ], "font": { "family": "Noto Sans SC", "style": [ { "name": "Thin", …...

IO进程day3

一、思维导图 二、作业1 使用C语言编写一个简易的界面&#xff0c;界面如下 1&#xff1a;标准输出流 2&#xff1a;标准错误流 3&#xff1a;文件流 要求&#xff1a;按1的时候&#xff0c;通过printf输出数据&#xff0c;按2的时候&#xff0c;通过perror输出数据&#xff0c…...

【多线程初阶篇¹】线程理解| 线程和进程的区别

目录 一、认识线程Thread 1.为啥引入线程 2.线程理解 &#x1f525; 3.面试题&#xff1a;线程和进程的区别 一、认识线程Thread 1.为啥引入线程 为了解决进程太重量的问题 解释&#xff08;为什么说线程比进程更轻量&#xff1f;/为什么说线程创建/销毁开销比进程小&#…...

Phi-3-mini-4k-instruct-gguf GPU算力优化:q4 GGUF模型在消费级显卡上的表现

Phi-3-mini-4k-instruct-gguf GPU算力优化&#xff1a;q4 GGUF模型在消费级显卡上的表现 1. 模型概述 Phi-3-mini-4k-instruct-gguf 是微软Phi-3系列中的轻量级文本生成模型GGUF版本&#xff0c;专为问答、文本改写、摘要整理和简短创作等场景优化。这个经过量化的q4 GGUF模型…...

告别复杂配置!Qwen3-ASR-0.6B一键部署教程,Gradio界面超简单

告别复杂配置&#xff01;Qwen3-ASR-0.6B一键部署教程&#xff0c;Gradio界面超简单 1. 快速了解Qwen3-ASR-0.6B Qwen3-ASR-0.6B是一款强大的语音识别模型&#xff0c;支持52种语言和方言的识别能力。相比传统语音识别系统需要复杂的配置和调优&#xff0c;这个模型提供了开箱…...

html 列表和表格的使用

1&#xff1a;列表是以结构化&#xff0c;易读性更强的方式提供信息的方法&#xff0c;我们学习了有序列表和无序列表。有序列表特点是有先后顺序&#xff0c;用数字&#xff0c;字母或数字标记&#xff0c;适合步骤&#xff0c;排名&#xff0c;流程&#xff0c;核心标签<o…...

Tubular部署与配置教程:从源码编译到F-Droid发布的完整流程

Tubular部署与配置教程&#xff1a;从源码编译到F-Droid发布的完整流程 【免费下载链接】Tubular A fork of NewPipe that implements SponsorBlock and ReturnYouTubeDislike. 项目地址: https://gitcode.com/gh_mirrors/tu/Tubular Tubular是一款基于NewPipe开发的增强…...

ML.NET跨平台开发终极指南:machinelearning-samples Linux与macOS部署详解

ML.NET跨平台开发终极指南&#xff1a;machinelearning-samples Linux与macOS部署详解 【免费下载链接】machinelearning-samples Samples for ML.NET, an open source and cross-platform machine learning framework for .NET. 项目地址: https://gitcode.com/gh_mirrors/m…...

LFM2.5-1.2B-Thinking-GGUF真实案例分享:边缘终端10秒内完成技术概念解释

LFM2.5-1.2B-Thinking-GGUF真实案例分享&#xff1a;边缘终端10秒内完成技术概念解释 1. 模型简介与核心优势 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型&#xff0c;专为低资源环境优化设计。这个1.2B参数的模型采用GGUF格式&#xff0c;能够在边缘计算…...

告别论文 “红标警告”!Paperxie 四大降重降 AIGC 功能:让本科生毕业通关率飙升

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/weight?type1https://www.paperxie.cn/weight?type1 一、 论文人的崩溃瞬间&#xff1a;查重红了&#xff0c;AIGC 标了&#xff0c;答辩悬了 你有没有过这样的经历&#…...

从零搭建一套生产可用的K8S日志监控栈:EFK/ELK保姆级配置与避坑指南

从零搭建一套生产可用的K8S日志监控栈&#xff1a;EFK/ELK保姆级配置与避坑指南 在云原生架构中&#xff0c;日志管理就像给系统装上"黑匣子"——当凌晨三点收到告警时&#xff0c;你需要的不是模糊的"系统异常"&#xff0c;而是能精准定位问题的完整上下文…...

XPT2046触摸驱动设计与车载嵌入式集成实践

1. XPT2046 触摸控制器驱动技术解析与嵌入式集成实践XPT2046 是一款广泛应用于嵌入式人机交互系统的 12 位逐次逼近型&#xff08;SAR&#xff09;模数转换器&#xff08;ADC&#xff09;&#xff0c;专为四线/五线电阻式触摸屏设计。其核心功能并非独立显示驱动&#xff0c;而…...

MHY_Scanner:米哈游游戏毫秒级扫码登录的终极解决方案

MHY_Scanner&#xff1a;米哈游游戏毫秒级扫码登录的终极解决方案 【免费下载链接】MHY_Scanner MHY扫码登录器&#xff0c;支持从直播流抢码。 项目地址: https://gitcode.com/gh_mirrors/mh/MHY_Scanner 在游戏直播抢码的激烈竞争中&#xff0c;传统手动扫码登录面临着…...