<template>
<div>
<el-table
:data="tableData"
border
:span-method="arraySpanMethod"
style="width: 100%"
>
<el-table-column prop="id" label="1级" width="150"></el-table-column>
<el-table-column prop="num" label="2级" width="150"></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: 'num',
data () {
return {
tableData: [
{
'id': '1',
'num': '111'
},
{
'id': '1',
'num': '111'
},
{
'id': '1',
'num': '111'
},
{
'id': '2',
'num': '211'
},
{
'id': '2',
'num': '211'
},
{
'id': '2',
'num': '211'
},
{
'id': '3',
'num': '311'
},
{
'id': '3',
'num': '311'
}
],
idArr: [],
idPos: 0
}
},
created () {
this.merage()
},
methods: {
arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const row1 = this.idArr[rowIndex]
const col1 = row1 > 0 ? 1 : 0
return {
rowspan: row1,
colspan: col1
}
}
},
merage () {
this.idArr = []
this.idPos = 0
for (let i = 0; i < this.tableData.length; i++) {
if (i === 0) {
this.idArr.push(1)
this.idPos = 0
} else {
if (this.tableData[i].id === this.tableData[i - 1].id) {
this.idArr[this.idPos] += 1
this.idArr.push(0)
} else {
this.idArr.push(1)
this.idPos = i
}
}
}
}
}
}
</script>
<style scoped>
</style>
element-ui中Table表格合并单元格
最新推荐文章于 2025-03-25 15:45:07 发布