Skip to content

Dialog 对话框 ​

在保留当前页面状态的情况下,告知用户并承载相关操作。

基础用法 ​

vue
<my-dialog v-model="visible" title="提示" status="info">
  <p>内容</p>
</my-dialog>

状态类型 ​

通过 status 设置 info / success / warning / error / danger。

vue
<my-dialog v-model="visible" title="保存成功" status="success">...</my-dialog>
<my-dialog v-model="visible" title="修改须知" status="warning">...</my-dialog>
<my-dialog v-model="visible" title="提交失败" status="error">...</my-dialog>

位置 ​

position 支持 auto / top / center / bottom。

vue
<my-dialog v-model="visible" position="auto" />
<my-dialog v-model="visible" position="top" />
<my-dialog v-model="visible" position="center" />
<my-dialog v-model="visible" position="bottom" />

背景变体 ​

overlayType 控制遮罩样式:opaque(不透明)、blur(模糊)、transparent(透明)。

vue
<my-dialog v-model="visible" overlay-type="blur">模糊遮罩</my-dialog>
<my-dialog v-model="visible" overlay-type="transparent">无遮罩</my-dialog>
<my-dialog v-model="visible" overlay-type="opaque">不透明遮罩(默认)</my-dialog>

自定义背景 ​

通过 overlayColor 完全自定义遮罩颜色,比如删除账户时的红色警示背景。

vue
<my-dialog
  v-model="visible"
  title="删除账户"
  status="danger"
  overlay-type="blur"
  overlay-color="rgba(239, 68, 68, 0.15)"
  width="400px"
>
  <p>此操作不可撤销...</p>
</my-dialog>

尺寸 ​

size 预设 large / small。

vue
<my-dialog v-model="visible" size="large">720px</my-dialog>
<my-dialog v-model="visible" size="small">360px</my-dialog>

组件结构 ​

通过 <teleport to="body"> 挂载,根元素 .my-dialog 内含:遮罩层 __overlay、内容面板 __content(头部 __header 含 icon 和 title 及关闭按钮 __close、主体 __body、底部 __footer 含操作按钮 __btn)。

CSS 类名 ​

类名说明
.my-dialog根元素(全屏定位容器)
.is-auto自动定位
.is-center居中定位
.is-top顶部定位
.is-bottom底部定位
.is-fullscreen全屏模式
.is-large大尺寸
.is-small小尺寸
.is-infoinfo 状态
.is-successsuccess 状态
.is-warningwarning 状态
.is-errorerror 状态
.is-dangerdanger 状态
.my-dialog__overlay遮罩层
.is-opaque不透明遮罩(默认)
.is-blur模糊遮罩
.is-transparent透明遮罩
.my-dialog__content对话框内容面板
.my-dialog__header头部区域
.my-dialog__header-left头部左侧(图标+标题)
.my-dialog__icon-wrap状态图标容器
.my-dialog__title标题文字
.my-dialog__close关闭按钮
.my-dialog__body主体内容区
.my-dialog__footer底部按钮区
.my-dialog__btn操作按钮
.is-primary确认按钮样式
.is-danger危险按钮样式

API ​

属性说明类型默认值
modelValue是否显示booleanfalse
title标题string—
status状态类型(左上角图标)'info' | 'success' | 'warning' | 'error' | 'danger'—
position弹出位置'auto' | 'top' | 'center' | 'bottom''auto'
overlayType遮罩类型'opaque' | 'blur' | 'transparent''opaque'
size预设尺寸'large' | 'default' | 'small'—
width自定义宽度string'480px'
overlayColor自定义遮罩颜色string—
confirmText确定按钮文字string'确定'
cancelText取消按钮文字string'取消'
hideCancel隐藏取消按钮booleanfalse
showClose显示关闭按钮booleantrue
modalClose点击遮罩关闭booleantrue
closeOnPressEscapeESC 关闭booleantrue
beforeClose关闭前回调(done: () => void) => void—
transitionName动画名称string'my-dialog-fade'
appendTo挂载目标string'body'
事件说明
update:modelValue显示状态变更
open / close打开 / 关闭
opened / closed动画完成后
confirm / cancel确定 / 取消
插槽说明
default对话框内容
title标题区域
icon标题图标
footer底部操作区