# Cube-Dialog 弹出框

# 介绍

Dialog 模态框组件,提供了多种样式及交互形式,常用于消息的提示及确认。

# 示例

# 基础用法

通过 type 属性来选择使用 alert 提示框类型,还是 confirm 确认框类型,通过调用组件暴露的 showhide 方法来控制组件的显示与隐藏。

收起
<template>
  <view class="dialog-alert-passenger-demo">
    <cube-button  bind:click="onClickDialog">Dialog - alert</cube-button>
    <cube-dialog

      wx:ref="dialogAlert"
      title="我是标题"
      content="正文行文符合话术规范,表意清晰可多行展示,单行居中对齐,多行居左"
      confirmBtn="引导文案"
    ></cube-dialog>
  </view>
</template>

<script>
import { createComponent } from '@mpxjs/core'

createComponent({
  methods: {
    onClickDialog () {
      const dialogRef = this.$refs.dialogAlert
      dialogRef.show()
    }
  }
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
收起
<template>
  <view class="dialog-confirm-passenger-demo">
    <cube-button  bind:click="onClickDialog">Dialog - confirm</cube-button>
    <cube-dialog

      wx:ref="dialogConfirm"
      class="custom-dialog-confirm"
      type="confirm"
      title="我是标题要精简"
      content="正文行文符合话术规范,表意清晰可多行展示,单行居中对齐,多行居左"
      confirm-btn="引导文案"
      cancel-btn="按钮文案"
    ></cube-dialog>
  </view>
</template>

<script>
import { createComponent } from '@mpxjs/core'

createComponent({
  options: {
    styleIsolation: 'shared'
  },
  methods: {
    onClickDialog () {
      const dialogRef = this.$refs.dialogConfirm
      dialogRef.show()
    }
  }
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# 自定义 head icon

通过设置 headIconurl地址,将会在模态框头部显示该图标。

收起
<template>
  <view class="dialog-icon-passenger-demo">
    <cube-button  bind:click="onClickDialog">Dialog - head-icon</cube-button>
    <cube-dialog

      wx:ref="dialogWithHeadIcon"
      type="alert"
      headIcon="https://dpubstatic.udache.com/static/dpubimg/f6abf7d7-e7a9-4c2b-8fc5-78085691220b.png"
      title="我是标题"
      content="我是内容"
      confirmBtn="我知道了"
    ></cube-dialog>
  </view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 自定义垂直排列按钮

收起
<template>
  <view class="dialog-btn-vertical-passenger-demo">
    <cube-button  bind:click="onClickDialog">Dialog - vertical btns</cube-button>
    <cube-dialog  wx:ref="dialogWithVerticalBtns">
      <view slot="title" class="dialog-vertical-btns-title">测试标题</view>
      <view slot="content" class="dialog-btn-content">测试content</view>
      <view slot="btns" class="dialog-btn-slot-vertical">
        <view class="lead-btn" bind:tap="onCloseDialog">引导文案</view>
        <view class="lead-btn" bind:tap="onCloseDialog">按钮文案</view>
        <view class="lead-btn" bind:tap="onCloseDialog">按钮文案</view>
      </view>
    </cube-dialog>
  </view>
</template>

<script>
import { createComponent } from '@mpxjs/core'

createComponent({
  methods: {
    onClickDialog () {
      const dialogRef = this.$refs.dialogWithVerticalBtns
      dialogRef.show()
    },
    onCloseDialog () {
      const dialogRef = this.$refs.dialogWithVerticalBtns
      dialogRef.hide()
    }
  }
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

# Props

参数 说明 类型 可选值 默认值
themeType 用于生成最外层类名 如原类名为 cube-component,添加 themeType = demo 后,类名变为 cube-component cube-component-demo String - -
visible 遮盖层初始状态是否可见 Boolean - false
zIndex 弹出层 z-index Number - 100
maskClosable 遮罩是否可点击 Boolean - false
maskFadeTransition 遮罩是否渐显 Boolean - false
type 类型 String alert/confirm alert
icon 图标类型(自动添加cubeic-前缀) String 图标 Icon,更多选择参见内置 Icon (opens new window) -
title 标题 String - -
content 正文内容 String - -
headIcon 顶部居中的小圆图标 String - -
showClose 是否显示关闭 Icon 按钮 Boolean - false
confirmBtn 确认按钮参数配置 Object DialogBtn DialogBtn
cancelBtn 取消按钮参数配置 Object DialogBtn DialogBtn

# TsType

Name Type
DialogBtn
{
active?: boolean;
disabled?: boolean;
text: string;
}

# Events

事件名 说明 参数
toggle 显示/隐藏时触发 event.detail = { value }, 表当前状态是显示还是隐藏
confirm 点击确认按钮后触发 -
cancel 点击取消按钮后触发 -
close 点击关闭按钮后触发 -

# Slots

插槽名 说明
title 标题插槽
content 内容插槽
btns 按钮插槽

# Methods

组件实例方法 说明 参数 返回值
show 显示 - -
hide 隐藏 - -

# CSS Variable

变量名 默认值 含义
$dialog-container-width
270px
容器宽度
$dialog-container-border-radius
2px
容器圆角
$dialog-bgc 背景颜色
$dialog-btn-secondary-highlight-active-bgc
rgba(252, 145, 83, .04)
-
$dialog-icon-color icon-颜色
$dialog-icon-bgc icon-背景颜色
$dialog-icon-container-margin-top
20px
icon-上边距
$dialog-icon-container-margin-bottom
16px
icon-底部边距
$dialog-icon-container-width
30px
icon-宽度
$dialog-icon-container-height
30px
icon-高度
$dialog-icon-container-padding
10px
icon-内边距
$dialog-icon-container-border-radius
50%
icon-圆角
$dialog-icon-line-height
1
icon-行高
$dialog-icon-next-title-margin-top
0px
icon距离标题的上边距
$dialog-title-default-margin
25px 16px 0
标题边距
$dialog-title-color 标题颜色
$dialog-title-margin-top
24px
标题上边距
$dialog-title-font-size 标题字号
$dialog-title-line-height
1
标题行高
$dialog-icon-next-content-margin-top
-4px
内容距离icon的上边距
$dialog-title-next-content-margin-top
12px
内容距离标题的上边距
$dialog-content-container-margin
16px 0
内容边框的上下边距
$dialog-content-container-line-height
22px
内容边框的行高
$dialog-content-def-padding
0 25px
内容边框左右内边距
$dialog-content-font-size 内容文本字号
$dialog-content-color 内容文本颜色
$dialog-content-margin
10px 0 20px 0
内容文本边距
$dialog-content-def-text-align
justify
内容文本对齐方式
$dialog-button-padding
17px 10px
按钮内边距
$dialog-btn-color 按钮颜色
$dialog-btn-bgc 按钮背景色
$dialog-btn-active-bgc 按钮激活态背景色
$dialog-btn-highlight-color 按钮高亮颜色
$dialog-btn-highlight-active-bgc 按钮高亮激活态背景色
$dialog-btn-disabled-color 按钮禁用态颜色
$dialog-btn-disabled-active-bgc
transparent
按钮禁用态背景色
$dialog-btns-split-color 按钮分割线颜色
$dialog-btn-line-height
21px
按钮行高
$dialog-close-width
32px
关闭按钮宽度
$dialog-close-height
32px
关闭按钮高度
$dialog-close-color 关闭按钮颜色
$dialog-head-icon-width
85px
head-icon 宽度
$dialog-head-icon-height head-icon 高度
$dialog-head-icon-border-radius
50%
head-icon 圆角
$dialog-head-icon-margin-top
-42px
head-icon 上边距
$dialog-zoom-animation
dialog-zoom .3s ease-in-out
-