Dialog

优质
小牛编辑
118浏览
2023-12-01

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

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

示例

  • alert 类型

    <cube-button @click="showAlert">Dialog - alert</cube-button>
    
    export default {
      methods: {
        showAlert() {
          this.$createDialog({
            type: 'alert',
            title: '我是标题',
            content: '我是内容',
            icon: 'cubeic-alert'
          }).show()
        }
      }
    }
    

    type 可选的值为 alert (对应为提示框)、confirm (对应为确认框)、prompt (对应提示输入框)1.11.0

  • 提示输入类型

    <cube-button @click="showPrompt">Dialog - prompt</cube-button>
    
    export default {
      methods: {
        showAlert() {
          this.dialog = this.$createDialog({
            type: 'prompt',
            title: '我是标题',
            prompt: {
              value: '',
              placeholder: '请输入'
            },
            onConfirm: (e, promptValue) => {
              this.$createToast({
                type: 'warn',
                time: 1000,
                txt: `Prompt value: ${promptValue || ''}`
              }).show()
            }
          }).show()
        }
      }
    }
    

    可通过在 confirm 的事件回调的第二个参数获得输入的值。prompt 的值为一个对象,内容会被当做 props 传入 Input 组件

  • 按钮设置

    <cube-button @click="showBtn">Dialog - btn</cube-button>
    
    export default {
      methods: {
        showBtn() {
          this.$createDialog({
            type: 'confirm',
            icon: 'cubeic-alert',
            title: '我是标题',
            content: '我是内容',
            confirmBtn: {
              text: '确定按钮',
              active: true,
              disabled: false,
              href: 'javascript:;'
            },
            cancelBtn: {
              text: '取消按钮',
              active: false,
              disabled: false,
              href: 'javascript:;'
            },
            onConfirm: () => {
              this.$createToast({
                type: 'warn',
                time: 1000,
                txt: '点击确认按钮'
              }).show()
            },
            onCancel: () => {
              this.$createToast({
                type: 'warn',
                time: 1000,
                txt: '点击取消按钮'
              }).show()
            }
          }).show()
        }
      }
    }
    

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

  • 关闭按钮

    <cube-button @click="showClose">Dialog - show close</cube-button>
    
    export default {
      methods: {
        showClose() {
          this.$createDialog({
            type: 'alert',
            icon: 'cubeic-alert',
            showClose: true,
            title: '标题',
            onClose: () => {
              this.$createToast({
                type: 'warn',
                time: 1000,
                txt: '点击关闭按钮'
              }).show()
            }
          }).show()
        }
      }
    }
    

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

  • 插槽

    <cube-button @click="showSlot">Dialog - slot</cube-button>
    
    export default {
      methods: {
        showSlot() {
          this.$createDialog({
            type: 'alert',
            confirmBtn: {
              text: '我知道了',
              active: true
            }
          }, (createElement) => {
            return [
              createElement('div', {
                'class': {
                  'my-title': true
                },
                slot: 'title'
              }, [
                createElement('div', {
                  'class': {
                    'my-title-img': true
                  }
                }),
                createElement('p', '附近车少,优选出租车将来接您')
              ]),
              createElement('p', {
                'class': {
                  'my-content': true
                },
                slot: 'content'
              }, '价格仍按快车计算')
            ]
          }).show()
        }
      }
    }
    

    $createDialog 的第二个参数是 render 函数,一般用于处理插槽的场景;Dialog 组件提供了 2 个具名的插槽 titlecontent,分别用来分发标题和内容。

Props 配置

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

插槽

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

事件

事件名说明参数1参数2
confirm点击确认按钮后触发事件对象 e类型为 prompt 时,输入的值 promptValue
cancel点击取消按钮后触发事件对象 e-
close点击关闭按钮后触发事件对象 e-

实例方法

方法名说明
show显示
hide隐藏

最后更新:

类似资料

  • 值的立方体只是值与自身相乘的三倍。 For example, 2的立方体是(2 * 2 * 2)= 8。 算法 (Algorithm) 该程序的算法简单易行 - START Step 1 → Take integer variable A Step 2 → Multiply A three times Step 3 → Display result as Cube STOP 伪

  • Cube 是一个开源的基于 MongoDB 的数据分析工具 Cube 的收集器接收事件并将这些事件保持在 MongoDB 中。你可通过 UDP、HTTP POST 或者 WebSockets 来发送事件。同时 Cube 内置支持接受来自 collectd 的事件。

  • 在前面的章节中,我们已经看到了如何绘制三角形并旋转它。 现在,在本章中,您可以了解如何使用3D立方体,如何旋转它,如何在其上附加图像。 同样,本章提供了绘制3D立方体并为其应用颜色并将图像附加到其上的示例。 下面给出了绘制三维立方体并为其应用颜色的程序。 import java.awt.DisplayMode; import javax.media.opengl.GL2; import javax

  • 找到给定数字是偶数或奇数,是一个经典的C程序。 我们将在C中学习使用条件语句if-else 。 算法 (Algorithm) 这个程序的算法很简单 - START Step 1 → Take integer variable A Step 2 → Assign value to the variable Step 3 → Perform A modulo 2 and check

  • cube-flowable 工作流引擎旨在打造一套零代码、领先、且快速实用的引擎工具,助力开发者在面对工作流开发任务时,除去学习工作流框架知识和API的学习成本且不去关心工作流是什么技术,无需了解学习,安装使用cube-flowable工作流引擎并应用落地。 此工作流引擎是零代码或低代码的工作流引擎,安装配置开箱即可使用,完全适用于中国国情的工作流引擎。主要特点包括: 在线拖拽可视化业务表单,并自

  • cube-ui 是由滴滴开源的基于 Vue.js 实现的移动端组件库。 功能特性 质量可靠 由滴滴内部组件库精简提炼而来,经历了业务一年多的考验,并且每个组件都有充分单元测试,为后续集成提供保障。 体验极致 以迅速响应、动画流畅、接近原生为目标,在交互体验方面追求极致。 标准规范 遵循统一的设计交互标准,高度还原设计效果;接口标准化,统一规范使用方式,开发更加简单高效。 扩展性强 支持按需引入和后