Table表格组件不请求接口,实现表格里某条数据的本地编辑功能(Vue3+ArcoDesign)

本文主要是介绍Table表格组件不请求接口,实现表格里某条数据的本地编辑功能(Vue3+ArcoDesign),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【背景】
在 Vue3 + ArcoDesign项目中,使用ArcoDesign-Table表格组件不请求接口,实现表格里某条数据的本地编辑功能。最后统一通过接口发送数据。

【步骤】

1. 在表格每条数据列后添加一个“编辑”按钮,点击该按钮弹出一个对话框,用于修改表格行的数据。

示例页面如下:
在这里插入图片描述

template主要示例代码如下(父组件):

// <template>
<a-table :data="tableData" ><template #rules="{ record }"><a-buttontype="text"size="small"@click="handleEdit(record.list)">编辑</a-button></template>
</a-table>// 子组件
<edit-fault// editFaultVisible.value控制子组件的显隐v-model:visible="editFaultVisible"// propsTableData.value用于往子组件内传递数据:props-table-data="propsTableData"// handle-ok用于接收子组件emit过来的数据@handle-ok="editHandleOk"
></edit-fault>

script主要示例代码如下(父组件):

// <script setup lang="ts">
// 打开子组件弹框
const handleEdit = (data: array) => {propsTableData.value = data;editFaultVisible.value = true;
};

2. 在对话框中添加一个表单,用于输入修改后的数据,将修改后的数据更新到表格中,同时关闭对话框。

示例页面如下:

在这里插入图片描述
弹框主要示例代码如下(子组件):

<a-modalv-model:visible="dialogVisible"title="编辑"width="auto":mask-closable="false"unmount-on-close@ok="handleOk"@cancel="handleCancel"
><a-table:data="renderData"></a-table>
</a-modal>
// 接收父组件传来的值
const props = defineProps<{visible: boolean;propsTableData: any;
}>();
// 将接收到的值赋值,在弹框展示
renderData.value = props.propsTableData;
// 注册emits事件
const emits = defineEmits(['update:visible','handleOk']);
// 弹框内点击确定
const handleOk = () => {// 编辑结束后在弹框内点击确定按钮,将编辑后的数据renderData.value传给父组件emits('handleOk', renderData.value);// 关闭子组件的弹框dialogVisible.value = false;
};

3. 父组件拿到子组件通过emits传过来的值

示例代码如下:

// 接收子组件弹框编辑后传过来的数据
const editHandleOk = (list: any) => {// 在父组件table绑定的tableData值里通过indexOf找到子组件内编辑的这条数据首次出现的位置。const dataIndex = tableData.value.indexOf(list);// 将list替换数组tableDataCopy中索引为dataIndex的元素。它删除了原来的元素,然后将新值插入到该位置const tableDataCopy = [...tableData.value];tableDataCopy.splice(dataIndex, 1, ...list);// 重新给父组件赋值tableData.value = tableDataCopy;
};

4. 在父组件内点击保存时,将编辑后的数据统一发送接口进行更新

示例代码如下:

const submit = async () => {await editData(tableData.value)
}

这篇关于Table表格组件不请求接口,实现表格里某条数据的本地编辑功能(Vue3+ArcoDesign)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1023652

相关文章

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

Spring Boot整合消息队列RabbitMQ的实现示例

《SpringBoot整合消息队列RabbitMQ的实现示例》本文主要介绍了SpringBoot整合消息队列RabbitMQ的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录RabbitMQ 简介与安装1. RabbitMQ 简介2. RabbitMQ 安装Spring

Gin框架中的GET和POST表单处理的实现

《Gin框架中的GET和POST表单处理的实现》Gin框架提供了简单而强大的机制来处理GET和POST表单提交的数据,通过c.Query、c.PostForm、c.Bind和c.Request.For... 目录一、GET表单处理二、POST表单处理1. 使用c.PostForm获取表单字段:2. 绑定到结

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值