element ui 表格有相同的数据如何合并单元格

近期做项目,遇到了element ui需要根据数据是否一致合并显示表格的需求。结合了饿了么的官网写出一下demo

这个span-method就是合并的关键

	// 列表方法
		objectSpanMethod:function(obj) {
			if (obj.columnIndex === 0 || obj.columnIndex === 1||obj.columnIndex === 2) {
				// 二维数组存储的数据 取出
				var _row = this.spanArr[obj.rowIndex]
				var _col = _row > 0 ? 1 : 0
				return {
					rowspan: _row,
					colspan: _col
				}
			} else {
				return false
			}
		},

    getSpanArr:function(data) {
			var vm = this;
			vm.spanArr = [];
			vm.pos = 0;
			data.forEach(function(item, index){
				//判断是否是第一项
				if (index === 0) {
					vm.spanArr.push(1);
					vm.pos = 0;
				} else {
					//不是第一项时,就根据标识去存储
					if (data[index].scheduleDate === data[index - 1].scheduleDate && data[index].ecourseTimeId === data[index - 1].ecourseTimeId
					&& data[index].roomId === data[index - 1].roomId) {
						// 查找到符合条件的数据时每次要把之前存储的数据+1
						vm.spanArr[vm.pos] += 1;
						vm.spanArr.push(0);
					} else {
						// 没有符合的数据时,要记住当前的index
						vm.spanArr.push(1);
						vm.pos = index
					}
				}
			});
		},

//此处为数据调用,合并单元格
vm.getSpanArr(vm.orderList);
objectSpanMethod里面的
obj.columnIndex代表需要合并的第几行,此处我是,第1,2,3,下标从0开始所以是0,1,2
getSpanArr这个方法是对数据进行遍历,判断是否进行合并上面的注释已经很清楚了

最后的效果就是这样了

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值