# Cube-Radio
# 介绍
基本组件-单选框,用于设置单个选项的值。
# 示例
# 正常选项
option
下的value
属性表示选中后的值,通过 wx:model
双向绑定该值。
在该示例中,两个单选框绑定了同一个响应式变量,在点击第一个单选框时,就会变为Option1
,所以第一个单选框激活。
<template>
<view class="radio-demo">
<view-desc>正常选项: {{ radioValue }}</view-desc>
<view class="cube-radio-demos">
<cube-radio option="{{ radio1 }}" wx:model="{{ radioValue }}" wx:model-prop="value">Option1</cube-radio>
<cube-radio option="{{ radio2 }}" wx:model="{{ radioValue }}" wx:model-prop="value">Option2</cube-radio>
</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: {
radio1: {
value: 'Option1'
},
radio2: {
value: 'Option2'
},
radioValue: ''
}
})
</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
# 禁用选项
通过 disabled
属性控制。
<template>
<view class="radio-disabled-demo">
<view-desc>禁用选项: {{ radioValue }}</view-desc>
<view class="cube-radio-demos">
<cube-radio
option="{{ radio }}"
wx:model="{{ radioValue }}"
wx:model-prop="value"
>disabledOption</cube-radio>
</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: {
radio: {
value: 'disabledOption',
disabled: true
},
radioValue: ''
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 图标位置
通过option
下的position
属性控制图标展示方位,right
表示图标展示在右侧。
<template>
<view class="radio-ui-right-demo">
<view-desc>图标展示在右侧: {{ radioValue }}</view-desc>
<view class="cube-radio-demos">
<cube-radio option="{{ radio1 }}" wx:model="{{ radioValue }}" wx:model-prop="value"></cube-radio>
<cube-radio option="{{ radio2 }}" wx:model="{{ radioValue }}" wx:model-prop="value"></cube-radio>
</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: {
radio1: {
text: 'Option1',
value: 'Option1',
position: 'right'
},
radio2: {
text: 'Option2',
value: 'Option2',
position: 'right'
},
radioValue: ''
}
})
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Props
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
themeType | 用于生成最外层类名 如原类名为 cube-component,添加 themeType = demo 后,类名变为 cube-component cube-component-demo | String | - | - |
option | 配置项 | Object | Option | Option |
value | 双向绑定属性值 | String | String/Number | - |
# TsType
Name | Type |
---|---|
Option |
|
# Events
事件名 | 说明 | 参数 |
---|---|---|
input | 绑定值变化时触发 | 事件对象 e,包含选中的单选框 value 值 |
# Slots
插槽名 | 说明 |
---|---|
— (默认插槽) | 自定义文本插槽内容 |
# CSS Variable
变量名 | 默认值 | 含义 |
---|---|---|
$radio-color | #c8c9cc | 单选框主色 |
$radio-inner-ui-bgc | 内部主色 | |
$radio-ui-bgc | #fff | 背景色 |
$radio-ui-bgc_disabled | 禁用背景色 | |
$radio-ui-bgimg | none | 背景图 |
$radio-ui-bgc-opacity | .3 | 背景色透明度 |
$radio-ui-width | 18px | 宽度 |
$radio-inner-ui-width | 10px | 内部选中宽度 |
$radio-inner-ui-scale-size | 1 | 内部选中缩放比例 |
$radio-ui-scale-size | 1 | 缩放比例 |
$radio-ui-border | 1px solid $radio-color | 边框 |
$radio-ui-border_disabled | 1px solid $var(color-disabled) | 禁用外边框 |
$radio-ui-border_checked | 1px solid $var(color-primary) | 选中外边框 |
$radio-ui-margin | 0 0 0 10px | 外边距 |
$radio-label-mr_left | 10px | 标签左边距 |
$radio-label-mr_right | 28px | 标签右边距 |
$radio-label-padding | 10px 0 | 标签内边距 |
$radio-inner-ui-tick | tick-radio-passenger | 对勾图标 |
$radio-ui_checked-transition | none | 选中过渡 |
$radio-ui-transform | none | 选中变换 |
$radio-desc-margin-top | 5px | 描述文案上边距 |
$radio-text-desc-color_disabled | unset | 描述文案禁用色值 |
$radio-text-font-size | 18px | 文案字号 |
$radio-desc-font-size | 12px | 描述文案字号 |
$radio-text-color | 文案颜色 | |
$radio-desc-color | #757575 | 描述文案颜色 |
$radio-text-line-height | 1 | 文案行高 |
$radio-desc-line-height | 1.2 | 描述文案行高 |