VUE element table 列合并

VUE element table 列合并

效果

关键位置代码

table位置

复制代码
<el-table v-loading="loading" :data="dataList" row-key="id" max-height="760" :span-method="handleSpanMethod">
	<el-table-column type="index" label="序号" align="center" width="60"></el-table-column>
	<el-table-column prop="batchNo" label="入库批次"></el-table-column>
	<el-table-column prop="deviceName" label="名称"></el-table-column>
	......
</el-table>

javascript

复制代码
const dataList = ref([]);
const spanArr = ref([]);

// 自定义合并单元格的方法
function handleSpanMethod({ row, column, rowIndex, columnIndex }) {
  if (columnIndex === 1) { // batchNo列的索引
    const rowspan = spanArr.value[rowIndex]
    const colspan = rowspan > 0 ? 1 : 0
    return {
      rowspan,
      colspan
    }
  }
}

组装数据时
listDeviceFlowRk2(queryParams.value).then(res => {
    dataList.value = res.data.list;
    total.value = res.data.total;

    spanArr.value = []
    let pos = 0
    dataList.value.forEach((item, index) => {
      if (index === 0) {
        spanArr.value.push(1)
        pos = 0
      } else {
        if (dataList.value[index].batchNo === dataList.value[index - 1].batchNo) {
          spanArr.value[pos] += 1
          spanArr.value.push(0)
        } else {
          spanArr.value.push(1)
          pos = index
        }
      }
    });

  });
相关推荐
_柳青杨19 小时前
深入理解 JavaScript 事件循环
前端·javascript
大家的林语冰1 天前
ES5 凉凉,Babel 8 正式发布,默认不再编译为 ES5 和 CJS......
前端·javascript·前端工程化
weedsfly1 天前
异步编程全景与事件循环——彻底搞懂 JS 执行机制
前端·javascript
用户1733598075371 天前
纯前端 PDF 数字签名实战:Vue 3 + pdf-lib 在浏览器里完成签名嵌入
前端·javascript
JieE2122 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2122 天前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
kyriewen2 天前
我用 AI 一周写完了整个项目,上线第一天就崩了——这是我踩过最贵的 5 个坑
前端·javascript·ai编程
Larcher2 天前
AI Loop:让AI像人一样自主完成任务的核心机制
javascript·人工智能·设计模式
默_笙2 天前
🃏 JS 只有 8 种数据类型,但我花了 2 天才搞懂 null 和 undefined 的区别
javascript
jump_jump2 天前
流式 HTML:从 htmx 片段装配到浏览器原生增量渲染
javascript·性能优化·前端工程化