Dialog 模态窗

Scan me!

交互式模态窗口

引入

  1. import { Dialog } from 'mand-mobile'
  2. Vue.component(Dialog.name, Dialog)

代码演示

基本

  1. <template>
  2. <div class="md-example-child md-example-child-dialog md-example-child-dialog-0">
  3. <md-button @click="basicDialog.open = true">基本</md-button>
  4. <md-button @click="iconDialog.open = true">带图标</md-button>
  5. <md-button @click="actDialog.open = true">多操作</md-button>
  6. <md-dialog
  7. title="窗口标题"
  8. :closable="true"
  9. v-model="basicDialog.open"
  10. :btns="basicDialog.btns"
  11. >
  12. 人生的刺,就在这里,留恋着不肯快走的,偏是你所不留恋的东西。
  13. </md-dialog>
  14. <md-dialog
  15. icon="circle-right"
  16. title="窗口标题"
  17. :closable="true"
  18. v-model="iconDialog.open"
  19. :btns="iconDialog.btns"
  20. >
  21. 围在城里的人想逃出来,城外的人想冲进去,对婚姻也罢,职业也罢,人生的愿望大都如此。
  22. </md-dialog>
  23. <md-dialog
  24. title="窗口标题"
  25. :closable="false"
  26. v-model="actDialog.open"
  27. :btns="actDialog.btns"
  28. >
  29. 据说每个人需要一面镜子,可以常常自照,知道自己是个什么东西。不过,能自知的人根本不用照镜子;不自知的东西,照了镜子也没有用。
  30. </md-dialog>
  31. </div>
  32. </template>
  33. <script>
  34. import {Dialog, Button, Toast} from 'mand-mobile'
  35. export default {
  36. name: 'dialog-demo',
  37. components: {
  38. [Dialog.name]: Dialog,
  39. [Button.name]: Button,
  40. },
  41. data() {
  42. return {
  43. basicDialog: {
  44. open: false,
  45. btns: [
  46. {
  47. text: '确认操作',
  48. handler: this.onBasicConfirm,
  49. },
  50. ],
  51. },
  52. iconDialog: {
  53. open: false,
  54. btns: [
  55. {
  56. text: '确认操作',
  57. handler: this.onIconConfirm,
  58. },
  59. ],
  60. },
  61. actDialog: {
  62. open: false,
  63. btns: [
  64. {
  65. text: '取消',
  66. handler: this.onActCancel,
  67. },
  68. {
  69. text: '确认操作',
  70. handler: this.onActConfirm,
  71. },
  72. ],
  73. },
  74. }
  75. },
  76. methods: {
  77. onBasicConfirm() {
  78. Toast({
  79. content: '你点击了确认',
  80. })
  81. this.basicDialog.open = false
  82. },
  83. onIconConfirm() {
  84. Toast({
  85. content: '你点击了确认',
  86. })
  87. this.iconDialog.open = false
  88. },
  89. onActCancel() {
  90. Toast({
  91. content: '你点击了取消',
  92. })
  93. this.actDialog.open = false
  94. },
  95. onActConfirm() {
  96. Toast({
  97. content: '你点击了确认',
  98. })
  99. this.actDialog.open = false
  100. },
  101. },
  102. }
  103. </script>
  104.  

单例模式

  1. <template>
  2. <div class="md-example-child md-example-child-dialog md-example-child-dialog-1">
  3. <md-button @click="alert">警告弹窗</md-button>
  4. <md-button @click="confirm">确认弹窗</md-button>
  5. <md-button @click="succeedConfirm">成功弹窗</md-button>
  6. <md-button @click="failedConfirm">失败弹窗</md-button>
  7. </div>
  8. </template>
  9. <script>
  10. import {Dialog, Button} from 'mand-mobile'
  11. export default {
  12. name: 'dialog-demo',
  13. components: {
  14. [Dialog.name]: Dialog,
  15. [Button.name]: Button,
  16. },
  17. methods: {
  18. alert() {
  19. Dialog.alert({
  20. title: '警告',
  21. content: '您正在进行非法操作',
  22. cancelText: '取消',
  23. confirmText: '确定',
  24. onConfirm: () => console.log('[Dialog.alert] confirm clicked'),
  25. })
  26. },
  27. confirm() {
  28. Dialog.confirm({
  29. title: '确认',
  30. content: '请确认是否进行操作',
  31. confirmText: '确定',
  32. onConfirm: () => console.log('[Dialog.confirm] confirm clicked'),
  33. })
  34. },
  35. succeedConfirm() {
  36. Dialog.succeed({
  37. title: '成功',
  38. content: '恭喜您成功完成操作',
  39. confirmText: '确定',
  40. onConfirm: () => console.log('[Dialog.succeed] confirm clicked'),
  41. })
  42. },
  43. failedConfirm() {
  44. Dialog.failed({
  45. title: '失败',
  46. content: '操作失败,请稍后重试',
  47. confirmText: '确定',
  48. onConfirm: () => console.log('[Dialog.failed] confirm clicked'),
  49. })
  50. },
  51. },
  52. }
  53. </script>
  54.  

API

Dialog Props

属性说明类型默认值备注
v-model双向绑定是否显示窗口Booleanfalse-
title窗口标题String--
iconIcon组件图标名称String-如需自定义图标, 请查看Icon组件
closable是否显示关闭按钮Booleantrue-
btns底部操作按钮组Array[]-
append-to组件的挂载节点HTMLElementdocument.body-
has-mask是否有蒙层Booleantrue-
mask-closable点击蒙层是否可关闭弹出层Booleanfalse-
position弹出层位置, center/top/bottom/left/rightStringcenter-
transition弹出层过度动画, fade, slide-up/down/left/rightStringfade-
prevent-scroll是否禁止滚动穿透Booleanfalse-
prevent-scroll-exclude禁止滚动排除元素String--

Dialog Slots

组件子元素会被当做默认插槽内容使用,适合于不需要标题的自定义窗口内容的场景。

Dialog Instance Methods

close()

隐藏弹窗

Dialog Instance Events

@show()

模态窗口显示后触发的事件

@hide()

模态窗口隐藏后触发的事件

Dialog Static Methods

confirm(props)

静态方法创建确认模态窗口, 返回Dialog实例

属性说明类型默认值
icon图标String-
title窗口标题String-
content正文内容String-
cancelText底部取消按钮文字String取消
confirmText底部确认按钮文字String确认
onConfirm点击确认按钮回调函数Function-
Dialog.alert(props)

静态方法创建警告模态窗口, 返回Dialog实例

属性说明类型默认值
icon图标String-
title窗口标题String-
content正文内容String-
confirmText底部确认按钮文字String确认
onConfirm点击确认按钮回调函数Function-
Dialog.succeed(props)

静态方法创建成功确认模态窗口, 返回Dialog实例

属性说明类型默认值
title窗口标题String-
content正文内容String-
confirmText底部确认按钮文字String确认
onConfirm点击确认按钮回调函数Function-
Dialog.failed(props)

静态方法创建失败确认模态窗口, 返回Dialog实例

属性说明类型默认值
title窗口标题String-
content正文内容String-
confirmText底部确认按钮文字String确认
onConfirm点击确认按钮回调函数Function-
Dialog.closeAll()

静态方法关闭所有动态创建的全局Dialog 1.4.0+