记ElementUI内置的$confirm确认消息弹框方法

在项目中遇到了一个this.$confirm但在main.js的vue.prototype实例挂载上却没找到该对应的方法。查阅后发现是ElementUI自带的类似$message的api,非常方便好用~~~在此简单记录一下
在这里插入图片描述


在这里插入图片描述
例如某个页面的table带有操作按钮,可以删除或废弃某一条数据,那么我们可不能在点击删除按钮的一瞬间就把该条数据给彻底删掉了(万一是用户点错了咋办?),而该弹出一条确认信息供操作者再次确认无误后再执行:

在这里插入图片描述
若是项目中的每个table都自己手动写一个toast弹窗就太麻烦了,风格也容易不统一。那么就像消息提示的$message一样,采用ElementUI内置的$confirm确认消息api就好了:
在这里插入图片描述

代码:

<!-- 点击后需要确认的按钮 -->
<el-button type="primary" @click="delectButton(params.row)" size="mini">废弃</el-button>
    // 废弃按钮事件
    delectButton(row) {
      // 引用确认消息弹窗api
      this.$confirm(
        '确定要废弃XXX节点的XXX吗?确定后会删除该记录。', // 第一个参数为弹窗消息内容
        '提示', // 第二个参数为弹窗左上角标题title
        // 第三个参数为弹窗项的options,应该为object对象
        { 
          confirmButtonText: '确定',  // 确认按钮的文本,可省略,默认为确定
          cancelButtonText: '取消',  // 取消按钮的文本,可省略,默认为取消
          type: 'warning' // 弹窗的消息类型,比如为warning时弹窗左边图标为'!'感叹号,为success时图标为'√'的勾。
        }
      )
      	// then中填写点击确认按钮后执行的事件,例如执行删除该条数据的delect请求 
        .then(() => {
          axios.delete("xxxx", {row})
            .then((res) => {
              let messageMethod = res.data.code === 200 ? "success" : "error";
              this.$message[messageMethod](res.data.message); // delect请求返回的消息提示
              this.search(); // 删除成功后刷新页面数据
            });
        })
        // catch中填写点击取消按钮后执行的事件,例如消息提示“已取消删除”
        .catch(() => {
          this.$message.info(this.$t("lang.Deletecancelled")); // 使用i18n国际化表示的“已取消删除”
        });

点击取消按钮效果(我们项目自己封装的$message方法,和ElementUI的样式不太一样):
在这里插入图片描述
点击确定按钮效果:
在这里插入图片描述


除此之外,ElementUI还提供了许多弹窗校验api,都在这个MessageBox 弹框的文档里:

MessageBox 弹框

包括提示填入内容等等,甚至可以自定义配置,真心十分好用

在这里插入图片描述


over,THX~

Element UI 的 `v2.15.14` 版本中,如果你想在 `$confirm` 中添加一个自定义按钮,可以按照以下步骤操作: 首先,在组件的模板部分,使用 Element 的确认提示,并为其 `on-ok` 或者 `on-cancel` 事件添加回调函数,这是默认的行为按钮。然后,你可以创建一个新的 slot (插槽) 对于自定义按钮: ```html <template> <el-dialog :visible.sync="dialogVisible" title="自定义确认对话" > <div slot="footer"> <!-- 默认按钮 --> <el-button type="primary" @click="handleOk">确定</el-button> <el-button @click="handleCancel">取消</el-button> <!-- 自定义按钮 --> <el-button v-if="customButtonShow" slot="append" @click="handleCustomAction">自定义按钮</el-button> </div> </el-dialog> </template> ``` 接下来,在对应的 Vue 实例中,你需要设置 `dialogVisible` 属性来控制窗是否显示,以及 `customButtonShow` 来控制自定义按钮是否显示: ```javascript export default { data() { return { dialogVisible: false, customButtonShow: false, // 当需要显示自定义按钮时设为 true }; }, methods: { handleOk() { this.dialogVisible = false; // 确定后关闭对话 // 可能的操作... }, handleCancel() { this.dialogVisible = false; // 取消后关闭对话 }, handleCustomAction() { // 自定义按钮的处理逻辑 console.log('自定义动作执行'); } }, }; ``` 当 `customButtonShow` 为 `true` 时,自定义按钮将会出现在的底部。你可以根据需要调整这个逻辑和按钮内容。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值