el-table 中增加属性 :span-method="arraySpanMethodActual"
<el-table
:data="arrList"
border
:cell-style="addClass"
style="width: 100%;"
:max-height="tableHeight"
:span-method="arraySpanMethodActual">
</el-table>
<script>
arraySpanMethodActual({ row, column, rowIndex, columnIndex }) {
if ( columnIndex == 0 ) {
//要合并的在第几列
const _row = this.tableCombine().one[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col,
}
}
},
tableCombine() {
let spanOneArr = [],
spanTwoArr = [],
concatOne = 0;
this.arrList.forEach((item, index) => {
if (index === 0) {
spanOneArr.push(1)
spanTwoArr.push(1)
} else {
if (item[1] === this.arrList[index - 1][1]) {
//第一列需合并相同内容的判断条件
spanOneArr[concatOne] += 1
spanOneArr.push(0)
} else {
spanOneArr.push(1)
concatOne = index
}
}
})
return {
one: spanOneArr,
two: spanTwoArr,
}
},
</script>