Dialog

Dialog模态框组件,提供了多种样式及交互形式。

注: 由于此组件基于 create-api 实现,所以在使用之前,请确保自己了解过 create-api

示例

  • 类型设置
    1. <cube-button @click="showAlert">Dialog - type</cube-button>
    1. export default {
    2. methods: {
    3. showAlert() {
    4. this.- createDialog({
    5. type: 'alert',
    6. title: '我是标题',
    7. content: '我是内容',
    8. icon: 'cubeic-alert'
    9. }).show()
    10. }
    11. }
    12. }

type 可选的值为 alert (对应为提示框)、confirm (对应为确认框)。

  • 按钮设置
    1. <cube-button @click="showBtn">Dialog - btn</cube-button>
    1. export default {
    2. methods: {
    3. showBtn() {
    4. this.- createDialog({
    5. type: 'confirm',
    6. icon: 'cubeic-alert',
    7. title: '我是标题',
    8. content: '我是内容',
    9. confirmBtn: {
    10. text: '确定按钮',
    11. active: true,
    12. disabled: false,
    13. href: 'javascript:;'
    14. },
    15. cancelBtn: {
    16. text: '取消按钮',
    17. active: false,
    18. disabled: false,
    19. href: 'javascript:;'
    20. },
    21. onConfirm: () => {
    22. this.- createToast({
    23. type: 'warn',
    24. time: 1000,
    25. txt: '点击确认按钮'
    26. }).show()
    27. },
    28. onCancel: () => {
    29. this.- createToast({
    30. type: 'warn',
    31. time: 1000,
    32. txt: '点击取消按钮'
    33. }).show()
    34. }
    35. }).show()
    36. }
    37. }
    38. }

按钮设置可接受 String 或 Object 类型数据,当传入 Object 类型的数据时,可通过 text 字段来设置按钮文案内容、active 字段来设置按钮文案是否高亮、disabled 字段来设置按钮是否禁用、href 字段为按钮的跳转链接。

  • 关闭按钮
    1. <cube-button @click="showClose">Dialog - show close</cube-button>
    1. export default {
    2. methods: {
    3. showClose() {
    4. this.- createDialog({
    5. type: 'alert',
    6. icon: 'cubeic-alert',
    7. showClose: true,
    8. title: '标题',
    9. onClose: () => {
    10. this.- createToast({
    11. type: 'warn',
    12. time: 1000,
    13. txt: '点击关闭按钮'
    14. }).show()
    15. }
    16. }).show()
    17. }
    18. }
    19. }

showClose 字段决定是否需要显示关闭按钮,同时点击关闭按钮会触发 close 事件,如果传入了 onClose 则会被调用。

  • 插槽
    1. <cube-button @click="showSlot">Dialog - slot</cube-button>
    1. export default {
    2. methods: {
    3. showSlot() {
    4. this.- createDialog({
    5. type: 'alert',
    6. confirmBtn: {
    7. text: '我知道了',
    8. active: true
    9. }
    10. }, (createElement) => {
    11. return [
    12. createElement('div', {
    13. 'class': {
    14. 'my-title': true
    15. },
    16. slot: 'title'
    17. }, [
    18. createElement('div', {
    19. 'class': {
    20. 'my-title-img': true
    21. }
    22. }),
    23. createElement('p', '附近车少,优选出租车将来接您')
    24. ]),
    25. createElement('p', {
    26. 'class': {
    27. 'my-content': true
    28. },
    29. slot: 'content'
    30. }, '价格仍按快车计算')
    31. ]
    32. }).show()
    33. }
    34. }
    35. }
  • createDialog 的第二个参数是 render 函数,一般用于处理插槽的场景;Dialog 组件提供了 2 个具名的插槽 title 和 content,分别用来分发标题和内容。

Props 配置

参数 说明 类型 可选值 默认值
type 类型 String 提示框 alert / 确认框 confirm alert
icon 图标的 class 名 String 参照 style 模块下的内置 icon 部分 ''
title 标题 String - ''
content 正文 String - ''
showClose 是否显示关闭按钮 Boolean true/false false
confirmBtn 确认按钮参数配置 Object/String - { text: '确定', active: true, href: 'javascript:;' }
cancelBtn 取消按钮参数配置 Object/String - { text: '取消', active: false, href: 'javascript:;' }
visible1.8.1 显示状态,是否可见。v-model绑定值 Boolean true/false false
maskClosable1.9.6 点击蒙层是否隐藏 Boolean true/false false
  • confirmBtn 子配置项
参数 说明 类型 可选值 默认值
text 按钮文案 String - '确认'
active 是否高亮 Boolean true/false true
disabled 是否禁用 Boolean true/false false
href 点击按钮后的跳转链接 String - 'javascript:;'
  • cancelBtn 子配置项
参数 说明 类型 可选值 默认值
text 按钮文案 String - '取消'
active 是否高亮 Boolean true/false false
disabled 是否禁用 Boolean true/false false
href 点击按钮后的跳转链接 String - 'javascript:;'

插槽

名字 说明 作用域参数
title 标题 -
content 内容 -

事件

事件名 说明 参数
confirm 点击确认按钮后触发 事件对象 e
cancel 点击取消按钮后触发 事件对象 e
close 点击关闭按钮后触发 事件对象 e

实例方法

方法名 说明
show 显示
hide 隐藏

原文:

https://didi.github.io/cube-ui/#/zh-CN/docs/dialog