el-table 合并单元格

vue2使用el-table合并单元格,包括合并行、合并列

<el-table:header-cell-style="handerMethod":span-method="arraySpanMethod"@cell-click="handleCellClick":data="tableData"style="width: 100%"><el-table-column label="工序编码"><el-table-column label="工序"><el-table-columnprop="type"label="类型"width="80"></el-table-column><el-table-columnprop="pipelineCode"label="流水码"width="100"></el-table-column><el-table-columnprop="profession"label="名称"width="80"></el-table-column><el-table-columnprop="accessory"label=""width="100"></el-table-column><el-table-columnprop="specification"label="规格(基础信息)"width="120"></el-table-column><el-table-columnprop="unit"label="单位"width="60"></el-table-column></el-table-column></el-table-column><el-table-columnv-for="(item,index) in  titleList":key="index":label="item.processCode"><el-table-column:key="index":label="item.process"><el-table-column:key="index"label="消耗量"><template slot-scope="scope">{{ item.consume[scope.$index] }}</template></el-table-column></el-table-column></el-table-column></el-table>
<script>export default {name: 'viewBOM',data() {return {tableData: [{type: '材料',pipelineCode: '111',profession: '主料',accessory: '辅料',specification: '10mm',unit: '平方'}, {type: '材料',pipelineCode: '444',profession: '专辅',accessory: '辅料',specification: 'M50',unit: '个'}, {type: '材料',pipelineCode: '555',profession: '辅料',accessory: '辅料',specification: 'M30',unit: '个'}, {type: '材料',pipelineCode: '666',profession: '主料',accessory: '辅料',specification: '8mm',unit: '平方'}, {type: '人工',pipelineCode: '777',profession: '装配工',accessory: '',specification: '',unit: '工日'}, {type: '人工',pipelineCode: '888',profession: '装配工',accessory: '',specification: '',unit: '工日'}, {type: '人工',pipelineCode: '999',profession: '装配工',accessory: '',specification: '',unit: '工日'}],titleList: [{processCode: '111',process: '装配工1',consume: ['0.92(配比)', '1(1.2)', '2(1.2)', '3(1.2)', '-', '-', '6(1.2)']},{processCode: '222',process: '主料1',consume: [11, 21, 31, 41, 51, 61, 71]}]}},methods: {goBack() {this.$router.go(-1)},handleNodeClicked(data) {console.log('从子组件接收到的数据:', data)},//合并单位表头handerMethod({ row, column, rowIndex, columnIndex }) {// 合并第三列和第四列if (row[0].level == 3) {row[2].colSpan = 2 // 第三列合并两列row[3].colSpan = 0 // 第四列不显示if (columnIndex === 3) {return { display: 'none' } // 隐藏第四列}// 合并第七列及后面的列的表头let startColIndex = 6 // 假设第七列的索引是6let colSpan = this.titleList.lengthfor (let i = startColIndex; i < startColIndex + colSpan; i++) {if (i === startColIndex) {row[i].colSpan = colSpan // 第七列合并多列} else {row[i].colSpan = 0 // 其他列不显示if (columnIndex === i) {return { display: 'none' } // 隐藏这些列}}}}return {}},// 合并单元格arraySpanMethod({ row, column, rowIndex, columnIndex }) {// 合并第一列(type)if (columnIndex === 0) {// 检查当前行是否是该类型的第一行if (rowIndex === 0 || this.tableData[rowIndex - 1].type !== row.type) {let rowspan = 1// 计算当前类型的连续行数for (let i = rowIndex + 1; i < this.tableData.length; i++) {if (this.tableData[i].type === row.type) {rowspan++} else {break}}return {rowspan: rowspan,colspan: 1}} else {// 如果不是第一行,则隐藏该单元格return {rowspan: 0,colspan: 0}}}// 合并 type 为 '人工' 的行的第三列和第四列if (row.type === '人工') {if (columnIndex === 2) {return {rowspan: 1,colspan: 2}} else if (columnIndex === 3) {return {rowspan: 0,colspan: 0}}}// 默认返回值return {rowspan: 1,colspan: 1}},handleCellClick(row, column, cell, event) {console.log('点击的行数据:', row)console.log('点击的列数据:', column)console.log('点击的单元格元素:', cell)console.log('事件对象:', event)// 在这里添加你需要的逻辑}}
}
</script>
<style scoped lang="scss">/deep/ .el-table__header th {text-align: center;
}
</style>

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

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

相关文章

网络安全之vlan实验

在对vlan进行一定的学习之后我们来练习一个小实验来加深理解记忆 首先是对实验进行一个搭建 第一部分&#xff1a;给交换机配置vlan 首先是sw1 [Huawei]vlan batch 2 to 5 [Huawei]int g0/0/1 [Huawei-GigabitEthernet0/0/1]port hybrid tagged vlan 2 [Huawei-GigabitEthe…

STM32 - 在机器人、自动化领域,LL库相比HAL优势明显

在机器人控制器、电机控制器等领域的开发&#xff0c;需要高实时性、精细化控制或者对代码执行效率、占用空间有较高要求。所以&#xff0c;大家常用的HAL库明显不符合要求。再加上&#xff0c;我们学习一门技术&#xff0c;一定要学会掌握底层的原理。MCU开发的底层就是寄存器…

mysql中show命令的使用

在 MySQL 中&#xff0c;SHOW 命令是一个非常实用的工具&#xff0c;用于查询数据库元数据&#xff08;如数据库、表、列、索引等信息&#xff09;。以下是常见的 SHOW 命令及其用法&#xff1a; 1. 显示所有数据库 SHOW DATABASES;列出服务器上的所有数据库。 2. 显示当前数据…

RAG优化:python从零实现query转换增强技术

本篇仍然是不依赖于LangChain等专用库,利用python基本库实现了三种查询转换技术 查询重写:使查询更加具体和详细,以提高搜索精度。回退提示:生成更广泛的查询以检索有用的上下文信息。子查询分解:将复杂查询分解为更简单的组件,以实现全面检索。图 1:RAG 中的查询重写(…

登录验证码的接口实习,uuid,code.

UID是唯一标识的字符串,下面是百度百科关于UUID的定义&#xff1a; UUID是由一组32位数的16进制数字所构成&#xff0c;是故UUID理论上的总数为16322128&#xff0c;约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID&#xff0c;要花100亿年才会将所有UUID用完。 UUID的标准…

HTML5 初探:新特性与本地存储的魔法

HTML5 初探&#xff1a;新特性与本地存储的魔法 作为一名前端新手&#xff0c;你可能听说过 HTML5 这个名词。它是 HTML 的第五代版本&#xff0c;不仅让网页变得更强大&#xff0c;还带来了许多新功能和工具。今天&#xff0c;我们就来聊聊 HTML5 的新特性&#xff0c;以及它…

双指针---《移动零》

目录 文章前言 题目描述 算法原理讲解 忽略限制条件的解法 原理讲解 思路总结 代码展示 双指针解法 原理讲解 思路总结 代码展示 大总结 &#x1f4ab;只有认知的突破&#x1f4ab;才来带来真正的成长&#x1f4ab;编程技术的学习&#x1f4ab;没有捷径&#x1f4ab;…

jangow-01-1.0.1靶机攻略

1.进行配置&#xff0c;按住shift&#xff0c;在图一界面按e进去得到图二 .ro 替换为 rw signie init/bin/bash ctrlx&#xff0c;ip a查看网卡信息&#xff0c;修改配置文件网卡信息 修改为如图所示内容后按shift?然后输入wq点击回车退出&#xff0c;然后重启靶机 2.在kali中…

安全上网沙箱:多方面解决政企私的上网问题

在数字化的浪潮中&#xff0c;网络已成为我们工作与生活不可或缺的一部分。然而&#xff0c;网络的便捷也伴随着诸多安全隐患&#xff0c;尤其是对于企业、个人以及政企机构而言&#xff0c;安全上外网成为了至关重要的课题。 隔离保护&#xff1a;构建安全堡垒 沙箱技术在内网…

C++ string的模拟实现

Hello!!大家早上中午晚上好&#xff0c;昨天复习了string的使用&#xff0c;今天来模拟实现一下string&#xff01;&#xff01;&#xff01; 一、string的框架搭建 1.1首先我们需要一个string的头文件用来做变量、函数、类等声明&#xff1b;再需要一个test文件来做测试,还需…

Java 中装饰者模式与策略模式在埋点系统中的应用

前言 在软件开发中&#xff0c;装饰者模式和策略模式是两种常用的设计模式&#xff0c;它们在特定的业务场景下能够发挥巨大的作用。本文将通过一个实际的埋点系统案例&#xff0c;探讨如何在 Java 中运用装饰者模式和策略模式&#xff0c;以及如何结合工厂方法模式来优化代码…

【3-22 list 详解STL C++ 】

先看代码&#xff0c;常用的就是代码中有的那些 #include <bits/stdc.h> using namespace std; int main() {list<int> mylist;for(int i0;i<5;i){mylist.push_back(i);//TODO}for(const auto&i:mylist)cout<<i<<\n;//fanzhuanreverse(mylist.…

田间机器人幼苗视觉检测与护苗施肥装置研究(大纲)

田间机器人幼苗视觉检测与护苗施肥装置研究 基于多光谱视觉与精准施肥的农业机器人系统设计 第一章 绪论 1.1 研究背景与意义 农业智能化需求&#xff1a; 传统幼苗检测依赖人工&#xff0c;效率低且易遗漏弱苗/病苗施肥不精准导致资源浪费和环境污染 技术挑战&#xff1a;…

如何在Linux CentOS上安装和配置Redis

如何在Linux CentOS上安装和配置Redis 大家好&#xff0c;我是曾续缘。欢迎来到本教程&#xff01;今天我将向您介绍在Linux CentOS上安装和配置Redis的详细步骤。Redis是一个高性能的键值存储系统&#xff0c;常用于缓存、消息队列和数据持久化等应用场景。让我们一起开始吧&…

requests库post方法怎么传params类型的参数

在使用 requests 库的 post 方法时&#xff0c;params 类型的参数通常用于在 URL 中作为查询字符串传递。这与 data 或 json 参数不同&#xff0c;后者是放在请求体中的。下面详细介绍如何在使用 post 方法时传递 params 参数。 使用 params 参数 params 参数接受一个字典或包…

C++常见问题与思考

TLS&#xff08;线程本地存储&#xff09;原理 线程本地存储&#xff08;Thread Local Storage&#xff0c;TLS&#xff09;是一种机制&#xff0c;它允许每个线程拥有自己独立的变量实例&#xff0c;这些变量的生命周期与线程相同。也就是说&#xff0c;不同线程对同一个 TLS…

如何快速下载并安装 Postman?

从下载、安装、启动 Postman 这三个方面为大家详细讲解下载安装 Postman 每一步操作&#xff0c;帮助初学者快速上手。 Postman 下载及安装教程(2025最新)

使用Gitee Go流水线部署个人项目到服务器指南

使用Gitee Go流水线部署个人项目到服务器指南 前言&#xff01;&#xff01;&#xff01; 本文解决的问题&#xff1a; 你有一台ECS服务器&#xff0c;你在上面部署了一个Java服务也就是一个jar&#xff0c;你觉着你每次手动本地打包&#xff0c;上传&#xff0c;在通过命令去…

Linux第一节:Linux系统编程入门指南

摘要 本文面向Linux初学者&#xff0c;系统讲解操作系统核心概念、Shell命令实战、权限管理精髓及目录结构解析。通过思维导图命令示例原理解析的方法&#xff0c;帮助开发者快速构建Linux知识体系&#xff0c;掌握生产环境必备技能。 一、Linux的前世今生&#xff1a;从实验室…

【Linux 维测专栏 5 -- linux pstore 使用介绍】

文章目录 Linux pstore 功能简介1. pstore 概述2. pstore 的核心功能3. pstore 的工作原理4. pstore 的使用示例5. pstore 的优势6. 典型应用场景配置示例1)DTS配置2)config配置运行测试及log问题小结Linux pstore 功能简介 1. pstore 概述 pstore(Persistent Storage)是…