<template>
<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>
</div>
</template>
<script lang="ts" setup>
import type { TableColumnCtx } from 'element-plus'
interface User {
id: string
name: string
amount1: string
amount2: string
amount3: number
}
interface SpanMethodProps {
row: User
column: TableColumnCtx<User>
rowIndex: number
columnIndex: number
}
const objectSpanMethod = ({
row,
column,
rowIndex,
columnIndex,
}: SpanMethodProps) => {
if (columnIndex === 0) {
if (rowIndex % 2 === 0) {
return {
rowspan: 2,
colspan: 1,
}
} else {
return {
rowspan: 0,
colspan: 0,
}
}
}
}
const tableData: User[] = [
{
id: '12987122',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
},
{
id: '12987123',
name: 'Tom',
amount1: '165',
amount2: '4.43',
amount3: 12,
},
{
id: '12987124',
name: 'Tom',
amount1: '324',
amount2: '1.9',
amount3: 9,
},
{
id: '12987125',
name: 'Tom',
amount1: '621',
amount2: '2.2',
amount3: 17,
},
{
id: '12987126',
name: 'Tom',
amount1: '539',
amount2: '4.1',
amount3: 15,
},
]
</script>
需求:因有新增按钮,所以需做删除功能,这里两行为一组,一组一个删除按钮,新增也是按组来新增。
问题:假如id换成可输入人名,并可以这个人名作为id删除,输入之后数组里只有第一个对象id才有值,第二就没有,如何解决。
输入后的数据结构就会变成这样:
const tableData: User[] = [
{
id: '123',
name: 'Tom',
amount1: '234',
amount2: '3.2',
amount3: 10,
},
{
id: '',
name: 'Tom',
amount1: '165',
amount2: '4.43',
amount3: 12,
},
{
id: '456',
name: 'Tom',
amount1: '324',
amount2: '1.9',
amount3: 9,
},
{
id: '',
name: 'Tom',
amount1: '621',
amount2: '2.2',
amount3: 17,
},
{
id: '789',
name: 'Tom',
amount1: '539',
amount2: '4.1',
amount3: 15,
},
{
id: '',
name: 'Tom',
amount1: '539',
amount2: '4.1',
amount3: 15,
},
]
你可以参考一下
<script> 部分