element基于表头返回 merge: true 配置列合并
<template><div class="wrap" v-loading="listLoading"><div class="content_wrap mt-10"><div style="text-align: center;"><h3>酿造交酒酒罐统计表({{month}}月{{day}}日)</h3></div><div class="fr"><h4>单位:个</h4></div><el-table :data="dataList" style="width: 100%" border :span-method="objectSpanMethod"><!-- 遍历表头 --><template v-for="(column, index) in tableHeader"><el-table-columnv-if="column.children":label="column.propName"align="center"width="150px"><!-- 遍历二级表头 --><el-table-columnv-for="(childColumn, childIndex) in column.children":key="childIndex":label="childColumn.propName":prop="childColumn.prop"width="150px"align="center"></el-table-column></el-table-column><!-- 如果是一级表头(没有子表头) --><el-table-columnv-else:label="column.propName":prop="column.prop"align="center"width="150px"></el-table-column></template></el-table></div></div>
</template><script>
import { mapGetters } from 'vuex'
import { Message } from 'element-ui'
import { stamnosstatistics } from "../../api/TasteandgradeApi";export default {name: 'Winecanstatistics',data() {return {tableHeader: [],dataList: [], tableColumnList: [],listLoading: false,month: '',day: '',spanMaps: {}, // 存储所有需要合并列的合并规则mergeColumns: [] // 存储所有需要合并的列prop}},mounted() {this.getdata()this.getTableData()},methods: {getdata() {const now = new Date();this.month = now.getMonth() + 1;this.day = now.getDate();},getTableData() {stamnosstatistics().then((response) => {this.dataList = response.data.result.dataListthis.tableHeader = response.data.result.columnList// 提取需要合并的列this.extractMergeColumns()// 计算合并规则this.calculateSpans()})},// 递归提取所有标记了merge:true的列extractMergeColumns() {this.mergeColumns = []const findMergeColumns = (columns) => {columns.forEach(column => {if (column.merge) {this.mergeColumns.push(column.prop)}if (column.children) {findMergeColumns(column.children)}})}findMergeColumns(this.tableHeader)},// 计算所有需要合并列的合并规则calculateSpans() {this.spanMaps = {}this.mergeColumns.forEach(prop => {const spanMap = new Map()let pos = 0// 初始化,所有行默认不合并(rowspan=1)for (let i = 0; i < this.dataList.length; i++) {spanMap.set(i, 1)}// 计算合并规则for (let i = 1; i < this.dataList.length; i++) {// 当前行与上一行值相同则合并if (this.dataList[i][prop] === this.dataList[i - 1][prop]) {spanMap.set(pos, spanMap.get(pos) + 1) // 合并行数+1spanMap.set(i, 0) // 当前行设置为0表示被合并} else {pos = i // 值不同,重置合并位置}}this.spanMaps[prop] = spanMap})},// Element表格合并单元格方法objectSpanMethod({ row, column, rowIndex, columnIndex }) {// 获取当前列的propconst currentProp = this.getColumnProp(columnIndex)// 如果当前列是需要合并的列if (currentProp && this.spanMaps[currentProp]) {const rowspan = this.spanMaps[currentProp].get(rowIndex)const colspan = rowspan > 0 ? 1 : 0return {rowspan,colspan}}},// 根据列索引获取列的propgetColumnProp(columnIndex) {let currentIndex = 0const findProp = (columns) => {for (const column of columns) {if (column.children) {const prop = findProp(column.children)if (prop) return prop} else {if (currentIndex === columnIndex) {return column.prop}currentIndex++}}return null}return findProp(this.tableHeader)}}
}
</script><style rel="stylesheet/scss" lang="scss">
</style>
[{propName: '分类',prop: 'category',merge: true // 此列需要合并},{propName: '春天酒',children: [{propName: '货场空罐',prop: 'chuntianjiu_inEmpty',merge: true // 此列需要合并},{propName: '货场满罐',prop: 'chuntianjiu_inFull'}]}
]
相关文章:

element基于表头返回 merge: true 配置列合并
<template><div class"wrap" v-loading"listLoading"><div class"content_wrap mt-10"><div style"text-align: center;"><h3>酿造交酒酒罐统计表({{month}}月{{day}}日)</h3…...

sql sql复习
虽然之前学习过sql,但由于重在赶学习进度,没有学扎实,导致自己刷题的时候有的地方还是模模糊糊,现在主要是复习,补一补知识点。 今日靶场: NSSCTF 云曦历年考核题 在做题之前先回顾一下sql注入的原理&…...
MySQL 8.0 OCP 1Z0-908 题目解析(1)
题目001 Choose two. User fwuserlocalhost is registered with the SQL Enterprise Firewall and has been granted privileges for the sakila database. Examine these commands that you executed and the results: mysql> SELECT MODE FROM INFORMATION_SCHEMA.SQL…...

介绍一下什么是 AI、 AGI、 ASI
1. AI(人工智能):工具化的“窄域智能” 定义: AI 是能够执行特定任务的智能系统,依赖大量数据和预设规则,缺乏自主意识和跨领域通用性。 特点: 任务专用:如图像识…...

利用 Amazon Bedrock Data Automation(BDA)对视频数据进行自动化处理与检索
当前点播视频平台搜索功能主要是基于视频标题的关键字检索。对于点播平台而言,我们希望可以通过优化视频搜索体验满足用户通过模糊描述查找视频的需求,从而提高用户的搜索体验。借助 Amazon Bedrock Data Automation(BDA)技术&…...
TypeScript装饰器:从入门到精通
TypeScript装饰器:从入门到精通 什么是装饰器? 装饰器(Decorator)是TypeScript中一个非常酷的特性,它允许我们在不修改原有代码的情况下,给类、方法、属性等添加额外的功能。想象一下装饰器就像给你的代码…...

模拟jenkins+k8s自动化部署
参考 Jenkins+k8s实现自动化部署 - 掘金 手把手教你用 Jenkins + K8S 打造流水线环境 - 简书 安装插件 调整插件升级站点 (提高插件下载速度) 默认地址 https://updates.jenkins.io/update-center.json 新地址 http://mirror.xmission.com/jenkins/updates/update-center.json …...

MySQL——十一、主从复制
主从复制是指将主数据库的DDL和DML操作通过二进制日志传入从库服务器中,然后在从库上对这些日志重新执行(重做),从而使得从库和主库的数据保持同步。 优点: 主库出现问题,可以快速切换到从库提供服务实现读…...
Ubuntu操作合集
UFWUncomplicated Firewall 查看状态和规则: 1查看状态sudo ufw status, 2查看详细信息sudo ufw status verbose, 默认策略配置: 1拒绝所有入站sudo ufw default deny incoming 2允许所有出战sudo ufw default allow outgoing …...
【TDengine源码阅读】TAOS_DEF_ERROR_CODE(mod, code)
2025年5月13日,周二清晨 #define TAOS_DEF_ERROR_CODE(mod, code) ((int32_t)((0x80000000 | ((mod)<<16) | (code))))这段代码定义了一个宏 TAOS_DEF_ERROR_CODE(mod, code),用于生成一个32位有符号整数(int32_t)形式的错误…...

如何让 Google 收录 Github Pages 个人博客
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 如何确认自己的网站有没有被 google 收录 假设网址是:https://cyrus-studio.github.io/blog 搜索:site:https://cyrus-studio.github…...

servlet-api
本次内容总结 1、再次学习Servlet的初始化方法 2、学习Servlet中的ServletContext和<context-param> 3、什么是业务层 4、IOC 5、过滤器 7、TransActionManager、ThreadLocal、OpenSessionInViewFilter 1、再次学习Servlet的初始化方法 1)Servlet生命周期&…...

根据输入的数据渲染柱形图
背景:根据不同季度的销售额,生成对应的柱形图,直观的看出差异 效果: 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatibl…...

Java SpringBoot项目JPA查询数据demo
目录 一、前置1、IDEA创建SpringBoot项目2、基础设置、配置 二、JPA查询数据1、配置SQL server连接2、创建实体类QueryEntity.java生成Getter and Setter 3、创建Repository接口QueryRepository.java 4、创建Service服务类QueryService.java 5、创建Controller控制器类QueryCon…...

vue2集成可在线编辑的思维导图(simple-mind-map)
最近要求做一个可在线编辑的思维导图,经过层层调研和实测,最简单的思维导图导图实现还得是simple-mind-map组件 simple-mind-map中文文档 当前我使用的是vue2项目,目前没试过是否支持vue3,但是看官网描述他们也给了有vue3的demo项…...
Java静态变量数据共享深度解析(附多场景案例)[特殊字符]
Java静态变量数据共享深度解析(附多场景案例)🔍 关键词:数据共享 静态变量 线程安全 内存管理 🌐 一、静态变量共享的三大层次 1. 类实例间共享(基础级) class GameServer {// 统计在线玩家数…...

如何在Windows右键新建菜单中添加自定义项,将notepad添加到新建菜单
一、简介 Windows 右键新建菜单的核心管理机制隐藏在注册表的 HKEY_CLASSES_ROOT 根键中。这里存在两种关键注册表项:文件扩展名项和文件类型项,它们共同构成了新建菜单的完整控制体系。 以常见的.txt文件为例,系统通过以下机制实现新建菜单…...
Flink运维要点
一、Flink 运维核心策略 1. 集群部署与监控 资源规划 按业务优先级分配资源:核心作业优先保障内存和 CPU,避免资源竞争。示例:为实时风控作业分配专用 TaskManager,配置 taskmanager.memory.process.size8g。 监控体系 集成 Prom…...

CS016-4-unity ecs
【37】将系统转换为任务 Converting System to Job 【Unity6】使用DOTS制作RTS游戏|17小时完整版|CodeMonkey|【37】将系统转换为任务 Converting System to Job_哔哩哔哩_bilibili a. 将普通的方法,转化成job。第一个是写一个partial struct xxx;第二…...

微信小程序第三方代开发模式技术调研与实践总结
🚀 微信小程序第三方代开发模式技术调研与实践总结 📖 前言 随着企业对私有化品牌运营诉求的增加,许多大型客户希望将原本由 SaaS 平台统一提供的小程序迁移至自有主体(AppID)下运行,同时又希望继续沿用 SaaS 平台的业务服务与数据托管方式。微信开放平台提供的“小程…...

upload-labs通关笔记-第8关 文件上传之点绕过
目录 一、点绕过原理 二、deldot()函数 三、源码分析 四、渗透实战 1、构建脚本test8.php 2、打开靶场 3、bp开启拦截 4、点击上传 5、bp拦截 6、后缀名增加点 7、发包并获取脚本地址 8、访问脚本 本文通过《upload-labs靶场通关笔记系列》来进行upload-labs靶场的渗…...
远程连接电脑的方法?异地远程桌面连接和三方软件实现
远程连接电脑,是指通过网络技术,在一台设备上操控另一台设备的电脑桌面,实现跨地域的操作和管理。在日常工作、技术支持、远程办公等场景中,远程连接电脑都发挥着重要作用。实现远程连接电脑主要有系统自带工具和第三方软件两种方…...

PCL PolygonMesh 与 TextureMesh 源码阅读与简单测试
Title: PCL PolygonMesh 与 TextureMesh 源码阅读与简单测试 文章目录 I . PolygonMesh1. PolygonMesh 结构体2. Vertices 结构体与点云索引3. 测试 PolygonMesh II. TextureMesh1. TextureMesh 结构体2. TexMaterial 结构体3. 纹理坐标与纹理坐标索引4. 测试 TextureMesh 以下…...

量子算法:开启计算新时代的技术密码
摘要 量子算法是利用量子力学特性(如叠加态、纠缠、干涉)设计的计算模型,在特定问题上相比经典算法具有指数级加速优势。本文深入探讨了量子算法的核心原理、代表性算法及其在多个领域的应用,分析了量子算法面临的挑战与未来发展…...

多线程代码案例-1 单例模式
单例模式 单例模式是开发中常见的设计模式。 设计模式,是我们在编写代码时候的一种软性的规定,也就是说,我们遵守了设计模式,代码的下限就有了一定的保证。设计模式有很多种,在不同的语言中,也有不同的设计…...

CSS实现文本自动平衡text-wrap: balance
不再有排版孤行和寡行 我们都知道那些标题,最后一个单词换行并单独站在新行上,破坏了视觉效果,看起来很奇怪。当然,有老式的 手动换行或将内容分成不同部分。但您听说过text-wrap: balance吗? 通过应用text-wrap: bal…...

mac M芯片运行docker-desktop异常问题
虽然mac已经迭代到m4了,但官方的docker-desktop运行仍然有问题,包括但不限于: 命令行docker找不到docker-desk打不开docker-desktop闪退容器起不来 尝试不同版本后,看到了其他可以在mac跑docker的开源方法,更简单、轻…...
主流数据库运维故障排查卡片式速查表与视觉图谱
主流数据库运维故障排查卡片式速查表与视觉图谱 本文件将主文档内容转化为模块化卡片结构,并补充数据库结构图、排查路径图、锁机制对比等视觉图谱,以便在演示、教学或现场排障中快速引用。 📌 故障卡片速查:连接失败 数据库检查…...

事件响应策略规范模版
事件响应策略 一、事件分级定义 根据事件对业务的影响程度和紧急程度,将事件分为 4个等级(P1-P4),明确各级事件的判定标准:、 二、响应时效承诺 响应时间(从事件确认到首次回复) P1 事件:15 分钟内响应(724 小时电话 / 工单优先接入) P2 事件:30 分钟内响应(工…...
在哪一个终端下运行有影响吗?pip install pillow
在哪一个终端下运行有影响吗?pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn,需要切换到主目录吗? 1. 是否需要切换目录? 不需要切换目录 pip install 安装的包会存放…...