示图:
代码:
<el-table :data="tableData" border height="358px" :span-method="objectSpanMethod" style="width: 100%">
</el-table>
methods: {
//修改成需要合并的字段
getSpanArrList(list,code) {
if (list.length>0) {
const spanArrList = []
let totalNum = 0
list.map((item, index) => {
if (index === 0) {
spanArrList.push(1)
} else {
//code是要合并的条件
if (item[code] === list[index - 1][code]) {
spanArrList[totalNum] += 1
spanArrList.push(0)
} else {
spanArrList.push(1)
totalNum = index
}
}
})
return { totalNumBer: spanArrList }
}
},
//合并行
objectSpanMethod({row, column, rowIndex, columnIndex}) {
if (columnIndex === 0) {
const rowSpanNum = this.getSpanArrList(this.tableData,'storehouseId').totalNumBer[rowIndex]
const colSpanNum = rowSpanNum > 0 ? 1 : 0
return {
rowspan: rowSpanNum,
colspan: colSpanNum,
}
}
},
}