Skip to content

Dialog 对话框

在保持当前页面活跃的情况下,相当于创建了一个小窗口

基础用法

通过vue的双向绑定语法 v-model绑定一个 Boolean 变量, 当绑定值为true时显示Dialog.

Dialog分为三个部分: headerbodyfooter。 你可以通过属性 noHeadernoBodynoFooter分别设置 是否需要它们。 当然, 你也可以传入对应slot来替代它们 (body对应默认slot, 其余两者同名)

关闭前的回调

使用beforeClose属性设置Dialog关闭前的回调。

Dialog隐藏时会触发三类事件大体分为: closecancelconfirm

其中 cancelconfirm 只能通过默认footer中的 取消按钮 和 确认按钮 触发, 而close可以通过按下esc、点击遮罩、点击close图标触发。

TIP

当需要自定义footer的内容同时保留cancel、confirm事件时,Dialog也提供对应的方法, 具体可以查看Exposes

自定义header、footer

如果不满意header、footer的内容,则可以通过:

  • title: 设置对话框的标题
  • showCloseIcon: 设置对话框是否显示关闭图标
  • cancelBtnText: 设置对话框尾部的取消按钮文本内容
  • confirmBtnText: 设置对话框尾部的确认按钮文本内容
  • btnSize: 设置对话框尾部的按钮的大小

如果不满意它们的布局, 那也可以通过传入对应slot覆盖它们

局部Dialog

使用 part设置Dialog为局部dialog, 需要注意的是, 若是局部Dialog, 不能设置appendToBody,否则会变成全屏Dialog, 且Dialog父元素定位 要设置为非普通定位。

偏移量

通过 top 设置对话框与顶部的距离, Dialog默认距离容器顶部10vh, 若设置为非法值, Dialog将位于容器正中心。

关闭方式

通过设置 close-on-click-mark close-on-press-escape 选择对话框是否能通过 点击遮罩 按下ESC 关闭

可拖拽

通过 draggable 设置对话框是否能被拖拽, 试试拖动对话框的头部区域吧!

Dialog API

Dialog Props

属性名说明类型默认值
modelValue对话框打开/关闭的绑定值Boolean---
title对话框消息头的标题Stringdefault title
showCloseIcon是否显示消息头中的关闭图标Booleantrue
cancelBtnText消息尾中取消按钮的文本String---
confirmBtnText消息尾中确认按钮的文本String---
btnSize消息尾中按钮的大小'small' | 'normal' | 'large'small
noHeader是否去除消息头Booleanfalse
noBody是否去除消息体Booleanfalse
noFooter是否去除消息尾Booleanfalse
transition对话框的过渡动画内置过渡---
draggable对话框是否可以被拖动Booleanfalse
top对话框距离浏览器视口顶部的距离String20vh
beforeClose对话框关闭事件前的回调函数,若设置此项, 需要手动调用done函数关闭对话框(done: () => void) => void---
showMark是否显示遮罩Booleantrue
closeOnPressEscape是否可以通过按下ESC来关闭对话框Booleantrue
closeOnClickMark在显示遮罩的情况下, 是否可以通过点击遮罩关闭对话框Booleantrue
lockScroll对话框出现时, 是否禁止浏览器的滚动行为Booleantrue
appendToBody是否挂载到body元素下面, 在层级混乱时开启此项Booleanfalse

Dialog Events

事件名说明类型
open打开对话框时触发的事件() => void
opened打开对话框后触发的事件() => void
close关闭对话框时触发的事件(trigger:MessageTriggerTypes) => void
closed关闭对话框后触发的事件() => void
cancel取消对话框时触发的事件() => void
confirm确认对话框时触发的事件() => void
hidden(关闭,取消,确认)对话框时触发的事件() => void

Dialog Exposes

名称说明类型
open打开消息框, 会触发open事件() => void
close关闭消息框, 会触发close事件(trigger:MessageTriggerTypes) =>void
hidden关闭消息框, 无副作用() => void
toggle闭/打开消息框, 无副作用() => void
cancel关闭消息框, 触发cancel事件() => void
confirm关闭消息框, 触发confirm事件() => void

Dialog Slots

名称说明
default对话框body
header对话框头部
footer对话框尾部

源代码

组件

贡献者

Released under the MIT License.