el-table合并单元格,删除功能怎么实现?

<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>

el-table合并单元格,删除功能怎么实现?
需求:因有新增按钮,所以需做删除功能,这里两行为一组,一组一个删除按钮,新增也是按组来新增。
问题:假如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,

},

]


回答:

你可以参考一下

<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-column label="操作">

<template #default="{rowIndex}">

<el-button

v-if="rowIndex % 2 === 0"

size="mini"

type="danger"

@click="deleteGroup(rowIndex)"

>删除</el-button

>

</template>

</el-table-column>

</el-table>

<el-button type="primary" @click="addGroup">添加组</el-button>

</div>

</template>

<script> 部分

const addGroup = () => {

const newGroup = [

{

id: "",

name: "",

amount1: "",

amount2: "",

amount3: 0,

},

{

id: "",

name: "",

amount1: "",

amount2: "",

amount3: 0,

},

];

tableData.push(...newGroup);

};

const deleteGroup = (rowIndex) => {

tableData.splice(rowIndex, 2);

};

以上是 el-table合并单元格,删除功能怎么实现? 的全部内容, 来源链接: utcz.com/p/934064.html

回到顶部