当前位置: 首页 > 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>

http://www.lryc.cn/news/460812.html

相关文章:

  • YARN调度原理详解
  • Go-知识泛型
  • Qt 如何 发送与解析不定长报文以及数组不定长报文
  • Rust默认使用UTF-8编码来解析源代码文件。如果在代码中包含无法用UTF-8编码表示的字符,编译器会报错!
  • 【jeston】torch相关环境安装
  • [CR]厚云填补_大型卫星影像去云数据集
  • Langchain CharacterTextSplitter无法分割文档问题
  • ros service不走是为什么
  • 量子计算机的原理与物理实现
  • SQL Server 常用关键词语法汇总
  • 软件测试工程师面试整理 —— 操作系统与网络基础!
  • 网络安全防御策略:通过限制IP访问提升服务器安全性
  • Multiprocessing出错没有提示was skipped without notice in python
  • 调整应用窗口透明度
  • 启智畅想集装箱号码智能识别原理,OCR识别应用
  • React基础知识
  • Java基础:面向对象编程3
  • 实验kubernetes的CPU绑定策略
  • Zsh 安装与配置
  • Redis可视化工具Redis Desktop Manager(附安装包)
  • sql server删除过期备份文件脚本
  • 【Docker系列】Docker查看镜像架构
  • Python案例 | 测试网络的下载速度上传速度和 ping 延迟
  • 一键找回,2024四大固态硬盘数据恢复工具推荐!
  • 数据结构~AVL树
  • ffmpeg面向对象——rtsp拉流探索(1)
  • 【启明智显分享】ZX7981PM WIFI6 5G-CPE:2.5G WAN口,2.4G/5G双频段自动调速
  • openresty“热部署“lua
  • 基于SpringBoot+Vue+MySQL的企业招聘管理系统
  • vue3之defineComponent