首先,官网上给出的只是实现了奇数偶数的合并,但其实工作基本上是用不到的,所以换一种方式。
在data中申明
spanArr: [], // 遍历数据时,根据相同的标识去存储记录
pos: 0, // 二维数组的索引
<el-table>里面添加属性 :span-method="objectSpanMethod"
environment_init这个方法要注意如果数据是接口返回的,一定再返回后的数据再调用,如果再create或者mounted里面的话,打印出来是有数据,但是其实打印length是为0的,ob-serve显示这样的对象就可能会出现这种问题,所以一定要注意,没数据for循环是不进去的。
environment_init(){
this.spanArr = []
for(let i=0; i<this.tableData.length; i++){
if(i===0){
this.spanArr.push(1);
this.pos=0
}else{
if(this.tableData[i].environment===this.tableData[i-1].environment){
this.spanArr[this.pos] += 1
this.spanArr.push(0)
}else{
this.spanArr.push(1);
this.pos=i
}
}
console.log(this.spanArr);
}
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0 ) {
const _row = this.spanArr[rowIndex]
const _col =_row >0 ?1 :0;
console.log(`rowspan:${_row} colspan:${_col}`);
return {
rowspan:_row,
colspan:_col
}
}
},