vue element 自动合并单元格算法

  1. el-table 加入
    
    :span-method="spanMethod"
    <el-table ref="multipleTable" :data="list" v-loading="listLoading" element-loading-text="加载中"
                    border fit highlight-current-row  stripe  style="width: 100%"
                    :show-summary="summary"
                    :span-method="spanMethod">
            <el-table-column align="center" :width="value.width" v-for='(value,key) in columnList' :label="value.title"
                             :key="key" :prop="value.key" sortable>
            </el-table-column>
          </el-table>

     

  2. 最主要的是方法(传入的数据要记得排序)
    在下面代码里

  3.  

    注意方法里面的 this.list 就是 上面 el-table标签里面的数据 :data="list"

    columnIndex <= 2 改成自己需要处理的列序号(第一列是0)
    spanMethod({ row, column, rowIndex, columnIndex }) {
            if (columnIndex <= 2) {
              if (row[column.property] === '') {
                return [1, 1]
              }
              if (this[column.property] !== row[column.property]) {
                this[column.property] = row[column.property]
                let num = 0
                for (let i = rowIndex; i < this.list.length; i++) {
                  if (this.list[i][column.property] === row[column.property]) {
                    num++
                    if (i === this.list.length - 1) {
                      return [num, 1]
                    }
                  } else {
                    return [num, 1]
                  }
                }
              } else {
                return [0, 0]
              }
            }
          }

     

  4. 效果图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值