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
        }
      }
    });

  });
相关推荐
OpsEye4 小时前
模型能力波动怎么办?网关侧做模型质量监控与自动切换
javascript·ai编程
海阳皓辰网络科技有限公司5 小时前
Vue3 冷库货位选择器:三级联动、扫码带出与批次混放校验
前端·vue.js
西红柿炖牛腩3546 小时前
机房电脑不能联网,怎么离线把课件里的 3D 模型压小?Draco / Meshopt 参数清单
前端·javascript·3d·性能优化·大屏端
爱喝水的小周6 小时前
实验十三 Vue 过渡与动画—电商后台消息中心实现
前端·javascript·vue.js
无责任此方_修行中6 小时前
如何不用括号调用 JS 的函数?
前端·javascript·node.js
无责任此方_修行中7 小时前
Deno 的八年:一场没逃出 Node 引力的运行时起义
前端·javascript·node.js
用户298698530148 小时前
在 React 中使用 JavaScript 将 Markdown 转换为 PDF
javascript·react.js·markdown
Hilaku8 小时前
为什么我在团队里禁止使用 axios?
前端·javascript·程序员
一只游鱼8 小时前
我用原生 JS 做了一个「会呼吸」的博客:Canvas 水境 + 合成音效 + 会破裂的留言气泡(vibe coding)
javascript·agent·canvas·github pages
只睡四小时9 小时前
Local-First 数据契约:一张表装下 4 类数据
前端·javascript·架构设计·local-first·数据契约