项目正在快速迭代中,API 与视觉细节可能随版本调整,请勿用于生产环境。
双端兼容 · 桌面 + 移动

Dialog 对话框 ​

移动端:居中模态让位于底部动作面板与全屏表单页,参见 移动端 · 反馈与浮层。

模态对话框,在保留页面上下文的前提下承载临时交互:表单填报、操作确认、内容详情等。内置焦点圈禁(Tab 循环锁定在对话框内)、ESC 关闭、遮罩点击关闭、计数式滚动锁定与 zIndex 自动递增;v-model 控制显隐,before-close 可统一拦截所有关闭途径(右上角按钮 / ESC / 遮罩 / 程序化 handleClose)。

基础用法 ​

v-model 绑定显隐;title 设置标题(同时作为 aria-label),width 控制宽度,数字按 px、字符串原样输出(默认 520px,且最大不超过视口减 32px)。footer 通过插槽传入操作按钮。

垂直居中与顶部偏移 ​

对话框默认距视口顶部 15vh,top 可调整偏移;align-center 让对话框在视口内水平垂直双居中(设置后 top 不生效),适合确认类小弹窗。

全屏与自定义头部 ​

fullscreen 铺满整个视口(忽略 width 与 top);#header 插槽替换默认标题区,右上角关闭按钮独立于插槽渲染,不会被覆盖。

拦截关闭(before-close) ​

before-close 接收 done 回调:不调用 done 则本次关闭被阻止。右上角关闭按钮、ESC、点击遮罩触发的关闭都会先经过它,可在此做异步校验或二次确认。

禁用遮罩与 ESC 关闭 ​

表单类对话框不希望误触丢失内容:close-on-click-modal 与 close-on-press-escape 置为 false 后,只能通过显式按钮关闭;show-close 置为 false 还可隐藏右上角关闭按钮。

API ​

Dialog Props

参数说明类型默认值
v-model显示控制(源 prop 为 modelValue)booleanfalse
title标题,同时作为 aria-label 兜底string
width宽度,数字按 px,最大不超过视口减 32pxstring | number520px
fullscreen全屏铺满(忽略 width / top)booleanfalse
top距视口顶部偏移,align-center 时失效string15vh
modal遮罩模式,false 时点击遮罩不关闭booleantrue
close-on-click-modal点击遮罩关闭booleantrue
close-on-press-escape按 ESC 关闭booleantrue
show-close右上角关闭按钮booleantrue
destroy-on-close关闭后销毁默认插槽内容,下次打开重新渲染booleanfalse
append-to-bodyTeleport 到 body,避免父级层叠上下文裁剪booleantrue
lock-scroll打开期间锁定页面滚动(计数式,多层叠加安全)booleantrue
center头部与底部操作区水平居中booleanfalse
align-center对话框在视口水平垂直双居中booleanfalse
glass面板磨砂玻璃质感;缺省跟随全局(EbConfigProvider 的 glass)boolean—
blur面板磨砂模糊半径(px),仅磨砂生效时应用;缺省跟随 --eb-glass-blur 令牌(14px)number | string—
before-close关闭前拦截,不调用入参 done 则阻止关闭(done) => void—

Slots

参数说明类型默认值
default对话框内容,destroy-on-close 时随关闭销毁——
header替换标题区(关闭按钮独立于插槽)——
footer底部操作区,未提供时不渲染 footer——

Events

参数说明类型默认值
update:modelValue显隐受控更新(v: boolean) => void—
open打开时立即触发() => void—
opened打开动画结束后触发() => void—
close开始关闭时触发(走完 before-close 拦截流程后)() => void—
closed关闭动画结束后触发() => void—

Exposes

参数说明类型默认值
visible当前显示状态boolean—
handleClose程序化关闭(同样经过 before-close 拦截流程)() => void—
ref对话框根 DOM 元素(焦点圈禁容器)HTMLElement—