在页面load的时候,对表格渲染的数据进行处理:(这里我穿了两个参数,一个是需要合并的数组,一个是表格行的字段属性。)可以理解成对数组进行标记。

 const getSpanArr = (data: any[], name: string) => {for (let i = 0; i < data?.length; i++) {if (i === 0) {spanArr.value.push(1);pos.value = 0;} else {if (data[i][name] === data[i - 1][name]) {spanArr.value[pos.value] += 1;spanArr.value.push(0);} else {spanArr.value.push(1);pos.value = i;}}}};

调用:(这里我传了两个参数,productTable是我表格绑定的数据,title是我要合并的行。)

const load = async () => {getSpanArr(productTable.value, "title");
};

对表格渲染的数据处理好后,开始计算每一行的每一列他需要占的行数,并记录下拉(我这里传了个参数,是表格的第几列需要合并,可以传一个数组)

const objectSpanMethod = ({ A }: any, columnIndexArray: number[]) => {if (columnIndexArray.includes(A.columnIndex)) {const _row = spanArr.value[A.rowIndex];const _col = _row > 0 ? 1 : 0;return {rowspan: _row,colspan: _col,};}};

最后,在el-table中使用 :span-method="((A:any) => objectSpanMethod({ A }, [0, 5])) as any"

 <el-tableborder:data="cartTable":span-method="((A:any) => objectSpanMethod({ A }, [0, 5])) as any">

封装好的代码::

import { ref } from "vue";export function spanTableRow() {const spanArr = ref<number[]>([]);const pos = ref();const getSpanArr = (data: any[], name: string) => {for (let i = 0; i < data?.length; i++) {if (i === 0) {spanArr.value.push(1);pos.value = 0;} else {if (data[i][name] === data[i - 1][name]) {spanArr.value[pos.value] += 1;spanArr.value.push(0);} else {spanArr.value.push(1);pos.value = i;}}}};const objectSpanMethod = ({ A }: any, columnIndexArray: number[]) => {if (columnIndexArray.includes(A.columnIndex)) {const _row = spanArr.value[A.rowIndex];const _col = _row > 0 ? 1 : 0;return {rowspan: _row,colspan: _col,};}};return {getSpanArr,objectSpanMethod,};
}

vue el-table 合并单元格行的方法相关推荐

  1. vue原生table合并单元格

    vue原生table合并单元格 <table border="1"><thead><tr><th>学习</th>< ...

  2. vue中用table_Vue中table合并单元格用法

    地名 结果 人名 性别 {{item.name}} 已完成 未完成 {{item.groups[0].name}} {{item.groups[0].sex}} {{item.groups[son]. ...

  3. Table合并单元格,表格居中,内容居中显示

    例如:新建一张四行四列的表格,第一行的四列合并,第二.三.四行的第一列合并在一起居中显示 <%@ page language="java" contentType=" ...

  4. vue el-table的合并单元格与拆分单元格

    vue el-table的合并单元格与拆分单元格 methods: {objectSpanMethod({ row, column, rowIndex, columnIndex }) {const f ...

  5. element plus的table合并单元格

    element的table合并单元格 就element+中的el-table中的span-method方法的使用和遇到的一些问题 如果想要将后一列挨着的单元格合并,return 1,2,但是得将后一个 ...

  6. js实现 table合并单元格

    ** table合并单元格 function uniteTdCells(tableId){var table = document.getElementById(tableId);for (let i ...

  7. 动态合并单元格行和列方法封装 ~~~起手可用

    在项目中遇到一个需求合并单元格行跟列同时合并,抽个方法做个记录,可以直接引入min.js中直接使用 /*** * @param {*} table vue对象, Element-ui Table 插件 ...

  8. JAVA EXCEL导出合并单元格自定义封装方法

    转载在C站上面看到一个大神写的自定义封装方法 转载地址:springboot 使用Poi 自定义封装方法 合并excel中的单元格_Tongyao-CSDN博客_springboot合并单元格 之前都 ...

  9. table合并单元格_element ui el-table 合并单元格

    element ui table 的合并单元格 或者 测试 vue 文件 <template><div><el-table:data="tableData&qu ...

最新文章

  1. 【C 语言】文件操作 ( 写文本文件 | Qt 创建 C 语言命令行项目 )
  2. SAP Fiori Launchpad 错误消息 - 400 File is not contained in a resource root
  3. SGU 248. Integer Linear Programming( 背包dp )
  4. matlab怎么找出奇数个数_用MATLAB绘制系统根轨迹和性能分析
  5. python_列表——元组——字典——集合
  6. 基于天地图标点html教程,天地图WEB API入门指导
  7. 数据结构与算法之树的进阶
  8. 天勤数据结构代码——排序
  9. 每台计算机ip地址,每台电脑均要设置IP地址,究竟什么是IP地址,到底有什么用呢?...
  10. 自带win10系统换win7的那些坑
  11. 供水供气管道泄漏监测系统原理
  12. echarts使用rich设置显示数据label颜色
  13. JCMsuite应用:太阳能电池的抗反射惠更斯超表面模拟
  14. qq邮箱imtp收件服务器,qq邮箱代收outlook
  15. winxp 关闭445端口
  16. vb.net 换行符的转换
  17. Google log 日志文件
  18. 如何看自己系统是否支持DirectX 9.0c
  19. 各种骗术给我的经验教训
  20. Go实现随机、轮训、权重、哈希负载均衡

热门文章

  1. 【路由器设置※tplink路由器设置方法和详细图解※】
  2. 腾科python培训_Citrix
  3. QT DLL库报错:file not recognized: File format not recognized
  4. 学习电子电路的好资料(视频与仿真软件)
  5. 文章没人看,粉丝天天掉,做新媒体的你崩溃了吗?
  6. c语言 字符输出要加 吗,最后的printf为什么要加&,他不是输出字符串吗
  7. jquery ajax同步
  8. java stw_聊聊JAVA GC系列(6) - STW
  9. jquery deferred ajax,Ajax的deferred实现
  10. 什么是软件安全性测试?