# Cube-Checkbox
# 介绍
复选框,可设置其状态、传入特殊 class 以及复选框图标位置。
# 示例
# 基础用法
设置双向绑定的值为 true,此时复选框处于默认选中状态。
<template>
  <view class="checkbox-demo">
    <view-desc>默认勾选:{{ checkboxValue }}</view-desc>
    <view class="cube-checkbox-example">
      <cube-checkbox  wx:model="{{ checkboxValue }}" wx:model-prop="value">Default Checked</cube-checkbox>
    </view>
  </view>
</template>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
  options: {
    styleIsolation: 'shared'
  },
  data: {
    checkboxValue: true
  }
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 禁用选项
在 option 里配置 disabled 属性值为 true,当前选项将处于禁用状态。
<template>
  <view class="checkbox-disabled-demo">
    <view-desc>禁用选项</view-desc>
    <view class="cube-checkbox-example">
      <cube-checkbox  option="{{ option }}" shape="square">Disabled</cube-checkbox>
    </view>
    <view-desc>禁用选项</view-desc>
    <view class="cube-checkbox-example">
      <cube-checkbox  option="{{ option }}">Disabled</cube-checkbox>
    </view>
  </view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
  options: {
    styleIsolation: 'shared'
  },
  data: {
    option: {
      disabled: true
    }
  }
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 支持描述文案
option 配置项除了可以设置 text,还可以设置 desc 作为描述文案显示在第二行。
<template>
  <view class="checkbox-desc-support-demo">
    <view-desc>支持描述文案:{{ checkboxValue }}</view-desc>
    <view class="cube-checkbox-example">
      <cube-checkbox  option="{{ option }}" shape="square" wx:model="{{ checkboxValue }}" wx:model-prop="value">
      </cube-checkbox>
    </view>
  </view>
</template>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
  options: {
    styleIsolation: 'shared'
  },
  data: {
    option: {
      value: '橘子🍊',
      text: '选择一',
      desc: '橘子🍊',
      position: 'right'
    },
    checkboxValue: false
  }
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 设置图标位置
在 option 里配置 position 属性值为 right,图标将会显示在右侧。
<template>
  <view class="checkbox-styled-demo">
    <view-desc>圆形选项:{{ checkboxValue }}</view-desc>
    <view class="cube-checkbox-example">
      <cube-checkbox wx:model="{{ checkboxValue }}" wx:model-prop="value">Checkbox</cube-checkbox>
    </view>
    <view-desc>方形选择框:{{ checkboxValue }}</view-desc>
    <view class="cube-checkbox-example">
      <cube-checkbox
        option="{{ option }}"
        shape="square"
        wx:model="{{ checkboxValue }}"
        wx:model-prop="value"
      >Styled Checkbox</cube-checkbox>
    </view>
  </view>
</template>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script>
import { createComponent } from '@mpxjs/core'
createComponent({
  options: {
    styleIsolation: 'shared'
  },
  data: {
    option: {
      position: 'right'
    },
    checkboxValue: false
  }
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Props
| 参数 | 说明 | 类型 | 可选值 | 默认值 | 
|---|---|---|---|---|
| themeType | 用于生成最外层类名 如原类名为 cube-component,添加 themeType = demo 后,类名变为 cube-component cube-component-demo | String | - | - | 
| option | 配置项 | Object | Option | Option | 
| value | 双向绑定是否选中 | Boolean | true/false | false | 
| shape | 复选框形状 | String | round/square | round | 
# TsType
| Name | Type | 
|---|---|
| Option |  | 
# Events
| 事件名 | 说明 | 参数 | 
|---|---|---|
| input | 当绑定值变化时触发 | 事件对象 e,包含选中态 value,以及 option 里定义的 value | 
# Slots
| 插槽名 | 说明 | 
|---|---|
| — (默认插槽) | 自定义文本插槽内容 | 
# CSS Variable
| 变量名 | 默认值 | 含义 | 
|---|---|---|
| $checkbox-checked-color | 复选框主色 | |
| $checkbox-ui-round-width | 18px | 圆形复选框宽度 | 
| $checkbox-ui-round-height | 圆形复选框高度 | |
| $checkbox-ui-square-width | 18px | 方形复选框宽度 | 
| $checkbox-ui-square-height | 方形复选框高度 | |
| $checkbox-ui-width | 复选框宽度 | |
| $checkbox-ui-height | 复选框高度 | |
| $checkbox-inner-ui-width | 7px | 复选框内部选中宽度 | 
| $checkbox-inner-ui-height | 4px | 复选框内部选中高度 | 
| $checkbox-ui-round-border | 1px solid #C8C9CC | 圆形复选框边框 | 
| $checkbox-ui-square-border | 1px solid #C8C9CC | 方形复选框边框 | 
| $checkbox-ui-round-border_disabled | 2px solid $var(color-disabled) | 圆形复选框禁用边框 | 
| $checkbox-ui-square-border_disabled | 1px solid $var(color-disabled) | 方形复选框禁用边框 | 
| $checkbox-ui-round-border_checked | 2px solid $var(color-primary) | 圆形复选框选中边框 | 
| $cube-checkbox-ui_checked | 2px solid $var(color-primary) | 复选框选中边框 | 
| $checkbox-ui-square-border_checked | none | 方形复选框选中边框 | 
| $checkbox-inner-ui-border | 2px solid $var(color-primary) | 复选框内部选中边框 | 
| $checkbox-ui-round-bgc | #FAFAFA | 圆形复选框背景色 | 
| $checkbox-ui-square-bgc | 方形复选框背景色 | |
| $checkbox-ui-round-bgc_checked | #FFF8F4 | 圆形复选框选中背景色 | 
| $checkbox-ui-square-bgc_checked | 方形复选框选中背景色 | |
| $checkbox-ui-round-bgimg | url('data:image/svg+xml;base64... | 圆形复选框选中图形(对勾) | 
| $checkbox-ui-square-bgimg | url('data:image/svg+xml;base64... | 方形复选框选中图形(对勾) | 
| $checkbox-ui-bg_disabled | 复选框禁用背景色 | |
| $checkbox-ui-bg-opacity | .3 | 复选框禁用透明度 | 
| $checkbox-ui-square-radius | 4px | 方形复选框圆角 | 
| $checkbox-ui-round-radius | 50% | 圆形复选框圆角 | 
| $checkbox-ui-margin | 0 0 0 10px | 复选框外边距 | 
| $checkbox-ui-margin-right | 10px | 复选框右边距 | 
| $checkbox-ui-round-margin-right | 10px | 圆形复选框右边距 | 
| $checkbox-ui-square-margin-right | 10px | 方形复选框右边距 | 
| $checkbox-label-padding | 10px 0 | 标签内边距 | 
| $checkbox-text-desc-color_disabled | unset | 禁用文本颜色 | 
| $checkbox-text-font-size | 18px | 文本字号 | 
| $checkbox-text-font-weight | 700 | 文本字重 | 
| $checkbox-desc-font-size | 12px | 描述文本字号 | 
| $checkbox-text-color | 复文颜色 | |
| $checkbox-desc-color | #757575 | 描述文本颜色 | 
| $checkbox-text-line-height | 1 | 文本行高 | 
| $checkbox-desc-line-height | 1.2 | 描述文本行高 | 
| $checkbox-inner-ui-transition | transform .2s | 内部选中过渡 |