vue elementui el-table实现增加行,行内编辑修改

ops/2024/10/20 18:09:34/

需求:
前端进行新增表单时,同时增加表单的明细数据。明细数据部分,可进行行编辑。
效果图:
在这里插入图片描述

在这里插入图片描述

        <el-card><div slot="header"><span style="font-weight: bold">外来人员名单2</span><el-buttonstyle="float: right"type="primary"@click="insertDetailRow">添加</el-button></div><el-tableref="detailTable"align="center"highlight-cellkeep-sourcestripeborderstyle="width: 100%"max-height="400":data="detailTableData"><el-table-column prop="userName" label="姓名" align="center"><template slot-scope="{ row, $index }"><span v-if="!showEdit[$index]">{{ row.userName }}</span><el-inputv-model="detailTableData[$index].userName"v-if="showEdit[$index]"placeholder="请输入姓名"></el-input></template></el-table-column><el-table-column prop="sex" label="性别" align="center"><template slot-scope="{ row, $index }"><span v-if="!showEdit[$index]">{{ row.sex }}</span><el-selectv-model="detailTableData[$index].sex"v-if="showEdit[$index]"placeholder="请选择性别"><el-optionv-for="item in sexs":label="item.label":value="item.value"></el-option></el-select></template></el-table-column><el-table-column prop="telPhone" label="手机号" align="center"><template slot-scope="{ row, $index }"><span v-if="!showEdit[$index]">{{ row.telPhone }}</span><el-inputv-model="detailTableData[$index].telPhone"v-if="showEdit[$index]"placeholder="请输入手机号"/></template></el-table-column><el-table-column label="操作" align="center" width="220"><template slot-scope="{ row, $index }"><el-buttonv-if="!showEdit[$index]"@click="editDetailRow($index, row)"type="primary"icon="el-icon-edit"circle/><el-buttonv-if="showEdit[$index]"@click="confirmDetailRow($index, row)"type="success"icon="el-icon-check"circle/><el-buttonv-if="!showEdit[$index]"@click="removeDetailRow($index, row)"type="danger"icon="el-icon-delete"circle/></template></el-table-column></el-table></el-card>export default {data() {return {detailTableData: [],   showEdit: [], //控制显示及隐藏sexs: [{ label: '女', value: '女' }, { label: '男', value: '男' }]}},methods: {//添加一行insertDetailRow() {console.info(this.detailTableData)if (this.detailTableData != null && this.detailTableData.length > 0) {if (this.detailTableData[this.detailTableData.length - 1].userName === null ||this.detailTableData[this.detailTableData.length - 1].userName === undefined ||this.detailTableData[this.detailTableData.length - 1].userName.length <= 0) {this.$message({ type: 'error', message: '请将数据填写完整后再新增数据行!' })return false}//现有行取消编辑 this.detailTableData.forEach((ele, i) => {this.$set(this.showEdit, i, false)})}var obj = {userName: '',sex: '',telPhone: ''}this.detailTableData.push(obj)},// 编辑一行editDetailRow(index, row) {this.$set(this.showEdit, index, true)},// 确认编辑confirmDetailRow(index, row) {this.$set(this.showEdit, index, false)},//删除一行removeDetailRow(index, row) {this.$confirm('此操作将永久删除当前信息, 是否继续?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning',center: true}).then(() => {this.detailTableData.splice(index, 1)}).catch(() => {this.$message({type: 'info',message: '已取消删除'})})}}
}

http://www.ppmy.cn/ops/127049.html

相关文章

UE5 圆周运动、贝塞尔曲线运动、贝塞尔曲线点

圆周运动 贝塞尔曲线路径运动 蓝图函数库创建贝塞尔曲线点 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "MyBlu…

python-docx -- 读取word文档中的文本

文章目录 word文档案例基于python-docx读取段落基于pywin32读取段落基于pywin32读取表格 word文档案例 需求&#xff1a; 读取所有的段落文本&#xff0c;并使用字典表示每一个段落&#xff1b;段落字典格式如下&#xff1a; {"type": "text","cont…

.net core 3.0 与 6.0 有哪些不同

.NET Core 3.0 和 .NET 6.0&#xff08;注意&#xff0c;从 .NET 5.0 开始&#xff0c;微软将 .NET Core 和 .NET Framework 合并为一个统一的 .NET 平台&#xff09;之间有许多重要的区别。这些区别包括性能改进、新功能、API 的变化以及对不同平台的支持。下面是一些主要的区…

网络爬虫-数美滑块验证码

仅供研究学习使用。 今天带来的是数美滑块验证码的逆向 目标站 --> 传送门 解决此类验证码 首先要解决滑动距离的判定 无论是使用selenium还是使用协议的方式来破解 都绕不开滑动距离的识别 滑动距离可以参考以前我博客上的方式&#xff0c;或者找一找开源的一些算法&am…

SpringBoot中的RedisTemplate对象中的setIfAbsent()方法有什么作用?

文章目录 原子性操作用于分布式锁可选的过期时间 setIfAbsent() 方法是 Redis 中用于设置一个键值对的命令&#xff0c;只有在该键不存在时才会设置成功。它通常用于实现分布式锁的逻辑 主要功能: 原子性操作 setIfAbsent() 是一个原子性操作&#xff0c;意味着在执行该操作的…

理解ES6中的Generator

Generator是ES6引入的一种特殊的函数&#xff0c;允许函数执行过程可以暂停和恢复&#xff0c;具有异步编程的优势。通过function*声明生成器函数&#xff0c;使用yield关键字来暂停函数执行&#xff0c;并通过next()方法来恢复执行。 特点与机制&#xff1a; 暂停执行&#…

基于FPGA的以太网设计(三)

通过前文介绍了RGMII接口时序我们可以知道&#xff0c;RGMII接口是在时钟信号的上升沿和下降沿均进行数据的传输&#xff0c;而FPGA则在时钟的单沿传输数据&#xff0c;因此我们需要编写代码将RGMII接口转换为GMII接口。 由于前面的介绍我们知道RTL8211默认工作在延时状态&…

【STM32】C语言复习以及底层寄存器映射

位操作 &运算 通过与一堆1111&#xff0c;来筛选想要的位并保留 通过与一堆0000&#xff0c;来将不想要的位置置0 110011011 111111000 |运算 通过或一堆1111&#xff0c;用来全置1 通过或一堆0000&#xff0c;来筛选想要的位 右移 2 >> 1&#xff1a;相当…