- 引入
- 代码演示
- 基本
- 单例模式
- API
- Dialog Props
- DialogBtnOptions Props
- Dialog Slots
- default
- header
- Dialog Instance Methods
- close()
- Dialog Instance Events
- @show()
- @hide()
- Dialog Static Methods
- Dialog.confirm(props)
- Dialog.alert(props)
- Dialog.succeed(props)
- Dialog.failed(props)
- Dialog.closeAll()
Dialog 模态窗

交互式模态窗口
引入
import { Dialog } from 'mand-mobile'Dialog.alert({ content: '' })this.$dialog.alert({ content: '' }) // 全量引入
代码演示
基本

<template><div class="md-example-child md-example-child-dialog md-example-child-dialog-0"><md-button @click="basicDialog.open = true">基本</md-button><md-button @click="iconDialog.open = true">带图标</md-button><md-button @click="warnDialog.open = true">警示操作</md-button><md-button @click="asyncDialog.open = true">异步操作</md-button><md-button @click="actDialog.open = true">多操作</md-button><md-button @click="slotDialog.open = true">插槽</md-button><md-dialogtitle="窗口标题":closable="true"v-model="basicDialog.open":btns="basicDialog.btns">人生的刺,就在这里,留恋着不肯快走的,偏是你所不留恋的东西。</md-dialog><md-dialogicon="location":closable="true"v-model="iconDialog.open":btns="iconDialog.btns">围在城里的人想逃出来,城外的人想冲进去,对婚姻也罢,职业也罢,人生的愿望大都如此。</md-dialog><md-dialogtitle="警示操作":closable="false"v-model="warnDialog.open":btns="warnDialog.btns">或是因为习惯了孤独,我们渴望被爱;又或是害怕爱而不得,我们最后仍然选择孤独。</md-dialog><md-dialog:closable="false"v-model="asyncDialog.open":btns="asyncDialog.btns">每个人都有属于自己的一片森林,也许我们 从来不曾去过,但它一直在那里,总会在那里。迷失的人迷失了,相逢的人会再相逢。</md-dialog><md-dialogtitle="窗口标题":closable="false"layout="column"v-model="actDialog.open":btns="actDialog.btns">据说每个人需要一面镜子,可以常常自照,知道自己是个什么东西。不过,能自知的人根本不用照镜子;不自知的东西,照了镜子也没有用。</md-dialog><md-dialogtitle="家":closable="false"v-model="slotDialog.open":btns="slotDialog.btns"><div class="dialog-banner" slot="header"><img src="http://img-hxy021.didistatic.com/static/strategymis/insurancePlatform_spu/uploads/27fb7f097ca218d743f816836bc7ea4a" alt=""></div>虽然其中有一些争吵、不愉快、曲折,但重要的是一家人整整齐齐。</md-dialog></div></template><script>import {Dialog, Button, Toast} from 'mand-mobile'export default {name: 'dialog-demo',components: {[Dialog.name]: Dialog,[Button.name]: Button,},data() {return {basicDialog: {open: false,btns: [{text: '取消',handler: this.onBasicCancel,},{text: '确认操作',handler: this.onBasicConfirm,},],},iconDialog: {open: false,btns: [{text: '确认操作',handler: this.onIconConfirm,},],},warnDialog: {open: false,btns: [{text: '取消',},{text: '警示操作',warning: true,handler: this.onWarnConfirm,},],},asyncDialog: {open: false,btns: [{text: '开始搜索',icon: 'search',handler: this.onAsyncConfirm,},],},actDialog: {open: false,btns: [{text: '操作一',type: 'danger',handler: this.onActConfirm,},{text: '操作二',handler: this.onActConfirm,disabled: true,},{text: '操作三',handler: this.onActConfirm,},],},slotDialog: {open: false,btns: [{text: '好的',},],},}},methods: {onBasicConfirm() {Toast({content: '你点击了确认',})this.basicDialog.open = false},onBasicCancel() {Toast({content: '你点击了取消',})this.basicDialog.open = false},onIconConfirm() {Toast({content: '你点击了确认',})this.iconDialog.open = false},onActConfirm() {this.actDialog.open = false},onAsyncConfirm(btn) {this.$set(btn, 'loading', true)this.$set(btn, 'text', '搜索中')setTimeout(() => {this.asyncDialog.open = falsethis.$set(btn, 'loading', false)this.$set(btn, 'text', '开始搜索')Toast({content: '搜索成功',})}, 1500)},},}</script><style lang="stylus" scoped>.dialog-bannerimgdisplay blockwidth 100%</style>
单例模式

<template>
<div class="md-example-child md-example-child-dialog md-example-child-dialog-1">
<md-button @click="alert">警告弹窗</md-button>
<md-button @click="confirm">确认弹窗</md-button>
<md-button @click="succeedConfirm">成功弹窗</md-button>
<md-button @click="failedConfirm">失败弹窗</md-button>
</div>
</template>
<script>
import {Dialog, Button} from 'mand-mobile'
export default {
name: 'dialog-demo',
components: {
[Dialog.name]: Dialog,
[Button.name]: Button,
},
methods: {
alert() {
Dialog.alert({
title: '警告',
content: '您正在进行非法操作',
cancelText: '取消',
confirmText: '确定',
onConfirm: () => console.log('[Dialog.alert] confirm clicked'),
})
},
confirm() {
Dialog.confirm({
title: '确认',
content: '请确认是否进行操作',
confirmText: '确定',
onConfirm: () => console.log('[Dialog.confirm] confirm clicked'),
})
},
succeedConfirm() {
Dialog.succeed({
title: '成功',
content: '恭喜您成功完成操作',
confirmText: '确定',
onConfirm: () => console.log('[Dialog.succeed] confirm clicked'),
})
},
failedConfirm() {
Dialog.failed({
title: '失败',
content: '操作失败,请稍后重试',
confirmText: '确定',
onConfirm: () => console.log('[Dialog.failed] confirm clicked'),
})
},
},
}
</script>
API
Dialog Props
| 属性 | 说明 | 类型 | 默认值 | 备注 |
|---|---|---|---|---|
| v-model | 双向绑定是否显示窗口 | Boolean | false | - |
| title | 窗口标题 | String | - | - |
| icon | Icon组件图标名称 | String | - | - |
| icon-svg | svg图标 | Boolean | false | 如需自定义图标, 请查看Icon组件 |
| closable | 是否显示关闭按钮 | Boolean | true | - |
| layout | 底部按钮组布局方式, row, column | String | row | - |
| btns | 底部操作按钮组 | Array<DialogBtnOptions> | [] | - |
| append-to | 组件的挂载节点 | HTMLElement | document.body | - |
| has-mask | 是否有蒙层 | Boolean | true | - |
| mask-closable | 点击蒙层是否可关闭弹出层 | Boolean | false | - |
| transition | 弹出层过度动画 | String | 可选值参考Transition |
DialogBtnOptions Props
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| text | 按钮文案 | String | - |
| handler | 点击回调 | Function(btn: DialogBtnOptions) | - |
| warning | 警示按钮 | Boolean | false |
| disabled 2.4.0+ | 禁用按钮 | Boolean | false |
| loading 2.4.0+ | 加载中按钮 | Boolean | false |
| icon | 按钮图标 | String | - |
| iconSvg | 按钮svg图标 | Boolean | false |
Dialog Slots
default
组件子元素会被当做默认插槽内容使用,适合于不需要标题的自定义窗口内容的场景
header
顶部插槽,一般用于放置图片等 2.4.0+
Dialog Instance Methods
close()
隐藏弹窗
Dialog Instance Events
@show()
模态窗口显示后触发的事件
@hide()
模态窗口隐藏后触发的事件
Dialog Static Methods
Dialog.confirm(props)
静态方法创建确认模态窗口, 返回Dialog实例
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| icon | 图标 | String | - |
| title | 窗口标题 | String | - |
| content | 正文内容 | String | - |
| cancelText | 底部取消按钮文字 | String | 取消 |
| confirmText | 底部确认按钮文字 | String | 确认 |
| cancelWarning | 点击取消按钮为警示操作 | Boolean | false |
| confirmWarning | 点击确认按钮为警示操作 | Boolean | false |
| onConfirm | 点击确认按钮回调函数 | Function | - |
| onCancel | 点击取消按钮回调函数 | Function | - |
Dialog.alert(props)
静态方法创建警告模态窗口, 返回Dialog实例
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| icon | 图标 | String | - |
| title | 窗口标题 | String | - |
| content | 正文内容 | String | - |
| confirmText | 底部确认按钮文字 | String | 确认 |
| warning | 点击确认按钮为警示操作 | Boolean | false |
| onConfirm | 点击确认按钮回调函数 | Function | - |
Dialog.succeed(props)
静态方法创建成功确认模态窗口, 返回Dialog实例
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| title | 窗口标题 | String | - |
| content | 正文内容 | String | - |
| confirmText | 底部确认按钮文字 | String | 确认 |
| onConfirm | 点击确认按钮回调函数 | Function | - |
| onCancel | 点击取消按钮回调函数 | Function | - |
Dialog.failed(props)
静态方法创建失败确认模态窗口, 返回Dialog实例
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| title | 窗口标题 | String | - |
| content | 正文内容 | String | - |
| confirmText | 底部确认按钮文字 | String | 确认 |
| onConfirm | 点击确认按钮回调函数 | Function | - |
| onCancel | 点击取消按钮回调函数 | Function | - |
Dialog.closeAll()
静态方法关闭所有动态创建的全局Dialog
