Skip to content

Dialog 对话框

用于展示模态内容、确认流程或复杂表单,支持遮罩、关闭前回调、自定义背景和底部操作区域。

示例

基础用法

自定义背景

确认操作

API

Props

属性名说明类型默认值示例
model-value是否显示 Dialogbooleanfalsev-model="visible"
append-to挂载到哪个 DOM 元素string | HTMLElement'body'append-to="#app"
mask是否显示遮罩层booleantrue:mask="false"
destroy-on-close关闭时是否销毁 DOMbooleanfalsedestroy-on-close
top距离顶部的距离number | string'15vh'top="20vh"
width弹框宽度number | string'fit-content'width="520px"
padding弹框内边距number | string | Array<number | string>[16, 16]:padding="[24, 32]"
show-close是否显示关闭按钮booleantrue:show-close="false"
title标题文本;可被 title 插槽覆盖string''title="提示"
align-center是否垂直居中booleanfalsealign-center
close-on-click-modal是否可点击遮罩关闭booleantrue:close-on-click-modal="false"
before-close关闭前回调,resolve 后关闭() => Promise<unknown>Promise.resolve():before-close="beforeClose"
background弹框背景色string'#fff'background="#f5f7fa"
z-index弹框层级number-:z-index="3000"
fullscreen是否全屏booleanfalsefullscreen

Events

事件名说明回调参数示例
update:model-value显隐状态变化时触发(visible: boolean)@update:model-value="onUpdate"
closemodel-value 变为 false 触发-@close="onClose"
closed关闭动画结束后触发-@closed="onClosed"

Slots

插槽名说明作用域参数示例
default弹框主体内容-<template #default>
title自定义标题内容-<template #title>
footer自定义底部内容-<template #footer>

Exposes

方法名说明类型示例
close关闭弹框() => voiddialogRef.value?.close()

关联布局导出

导出名说明适用场景
MtDialogConfirmLayout取消、确认按钮组合的内容布局Dialog 确认操作区

MtDialogConfirmLayout 属于 Dialog 的关联布局能力,适合在弹窗内容中组织确认和取消操作,不作为独立组件入口展示。

注意事项

  • 重要操作建议配置 before-close 做二次确认或异步校验。
  • 需要函数式创建弹窗时可使用 PosterDialog 本身主要用于声明式对话框。
  • 多个弹层同时出现时建议通过 ConfigProvider 统一管理层级。