element ui table进行相同数据合并单元格

示例如图

javascript 复制代码
//要合并的项(自定义)
const columnArr =  ["dq","sj","xj","zj","zjj","zjfzr","nhxm","nhsjh","nhsfzh","","","","","ddzhl","ddw"]

首先计算需要合并的单元格

javascript 复制代码
const spanData = ref<any>([])
const getSpanData = (data) => {
  columnArr.forEach((element) => {
    let contactDot = 0;
    const spanArr = <any>[];
    data.forEach((item, index) => {
      if (index === 0) {
        spanArr.push(1);
      } else {
        //先判断ID是否一样,再合并同类项
        if (item.id == data[index - 1].id && item[element] === data[index - 1][element]) {
          spanArr[contactDot] += 1;
          spanArr.push(0);
        } else {
          contactDot = index;
          spanArr.push(1);
        }
      }
    });
    spanData.value.push(spanArr);
  });
}

Table上绑定 span-method 属性

javascript 复制代码
<el-table ref="roleTableRef" :data="dataList" :span-method="objectSpanMethod">
javascript 复制代码
const objectSpanMethod = ({
  row,
  column,
  rowIndex,
  columnIndex,
}) => {
  if (columnArr.includes(column.property)) {
    if (spanData.value[columnIndex][rowIndex]) {
      return {
        rowspan: spanData.value[columnIndex][rowIndex],
        colspan: 1,
      };
    } else {
      return {
        rowspan: 0,
        colspan: 0,
      };
    }
  }
}
相关推荐
白臻5 小时前
使用element-plus el-table中使用el-image层级冲突table表格会覆盖预览的图片等问题
前端·vue.js·elementui
北极糊的狐5 小时前
vue使用List.forEach遍历集合元素
前端·javascript·vue.js
辽辽无期5 小时前
element ui 搜索框中搜索关键字标红展示
vue.js
小林学习编程5 小时前
Springboot + vue 健身房管理系统项目部署
vue.js·spring boot·后端
cooldream20096 小时前
快速上手 Vue 3 的高效组件库Element Plus
前端·javascript·vue.js·element plus
疯狂的沙粒6 小时前
Vue项目开发 vue实例挂载的过程?
前端·javascript·vue.js
吃葡萄不吐葡萄皮嘻嘻7 小时前
el-table实现最后一行合计功能并合并指定单元格
前端·vue.js·elementui
冷琴19969 小时前
基于python+django+vue.js开发的停车管理系统
vue.js·python·django
汪洪墩10 小时前
【Mars3d】实现这个地图能靠左,不居中的样式效果
前端·javascript·vue.js·3d·webgl·cesium