Vue合并el-table第一列相同数据

业务需求:

需要将el-table表格第一列相同的内容进行合并。

解决办法:

el-table中使用 :span-method="objectSpanMethod"方法

vue标签

<el-table :data="contractList" border  style="width: 100%" :span-method="objectSpanMethod">
	  <el-table-column label="各部门部1月-12月合同回款情况" align="center">
	    <el-table-column prop="quarterly"  width="100" align="center" />
	    <el-table-column prop="mon" width="80" align="center" />
	    <el-table-column prop="amountReceived" width="180" align="center" />
	    <el-table-column prop="remark" width="180" align="center" />
	  </el-table-column>	
</el-table>

methods内部处理

/* 表格合并列和行 */
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
		if (columnIndex === 0) {
		  const _row = this.flitterData(this.contractList).one[rowIndex];
		  const _col = _row > 0 ? 1 : 0;
		  return {
		    rowspan: _row,
		    colspan: _col,
		  };
		}
	},
	/**合并表格的第一列,处理表格数据 */
	flitterData(arr) {
	  let spanOneArr = [];
	  let concatOne = 0;
	  arr.forEach((item, index) => {
	    if (index === 0) {
	      spanOneArr.push(1);
	    } else {
	    //注意这里的quarterly是表格绑定的字段,根据自己的需求来改
	      if (item.quarterly === arr[index - 1].quarterly) {
	        //第一列需合并相同内容的判断条件
	        spanOneArr[concatOne] += 1;
	        spanOneArr.push(0);
	      } else {
	        spanOneArr.push(1);
	        concatOne = index;
	      }
	    }
	  });
	  return {
	    one: spanOneArr,
	  };
	},

效果展示

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

半度纳

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

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

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

打赏作者

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

抵扣说明:

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

余额充值