# radio 单选框

单选框组件一般用于需要多个选择的场景,该组件功能完整,使用方便

# 基础用法

<template>
  <qinui-radio-group v-model="radioValue">
    <qinui-radio
      v-for="(item, index) in radioList"
      :key="index"
      :label="item.name"
      :name="item.name"
    ></qinui-radio>
  </qinui-radio-group>
</template>
<script>
  export default {
    data() {
      return {
        radioValue: '苹果',
        radioList: [
          {
            name: '苹果',
            disabled: false,
          },
          {
            name: '香蕉',
            labelColor: '#f00',
            disabled: false,
          },
          {
            name: '橙子',
            disabled: false,
          },
        ],
      };
    },
  };
</script>

# 按钮用法

type="button" gap="16rpx"

<template>
  <qinui-radio-group v-model="radioValue" type="button" gap="16rpx">
    <qinui-radio
      :diyStyle="`margin-bottom: 8rpx;${index===0?'min-width:112rpx;font-size:40rpx;':''}`"
      v-for="(item, index) in radioList2"
      :key="index"
      :label="item.name"
      :labelColor="item.labelColor"
      :name="item.name"
      :disabled="item.disabled"
    ></qinui-radio>
  </qinui-radio-group>
</template>
<script>
  export default {
    data() {
      return {
        radioValue: '苹果',
        radioList: [
          {
            name: '香蕉',
            labelColor: '#0f0',
            disabled: true,
          },
          {
            name: '橙子橙子橙子橙子',
            disabled: false,
          },
          {
            name: '橙子',
          },
        ],
      };
    },
  };
</script>

# 自定义形状

shape="circle"

<template>
  <qinui-radio-group v-model="radioValue" shape="circle">
    <qinui-radio
      :diyStyle="{ marginBottom: '8px' }"
      v-for="(item, index) in radioList"
      :key="index"
      :label="item.name"
      :name="item.name"
    ></qinui-radio>
  </qinui-radio-group>
</template>
<script>
  export default {
    data() {
      return {
        radioValue: '苹果',
        radioList: [
          {
            name: '苹果',
            disabled: false,
          },
          {
            name: '香蕉',
            labelColor: '#f00',
            disabled: false,
          },
          {
            name: '橙子',
            disabled: false,
          },
        ],
      };
    },
  };
</script>

# 禁用

在 qinui-radio 上面添加 disabled

<template>
  <qinui-radio-group v-model="radioValue" shape="circle">
    <qinui-radio
      :diyStyle="{ marginBottom: '8px' }"
      v-for="(item, index) in radioList"
      :key="index"
      :label="item.name"
      :name="item.name"
      :disabled="index !== 1"
    ></qinui-radio>
  </qinui-radio-group>
</template>
<script>
  export default {
    data() {
      return {
        radioValue: '苹果',
        radioList: [
          {
            name: '苹果',
            disabled: false,
          },
          {
            name: '香蕉',
            labelColor: '#f00',
            disabled: false,
          },
          {
            name: '橙子',
            disabled: false,
          },
        ],
      };
    },
  };
</script>

# 自定义颜色

设置 labelColor

<template>
  <qinui-radio-group v-model="diyradioValue">
    <qinui-radio
      labelColor="red"
      name="苹果1"
      label="苹果1"
    ></qinui-radio>
    <qinui-radio
      labelColor="red"
      noColor="green"
      yesColor="yellow"
      name="苹果2"
      label="苹果2"
    ></qinui-radio>
    <qinui-radio
      labelColor="red"
      name="苹果3"
      label="苹果3"
    ></qinui-radio>
  </qinui-radio-group>
</template>
<script>
  export default {
    data() {
      return {
        diyradioValue: '苹果2',
      };
    },
  };
</script>

# 横向排列形式

设置 placement="col"

<template>
  <qinui-radio-group v-model="radioValue" placement="col">
    <qinui-radio name="apple" label="苹果"></qinui-radio>
    <qinui-radio name="banana" label="香蕉"></qinui-radio>
  </qinui-radio-group>
</template>
<script>
  export default {
    data() {
      return {
        radioValue: '苹果',
      };
    },
  };
</script>

# 组合使用

设置 placement="col"

<template>
  <qinui-radio-group v-model="radioValue" placement="col">
    <div v-for="(item, index) in radioList" :key="index">
      <qinui-space align="start">
        <qinui-radio
          :name="item.name"
          :shape="index === 0 ? 'circle' : ''"
        ></qinui-radio>
        <div style="flex: 1">
          <qinui-space align="center" justifyContent="space-between">
            <div class="demo-title-box">
              <qinui-title size="40" content="标题"></qinui-title>
            </div>
            <qinui-text
              content="编辑"
              style="width: 200rpx"
              type="primary"
              center
            ></qinui-text>
          </qinui-space>
          <qinui-box :padding="['small', 'none', 'none']">
            <qinui-space placement="col">
              <qinui-space :size="24">
                <qinui-text type="secondary" content="身份证"></qinui-text>
                <qinui-text
                  type="secondary"
                  content="13011805800"
                ></qinui-text>
              </qinui-space>
              <qinui-space :size="24">
                <qinui-text type="secondary" content="手机号"></qinui-text>
                <qinui-text
                  type="secondary"
                  content="13011805800"
                ></qinui-text>
              </qinui-space>
            </qinui-space>
          </qinui-box>
        </div>
      </qinui-space>
    </div>
  </qinui-radio-group>
</template>
<script>
  export default {
    data() {
      return {
        radioValue: '苹果',
        diyradioValue: '苹果2',
        // 基本案列数据
        radioList: [
          {
            name: '苹果',
            disabled: false,
          },
          {
            name: '香蕉',
            labelColor: '#f00',
            disabled: false,
          },
          {
            name: '橙子',
            disabled: false,
          },
        ],
      };
    },
  };
</script>

# API


# radioGroup Props

参数 说明 类型 默认值 可选值
value / v-model 选中name的值,eg:['a','b'] Array [] -
value 绑定的值 Array [] -
shape 形状,circle-圆形,square-方形 String square square | circle
disabled 是否禁用全部radio Boolean false true | false
yesColor 选中状态下的颜色,如子radio组件设置此值,将会覆盖本值 String #2979ff -
noColor 未选中的颜色 String #c8c9cc -
placement 布局方式,row-横向,col-纵向 String row row | col
labelColor label的字体颜色 String #303133 -
labelDisabled 是否禁止点击文本操作 Boolean false true | false
iconColor 图标颜色 String #ffffff -
iconPlacement 勾选图标的对齐方式,left-左边,right-右边 String left left | right
borderBottom 竖向配列时,是否显示下划线 Boolean false true | false
diyStyle 自定义样式,某些事件需要用到调整位置等作用 Object - -

# radio Props

注意:radioradio-group二者同名参数中,radio的参数优先级更高。

参数 说明 类型 默认值 可选值
name radio的名称 String | Number | Boolean - -
shape 形状,square为方形,circle为圆型 String square square | circle
size 整体的大小 String | Number - -
checked 是否默认选中 Boolean false true | false
disabled 是否禁用 String | Boolean - -
yesColor 选中状态下的颜色,如设置此值,将会覆盖parent的yesColor值 String - -
noColor 未选中的颜色 String - -
iconColor 图标颜色 String - -
label label提示文字。如果文本较长存在文本不换行的问题,使用diyStyle设置一个宽度即可,eg:diyStyle="maxWidth: 300rpx;" String | Number - -
labelColor label的颜色 String - -
labelDisabled 是否禁止点击提示语选中单选框 String | Boolean - -
diyStyle 自定义外部样式,如:设置边框等样式 String - -

# radioGroup Events

事件名 说明 回调参数
@change 点击事件 -