跳到正文
贡献者

Dialog 对话框

Dialog 组件族用于需要遮罩、焦点管理和明确关闭行为的模态内容。McDialog 承载通用内容,McConfirm 处理需要用户确认或取消的简短决策。

基础用法

Confirm 确认弹窗

McConfirm 直接复用 Dialog 的 header、body 和 actions 分区,适合删除、覆盖、退出等需要二次确认的操作。

交互机制

  • Dialog 默认允许点击遮罩或按 Escape 关闭,并显示右上角关闭按钮。
  • Confirm 默认禁用遮罩关闭并隐藏关闭按钮,必须通过取消、确认或显式状态更新完成决策。
  • 两者都由 Overlay 提供焦点陷阱、焦点恢复、页面滚动锁和 Teleport;默认挂载到 body

API

McDialog

名称类型默认说明
modelValuebooleanfalse控制对话框是否显示,支持通过 v-model 双向绑定。
titlestring-对话框标题;也可使用 title 插槽提供自定义内容。
teleportstring | HTMLElement | falsebodyTeleport 目标;设为 false 时保留在当前 DOM 层级。
closeOnOverlaybooleantrue点击遮罩时是否关闭对话框。
closeOnEscapebooleantrue按 Escape 时是否关闭对话框。
persistentbooleanfalse是否阻止遮罩点击和 Escape 关闭,适合必须完成的流程。
showClosebooleantrue是否在标题区显示右上角关闭按钮。
widthstring | number520对话框宽度;数字按 px 处理,字符串作为 CSS 宽度使用。

插槽:activatortitledefaultactions。事件:update:modelValueclose。Dialog 使用 role="dialog"、焦点陷阱、焦点恢复和滚动锁。

McConfirm

名称类型默认说明
modelValuebooleanfalse控制确认弹窗是否显示,支持通过 v-model 双向绑定。
titlestringLocale 文案确认弹窗标题;未提供时使用当前 Locale 的确认文案。
confirmTextstringLocale 文案确认按钮文字;未提供时使用当前 Locale 的确认文案。
cancelTextstringLocale 文案取消按钮文字;未提供时使用当前 Locale 的取消文案。
dangerbooleanfalse是否使用错误色突出确认按钮,适合删除等危险操作。
showClosebooleanfalse是否显示右上角关闭按钮。
stackActionsbooleanfalse是否将取消与确认按钮改为纵向堆叠。
teleportstring | HTMLElement | falsebodyTeleport 目标;设为 false 时保留在当前 DOM 层级。

默认插槽为确认说明。事件:update:modelValueconfirmcancelclose。Escape、关闭按钮或遮罩导致关闭时发出 cancel;点确认只发出 confirm,不会顺带 cancel

最后更新于

MIT Licensed · Ore UI 风格 Vue 3 组件库