Skip to content

Radio 单选 ​

查看 sn-radio 的 2.0 版本差异

基础用法 ​

单选组件,由单选组、圆球形态选项与标签形态选项三部分组成。

  • 由单选组统一管理选中状态与组级配置,同一时刻只能选中一项
  • 同一组内可混用两种选项形态,索引统一分配
  • 选项默认自带右、下外边距并自动换行排列,可改为纵向排列

选项必须放在单选组内

选项(sn-radio / sn-radio-tag)必须是 sn-radio-group 的子代,选项自身不维护选中状态,需通过组控制。

vue
<template>
	<sn-radio-group v-model="current">
		<sn-radio text="确定"></sn-radio>
		<sn-radio text="取消"></sn-radio>
		<sn-radio-tag text="稍后再说"></sn-radio-tag>
	</sn-radio-group>
</template>

<script lang="uts" setup>
const current = ref<number>(0)
</script>

更多演示请下载 demo 查看

组配置下发 ​

sn-radio-group 上的尺寸、颜色与样式类等配置会统一下发到组内全部 sn-radio / sn-radio-tag(这些配置项构成组配置对象 RadioGroupConfig)。选项组件自身的同名属性(如 text-class、type、level)优先级高于组配置,可单独覆盖某一选项的表现。尺寸类属性支持 $ 前缀动态尺寸(乘对应乘数),颜色类属性支持 $ 简写(如 $primary 自动引用主题色变量)。

圆球选项的呈现方式:未选中时圆球为 line 色描边、内部圆点为 front 色;选中时圆球填充主题色(默认 $primary)、内部圆点仍为 front 色,形成"彩环 + 白点"效果。

sn-radio 属性 ​

参数说明类型默认值可选值
text圆球右侧的文本内容String''-
disabled是否禁用该选项Booleanfalsetrue | false
containStyle自定义选项整行容器样式(仅当前选项生效)SnStyleValue''-
customStyle自定义圆球样式(仅当前选项生效)SnStyleValue''-
textClass文本的外部样式类String''-
textStyle自定义文本样式(仅当前选项生效)SnStyleValue''-

sn-radio-tag 属性 ​

参数说明类型默认值可选值
text标签内部文本内容String''-
type标签主题类型,覆盖组配置 tag-typeString-primary | info | success | error | warning
level标签等级(选中态配色深浅),覆盖组配置 tag-levelString-first | second | third | least
disabled是否禁用该选项Booleanfalsetrue | false
customStyle自定义标签样式(仅当前选项生效)SnStyleValue''-
textClass文本的外部样式类String''-

标签选项未选中时默认 info 色背景配 text 色文字;选中后配色由 type 与 level 共同决定:

level背景文字
firsttype 对应原色(如 $primary)type 对应文字色(如 $primaryText)
secondtype 对应浅色(如 $primaryLight)type 对应原色
thirdinfo 色type 对应原色
least透明type 对应原色

禁用时未选中为 disabled 底配 disabledText 字,选中为 disabledDark 底配 disabledDarkText 字。

sn-radio-group 属性 ​

参数说明类型默认值可选值
v-model绑定值,当前选中项的索引Number0-
vertical是否纵向排列Booleanfalsetrue | false
radioSize圆球直径String | Number'20px'-
radioBorderWidth圆球边缘与内部圆点之间的间隙宽度(圆点直径 = 圆球直径 - 2 × 该值)String | Number'2px'-
radioTextSize选项文本大小String | Number$13-
radioBgColor未选中时圆球内部圆点颜色String$front-
disabledRadioBgColor禁用且未选中时圆点颜色String$front-
radioActiveBgColor选中时圆点颜色String$front-
disabledRadioActiveBgColor禁用且选中时圆点颜色String$front-
radioTextColor选项文本颜色String$text-
disabledRadioTextColor禁用状态下选项文本颜色String$disabledText-
radioBorderColor未选中时圆球颜色String$line-
disabledRadioBorderColor禁用且未选中时圆球颜色String$disabled-
radioActiveBorderColor选中时圆球颜色String$primary-
disabledRadioActiveBorderColor禁用且选中时圆球颜色String$disabledDark-
tagType标签选项主题类型String'primary'primary | info | success | error | warning
tagLevel标签选项等级String'second'first | second | third | least
tagBorderRadius标签选项圆角String | Number'10px'-
tagPadding标签选项内边距String'6px 10px'-
tagTextSize标签选项文本大小String | Number$12-
tagBgColor标签选项未选中时背景颜色String$info-
disabledTagBgColor禁用且未选中时标签背景颜色String$disabled-
tagActiveBgColor标签选项选中时背景颜色String--
disabledTagActiveBgColor禁用且选中时标签背景颜色String$disabledDark-
tagTextColor标签选项未选中时文本颜色String$text-
disabledTagTextColor禁用且未选中时标签文本颜色String$disabledText-
tagActiveTextColor标签选项选中时文本颜色String--
disabledTagActiveTextColor禁用且选中时标签文本颜色String$disabledDarkText-
radioContainStyle自定义圆球选项整行容器样式SnStyleValue''-
radioStyle自定义圆球样式SnStyleValue''-
tagStyle自定义标签选项样式SnStyleValue''-
textStyle自定义选项文本样式SnStyleValue''-
radioContainClass圆球选项整行容器的外部样式类String''-
radioClass圆球的外部样式类String''-
tagClass标签选项根节点的外部样式类String''-
textClass选项文本的外部样式类String''-
customStyle自定义单选组根节点样式SnStyleValue''-

事件 ​

sn-radio-group

名称类型说明
change(value: number) => Void选中项变化时触发,携带新选中的索引

插槽 ​

sn-radio

名称说明
default替换圆球右侧的文本内容,可以是任意内容

sn-radio-tag

名称说明
default替换标签内部的文本内容,可以是任意内容

sn-radio-group

名称说明
default放置子组件 sn-radio 或 sn-radio-tag

使用 MIT 协议