news 2026/6/15 19:03:02

Vue3+TypeScript+Element-Plus确认对话框ElMessageBox.confirm

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Vue3+TypeScript+Element-Plus确认对话框ElMessageBox.confirm
import { ElMessageBox } from "element-plus"; // 删除模板 async function handleDelete(template: PrintTemplate) { try { await ElMessageBox.confirm("确定删除吗?", "询问", { type: "warning", cancelButtonText: "取消", confirmButtonText: "确定", distinguishCancelAndClose: true, // 区分取消按钮和关闭操作 closeOnClickModal: false, // 点击遮罩层不关闭对话框 closeOnPressEscape: false // 按ESC键不关闭对话框 }); if (template.id) { await printTemplateApi.deleteTemplate(template.id); ElMessage.success("删除成功"); loadTemplates(); } } catch (error) { // 区分用户取消操作和删除操作出错 // Element Plus MessageBox 在用户取消时会 reject,并且 error 的类型是 string 'cancel' 或 'close' if (error === "cancel" || error === "close") { // 用户取消操作,不显示任何提示 return; } // 真正的删除操作出错,显示错误提示 console.error("删除模板失败:", error); ElMessage.error("删除失败"); } }

这段代码使用了 Element Plus 的ElMessageBox.confirm方法创建一个确认对话框,并配置了一些特定的行为选项。让我详细解释每个部分:

代码整体解释

typescript

await ElMessageBox.confirm("确定删除吗?", "询问", { type: "warning", cancelButtonText: "取消", confirmButtonText: "确定", distinguishCancelAndClose: true, // 区分取消按钮和关闭操作 closeOnClickModal: false, // 点击遮罩层不关闭对话框 closeOnPressEscape: false // 按ESC键不关闭对话框 });

逐部分解析

1.基本参数

typescript

"确定删除吗?" // 消息内容 "询问" // 对话框标题

2.配置选项详解

type: "warning"
  • 设置对话框类型为警告类型

  • 会显示警告图标(通常是黄色感叹号)

  • 有视觉上的区分,让用户知道这是需要谨慎操作的动作

cancelButtonText: "取消"
  • 设置取消按钮的文本为"取消"

  • 默认可能是"Cancel",这里中文化

confirmButtonText: "确定"
  • 设置确定按钮的文本为"确定"

  • 默认可能是"OK",这里中文化

distinguishCancelAndClose: true⭐重要

这是关键选项,它的作用是:

  • 默认情况:点击取消按钮和通过其他方式关闭对话框(如ESC、点击遮罩层)都会返回相同的reject结果

  • 设置为true

    • 点击"取消"按钮 → 返回'cancel'

    • 通过关闭操作(ESC、点击遮罩层)关闭 → 返回'close'

    • 这样可以区分用户是主动点击取消,还是只是关闭了对话框

closeOnClickModal: false
  • 控制是否可以通过点击模态框(遮罩层)关闭对话框

  • false表示不能通过点击灰色背景区域关闭对话框

  • 用户必须点击"确定"或"取消"按钮才能关闭对话框

  • 增加了操作的安全性,防止误触关闭

closeOnPressEscape: false
  • 控制是否可以通过按ESC键关闭对话框

  • false表示不能通过ESC键关闭对话框

  • 同样强制用户明确选择确定或取消

  • 避免键盘操作意外关闭对话框

实际效果对比

默认行为(没有这些选项):

  1. 点击取消按钮 → 返回reject

  2. 按ESC键 → 返回reject

  3. 点击遮罩层 → 返回reject

  4. 所有关闭方式结果都一样,无法区分

设置这些选项后:

  1. 点击取消按钮 → 返回'cancel'

  2. 按ESC键 → 返回'close'

  3. 点击遮罩层 →无效(不会关闭)

  4. 可以明确知道用户的操作意图

使用示例

typescript

try { await ElMessageBox.confirm("确定删除吗?", "询问", { type: "warning", cancelButtonText: "取消", confirmButtonText: "确定", distinguishCancelAndClose: true, closeOnClickModal: false, closeOnPressEscape: false }); // 用户点击了"确定" console.log("执行删除操作"); } catch (action) { // 区分不同的关闭方式 if (action === 'cancel') { console.log("用户主动点击了取消按钮"); // 可以执行特定逻辑,如记录日志 } else if (action === 'close') { console.log("用户通过ESC或其他方式关闭"); // 可能是无意关闭,可以有不同的处理 } }

适用场景

这种配置特别适合:

  1. 重要操作(如删除数据)

  2. 财务操作(如转账、支付)

  3. 系统设置变更

  4. 任何需要用户明确确认的操作

安全性考虑

这样的配置提供了更强的操作安全性:

  • 防止误操作:用户不能通过简单的点击背景或按ESC键就关闭对话框

  • 明确意图:必须通过明确的按钮点击来表达选择

  • 可追踪:可以区分不同的关闭方式,便于日志记录和用户行为分析

总的来说,这段代码创建了一个非常严格的确认对话框,确保用户必须明确选择"确定"或"取消",无法通过其他方式轻松关闭,这在重要的操作确认中是非常有用的安全措施。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 15:32:28

华为OD机试双机位C卷 - 自动泊车 (C++ Python JAVA JS GO)

自动泊车 2025华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 100分题型 华为OD机试双机位C卷真题目录点击查看: 华为OD机试双机位C卷真题题库目录|机考题库 算法考点详解 题目描述 考友回忆版:有一个停车场,停车场入口位置[0,0]为0,你要…

作者头像 李华
网站建设 2026/6/15 13:56:57

DAY 41

# DAY 41 Grad-CAM 与 Hook 函数知识点回顾1. 回调函数2. lambda 函数3. hook 函数的模块钩子和张量钩子4. Grad-CAM 的示例预训练模型知识点回顾:1. 预训练的概念2. 常见的分类预训练模型3. 图像预训练模型的发展史4. 预训练的策略5. 预训练代码实战: resnet18作业…

作者头像 李华
网站建设 2026/6/15 7:42:54

揭秘Open-AutoGLM与TestComplete功能覆盖差异:5大核心维度全面解析

第一章:Open-AutoGLM与TestComplete功能覆盖差异概述在自动化测试工具领域,Open-AutoGLM 与 TestComplete 代表了两种截然不同的技术路径与设计理念。前者基于开源大语言模型驱动,强调自然语言理解与自动生成测试用例的能力;后者则…

作者头像 李华
网站建设 2026/6/15 14:20:00

【Open-AutoGLM vs WinAutomation深度测评】:谁才是自动化效率之王?

第一章:Open-AutoGLM 与 WinAutomation 性能对比在自动化流程处理领域,Open-AutoGLM 和 WinAutomation 是两款具有代表性的工具,分别面向开源智能化自动化与企业级桌面流程自动化场景。两者在架构设计、执行效率和扩展能力上存在显著差异。核…

作者头像 李华
网站建设 2026/6/15 5:29:37

学术写作新纪元:解锁书匠策AI,本科硕士论文的智能导航利器

在学术探索的浩瀚星空中,每一位本科生和硕士生都是勇敢的航海家,怀揣着对知识的渴望和对真理的追求,不断前行。然而,面对堆积如山的文献资料、错综复杂的逻辑框架以及繁琐的格式调整,不少学子常常感到力不从心。幸运的…

作者头像 李华
网站建设 2026/6/15 12:19:13

学术迷航终结者:书匠策AI科研工具解锁本科硕士论文写作新次元

在浩瀚的学术海洋中,每一位本科生与硕士生都是勇敢的航海家,面对毕业论文这座巍峨的知识山峰,既渴望攀登至顶,又时常因路途的崎岖而踌躇不前。选题迷茫、文献梳理繁琐、逻辑构建复杂、语言表述不专业……这些问题如同路上的荆棘&a…

作者头像 李华