template部分
<el-table :data="tableData" :span-method="objectSpanMethod" border height="100%">
<el-table-column prop="WF_NODE_ID" label="节点" show-overflow-tooltip min-width="180"> </el-table-column>
<el-table-column prop="TASK_USER_ID" label="人员" show-overflow-tooltip min-width="180"> </el-table-column>
<el-table-column prop="TASK_REC_DT" label="接收时间" show-overflow-tooltip min-width="200"> </el-table-column>
<el-table-column prop="TASK_ACT_DT" label="操作时间" show-overflow-tooltip min-width="200"> </el-table-column>
<el-table-column prop="TASK_USER_COMMENT" label="意见" show-overflow-tooltip min-width="200"> </el-table-column>
</el-table>
methods部分
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
// this.tableData 修改
const _row = this.flitterData(this.tableData).one[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col,
}
}
},
flitterData(arr) {
let spanOneArr = []
let concatOne = 0
arr.forEach((item, index) => {
if (index === 0) {
spanOneArr.push(1)
} else {
//name 修改
if (item.name === arr[index - 1].name) {
//第一列需合并相同内容的判断条件
spanOneArr[concatOne] += 1
spanOneArr.push(0)
}else {
spanOneArr.push(1)
concatOne = index
}
}
})
return {
one: spanOneArr,
}
},
效果图: