Vue2+ElementUI的el-table实现新增数据行与删除的功能

embedded/2024/10/18 14:15:33/

Vue2+ElementUI的el-table实现新增数据行与删除的功能

文章目录

  • Vue2+ElementUI的el-table实现新增数据行与删除的功能
  • 1. 代码
  • 2. 效果

1. 代码

TableIndex.vue如下

<template><div><div><el-button @click="add" class="filter-item" plain type="primary">新增</el-button><el-button @click="batchDelete" class="filter-item" plain type="danger">删除</el-button></div><el-table :data="tableData.records" :key="tableKey" size="small"@selection-change="onSelectChange"border fit row-key="id" ref="table" style="width: 100%;" v-loading="loading"><el-table-column align="center" type="selection" width="40px" column-key="selectionId":reserve-selection="true"/><el-table-column v-if="false"><template slot-scope="scope"><el-input v-model="scope.row.id"></el-input></template></el-table-column><el-table-column label="标题"align="center" prop="blockTitle"width="300px"><template slot-scope="scope"><el-input v-model="scope.row.blockTitle"></el-input></template></el-table-column><el-table-column label="类型"align="center" prop="blockType"width="120px"><template slot-scope="scope"><el-select v-model="scope.row.blockType"><el-option label="表单" value="0"/><el-option label="表格" value="1"/><el-option label="树表" value="2"/><el-option label="甘特图" value="3"/></el-select></template></el-table-column><el-table-column label="数据源" :show-overflow-tooltip="true"align="center" prop="blockUrl"width=""><template slot-scope="scope"><el-input v-model="scope.row.blockUrl"></el-input></template></el-table-column><el-table-column label="是否有效"align="center" prop="izValidate"width="150px"><template slot-scope="scope"><el-radio v-model="scope.row.izValidate" label="1" default></el-radio><el-radio v-model="scope.row.izValidate" label="0"></el-radio></template></el-table-column><el-table-column:label="$t('table.operation')" align="center" column-key="operation"class-name="small-padding fixed-width"width="100px"><template slot-scope="{ row }"><i @click="singleDelete(row)" class="el-icon-delete table-operation" title="删除" style="color: #f50;"/></template></el-table-column></el-table></div>
</template><script>
import elDragDialog from '@/directive/el-drag-dialog'
import {v4 as uuidv4} from 'uuid';export default {name: "TableIndex",directives: {elDragDialog},filters: {},data() {return {selections: [],tableData: {records: [],total: 0},tableKey: 0,loading: false,};},computed: {},watch: {},mounted() {},methods: {add() {// 添加新行this.tableData.records.push({id: uuidv4(), blockTitle: '', blockType: '', blockUrl: '', izValidate: '1'});},// 单行删除方法singleDelete(row) {console.log(row)this.tableRowsDelete(new Array(row.id))},//批量删除方法batchDelete() {if (!this.selections.length) {this.$message({message: "请先选择需要删除的数据",type: "warning"});return;}//获取要删除的记录idconst delIds = this.selections.map(row => row.id);this.tableRowsDelete(delIds)},// 删除表格数据行的方(用于单行及批量删除按钮操作)tableRowsDelete(delIds) {this.$confirm('此操作将永久删除, 是否继续?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {//根据id删除this.tableData.records = this.tableData.records.filter(item => !delIds.includes(item.id));this.$refs.table.clearSelection();this.$message({type: 'success',message: '删除成功!'});}).catch(() => {this.clearSelections();this.$message({type: 'info',message: '已取消删除'});});},//当选择项发生变化时会触发该事件onSelectChange(selection) {this.selections = selection;},//清空表格选择clearSelections() {this.$refs.table.clearSelection();}}
};
</script>
<style lang="scss" scoped></style>

2. 效果

  1. 新增按钮添加数据行

在这里插入图片描述

  1. 删除按钮提示是否继续删除

在这里插入图片描述


http://www.ppmy.cn/embedded/9558.html

相关文章

2024接口自动化测试入门基础知识【建议收藏】

接口自动化测试是指通过编写测试脚本和使用相关工具&#xff0c;对软件系统的接口进行自动化测试的过程。 今天本文从4个方面来介绍接口自动化测试入门基础知识 一、接口自动化测试是什么&#xff1f; 二、接口自动化测试流程&#xff1f; 三、接口自动化测试核心知识点有那些…

Golang:三种引号详解-单引号、双引号、反引号

Golang限定字符或者字符串一共三种引号&#xff1a; 单引号&#xff08;)&#xff0c;单个字符&#xff0c;更类似于C语言中的char类型&#xff0c; 双引号("") &#xff0c;字符串&#xff0c;单行的&#xff0c;多个字符&#xff08;字母数字&#xff09;。 反引…

后端获取请求体Body,将请求体进行解密放回Request请求,并能通过@RequestBody获取

目前系统发送的post和put请求都是没有加密数据。客户需要将请求体加密。而系统已经基本开发完成&#xff0c;不可能一个一个去修改发送的请求。就需要在发送请求时候在拦截器中将body进行加密。并且在后端进行请求过滤解密&#xff0c;并且能通过RequestBody继续获取对象。 1.…

前端学习之DOM编程案例:点名案例和秒表案例

点名 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>点名案例</title><style>*{margin: 0;padding: 0;}</style> </head> <body><div id"container">…

软件行业中的蓝海领域有哪些?

一、什么是蓝海&#xff1f; 蓝海&#xff0c;指的是未知的市场空间。这个概念相对于“红海”而言&#xff0c;红海则是指已知的市场空间。 企业要启动和保持获利性增长&#xff0c;就必须超越产业竞争&#xff0c;开创全新市场&#xff0c;这其中包括两块&#xff1a;一块是…

【三维地图无人机路径规划】基于改进A星算法

课题名称&#xff1a; 基于改进A星算法的无人机三维地图路径规划 版本时间&#xff1a; 2024-04-22 程序运行&#xff1a; 直接运行AStar.m 文件即可 代码获取方式&#xff1a; QQ&#xff1a;491052175 VX&#xff1a;Matlab_Lover 改进方向&#xff1a; 预估函数增…

【学习笔记】Vue3源码解析:第三部分-获取computed的值;实现computed

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第三部分-获取computed的值&#xff1b;实现computed&#xff1a;&#xff08;对应课程的第18-21节&#xff09; 第22节&#xff1a;《获取computed的值》 …

35K的鸿蒙音视频开发岗位面经分享~

一个月前&#xff0c;阿里云在官网音视频终端 SDK 栏目发布适配 HarmonyOS NEXT 的操作文档和 SDK&#xff0c;官宣 MediaBox 音视频终端 SDK 全面适配 HarmonyOS NEXT。 此外&#xff0c;阿里云播放器 SDK 也在华为开发者联盟官网鸿蒙生态伙伴 SDK 专区同步上线&#xff0c;面…