跳转到内容

Modal 对话框

可以通过 on-before-ok 更简洁的实现异步关闭功能

对话框的基本用法。

使用Modal.confirm(),可以快速弹出对话框。

设置 okTextcancelText 可以自定义按钮文字。

开启 draggable 属性,允许用户拖动对话框。

在对话框中使用表单

开启 fullscreen 属性,可以让对话框占满整个容器。

通过函数的方式使用对话框。

info, success, warning, error四种类型的消息提示,仅提供一个确认按钮用于关闭消息提示对话框。消息默认会默认开启 simplehideCancel,如果想要取消可以再次设置。

设置 width="auto" 可以让对话框自适应宽度

参数名描述类型默认值版本
visible (v-model)对话框是否可见boolean-
default-visible对话框默认是否可见(非受控状态)booleanfalse
width对话框的宽度,不设置的情况下会使用样式中的宽度值number|string-2.12.0
top对话框的距离顶部的高度,居中显示开启的情况下不生效number|string-2.12.0
mask是否显示遮罩层booleantrue
title标题string-
title-align标题的水平对齐方向'start' | 'center''center'2.17.0
align-center对话框是否居中显示booleantrue
unmount-on-close关闭时是否卸载节点booleanfalse
mask-closable是否点击遮罩层可以关闭对话框booleantrue
hide-cancel是否隐藏取消按钮booleanfalse
simple是否开启简单模式boolean(props: any) => { return props.notice;}
closable是否显示关闭按钮booleantrue
ok-text确认按钮的内容string-
cancel-text取消按钮的内容string-
ok-loading确认按钮是否为加载中状态booleanfalse
ok-button-props确认按钮的PropsButtonProps-
cancel-button-props取消按钮的PropsButtonProps-
footer是否展示页脚部分booleantrue
render-to-body对话框是否挂载在 body 元素下booleantrue
popup-container弹出框的挂载容器string | HTMLElement'body'
mask-style蒙层的样式CSSProperties-
modal-class对话框的类名string | any[]-
modal-style对话框的样式CSSProperties-
on-before-ok触发 ok 事件前的回调函数。如果返回 false 则不会触发后续事件,也可使用 done 进行异步关闭。( done: (closed: boolean) => void) => void | boolean | Promise<void | boolean>-2.7.0
on-before-cancel触发 cancel 事件前的回调函数。如果返回 false 则不会触发后续事件。() => boolean-2.7.0
esc-to-close是否支持 ESC 键关闭对话框booleantrue2.15.0
draggable是否支持拖动booleanfalse2.19.0
fullscreen是否开启全屏booleanfalse2.19.0
mask-animation-name遮罩层动画名字string-2.24.0
modal-animation-name对话框动画名字string-2.24.0
body-class对话框内容部分的类名string | any[]-2.31.0
body-style对话框内容部分的样式StyleValue-2.31.0
hide-title是否隐藏标题booleanfalse2.50.0
事件名描述参数版本
ok点击确定按钮时触发ev: MouseEvent
cancel点击取消、关闭按钮时触发ev: MouseEvent | KeyboardEvent
open对话框打开后(动画结束)触发-
close对话框关闭后(动画结束)触发-
before-open对话框打开前触发-2.16.0
before-close对话框关闭前触发-2.16.0
插槽名描述参数
title标题-
footer页脚-

Modal提供的全局方法,可以通过以下三种方法使用:

  1. 通过this.$modal调用
  2. 在Composition API中,通过getCurrentInstance().appContext.config.globalProperties.$modal调用
  3. 导入Modal,通过Modal本身调用

当通过 import 方式使用时,组件没有办法获取当前的 Vue Context,如 i18n 或 route 等注入在 AppContext 上的内容无法在内部使用,需要在调用时手动传入 AppContext,或者为组件全局指定 AppContext

import { createApp } from 'vue';
import { Modal } from '@sdata/web-vue';
const app = createApp(App);
Modal._context = app._context;
参数名描述类型默认值版本
title标题RenderContent-
content内容RenderContent-
footer页脚boolean | RenderContenttrue
closable是否显示关闭按钮booleantrue
okText确认按钮的内容string-
cancelText取消按钮的内容string-
okButtonProps确认按钮的PropsButtonProps-
cancelButtonProps取消按钮的PropsButtonProps-
okLoading确认按钮是否为加载中状态booleanfalse
hideCancel是否隐藏取消按钮booleanfalse
mask是否显示遮罩层booleantrue
simple是否开启简单模式booleanfalse
maskClosable是否点击遮罩层可以关闭对话框booleantrue
maskStyle蒙层的样式CSSProperties-
alignCenter对话框是否居中显示booleantrue
escToClose是否支持 ESC 键关闭对话框booleantrue2.15.0
draggable是否支持拖动booleanfalse2.19.0
fullscreen是否开启全屏booleanfalse2.19.0
onOk点击确定按钮的回调函数(e?: Event) => void-
onCancel点击取消按钮的回调函数(e?: Event) => void-
onBeforeOk触发 ok 事件前的回调函数。如果返回 false 则不会触发后续事件,也可使用 done 进行异步关闭。( done: (closed: boolean) => void ) => void | boolean | Promise<void | boolean>-2.7.0
onBeforeCancel触发 cancel 事件前的回调函数。如果返回 false 则不会触发后续事件。() => boolean-2.7.0
onOpen对话框打开后(动画结束)触发() => void-
onClose对话框关闭后(动画结束)触发() => void-
onBeforeOpen对话框打开前触发() => void-2.16.0
onBeforeClose对话框关闭前触发() => void-2.16.0
width对话框的宽度,不设置的情况下会使用样式中的宽度值number | string-2.12.0
top对话框的距离顶部的高度,居中显示开启的情况下不生效number | string-2.12.0
titleAlign标题的水平对齐方向'start' | 'center''center'2.17.0
renderToBody对话框是否挂载在 body 元素下booleantrue
popupContainer弹出框的挂载容器string | HTMLElement'body'
modalClass对话框的类名string | any[]-
modalStyle对话框的样式CSSProperties-
maskAnimationName遮罩层动画名字string-2.24.0
modalAnimationName对话框动画名字string-2.24.0
hideTitle是否隐藏标题booleanfalse2.50.0
bodyClass对话框内容部分的类名string | any[]-
bodyStyle对话框内容部分的样式StyleValue-
参数名描述类型默认值版本
close关闭对话框() => void-
update更新对话框(config: ModalUpdateConfig) => void-2.43.2
参数名描述类型默认值
open打开对话框(config: ModalConfig, appContext?: AppContext) => ModalReturn-
confirm打开对话框(简单模式)(config: ModalConfig, appContext?: AppContext) => ModalReturn-
info打开信息对话框(config: ModalConfig, appContext?: AppContext) => ModalReturn-
success打开成功对话框(config: ModalConfig, appContext?: AppContext) => ModalReturn-
warning打开警告对话框(config: ModalConfig, appContext?: AppContext) => ModalReturn-
error打开错误对话框(config: ModalConfig, appContext?: AppContext) => ModalReturn-