Skip to content

Radio 单选框

介绍

单选框用于在一组备选项中进行单选。

导入

js
import Radio from '@/components/form/Radio.vue'
import RadioGroup from '@/components/form/RadioGroup.vue'

用法

基础用法

单选框需要配合 RadioGroup 组件一起使用,通过 v-model 绑定选中项。

vue
<template>
  <FlexCol :padding="10" justify="flex-start">
    <RadioGroup v-model="value">
      <Radio name="0" text="单选框 1" :innerStyle="{ padding: '10rpx 0' }" />
      <Radio name="1" text="单选框 2" :innerStyle="{ padding: '10rpx 0' }" />
      <Radio name="2" text="单选框 3" :innerStyle="{ padding: '10rpx 0' }" />
      <Radio name="3" text="单选框 4" :innerStyle="{ padding: '10rpx 0' }" />
    </RadioGroup>
  </FlexCol>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import Radio from '@/components/form/Radio.vue'
import RadioGroup from '@/components/form/RadioGroup.vue'
import FlexCol from '@/components/layout/FlexCol.vue'

const value = ref('0')
</script>

禁用状态

通过 disabled 属性禁用单选框。

vue
<template>
  <FlexCol :padding="10">
    <RadioGroup v-model="value">
      <Radio name="0" disabled color="danger" text="单选框 1" :innerStyle="{ padding: '10rpx 0' }" />
      <Radio name="1" disabled color="success" text="单选框 2" :innerStyle="{ padding: '10rpx 0' }" />
    </RadioGroup>
  </FlexCol>
</template>

自定义形状

通过 shape 属性设置单选框的形状,支持 round 和 square 两种类型。

vue
<template>
  <FlexCol :padding="10">
    <RadioGroup v-model="value">
      <Radio name="0" shape="round" text="单选框 1" :innerStyle="{ padding: '10rpx 0' }" />
      <Radio name="1" shape="square" text="单选框 2" :innerStyle="{ padding: '10rpx 0' }" />
    </RadioGroup>
  </FlexCol>
</template>

自定义颜色

通过 color 属性设置单选框的颜色。

vue
<template>
  <FlexCol :padding="10">
    <RadioGroup v-model="value">
      <Radio name="0" color="danger" text="单选框 1" :innerStyle="{ padding: '10rpx 0' }" />
      <Radio name="1" color="success" text="单选框 2" :innerStyle="{ padding: '10rpx 0' }" />
    </RadioGroup>
  </FlexCol>
</template>

配合单元格组件使用

通过 checkPosition 属性设置单选框的位置,并使用 block 属性使其占满整行。

vue
<template>
  <RadioGroup v-model="value">
    <Cell key="1"><Radio checkPosition="right" block name="1" text="单选框 1" /></Cell>
    <Cell key="2"><Radio checkPosition="right" block name="2" text="单选框 2" /></Cell>
    <Cell key="3"><Radio checkPosition="right" block name="3" text="单选框 3" /></Cell>
    <Cell key="4"><Radio checkPosition="right" block name="4" text="单选框 4" /></Cell>
  </RadioGroup>
</template>

API 参考

Radio

单选框组件。

Radio Props

名称说明类型必填默认值
name单选框的值,在组中不能重复string | number | boolean-
text单选框的文字string-
shape单选框的形状"square" | "round"'round'
block是否占满整个父元素booleanfalse
checkPosition单选框按钮位置"left" | "right"'left'
borderColor未选中时的边框颜色string'border.input'
checkColor选中时勾的颜色string'white'
checkSize单选框按钮大小number36
activeOpacity按下时透明度number0.75
color单选框的颜色string'primary'
disabled是否禁用booleanfalse
icon选择勾的图标string'check-mark'
textColor文字颜色string'text.content'
disabledTextColor禁用状态下文字颜色string'text.second'
textStyle自定义文字样式object-
innerStyle自定义样式object-

Radio Slots

名称说明
default默认插槽,用于显示文字内容
icon自定义单选框按钮

Radio Events

名称说明参数
click点击事件$event

RadioGroup

单选框组组件。

RadioGroup Props

名称说明类型必填默认值
v-model当前组选中的项目string | number | boolean-
disabled是否禁用整组单选框booleanfalse

RadioGroup Slots

名称说明
default包含Radio子组件

主题变量

名称类型默认值说明
RadioBoxShapestring'round'单选框形状
RadioBoxCheckPositionstring'left'单选框位置
RadioBoxBorderColorstring'border.input'未选中边框颜色
RadioBoxCheckColorstring'white'选中时勾的颜色
RadioBoxTextColorstring'text.content'文字颜色
RadioBoxDisabledTextColorstring'text.second'禁用状态文字颜色
RadioBoxColorstring'primary'单选框主颜色
RadioBoxCheckSizenumber36单选框大小
RadioBoxActiveOpacitynumber0.75按下透明度
RadioBoxMarginHorizontalnumber4水平边距
RadioBoxTextFontSizenumber28文字大小