Vue3动态新增表格数据

目前有一个需求,新增一行可编辑的表格内容


示例.png

代码如下:
1.定义数据内容

interface TableDataItem {
    address: string;
    num: string;
}
const tableData = ref<TableDataItem[]>([]);

2.设计动态表格

<el-row :gutter="24">
                        <el-button type="primary" @click="addRow">添加</el-button>
                        <el-table :data="tableData" style="width: 100%">
                            <el-table-column label="地点" width="350">
                                <template #default="{ row }">
                                    <el-input v-model="row.address" placeholder="请输入地点"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column label="数量" width="180">
                                <template #default="{ row }">
                                    <el-input v-model="row.num" placeholder="请输入数量"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column label="操作">
                                <template #default="{ $index }">
                                    <el-button type="danger" icon="el-icon-delete" @click="removeRow($index)">删除</el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </el-row>

3.新增表格行

function addRow() {
    tableData.value.push({
        address: '',
        num: '',
    });
}

4.删除表格行

function removeRow(index: number) {
    tableData.value.splice(index, 1);
}

5.思路整理
整体设计思路是将动态表格设计为一个空的数组,新增一行实际上就是push一个数组进去,删除就是根据索引删除对应的数组

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容