多种情况下合并单元格(S-Table+Vue3)

合并单元格(S-Table+Vue3)

跨行合并:rowspan=“合并单元格的个数”
跨列合并:colspan="“合并单元格的个数”

文章目录

  • 合并单元格(S-Table+Vue3)
    • 第一列跨行合并单元格
      • template
      • script
      • 效果
    • 多列跨行合并单元格
      • template
      • script
      • 效果图
    • 多行合并可参考

第一列跨行合并单元格

template

<s-tableref="table"bordered:columns="columns":data="loadData":row-key="(record) => record.id":scroll="{ x: 1500 }":tool-config="toolConfig"
>
</s-table>

script

//初始化const columns = [{title: '姓名',dataIndex: 'name',key: 'name',customCell: (data) => {return { rowSpan: data.rowSpan || 0 }}},{title: '年龄',dataIndex: 'age',key: 'age'},{title: '住址',dataIndex: 'address',key: 'address'}]const loadData = (parameter) => {return 方法.then((res) => {//设置假数据,如有可不设置res.records = [{key: 1,name: 'coisini',age: 24,address: '0510volleyball'},{key: 2,name: 'coisini',age: 245,address: '0510volleyballw'},{key: 3,name: '胡彦斌',age: 32,address: '西湖区湖底公园1号'},{key: 5,name: '胡彦斌',age: 32,address: '西湖区湖底公园1号'},{key: 4,name: '胡彦祖',age: 42,address: '西湖区湖底公园1号'},{key: 6,name: '胡彦祖',age: 42,address: '西湖区湖底公园1号'}]let startItem = res.records[0];startItem.rowSpan = 1res.records.forEach((item, index) => {let nextItem = res.records[index + 1] || {};if (item['orgName'] === nextItem['orgName']) {startItem.rowSpan++;} else {startItem = nextItem;startItem.rowSpan = 1;}})return res}).catch((error) => {console.log(error)}).finally(() => {//...})
}

效果

在这里插入图片描述

多列跨行合并单元格

template

<s-tableref="table"bordered:columns="columns":data="loadData":row-key="(record) => record.id":scroll="{ x: 1500 }":tool-config="toolConfig"
>
</s-table>

script

	const columns = [{title: '姓名',dataIndex: 'name',key: 'name',customCell: (data) => {console.log(data, 'data')return { rowSpan: data.rowSpan || 0 }}},{title: '年龄',dataIndex: 'age',key: 'age',customCell: (data) => {console.log(data, 'data1')return { rowSpan: data.rowSpan1 || 0 }}},{title: '住址',dataIndex: 'address',key: 'address',customCell: (data) => {console.log(data, 'data2')return { rowSpan: data.rowSpan2 || 0 }}}]//loadData
const loadData = (parameter) => {return 方法.then((res) => {//设置假数据,如有可不设置res.records = [{key: 1,name: 'coisini',age: 24,address: '0510volleyball'},{key: 2,name: 'coisini',age: 245,address: '0510volleyballw'},{key: 3,name: '胡彦斌',age: 32,address: '西湖区湖底公园1号'},{key: 5,name: '胡彦斌',age: 321,address: '西湖区湖底公园1号'},{key: 4,name: '胡彦祖',age: 42,address: '西湖区湖底公园1号1'},{key: 6,name: '胡彦祖2',age: 42,address: '西湖区湖底公园1号'}]let startItem = []startItem['name'] = res.records[0]startItem['age'] = res.records[0]startItem['address'] = res.records[0]startItem['name'].rowSpan = 1startItem['age'].rowSpan1 = 1startItem['address'].rowSpan2 = 1res.records.forEach((item, index) => {let nextItem = res.records[index + 1] || {}if (item['name'] === nextItem['name']) {startItem['name'].rowSpan++} else {startItem['name'] = nextItemstartItem['name'].rowSpan = 1}if (item['age'] === nextItem['age']) {startItem['age'].rowSpan1++} else {startItem['age'] = nextItemstartItem['age'].rowSpan1 = 1}if (item['address'] === nextItem['address']) {startItem['address'].rowSpan2++} else {startItem['address'] = nextItemstartItem['address'].rowSpan2 = 1}})return res}).catch((error) => {console.log(error)}).finally(() => {//...})}

效果图

在这里插入图片描述

多行合并可参考

antd-vue table跨行合并单元格

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

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

相关文章

exceljs库实现excel表样式定制化

概览 xlsx 是前端最热门的 Excel 导出方案&#xff0c;又叫做 SheetJs&#xff0c;默认不支持修改 Excel 的样式。而exceljs库就可以做到自定义excel表样式&#xff0c;下面来介绍一下其使用方法 一. 完整示例 代码示例 const exportTemplate2 () > { // 创建工作簿 …

Electron桌面应用开发:从入门到发布全流程解析

Electron是一个开源的桌面应用程序开发框架&#xff0c;它允许开发者使用Web技术&#xff08;HTML、CSS和JavaScript&#xff09;来创建跨平台的桌面应用程序。在本文中&#xff0c;我们将深入探讨Electron桌面应用程序开发的全流程&#xff0c;从入门到发布。 安装和配置Elec…

iOS ------ Block的总结

前面看了Block的基本知识&#xff0c;和一些源码。但对于block怎么用的还不了解&#xff0c;代码中出现block会看不懂&#xff0c;现在来具体看一下Block的用法并做个总结。 1.Block是什么 block对象是一个C语言结构体&#xff0c;可以并入C和OC的代码中&#xff0c;Block本质…

探索以太坊世界:使用Geth打造你的私人网络

文章目录 概要名词解释Geth&#xff08;Go Ethereum&#xff09;区块链网络种类 具体流程下载geth客户端配置私链新建创世区块启动私链 连接MetaMask钱包小结 概要 在区块链领域&#xff0c;以太坊私链的搭建是学习和开发智能合约的重要一步。私链允许开发者在独立的环境中进行…

地图图源#ESRI ArcGIS XYZ Tiles系列(TMS)

目录 1、前言 2、地图图源网址 2.1、Satellite 卫星图源 2.2、Terrain 地形图源 2.3、Street 路网/标注图源 2.4、Specifity 特色设计图源 3、专业推荐”穿搭“ 4、图源配置下载及使用 图源名称图层类别特别注意谷歌 Google①地形 ②影像 ③矢量及标注 ④特色图源国内大…

python3如何提取汉字

采用正则表达式的方法对字符串进行处理。 str1 "&#xff5b;我%$是&#xff0c;《速$.度\发》中 /国、人"&#xff08;1&#xff09;提取汉字 汉字的范围为”\u4e00-\u9fa5“&#xff0c;这个是用Unicode表示的。 import re res1 .join(re.findall([\u4e00-\u9fa…

sso-oauth2单点登录功能笔记

场景&#xff1a;最近公司2个系统需要做单点登录&#xff0c;A系统作为服务器&#xff0c;认证方式是sso-oauth2方式&#xff0c;B系统作为客户端&#xff0c;token方式是ta-token&#xff0c;先来张sso-oauth2认证方式的图 前置准备工作 第一步&#xff1a;要确认谁是服务提…

kubernetes的网络通信实现原理

网络原理 Kubernetes网络原理详解&#xff1a;一、Kubernetes 网络实现1.容器到容器&#xff08;同一Pod内&#xff09;通信流程&#xff1a;2. pod之间的通信&#xff08;以Calico为例&#xff09;&#xff1a; 二、CNI 网络模型三、网络策略四、开源的容器网络方案五、 常见网…

oracle控制文件的管理

1 说明 Oracle数据库中的控制文件是数据库管理中的重要组成部分&#xff0c;是一个二进制小文件&#xff0c;在 mount 阶段被读取。它包含了数据库的元数据信息和文件位置等重要数据&#xff0c;记录数据库当前物理状态&#xff0c;维护数据库的一致性&#xff0c;记录 RMAN 备…

2024年腾讯云免费服务器最新申请入口链接

腾讯云免费服务器申请入口 txybk.com/go/free 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云百科txybk.com分享2024年最新腾讯云免费服务器申请入口、限制…

【JavaEE初阶】网络原理|认识协议|协议分层|TCP/IP模型|封装和分用

一、认识协议 1.概念 简单来说&#xff1a;就是一种通信双方&#xff0c;对于通信规则的约定&#xff08;标准&#xff09;&#xff0c;一定是通信双方都认可的 但是这个协议不一定是认可面非常广的&#xff0c;即使是两个人之间的也可叫做协议 就好⽐⻅⽹友&#xff0c;彼此…

力扣740删除并获得整数和力扣1173第N个泰波那契数

力扣740删除并获得整数 给你一个整数数组 nums &#xff0c;你可以对它进行一些操作。 每次操作中&#xff0c;选择任意一个 nums[i] &#xff0c;删除它并获得 nums[i] 的点数。之后&#xff0c;你必须删除 所有 等于 nums[i] - 1 和 nums[i] 1 的元素。 开始你拥有 0 个点…

systemverilog功能覆盖率

1 iff 如过满足条件则采样&#xff0c;iff可以理解为if covergroup iff_cov;coverpoint tr.data iff(!vif.reset) ; //复位时不采样 endgroup2 coverpoint和bin covergroup name_bin ;coverpoint tr.kind {bins zero {0}; //1个bin 代表kind 0bins low {[1:3]…

(十三)C++自制植物大战僵尸游戏多用户存档实现(二)

植物大战僵尸游戏开发教程专栏地址http://t.csdnimg.cn/8UFMs UserData.h 在头文件中定义了枚举类型openUserDataReturnType&#xff0c;用于表示打开用户数据文件的返回状态。FileExistError表示文件存在但是打开错误&#xff0c;FileExistCorrect表示文件在且正确&#xff0…

如何进行景气分析

景气分析是一种短期经济分析方法。主要分析短时间内&#xff08;一般指一年内&#xff0c; 或几个月内&#xff09;经济运行的态势&#xff0c;包括当前的状态和未来的趋势。景气分析可以为宏观经济政策提供重要的决策与参考信息&#xff0c;例如根据经济运行的方向、强弱可建议…

概念理解: DDR的寻址容量设计

主要内容&#xff1a;DDR寻址容量设计的概念理解示例。 DDR的数据存储在不同的bank上&#xff0c;你知道具体是如何通过数据总线和地址总线的配合&#xff0c;拿到所需的数据吗&#xff1f;通过下面这样一个简单的问题&#xff0c;我们来逐渐了解这个过程的实现。 DDR…

C++11 玩家不得不学的语法集 [持续更新-建议收藏]

文章目录 1.std::function 开启函数式编程之路2.std::bind 灵活处理函数调用和传参3. std::ref 传递引用的必要包装4.std::thread 标准库的多线程5.std::packaged_task 封装函数为可异步调用的对象[待续。。。] 1.std::function 开启函数式编程之路 std::function 是 C 标准库…

LeetCode 热题 100 题解:普通数组部分

文章目录 题目一&#xff1a;最大子数组和&#xff08;No. 53&#xff09;题解 题目二&#xff1a;合并区间&#xff08;No. 56&#xff09;题解 题目三&#xff1a;轮转数组&#xff08;No. 189&#xff09;题解 题目四&#xff1a;除自身以外数组的乘积&#xff08;No. 238&a…

MySql运维篇

目录 一.日志 1.1日志分类 1.2Error Log 1.3BinaryLog 1.4SlowQuery Log 二.备份 2.1备份原因 2.2备份目标 2.3备份技术 2.3.1物理备份 2.3.2逻辑备份 2.4备份方式 2.4.1完全备份 2.4.2增量备份 2.4.3差异备份 2.5备份环境准备 2.6完全备份实验 2.6.1完全备…

Android 一键唤醒应用

Android 一键唤醒应用 最近收到客户需求&#xff0c;需要设备实现一键唤醒应用功能&#xff0c;本次以录音机为例&#xff0c;一键唤醒应用功能具体修改参照如下&#xff1a; /frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java public…