element-plus 表格跨行与跨列
vue
<script setup>
const objectSpanMethod = ({row, column, rowIndex, columnIndex}) => {
if (columnIndex === 0) {
if (rowIndex % 2 === 0) {
return {
rowspan: 2,
colspan: 1,
}
} else {
return {
rowspan: 0,
colspan: 0,
}
}
}
// 0-2 开始跨列, 横跨两列,会占用 0-3 的格子
if (rowIndex === 0 && columnIndex === 2) {
return {rowspan: 1, colspan: 2}
}
// 0-3 需要消失
if (rowIndex === 0 && columnIndex === 3) {
return {rowspan: 0, colspan: 0}
}
// 2-2 开始跨行, 横跨两行,会占用 3-2 的格子
if (rowIndex === 2 && columnIndex === 2) {
return {rowspan: 2, colspan: 1}
}
// 3-2 需要消失
if (rowIndex === 3 && columnIndex === 2) {
return {rowspan: 2, colspan: 2}
}
// 3-3 跨一行一列,需要占用 3-4、4-3、4-4
if (rowIndex === 3 && columnIndex === 3) {
return {rowspan: 2, colspan: 2}
}
if (rowIndex === 3 && columnIndex === 4) {
return {rowspan: 0, colspan: 0}
}
if (rowIndex === 4 && columnIndex === 3) {
return {rowspan: 0, colspan: 0}
}
if (rowIndex === 4 && columnIndex === 4) {
return {rowspan: 0, colspan: 0}
}
}
const tableData = [
{
id: '0-0',
name: '0-1',
amount1: '0-2',
amount2: '0-3',
amount3: '0-4',
},
{
id: '1-0',
name: '1-1',
amount1: '1-2',
amount2: '1-3',
amount3: '1-4',
},
{
id: '2-0',
name: '2-1',
amount1: '2-2',
amount2: '2-3',
amount3: '2-4',
},
{
id: '3-0',
name: '3-1',
amount1: '3-2',
amount2: '3-3',
amount3: '3-4',
},
{
id: '4-0',
name: '4-1',
amount1: '4-2',
amount2: '4-3',
amount3: '4-4',
},
{
id: '5-0',
name: '5-1',
amount1: '5-2',
amount2: '5-3',
amount3: '5-4',
},
]
</script>
<template>
<div>实训模式</div>
<el-table
:data="tableData"
:span-method="objectSpanMethod"
border
style="width: 100%; margin-top: 20px"
>
<el-table-column prop="id" label="ID" width="180"/>
<el-table-column prop="name" label="Name"/>
<el-table-column prop="amount1" label="Amount 1"/>
<el-table-column prop="amount2" label="Amount 2"/>
<el-table-column prop="amount3" label="Amount 3"/>
</el-table>
</template>
<style scoped>
</style>