//第一种方法可以一步实现合并
cellMerge({ row, column, rowIndex, columnIndex }) {
//这里是合并第1列里面的相同的字段,这个1可以根据实际需要修改,下标从0开始
//下方的month是需要合并的字段
if (columnIndex === 1) {
if (rowIndex === 0 || row.month !== this.gridData[rowIndex - 1].month) {
let val = row.month;
let rowspan = 1;
for (let i = rowIndex + 1; i < this.gridData.length; i++) {
if (this.gridData[i].month !== val) {
break;
}
//这里是判断在什么情况下合并相同的字段
if(this.EvaluateList[i].bildingName==row.bildingName&&this.EvaluateList[i].statisticDate==row.statisticDate&&this.EvaluateList[i].linkId==row.linkId){
rowspan++;
}
}
return [rowspan, 1];
} else {
return [0, 0];
}
}
},
//第二种方法需要用到两个方法
//首先要再data里设置一个空数组spanArr:[]
//gridData是:data="gridData"
this.getSpanArr(this.gridData);
getSpanArr(data) {//这个方法是向spanArr数组里面放要合并的列
for (var i = 0; i < data.length; i++) {
if (i === 0) {
this.spanArr.push(1);
this.pos = 0
} else {
// 判断当前元素与上一个元素是否相同,这里我用的是字段month
if (data[i].month === data[i - 1].month) {
this.spanArr[this.pos] += 1;
this.spanArr.push(0);
} else {
this.spanArr.push(1);
this.pos = i;
}
}
}
},
//这里放:span-method="objectSpanMethod"
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 1) {//这里是合并第1列里面的getSpanArr方法里面定义的相同的字段也就是month,这个1可以根据实际需要修改,下标从0开始
const _row = this.spanArr[rowIndex];
const _col = _row > 0 ? 1 : 0;
return {
rowspan: _row,
colspan: _col
}
}
},
上方的方法都是合并行,要合并列根据需求修改即可