mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-05-30 02:09:16 +08:00
[Improvement] Radio: name support any types (#863)
This commit is contained in:
parent
ec47c8d0d3
commit
7c84582d7b
@ -1,30 +1,21 @@
|
||||
<template>
|
||||
<demo-section>
|
||||
<demo-block :title="$t('basicUsage')">
|
||||
<div class="van-radios">
|
||||
<van-radio name="1" v-model="radio1">{{ $t('radio') }} 1</van-radio>
|
||||
<van-radio name="2" v-model="radio1">{{ $t('radio') }} 2</van-radio>
|
||||
</div>
|
||||
<van-radio-group v-model="radio1" class="demo-radio-group">
|
||||
<van-radio name="1">{{ $t('radio') }} 1</van-radio>
|
||||
<van-radio name="2">{{ $t('radio') }} 2</van-radio>
|
||||
</van-radio-group>
|
||||
</demo-block>
|
||||
|
||||
<demo-block :title="$t('disabled')">
|
||||
<div class="van-radios">
|
||||
<van-radio name="1" v-model="radio2" disabled>{{ $t('text1') }}</van-radio>
|
||||
<van-radio name="2" v-model="radio2" disabled>{{ $t('text2') }}</van-radio>
|
||||
</div>
|
||||
<van-radio-group v-model="radio2" class="demo-radio-group" disabled>
|
||||
<van-radio name="1">{{ $t('radio') }} 1</van-radio>
|
||||
<van-radio name="2">{{ $t('radio') }} 2</van-radio>
|
||||
</van-radio-group>
|
||||
</demo-block>
|
||||
|
||||
<demo-block :title="$t('title3')">
|
||||
<div class="van-radios">
|
||||
<van-radio-group v-model="radio3">
|
||||
<van-radio name="1">{{ $t('radio') }} 1</van-radio>
|
||||
<van-radio name="2">{{ $t('radio') }} 2</van-radio>
|
||||
</van-radio-group>
|
||||
</div>
|
||||
</demo-block>
|
||||
|
||||
<demo-block :title="$t('title4')">
|
||||
<van-radio-group v-model="radio4">
|
||||
<van-radio-group v-model="radio3">
|
||||
<van-cell-group>
|
||||
<van-cell><van-radio name="1">{{ $t('radio') }}1</van-radio></van-cell>
|
||||
<van-cell><van-radio name="2">{{ $t('radio') }}2</van-radio></van-cell>
|
||||
@ -41,15 +32,13 @@ export default {
|
||||
radio: '单选框',
|
||||
text1: '未选中禁用',
|
||||
text2: '选中且禁用',
|
||||
title3: 'Radio 组',
|
||||
title4: '与 Cell 组件一起使用'
|
||||
title3: '与 Cell 组件一起使用'
|
||||
},
|
||||
'en-US': {
|
||||
radio: 'Radio',
|
||||
text1: 'Disabled',
|
||||
text2: 'Disabled and checked',
|
||||
title3: 'Radio Group',
|
||||
title4: 'Inside a Cell'
|
||||
title: 'Inside a Cell'
|
||||
}
|
||||
},
|
||||
|
||||
@ -57,8 +46,7 @@ export default {
|
||||
return {
|
||||
radio1: '1',
|
||||
radio2: '2',
|
||||
radio3: '1',
|
||||
radio4: '1'
|
||||
radio3: '1'
|
||||
};
|
||||
}
|
||||
};
|
||||
@ -66,11 +54,11 @@ export default {
|
||||
|
||||
<style lang="postcss">
|
||||
.demo-radio {
|
||||
.van-radios {
|
||||
padding: 0 20px;
|
||||
&-group {
|
||||
padding: 0 17px;
|
||||
|
||||
.van-radio {
|
||||
margin: 10px 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -83,12 +83,12 @@ export default {
|
||||
</van-checkbox-group>
|
||||
```
|
||||
|
||||
|
||||
### Checkbox API
|
||||
|
||||
| Attribute | Description | Type | Default | Accepted Values |
|
||||
|-----------|-----------|-----------|-------------|-------------|
|
||||
| name | Checkbox name | `Boolean` | `false` | - |
|
||||
| v-model | Check status | `Boolean` | `false` | - |
|
||||
| name | Checkbox name | `any` | - | - |
|
||||
| disabled | Diable checkbox | `Boolean` | `false` | - |
|
||||
| label-disabled | Whether to disable label click | `Boolean` | `false` | - |
|
||||
| shape | Checkbox shape | `String` | `round` | `square` |
|
||||
@ -97,6 +97,7 @@ export default {
|
||||
|
||||
| Attribute | Description | Type | Default | Accepted Values |
|
||||
|-----------|-----------|-----------|-------------|-------------|
|
||||
| v-model | Names of all checked checkboxes | `Array` | - | - |
|
||||
| disabled | Disable all checkboxes | `Boolean` | `false` | - |
|
||||
| max | Maximum amount of checked options | `Number` | `0`(Unlimited) | - |
|
||||
|
||||
|
@ -10,11 +10,13 @@ Vue.use(Radio);
|
||||
### Usage
|
||||
|
||||
#### Basic Usage
|
||||
Use `v-model` to bind check status of radio. The value will be set to the name of radio when radio get checked.
|
||||
Use `v-model` to bind the name of checked radio
|
||||
|
||||
```html
|
||||
<van-radio name="1" v-model="radio">Radio 1</van-radio>
|
||||
<van-radio name="2" v-model="radio">Radio 2</van-radio>
|
||||
<van-radio-group v-model="radio">
|
||||
<van-radio name="1">Radio 1</van-radio>
|
||||
<van-radio name="2">Radio 2</van-radio>
|
||||
</van-radio-group>
|
||||
```
|
||||
|
||||
```javascript
|
||||
@ -30,16 +32,7 @@ export default {
|
||||
#### Disabled
|
||||
|
||||
```html
|
||||
<van-radio name="1" v-model="radio" disabled>Disabled</van-radio>
|
||||
<van-radio name="2" v-model="radio" disabled>Disabled and checked</van-radio>
|
||||
```
|
||||
|
||||
|
||||
#### Radio Group
|
||||
When Radios are inside a RadioGroup, the checked radio's name is bound with CheckboxGroup by `v-model`.
|
||||
|
||||
```html
|
||||
<van-radio-group v-model="radio">
|
||||
<van-radio-group v-model="radio" disabled>
|
||||
<van-radio name="1">Radio 1</van-radio>
|
||||
<van-radio name="2">Radio 2</van-radio>
|
||||
</van-radio-group>
|
||||
@ -60,13 +53,14 @@ When Radios are inside a RadioGroup, the checked radio's name is bound with Chec
|
||||
|
||||
| Attribute | Description | Type | Default | Accepted Values |
|
||||
|-----------|-----------|-----------|-------------|-------------|
|
||||
| disabled | Diable radio | `Boolean` | `false` | - |
|
||||
| name | Radio name | `Boolean` | `false` | - |
|
||||
| name | Radio name | `any` | - | - |
|
||||
| disabled | Whether to disable radio | `Boolean` | `false` | - |
|
||||
|
||||
### RadioGroup API
|
||||
|
||||
| Attribute | Description | Type | Default | Accepted Values |
|
||||
|-----------|-----------|-----------|-------------|-------------|
|
||||
| v-model | Name of checked radio | `any` | - | - |
|
||||
| disabled | Diable all radios | `Boolean` | `false` | - |
|
||||
|
||||
### RadioGroup Event
|
||||
|
@ -95,7 +95,8 @@ export default {
|
||||
|
||||
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
||||
|-----------|-----------|-----------|-------------|-------------|
|
||||
| name | 标识 Checkbox 名称 | `Boolean` | `false` | - |
|
||||
| v-model | 是否为选中状态 | `Boolean` | `false` | - |
|
||||
| name | 标识 Checkbox 名称 | 任意类型 | - | - |
|
||||
| disabled | 是否禁用单选框 | `Boolean` | `false` | - |
|
||||
| label-disabled | 是否禁用单选框内容点击 | `Boolean` | `false` | - |
|
||||
| shape | 形状 | `String` | `round` | `square` |
|
||||
@ -104,6 +105,7 @@ export default {
|
||||
|
||||
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
||||
|-----------|-----------|-----------|-------------|-------------|
|
||||
| v-model | 所有选中项的 name | `Array` | - | - |
|
||||
| disabled | 是否禁用所有单选框 | `Boolean` | `false` | - |
|
||||
| max | 设置最大可选数 | `Number` | `0`(无限制) | - |
|
||||
|
||||
|
@ -10,12 +10,13 @@ Vue.use(Radio);
|
||||
### 代码演示
|
||||
|
||||
#### 基础用法
|
||||
|
||||
通过`v-model`绑定值即可。当`Radio`选中时,绑定的值即为`Radio`中`name`属性设置的值。
|
||||
通过`v-model`绑定值当前选中项的 name
|
||||
|
||||
```html
|
||||
<van-radio name="1" v-model="radio">单选框 1</van-radio>
|
||||
<van-radio name="2" v-model="radio">单选框 2</van-radio>
|
||||
<van-radio-group v-model="radio">
|
||||
<van-radio name="1">单选框 1</van-radio>
|
||||
<van-radio name="2">单选框 2</van-radio>
|
||||
</van-radio-group>
|
||||
```
|
||||
|
||||
```javascript
|
||||
@ -29,28 +30,16 @@ export default {
|
||||
```
|
||||
|
||||
#### 禁用状态
|
||||
|
||||
设置`disabled`属性即可,此时`Radio`不能点击。
|
||||
通过`disabled`属性禁止选项切换,在`van-radio`上设置`diabled`可以禁用单个选项
|
||||
|
||||
```html
|
||||
<van-radio name="1" v-model="radio" disabled>未选中禁用</van-radio>
|
||||
<van-radio name="2" v-model="radio" disabled>选中且禁用</van-radio>
|
||||
```
|
||||
|
||||
|
||||
#### Radio 组
|
||||
|
||||
需要与`van-radio-group`一起使用,在`van-radio-group`通过`v-model`来绑定当前选中的值。例如下面的`radio3`:
|
||||
|
||||
```html
|
||||
<van-radio-group v-model="radio">
|
||||
<van-radio-group v-model="radio" disabled>
|
||||
<van-radio name="1">单选框 1</van-radio>
|
||||
<van-radio name="2">单选框 2</van-radio>
|
||||
</van-radio-group>
|
||||
```
|
||||
|
||||
#### 与 Cell 组件一起使用
|
||||
|
||||
此时你需要再引入`Cell`和`CellGroup`组件。
|
||||
|
||||
```html
|
||||
@ -66,17 +55,18 @@ export default {
|
||||
|
||||
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
||||
|-----------|-----------|-----------|-------------|-------------|
|
||||
| disabled | 是否禁用单选框 | `Boolean` | `false` | - |
|
||||
| name | 根据这个来判断 radio 是否选中 | `Boolean` | `false` | - |
|
||||
| name | 唯一标识符 | 任意类型 | - | - |
|
||||
| disabled | 是否为禁用状态 | `Boolean` | `false` | - |
|
||||
|
||||
### RadioGroup API
|
||||
|
||||
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|
||||
|-----------|-----------|-----------|-------------|-------------|
|
||||
| disabled | 是否禁用单选框 | `Boolean` | `false` | - |
|
||||
| v-model | 当前选中项的 name | 任意类型 | - | - |
|
||||
| disabled | 是否禁用所有单选框 | `Boolean` | `false` | - |
|
||||
|
||||
### RadioGroup Event
|
||||
|
||||
| 事件名称 | 说明 | 回调参数 |
|
||||
|-----------|-----------|-----------|
|
||||
| change | 当绑定值变化时触发的事件 | 当前组件的值 |
|
||||
| change | 当绑定值变化时触发的事件 | 当前选中项的 name |
|
||||
|
@ -11,7 +11,7 @@ export default create({
|
||||
name: 'checkbox-group',
|
||||
|
||||
props: {
|
||||
value: {},
|
||||
value: null,
|
||||
disabled: Boolean,
|
||||
max: {
|
||||
default: 0,
|
||||
|
@ -27,13 +27,13 @@ export default create({
|
||||
mixins: [findParent],
|
||||
|
||||
props: {
|
||||
value: {},
|
||||
name: null,
|
||||
value: null,
|
||||
disabled: Boolean,
|
||||
labelDisabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
name: [String, Number],
|
||||
shape: {
|
||||
type: String,
|
||||
default: 'round'
|
||||
|
@ -11,7 +11,7 @@ export default create({
|
||||
name: 'radio-group',
|
||||
|
||||
props: {
|
||||
value: {},
|
||||
value: null,
|
||||
disabled: Boolean
|
||||
},
|
||||
|
||||
|
@ -30,9 +30,9 @@ export default create({
|
||||
mixins: [findParent],
|
||||
|
||||
props: {
|
||||
value: {},
|
||||
disabled: Boolean,
|
||||
name: [String, Number]
|
||||
name: null,
|
||||
value: null,
|
||||
disabled: Boolean
|
||||
},
|
||||
|
||||
computed: {
|
||||
|
Loading…
x
Reference in New Issue
Block a user