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

vue使用table实现动态数据报表(行合并)

<template><div class="previewTable"><h2>***项目研发数据报告</h2><table id="previewTable" width="100%"><tr><th>项目名称</th><td colspan="6">{{ resultData.proName }}</td><th>课程级别</th><td>{{resultData.leval }}</td></tr><tr><th>课题类别</th><td colspan="4"></td><th>目标方向</th><td></td><th>承担部门</th><td></td></tr><tr><th>项目负责人</th><td colspan="3"></td><th>项目成员</th><td colspan="5"></td></tr><tr><th>委托</th><th colspan="3">方案</th><th>样品</th><th colspan="2">检验项目</th><th colspan="2">方案小结</th></tr><tr v-for="(item) in resultData.list" :key="item.id"><td v-if="item.commissionRowSpan != 0" :rowspan="item.commissionRowSpan">{{item.commission}}</td><td v-if="item.schemeRowSpan != 0" :rowspan="item.schemeRowSpan">{{item.scheme}}</td><td v-if="item.schemeNameRowSpan != 0" :rowspan="item.schemeNameRowSpan">{{item.schemeName}}</td><td><span class="link-class" >数据链接</span> 			 </td><td v-if="item.schemeNameRowSpan != 0" :rowspan="item.schemeNameRowSpan">{{item.num}}</td><td>{{item.inspectionItems}}</td><td><span class="link-class" >数据链接</span> 			 </td><td>***小结(小结名称)</td><td><span class="link-class" >数据链接</span> 			 </td></tr></table></div>
</template>
<script>
export default{data(){return{resultData:{proName:"xxx项目名称",leval:'高级',zhengshus:"安全员C证、PMP",list:[{id:0,commission:"委托1",scheme:"委托1方案1",schemeName:"委托1方案1(方案名称)",num:"5",name:"李四",inspectionItems:"直读检测成分",zhengshus:"安全员A证、操作员B证"},{id:0,commission:"委托1",scheme:"委托1方案1",schemeName:"委托1方案1(方案名称)",num:"5",name:"李四",inspectionItems:"金相组织",zhengshus:"安全员A证、操作员B证"},{id:0,commission:"委托1",scheme:"委托1方案1",schemeName:"委托1方案1(方案名称)",num:"5",name:"李四",inspectionItems:"晶粒度评级",zhengshus:"安全员A证、操作员B证"},{id:0,commission:"委托1",scheme:"委托1方案1",schemeName:"委托1方案1(方案名称)",num:"5",name:"李四",inspectionItems:"硬度测量",zhengshus:"安全员A证、操作员B证"},{id:0,commission:"委托1",scheme:"委托1方案2",schemeName:"委托1方案2(方案名称)",num:"5",name:"李四",inspectionItems:"直读检测成分",zhengshus:"安全员A证、操作员B证"},{id:1,commission:"委托1",scheme:"委托1方案2",schemeName:"委托1方案2(方案名称)",num:"5",name:"李四",inspectionItems:"金相组织",zhengshus:"安全员A证、操作员B证"},{id:2,commission:"委托1",scheme:"委托1方案3",schemeName:"委托1方案3(方案名称)",num:"5",name:"王五",inspectionItems:"晶粒度评级",zhengshus:"安全员A证、操作员B证"},{id:3,commission:"委托2",scheme:"委托2方案1",schemeName:"委托2方案1(方案名称)",num:"5",name:"何佳慧",inspectionItems:"硬度测量",zhengshus:"安全员A证、操作员B证"},{id:4,commission:"委托2",scheme:"委托2方案2",schemeName:"委托2方案2(方案名称)",num:"5",name:"王五",inspectionItems:"常温冲击",zhengshus:"安全员A证、操作员B证"},{id:5,commission:"委托2",scheme:"委托2方案3",schemeName:"委托2方案3(方案名称)",num:"5",name:"何佳慧",inspectionItems:"金相组织",zhengshus:"安全员A证、操作员B证"},{id:6,commission:"委托3",scheme:"委托3方案1",schemeName:"委托3方案1(方案名称)",num:"5",name:"何佳慧",inspectionItems:"常温冲击",zhengshus:"安全员A证、操作员B证"}]}}},created() {this.combineRow(['commission','scheme','schemeName'])},methods:{//  合并单元格combineRow(cols) {console.log("resultData.value",this.resultData.list)const tableData = this.resultData.listcols.forEach((key) => {for (let i = 0; i < tableData.length; i++) {const item = tableData[i]let count = 1for (let j = i + 1; j < tableData.length; j++) {// 如果是同一个值,往后递增if (item[key] === tableData[j][key]) {count++// 往后相同的值都设为空单元格tableData[j][`${key}RowSpan`] = 0// 只有同值第一个才设置合并的单元格数item[`${key}RowSpan`] = count// 所有都是为同一个值的情况// 如果到了尾部,则循环结束if (j === tableData.length - 1) {return}} else {// 指针跳转到下一个,从下一排开始i = j - 1count = 1tableData[j][`${key}RowSpan`] = countbreak}}}})this.resultData.list = tableData}}
}</script><style lang="scss" scoped>.previewTable{padding:10px;background-color: #fff;color: #000000;line-height: 40px;h2{text-align: center;}.link-class{color: red;}// 给表格设置边框table,td,th {text-align: center;border: 1px solid #ccc;border-collapse: collapse;}table td {// padding: 10px 30px;}}  </style>

相关文章:

vue使用table实现动态数据报表(行合并)

<template><div class"previewTable"><h2>***项目研发数据报告</h2><table id"previewTable" width"100%"><tr><th>项目名称</th><td colspan"6">{{ resultData.proName }}<…...

YARN调度原理详解

YARN&#xff08;Yet Another Resource Negotiator&#xff09;是 Hadoop 集群的资源管理和作业调度框架&#xff0c;它的设计旨在更好地管理和调度 Hadoop 集群中的资源。YARN 解决了传统 Hadoop MapReduce 中资源管理与作业调度紧耦合的问题&#xff0c;使得不同类型的计算任…...

Go-知识泛型

Go-知识泛型 1. 认识泛型1.1 不使用泛型1.2 使用泛型 2. 泛型的特点2.1 函数泛化2.2 类型泛化 3. 类型约束3.1 类型集合3.2 interface 类型集合3.2.1 内置interface类型集合3.2.2 自定义interface类型集合3.2.2.1 任意类型元素3.2.2.2 近似类型元素3.2.2.3 联合类型元素 3.2.3 …...

Qt 如何 发送与解析不定长报文以及数组不定长报文

文章目录 割方式一,采用QDataStream 解析,可直接设定大小端解析,无需自己转换方式二,采用结构体字节对齐方式解析发送接收方割 方式一,采用QDataStream 解析,可直接设定大小端解析,无需自己转换 需要注意的是结构体定义要去掉字节对齐,否则会崩溃,因为由自定义数据结…...

Rust默认使用UTF-8编码来解析源代码文件。如果在代码中包含无法用UTF-8编码表示的字符,编译器会报错!

文章目录 Rust默认编码示例在ANSI编码下中文显示正常的代码在UTF-8编码下将显示不正常在编译时&#xff0c;Rust使用UTF-8编码来解析代码&#xff0c;发现无法用UTF-8编码表示的字符&#xff0c;于是编译器报错 Rust默认编码 Rust 语言默认使用 UTF-8 编码来解析源代码文件。如…...

【jeston】torch相关环境安装

参考&#xff1a;玩转NVIDIA Jetson &#xff08;25&#xff09;— jetson 安装pytorch和torchvision 我的jeston信息&#xff1a; torch install 安装环境 conda create -n your_env python3.8 conda activate your_envpytorch_for_jeston 安装.whl文件 验证&#xff1…...

[CR]厚云填补_大型卫星影像去云数据集

AllClear: A Comprehensive Dataset and Benchmark for Cloud Removal in Satellite Imagery Abstract 卫星图像中的云对下游应用构成了重大挑战。当前云移除研究的一个主要挑战是缺乏一个全面的基准和一个足够大和多样化的训练数据集。为了解决这个问题&#xff0c;我们引入了…...

Langchain CharacterTextSplitter无法分割文档问题

在使用Langchain的文档分割器时&#xff0c;使用CharacterTextSplitter拆分文档是&#xff0c;发现返回的文档根本没有变化&#xff0c;即使设置了chunk_size&#xff0c;返回的大小也不符合参数设置。 CharacterTextSplitter设置了150&#xff0c;但是根本没有处理&#xff0…...

ros service不走是为什么

在ROS&#xff08;Robot Operating System&#xff09;中&#xff0c;如果ROS服务&#xff08;Service&#xff09;没有正常工作&#xff0c;可能有多种原因。你可以检查以下几点来排查问题&#xff1a; 服务是否正确启动 首先&#xff0c;确保服务节点已经启动并注册了相应的…...

量子计算机的原理与物理实现

量子计算机的原理与物理实现很复杂 指导性原则 首先思考制备一台量子计算机需要些什么&#xff1f; 需要量子比特——二能级量子系统。除了量子计算机需要满足一些物理特性&#xff0c;它还必须要把量子比特绘制到某种初态上&#xff0c;以及测量系统的输出态。 而实验上的挑战…...

SQL Server 常用关键词语法汇总

一、函数 1.1 CAST CAST ( expression AS data_type [ ( length ) ] )expression: 这是你想要转换的数据或表达式。data_type: 目标数据类型&#xff0c;比如 INT, VARCHAR, DATE 等等。(length): 对于某些数据类型&#xff08;如 CHAR, VARCHAR, BINARY, VARBINARY&#xff…...

软件测试工程师面试整理 —— 操作系统与网络基础!

在软件测试中&#xff0c;了解操作系统和网络基础知识对于有效地进行测试工作至关重要。无论是在配置测试环境、调试网络问题&#xff0c;还是在进行性能测试和安全测试时&#xff0c;这些知识都是不可或缺的。 1. 操作系统基础 操作系统&#xff08;Operating System, OS&am…...

网络安全防御策略:通过限制IP访问提升服务器安全性

标题&#xff1a;网络安全防御策略&#xff1a;通过限制IP访问提升服务器安全性 摘要&#xff1a; 在网络安全领域&#xff0c;服务器被入侵是一场严重的事故。一旦发生这种情况&#xff0c;除了立即采取措施恢复系统外&#xff0c;还需要加强后续的安全防护措施。本文将探讨为…...

Multiprocessing出错没有提示was skipped without notice in python

这个问题可以通过打印返回结果解决。 解决方法 比如 Pool.apply_async(csdnKuangXiaoHU, args=(p, DestFile))改成 Result = Pool.apply_async(csdnKuangXiaoHU, args=...

调整应用窗口透明度

朋友问我有没有软件透明得&#xff0c;一开始没理解&#xff0c;他给我发一个&#xff0c;我一看原来时调整窗口透明度得&#xff0c;想着python应该也可以实现&#xff0c;就写了一个。 效果图如下&#xff1a; 源码如下&#xff1a; import sys import ctypes from PySid…...

启智畅想集装箱号码智能识别原理,OCR识别应用

集装箱号码用途&#xff1a; 集装箱号码在填写托运单时是必填项&#xff0c;用于标识和跟踪货物运输过程中的集装箱。它有助于海关管理和物流跟踪&#xff0c;确保货物能够顺利通过海关检查并按时送达目的地。 集装箱号码智能识别原理&#xff1a; 在深入探讨集装箱号码OCR&…...

React基础知识

说明&#xff1a;react版本为 18.3.1 React是什么 React由Meta公司研发&#xff0c;是一个用于构建Web和原生交互界面的库。&#xff08;开发基于浏览器的web应用和基于mac和android的移动应用&#xff09;React的优势 1.相较于传统基于DOM开发的优势&#xff1a;组件化的开…...

Java基础:面向对象编程3

1 Java可变长参数 1.1 概述 Java 的可变长参数&#xff08;Varargs&#xff09;是在 Java 1.5 中引入的功能&#xff0c;允许方法接受任意数量的相同类型的参数。可变参数的语法是在参数类型后面加上三个点&#xff08;...&#xff09;&#xff0c;例如 int... numbers。 1.…...

实验kubernetes的CPU绑定策略

CPU 管理配置 CPU 管理策略通过 kubelet 参数 --cpu-manager-policy 或 KubeletConfiguration 中的 cpuManagerPolicy 字段来指定。 支持两种策略&#xff1a; none&#xff1a;默认策略。static&#xff1a;允许为节点上具有某些资源特征的 Pod 赋予增强的 CPU 亲和性和独占…...

Zsh 安装与配置

目录 1 环境配置 1.1 基本工具安装 1.2 安装 oh-my-zsh 1.3 从.bashrc中迁移配置&#xff08;可选&#xff09; 2 主题配置 2.1 内置主题 2.2 自定义主题 2.2.1 推荐主题 3 插件安装 3.1 推荐插件 3.1.1 zsh -autosuggestions 3.1.2 zsh-syntax-highlighting 3.2 启…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...