Skip to content

Dialog 对话框

在保留当前页面状态的情况下,弹出一个模态对话框,告知用户信息或进行交互操作。

基础用法

通过 v-model 控制对话框的显示与隐藏。

尺寸预设

通过 size 属性快速设置对话框宽度,支持 smallmediumlargefull 四种尺寸。

拖拽与全屏

通过 draggable 启用拖拽,fullscreen 显示全屏切换按钮。

关闭行为

通过 show-closeclose-on-click-overlayclose-on-esc 控制关闭方式。

Dialog API

Props

参数说明类型默认值
modelValue对话框是否显示(v-model)booleanfalse
title对话框标题string
width对话框宽度(CSS 值或 px 数字)string | number
size尺寸预设small | medium | large | fullmedium
fullscreen是否显示全屏切换按钮booleanfalse
draggable是否可拖拽booleanfalse
show-close是否显示关闭按钮booleantrue
center是否居中布局booleanfalse
close-on-click-overlay点击遮罩层是否关闭booleantrue
close-on-esc按下 Escape 是否关闭booleantrue
lock-scroll打开时是否锁定 body 滚动booleantrue
overlay-class遮罩层自定义类名string
dialog-class对话框自定义类名string

Events

事件名说明回调参数
update:modelValue对话框显示状态变化时触发(visible: boolean)
open对话框打开时触发
close对话框关闭时触发
closed对话框关闭动画完成后触发

Slots

插槽名说明
default对话框主体内容
title自定义标题内容
footer对话框底部操作区

注意事项

  • SSR 兼容性:Dialog 使用 Teleport 将内容挂载到 document.body,在 SSR 环境中需确保仅在客户端渲染。
  • 滚动锁定:默认锁定 body 滚动(lock-scroll: true),关闭后自动恢复。如需保留背景滚动,设置 lock-scroll: false
  • z-index 管理:Dialog 使用全局 z-index 管理器自动递增,确保后打开的 Dialog 始终覆盖在先打开的之上。
  • 拖拽限制:启用 draggable 后仅可通过 header 区域拖拽。全屏模式下拖拽会被禁用。
  • 无障碍:建议为 Dialog 添加语义化的 title 属性,以便屏幕阅读器正确识别对话框标题。

基于 MIT 许可发布