Vue使用ElementUI的确认框进行删除操作(包含前后端代码)

news2024/12/26 0:08:09

前言

今天做自己项目的时候,有一个删除的业务,正好遇到了确认框,在此纪念一下。

这里我是使用的ElementUI的确认框!

首先ElementUI的确认框是这么说明的:

从场景上说,MessageBox 的作用是美化系统自带的 alert、confirm 和 prompt,因此适合展示较为简单的内容。如果需要弹出较为复杂的内容,请使用 Dialog

调用$confirm方法即可打开消息提示,它模拟了系统的 confirm。Message Box 组件也拥有极高的定制性,我们可以传入options作为第三个参数,它是一个字面量对象。type字段表明消息类型,可以为success,error,info和warning,无效的设置将会被忽略。注意,第二个参数title必须定义为String类型

我们先看下原生ElementUI提供的确认框是什么样的吧:

官网地址:Element确认框

在这里插入图片描述

我们点击看下长什么样子:

在这里插入图片描述

原生代码:

<template>
  <el-button type="text" @click="open">点击打开 Message Box</el-button>
</template>

<script>
  export default {
    methods: {
      open() {
        this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.$message({
            type: 'success',
            message: '删除成功!'
          });
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消删除'
          });          
        });
      }
    }
  }
</script>

官网提供给我我们使用说明和基本使用,下面我将按照官网的基础进行一些小小的升级和改造,顺便告诉大家一些使用技巧。

元素代码

按钮上的代码比较简单,直接从element-ui使用复制即可

注意,这里有个坑,单机事件的方法名不能叫delete,这是一个关键词,不能使用,需要换一个名子,所以我才选择handleDelete!!!

这里我给方法传递了一个参数:scope.row,可以通过它获取这一行的全部数据,从而给后端传递相关的参数进行逻辑处理。

  <el-table-column fixed="right"  label="操作"  width="220" align="center" >
      <template slot-scope="scope"> 
        <el-button @click="handleDelete(scope.row)" type="danger" icon="el-icon-delete" size="small" >删除</el-button>
        <el-button type="warning" icon="el-icon-edit" size="small">编辑</el-button>
      </template>
    </el-table-column>

js代码

js相关的代码也十分简单。相关注释写在代码里面了,确认框提示的文案可以自由切换哦!

以下是我觉得重要且基本的一些属性:

在这里插入图片描述

代码如下:

	 // 删除
    handleDelete(row) {
        // 确认框确认是否要删除
        this.$confirm("确定要删除"+row.userName+"吗?", "删除提示", {
          iconClass: "el-icon-question", //自定义图标样式
          confirmButtonText: "残忍删除", //确认按钮文字
          cancelButtonText: "留你小命", //取消按钮文字
          showClose: true, //是否显示右上角关闭按钮
          type: "warning", //提示类型  success/info/warning/error
      }).then(res=> {  //选择确认按钮进入此方法
          //确认操作
          alert('确认')
      }).catch(() => { //选择取消按钮进入此方法
        //取消操作
         alert('取消')
      });    
    }

效果演示

这样一个确认框就写好了,我们可以根据点击确认或者取消进行不同的逻辑操作

然后我们页面上测试一下吧

确认

首先是确认操作

在这里插入图片描述

取消

然后是取消操作

在这里插入图片描述

扩充

这里还有一个属性:center

确认框文字是否居中,改为true即可居中,默认false

我个人觉得居中后太丑了。所以就没加到上面代码,大家知道即可,效果如下:

在这里插入图片描述

在这里插入图片描述

ps:不止这一个属性我没提到或者用到,还有很多属性,element-ui给我们提供了很多属性,大家根据孫的需求灵活运用即可,我上面说的都是我觉得最基本的属性。

在这里插入图片描述

删除逻辑编写

前端代码

这里写一个完整的删除逻辑,首先是前端代码,在刚才的代码基础上完善逻辑,使用axios发送请求并携带参数。

删除完之后一定要刷新列表哦,不然不容易发现数据变化!

关于如何封装一个公共的数据列表动态展示方法,可以参考:Vue使用Element-UI的table组件和后端接口进行数据交互

这里axios我用的是原生的,没有进行封装。因为后端崽目前还没学会!

 // 删除
    handleDelete(row) {
        // 确认框确认是否要删除
        this.$confirm("确定要删除"+row.userName+"吗?", "删除提示", {
          iconClass: "el-icon-question", //自定义图标样式
          confirmButtonText: "残忍删除", //确认按钮文字
          cancelButtonText: "留你小命", //取消按钮文字
          showClose: true, //是否显示右上角关闭按钮
          type: "warning", //提示类型  success/info/warning/error
      }).then(res=> {  //选择确认按钮进入此方法
          //确认操作 请求删除接口
         axios.get('http://localhost:9090/user/delete', {
          // 传递的参数
          params: {
            id:row.id //id,从row获取当前行的用户id
          }
          // 回调函数,一定要使用箭头函数,不然this的指向不是vue示例
          }).then(res =>{
              // 删除成功
              if(res.data.status===200){
              // 删除成功提示
                this.$message({showClose: true, message: '删除成功!',type: 'success', duration:1000,center:true});
                // 重新刷新最新的用户列表
                this.queryUserList();
              }
             
          }).catch(error =>{
             console.log(error)
          })
      }).catch(() => { //选择取消按钮进入此方法
        //取消操作
      });    
    }

后端代码

前端代码写好了当然离不开服务器接口的支撑,由于这是我自己写的项目,所以我的后端直接用MybatisPlus自带的删除(逻辑删除)就可以啦

在这里插入图片描述

效果演示

前后端代码都写好了,咱们就可以演示一波了。这里随便找一个幸运儿进行删除,这里我就拿第一行开刀了!

在这里插入图片描述

点击确认,数据消失!

在这里插入图片描述

总结

总的来说,使用起来还是很简单的。后面遇到什么情况,再回来补充!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java程序员跳槽,三面全过,面试官:你这样的,我们招不起

程序员小李在沿海城市工作了8年&#xff0c;那里涨幅飞快的房价限制了程序员小李在一线城市安家的想法&#xff0c;再加上突然发生的疫情暴露了远在他乡工作的不便&#xff0c;在种种因素下&#xff0c;程序员小李决定回家工作。 既然已经下定决心告别一线城市回家乡发展&…

数据分析面试-sql练习

SQL汇总1. SQL执行顺序2. 开窗函数3. 经典SQL题3.0 数据准备3.1 ☆ 查询‘01’课程比‘02’课程成绩高的学生3.2 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩3.3 查询在SC表存在成绩的学生信息3.4 查询所有同学的学生编号、学生姓名、选课总数、所有课程的总…

Github每日精选(第96期):微软的机器学习课程ML-For-Beginners

12 周&#xff0c;26 节课&#xff0c;52 道测验&#xff0c;适合所有人的经典机器学习。 添加链接描述 初学者机器学习 - 课程 Microsoft 的 Azure Cloud Advocates 很高兴提供为期 12 周、26 节课的全部关于机器学习的课程。在本课程中&#xff0c;您将了解有时称为经典机器…

【C++】面向对象:继承

&#x1f431;作者&#xff1a;傻响 &#x1f431;专栏&#xff1a;《C语法》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 C中的继承 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.3 继承关系和访问限定符 1.4 继承基类成…

ES6中扩展运算符的9种用法

1. 拷贝数组对象 const years [2018, 2019, 2020, 2021]; const copyYears [...years];console.log(copyYears); // [ 2018, 2019, 2020, 2021 ]扩展运算符拷贝数组&#xff0c;只有第一层是深拷贝&#xff0c;即对一维数组使用扩展运算符拷贝就属于深拷贝 2. 合并数组 先…

c++入门语法

文章目录1. 命名空间1.1 域的介绍1.2 命名空间的定义1.3 命名空间的三种使用方式2. C输入&&输出3. 缺省参数3.1 概念3.2 缺省参数分类4. 函数重载4.1 概念4.2 C支持函数重载的原理--名字修饰5. 引用5.1 概念5.2 特性5.3 常引用5.4 使用场景5.5 指针和引用的区别6. 内联…

OpenCV-PyQT项目实战(3)信号与槽机制

欢迎关注『OpenCV-PyQT项目实战 Youcans』系列&#xff0c;持续更新中 OpenCV-PyQT项目实战&#xff08;1&#xff09;安装与环境配置 OpenCV-PyQT项目实战&#xff08;2&#xff09;QtDesigner 和 PyUIC 快速入门 OpenCV-PyQT项目实战&#xff08;3&#xff09;信号与槽机制 …

健身大神都戴什么耳机、健身大佬的耳机清单分享

平时&#xff0c;我们总能看到许多运动健身的人群&#xff0c;在锻炼时都佩戴着耳机。但运动耳机的选择&#xff0c;同样是大有学问的。如果佩戴传统的真无线蓝牙耳机&#xff0c;有可能出现佩戴不稳、耳道肿胀等问题&#xff0c;影响运动体验。所以今天我们特意给大家带来几款…

【大数据实时数据同步】OGG异构多路映射同步原表审计表只存删除数据表实现方案(二)

文章目录前言十一、将SCOTT下所有已同步的HIS表逻辑同步配置改为DEL表操作1、首先来看一下抽取进程和应用进程我们要修改成什么样的配置2、开始前先停止源端的抽取进程3、清除原来HIS表非DELETE操作数据4、启动抽取进程和应用进程验证总结前言 这里是后续&#xff01;&#xf…

尚医通 (一)项目介绍

目录一、功能简介二、技术点三、业务流程四、系统架构一、功能简介 尚医通即为网上预约挂号系统&#xff0c;网上预约挂号是近年来开展的一项便民就医服务&#xff0c;旨在缓解看病难、挂号难的就医难题&#xff0c;许多患者为看一次病要跑很多次医院&#xff0c;最终还不一定…

微信小程序 python垃圾分类知识科普系统 uniapp

目 录 摘 要 III Abstract 4 1 系统概述 5 1.1 概述 5 1.2课题意义 5 1.3 主要内容 5 2 系统开发环境 6 2.1微信开发者工具 6 2.2小程序框架以及目录结构介绍 6 3 需求分析 1 3.1 系统设计目标 1 3.2需求分析概述 1 3.3 系统可行性分析…

分享160个ASP源码,总有一款适合您

分享160个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 160个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1xMcHd2x-EW0PP4TdVCU5vA?pwd3hby 提取码&#xff1a;3hby…

嵌入式开发:如何在嵌入式市场中平衡敏捷

敏捷方法的好处是有据可查的&#xff0c;但是在遵从驱动的市场中&#xff0c;向敏捷过渡对于嵌入式开发团队来说是一个挑战。需要可追溯性和文档来证明遵从性&#xff0c;但是这可能与敏捷的精神相矛盾&#xff0c;敏捷的精神仍然受到伴随着方法论成长起来的不准确神话的困扰。…

创建者模式—原型模式(深克隆和浅克隆的区别)

目录 1.原型模式 1.1概念 1.2结构 1.3实现 1.4案例 1.5深克隆&#xff08;扩展&#xff09; 2.浅克隆和深克隆 2.1克隆的特点 2.2浅克隆和深克隆的区别 1.原型模式 1.1概念 用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型对象相同的新对…

【分布式任务调度】XXL-JOB快速搭建教程

XXL-JOB1. XXL-JOB简介2. XXL-JOB搭建2.1 准备工作2.1.1 下载源码2.1.2 数据库准备 数据库脚本在doc路径下&#xff0c;将其执行之后可以创建一个数据库&#xff0c;如图3所示&#xff1a;2.2 搭建调度中心2.3 搭建“执行器”3. 测试3.1 新增执行器3.2 新增任务3.3 启动任务测试…

【工作笔记0036】C#中Decimal小数取整容易犯错的坑

这两天排查一个bug&#xff0c;数据库中同样的计算公式 和 C#代码中一毛一样的计算公式&#xff0c;最后结果为 Decimal 类型的小数&#xff0c;需求保留两位小数。但是结果是数据库中 和 代码中的结果总是对不上。整理并简化了一下项目中代码计算公式&#xff1a;decimal a 3…

vitest第一章(初始vitest)

从三个角度分析vitest 他能做什么&#xff1f; 为什么要使用他&#xff1f; 使用它的优势是什么&#xff1f; vitest官网cn.vitest.dev/ 1.vitest能做什么 从官网介绍说这是一个单元测试框架&#xff0c;大家听到有测试两个字觉得这个是测试同学写的东西&#xff0c;其实这个…

低版本浏览器(webview)空数据音频文件异常报错

问题背景 监控出现大量静态资源加载异常报警&#xff0c;ios和安卓各系统版本都有&#xff08;排查了一段时间&#xff0c;发现是QA同学在全量测试&#xff0c;无语凝噎&#xff09;QA测试反馈&#xff0c;报告页在收音失败的情况稳定复现播放音频失败&#xff08;确实有问题&…

Qos实验配置-CBQ方式

目录 对报文进行重标记 对数据报文进行流量监管-接口入方向 将报文加入相应队列 为语音业务配置丢弃策略 配置流量整形-接口出方向 QoS理论讲解_静下心来敲木鱼的博客-CSDN博客_qos 优先级映射https://blog.csdn.net/m0_49864110/article/details/127414766?ops_request_…

MATLAB 绘制数据图

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…