当前位置: 首页 > news >正文

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

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

在这里插入图片描述

        <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.lryc.cn/news/468033.html

相关文章:

  • 1. Redis简介与安装
  • Redis的持久化存储和集群管理操作
  • Auto-encoder(自编码器)
  • Vue+sortable+el-table表格排序使用指南
  • 表数据删一半,为什么表文件大小不变?
  • MoCoOp: Mixture of Prompt Learning for Vision Language Models
  • YOLOv8 onnx 部署
  • 在文件里引用目录文件下的静态资源图片不显示
  • vue使用 jsplumb 生成流程图
  • 攻坚金融关键业务系统,OceanBase亮相2024金融科技大会
  • 《纳瓦尔宝典:财富和幸福指南》读书随笔
  • C++ | STL | 侯捷 | 学习笔记
  • C函数基础
  • html和css实现页面
  • Github_以太网开源项目verilog-ethernet代码阅读与移植(八)——移植工程分享
  • 【大模型实战篇】大模型分词算法BPE(Byte-Pair Encoding tokenization)及代码示例
  • 低功耗4G模组LCD应用示例超全教程!不会的小伙伴看这篇就够了!
  • Java while语句练习 C语言的函数递归
  • illustrator免费插件 截图识别文字插件 textOCR
  • 提升数据管理效率:ETLCloud与达梦数据库的完美集成
  • 头歌——人工智能(搜索策略)
  • gorm.io/sharding改造:赋能单表,灵活支持多分表策略(下)
  • 域渗透AD渗透攻击利用 MS14-068漏洞利用过程 以及域渗透中票据是什么 如何利用
  • C++进阶-->继承(inheritance)
  • 可视化项目 gis 资源复用思路(cesium)
  • SQL实战测试
  • Java 基础教学:基础语法-变量与常量
  • vue3使用element-plus手动更改url后is-active和菜单的focus颜色不同步问题
  • 每天五分钟深度学习框架pytorch:从底层实现一元线性回归模型
  • 编辑器加载与AB包加载组合