vue elementUI合并单元格

vue elementUI合并单元格

一、实现效果

单元格合并
在这里插入图片描述

二、使用步骤

1.el-table

 <el-table v-loading="loading" :data="originData"  :span-method="objectSpanMethod" border>
</el-table>

2.methods方法

  //合并单元格
    objectSpanMethod ({ row, column, rowIndex,columnIndex }) {
    	//数据来源,,和:data="originData" 相同
      const dataProvider = this.originData;
      const cellValue = row[column.property]
      //方式第一条错误
      if (rowIndex !=0)
      {
        this.matchOwnerCode=row.ownerCode;
        let needMergeIndex= [1,2,3,4,5,6,7,8,9,10,11]
      if (cellValue && needMergeIndex.includes(columnIndex)) {
        // 上一条数据
        const prevRow = dataProvider[rowIndex - 1]
        // 下一条数据
        var nextRow=[];
        //该方法防止最后一条比较时 无法获取下一条
        if (rowIndex!=dataProvider.length-1)
        {
          nextRow = dataProvider[rowIndex + 1]
        }else
        {
          nextRow = dataProvider[rowIndex]
        }
        // 当上一条数据等于下一条数据,
        //row.ownerCode === prevRow.ownerCode用来限定合并依据需要加上合同编号判断
        if (prevRow && prevRow[column.property] == cellValue && row.ownerCode === prevRow.ownerCode) {
          return { rowspan: 0, colspan: 0 }
        } else {
          let rowspan = 1
      //row.ownerCode === prevRow.ownerCode用来限定合并依据需要加上合同编号判断
      while (nextRow && nextRow[column.property] == cellValue && row.ownerCode === nextRow.ownerCode  ) {

            rowspan++
            nextRow = dataProvider[rowspan + rowIndex]
          }
          if (rowspan > 1) {
            //返回为合并数据
            return { rowspan, colspan: 1 }
          }
        }
      }
      }
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值