<script>
  module.exports = {
    data() {
      return {
        radio: '1',
        radio1: '选中且禁用',
        radio2: 1,
        radio3: '1',
        radio4: '2',
        radio5: '1',
        radio6: '2',
      };
    }
  };
</script>

<style lang="scss">
 .demo-radio {
 	min-width:160px;
 	.kc-img-radio {
        margin-top: 5px;
        margin-bottom: 5px;
     }	
 }
</style>

## Radio 单选框
-------------------

在一组备选项中进行单选

### 基础用法

由于选项默认可见，不宜过多，若选项过多，建议使用 Select 选择器。

要使用 Radio 组件，只需要设置`v-model`绑定变量，选中意味着变量的值为相应 Radio `label`属性的值，`label`可以是`String`、`Number`或`Boolean`
:::demo 。

```html

  <kc-radio v-model="radio" label="1">备选项</kc-radio>
  <kc-radio v-model="radio" label="2">备选项</kc-radio>


<script>
  export default {
    data () {
      return {
        radio: '1'
      };
    }
  }
</script>
```
:::

### 禁用状态

单选框不可用的状态。

只要在`kc-radio`元素中设置`disabled`属性即可，它接受一个`Boolean`，`true`为禁用。
:::demo 
```html

  <kc-radio disabled v-model="radio1" label="禁用">备选项</kc-radio>
  <kc-radio disabled v-model="radio1" label="选中且禁用">备选项</kc-radio>


<script>
  export default {
    data () {
      return {
        radio1: '选中且禁用'
      };
    }
  }
</script>
```
:::

### 单选框组

适用于在多个互斥的选项中选择的场景

结合`kc-radio-group`元素和子元素`kc-radio`可以实现单选组，在`kc-radio-group`中绑定`v-model`，在`kc-radio`中设置好`label`即可，无需再给每一个`kc-radio`绑定变量，另外，还提供了`change`事件来响应变化，它会传入一个参数`value`。
:::demo 

```html

  <kc-radio-group v-model="radio2">
    <kc-radio :label="1">备选项</kc-radio>
    <kc-radio :label="2">备选项</kc-radio>
    <kc-radio :label="3">备选项</kc-radio>
  </kc-radio-group>


<script>
  export default {
    data () {
      return {
        radio2: 1
      };
    }
  }
</script>
```
:::


### 带有边框

设置`border`属性可以渲染为带有边框的单选框。
:::demo 
```html

  <div>
    <kc-radio v-model="radio3" label="1" border>备选项1</kc-radio>
    <kc-radio v-model="radio3" label="2" border>备选项2</kc-radio>
  </div>
  <div style="margin-top: 20px">
    <kc-radio v-model="radio4" label="1" border disabled>备选项1</kc-radio>
    <kc-radio v-model="radio4" label="2" border disabled>备选项2</kc-radio>
  </div>

<script>
  export default {
    data () {
      return {
        radio3: '1',
        radio4: '2',
      };
    }
  }
</script>
```
:::

### 带有图片和描述的单框

可选水平布局或者垂直布局，需要设置容器宽度，通过img-width/img-height设置图片大小
:::demo
```html
  <h5>垂直布局</h5>
<kc-row type="flex" justify="start" :gutter="30">
  <kc-col :span="5" >
		<div class="demo-radio-img">
			<kc-radio 
			  v-model="radio5" 
			  label="1"
			  :has-img="true"
			  title="单选框"
			  description="带有图片和描述的单选框"
			  src="http://img07.tooopen.com/images/20170316/tooopen_sy_201956178977.jpg">
			</kc-radio>
		</div>
  </kc-col>
  <kc-col :span="5">
	<div class="demo-radio-img">
		<kc-radio 
		  v-model="radio5" 
		  label="2"
		  :has-img="true"
		  title="单选框"
		  description="带有图片和描述的单选框"
		  src="http://img07.tooopen.com/images/20170316/tooopen_sy_201956178977.jpg">
		</kc-radio>
	</div>
	</kc-col>
</kc-row>
  
   <h5>水平布局</h5>
   <div class="demo-radio-img">
    <kc-radio v-model="radio6" 
      label="1"
      :has-img="true"
      :img-width=108
      :img-height=80
      :inline="true"
      title="单选框"
      description="带有图片和描述的单选框"
      src="http://img07.tooopen.com/images/20170316/tooopen_sy_201956178977.jpg">
    </kc-radio>
</div>
<div class="demo-radio-img">
    <kc-radio v-model="radio6" 
      label="2"
      :has-img="true"
      :img-width=108
      :img-height=80
      :inline="true"
      title="单选框"
      description="带有图片和描述的单选框"
      src="http://img07.tooopen.com/images/20170316/tooopen_sy_201956178977.jpg">
    </kc-radio>
  </div>
  
<script>
  export default {
    data () {
      return {
        radio5: '1',
        radio6: '2'
      };
    }
  }
</script>
<style lang="scss">
 .demo-radio-img {
	margin: 15px 0;
 	min-width:160px;
 	max-width:450px;
 	.kc-img-radio {
        margin-top: 5px;
        margin-bottom: 5px;
     }	
 }
</style>

```
:::

### Radio Attributes
| 参数      | 说明    | 类型      | 可选值       | 默认值   |
|---------- |-------- |---------- |-------------  |-------- |
| label     | Radio 的 value   | string / number / boolean    |       —        |      —   |
| disabled  | 是否禁用    | boolean   | — | false   |
| border  | 是否显示边框  | boolean   | — | false   |
| size  | Radio 的尺寸，仅在 border 为真时有效  | string  | medium / small / mini | — |
| name | 原生 name 属性 | string    |      —         |     —    |
| has-img  | 是否是带有图文组合的单选框    | boolean   |  — | false   |
| inline  | 是否是带有图文组合的水平布局单选框（只有has-img的值为true的时候才生效）    | boolean   |  — | false   |
| title  | 带有图文组合的单选框的标题（只有has-img的值为true的时候才生效）    | string   |  — |  —  |
| description  | 带有图文组合的单选框的描述（只有has-img的值为true的时候才生效）    | string   |  — |  —  |
| src  | 带有图文组合的单选框的图片路径（只有has-img的值为true的时候才生效）    | string   |  — |  —  |

### Radio Events
| 事件名称 | 说明 | 回调参数 |
|---------- |-------- |---------- |
| change  | 绑定值变化时触发的事件 |  选中的 Radio label 值  |

### Radio-group Attributes
| 参数      | 说明    | 类型      | 可选值       | 默认值   |
|---------- |-------- |---------- |-------------  |-------- |
| size     | 单选框组尺寸，仅对按钮形式的 Radio 或带有边框的 Radio 有效   | string  | medium / small / mini |    —     |
| disabled  | 是否禁用    | boolean   | — | false   |
| text-color  | 按钮形式的 Radio 激活时的文本颜色    | string   | — | #ffffff   |
| fill  | 按钮形式的 Radio 激活时的填充色和边框色    | string   | — | #409EFF   |

### Radio-group Events
| 事件名称 | 说明 | 回调参数 |
|---------- |-------- |---------- |
| change  | 绑定值变化时触发的事件 |  选中的 Radio label 值  |

### Radio-button Attributes
| 参数      | 说明    | 类型      | 可选值       | 默认值   |
|---------- |-------- |---------- |-------------  |-------- |
| label     | Radio 的 value  | string / number  |        —       |     —    |
| disabled  | 是否禁用    | boolean   | — | false   |
| name | 原生 name 属性 | string    |      —         |     —    |
