el-table中根据某些字段信息合并单元格

文章介绍了如何在使用ElementUI的表格时,由于官方提供的合并功能不足,作者开发了一种自定义方法,根据payId合并数据,创建了一个`objectSpanMethod`函数来确定行和列的合并范围,以满足特定的数据需求。
摘要由CSDN通过智能技术生成

 在使用element的table的时候,有些数据需求合并,但是官方提供的只有向下合并的方法,达不到我们预期的效果,或者没办法根据我们的需求和列数进行合并,就需要针对合并方法去指定符合我们需求的合并方法

let { data: res } = await this.$axios.get(`xxxxxxxxxxx`, { params });  //xxxxxxxxx为你的接口
      this.tableData = res.list
      for (let i = 0; i < this.tableData.length; i++) {
        // 如果是第一个数据,就将列表mergeList添加一个1,表示暂时只有一个名字相同的、且将索引mergeNum赋值为0
        if (i === 0) {
          this.mergeList.push(1);
          this.mergeNum = 0
        } else {
          // 判断当前元素与上一个元素是否相同
          if (this.tableData[i].payId === this.tableData[i - 1].payId) {
            // 如果相同就将索引为 mergeNum 的值加一
            this.mergeList[this.mergeNum] += 1;
            // 且将数组添加 0 
            this.mergeList.push(0);
          } else {
            // 如果元素不同了,就可以通过索引为 mergeNum 的值知晓应该需要合并的行数
            // 同时,我们再次添加一个值1,表示重新开始判断重复姓名的次数
            this.mergeList.push(1);
            // 同时 索引加一
            this.mergeNum = i;
          }
        }
      }

 关键代码

 判断是否与上个元素的根据合并的标识符相同,等循环结束就得到一个需要向下合并数量的数组this.mergeList以及需要向下进行合并的索引值this.mergeNum

然后根据官方给出的方法

objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 3 || columnIndex === 4) {
        const _row = this.mergeList[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col
        }
      }
    },

 这样table就会根据payId(示例)相同的进行合并列

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值