Element-UI中根据某个固定字段合并对应的表格行,

因实际业务需求,此处根据purchaseNo字段进行表格行合并;

a. 先根据purchaseNo字段将表格数据排序,purchaseNo相同的数据排在一起

b. 在表格上添加合并行列的方法;:span-method="arraySpanMethod"

官方说明:( 通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,第二个元素代表colspan。 也可以返回一个键名为rowspan和colspan的对象)

c. 在methods中定义合并行列的方法;arraySpanMethod,返回一个数组或者对象

<el-table :data="tableData" :span-method="arraySpanMethod" border style="width: 100%">
........
</el-table>

<script>
....
methods() {
   // 合并相同的采购订单编号行,如果返回[0,1]则表示改行也被合并了
    arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0) {
        return {
          rowspan: row.rowspan,
          colspan: row.rowspan > 0 ? 1 : 0
        }
      }
    },
    // 计算每行数据需要合并的行rowspan,在表格数据更新后进行调用
    setrowspans (list) {
      list.forEach(v => {
        v.rowspan = 1
      })
      // 双层循环
      for (let i = 0; i < list.length; i++) {
        /**
         * 内层循环,上面已经给所有的行都加了v.rowspan = 1
         * 如果当前行的purchaseNo和下一行的purchaseNo相等
         * 就把当前v.rowspan + 1
         * 下一行的v.rowspan - 1
        */
        for (let j = i + 1; j < list.length; j++) {
          // 此处可根据相同字段进行合并,此处是根据的purchaseNo,实际情况根据业务需要修改
          if (list[i].purchaseNo === list[j].purchaseNo) {
            list[i].rowspan++
            list[j].rowspan--
          } else {
            break
          }
        }
        // 这里跳过已经合并的行数据,从下一次需要合并的行开始
        i = i + list[i].rowspan - 1
      }
    }
 }

</script>

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wen_文文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值