<el-table
:data="tableData"
:span-method="objectSpanMethod"
highlight-current-row
@current-change="handleCurrentChange"
border
style="width: 100%"
>
</el-table>
<script setup>
const spanArr = ref([])
const getSpanArr = (data) => {
spanArr.value = []
let pos = 0
for (var i = 0; i < data.length; i++) {
if (i === 0) {
spanArr.value.push(1)
pos = 0
} else {
if (data[i].controlJobName === data[i - 1].controlJobName && data[i].controlJobName) {
spanArr.value[pos] += 1
spanArr.value.push(0)
} else {
spanArr.value.push(1)
pos = i
}
}
}
}
const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {
if (column.property === 'controlJobName') {
const _row = spanArr.value[rowIndex]
const _col = _row > 0 ? 1 : 0
return {
rowspan: _row,
colspan: _col
}
}
}
</script>