跳到主要内容

单选框 Radio

单选框。

安装使用

import { TiRadio, TiRadioGroup, TiRadioButton } from '@titian-design/mobile-vue';

TiRadio 基本使用

组件附带文字内容

<template>
<TiRadio />
<TiRadio label="文字内容" />
<TiRadio>文字内容</TiRadio>
</template>

<script lang="ts" setup>
import { TiRadio } from '@titian-design/mobile-vue';
</script>

默认选中状态

当设置 checked 时为受控模式,单选框的选中状态将由使用者控制,当设置 default-checked 时为非受控模式,选中状态将由组件内部控制。默认为非受控模式。

<template>
<TiRadio label="默认选中" checked />
<TiRadio label="默认选中" default-checked />
</template>

<script lang="ts" setup>
import { TiRadio } from '@titian-design/mobile-vue';
</script>

禁用点击效果

当设置 disabled 时, 组件将禁用组件的图标和文字的点击切换效果,当设置 label-disabled 时将禁用文字的点击效果,实现更细粒的控制。

<template>
<TiRadio label="禁用全部点击效果" disabled />
<TiRadio label="禁用文字点击效果" label-disabled />
</template>

<script lang="ts" setup>
import { TiRadio } from '@titian-design/mobile-vue';
</script>

修改单选框的圆角度数

单选框可自定义边框角度,支持方形(square)、圆形(circle)和自定义角度,默认为圆形。

当自定义角度时,会自动根据屏幕分辨率调整数字大小!

<template>
<TiRadio label="方形" shape="square" />
<TiRadio label="圆形" shape="circle" />
<TiRadio label="自定义角度" :shape="4" />
</template>

<script lang="ts" setup>
import { TiRadio } from '@titian-design/mobile-vue';
</script>

组件图标设置

单选框支持自定义组件图标, 图标大小,图标颜色等。

<template>
<TiRadio label="默认图标" default-checked />
<TiRadio label="自定义图标" icon="plus" default-checked />
<TiRadio label="自定义图标大小" :size="64" default-checked />
</template>

<script lang="ts" setup>
import { TiRadio } from '@titian-design/mobile-vue';
</script>

监听单选框选中状态变化

<template>
<TiRadio label="监听切换状态变化" @change="handleChange" />
</template>

<script lang="ts" setup>
import { TiRadio } from '@titian-design/mobile-vue';

const handleChange = (e: CustomEvent<boolean>) => {
console.log(`组件选中状态: ${e.detail ? '选中' : '未选中'}`);
};
</script>

TiRadioButton 示例

基本使用

组件附带文字内容。

<template>
<TiRadioButton label="单选按钮" />
<TiRadioButton>单选按钮</TiRadioButton>
</template>

<script lang="ts" setup>
import { TiRadioButton } from '@titian-design/mobile-vue';
</script>

默认选中状态

当设置 checked 时为受控模式,单选按钮的选中状态将由使用者控制,当设置 default-checked 时为非受控模式,选中状态将由组件内部控制。默认为非受控模式。

<template>
<TiRadioButton label="默认选中" checked />
<TiRadioButton label="默认选中" defaultChecked />
</template>

<script lang="ts" setup>
import { TiRadio } from '@titian-design/mobile-vue';
</script>

组件内容设置

单选按钮支持自定义前后内容,图标等。

<template>
<TiRadioButton label="设置右侧图标" icon="sort-inactive" />

<TiRadioButton label="自定义左侧内容">
<TiImage
slot="prefix"
:width="40"
:radius="0"
:height="40"
src="https://image-c-dev.weimobwmc.com/qa-On6X/8b97cd488593474ba4a8ccaa3c1a493f.png"
/>
</TiRadioButton>

<TiRadioButton label="自定义右侧内容">
<TiImage
slot="suffix"
:width="40"
:radius="0"
:height="40"
src="https://image-c-dev.weimobwmc.com/qa-On6X/8b97cd488593474ba4a8ccaa3c1a493f.png"
/>
</TiRadioButton>
</template>

<script lang="ts" setup>
import { TiRadioButton, TiImage } from '@titian-design/mobile-vue';
</script>

改变单选按钮颜色

单选按钮默认根据主题色变化,如需改变按钮颜色可参考下面示例。

<template>
<TiRadioButton label="通过属性更改颜色" color="#2a6ae9" />
<div :style="styles">
<TiRadioButton label="通过 css 变量更改颜色" />
</div>
</template>

<script lang="ts" setup>
import { TiRadioButton } from '@titian-design/mobile-vue';

const styles: any = {
"--radio-button-checked-border-color": "rgba(30, 128, 255, 40%)",
"--radio-button-checked-bg-color": "rgba(30, 128, 255, 10%)",
"--radio-button-checked-text-color": "rgba(30, 128, 255, 100%)"
};
</script>

监听单选按钮选中状态变化

<template>
<TiRadioButton label="监听切换状态变化" @change="handleChange" />
</template>

<script lang="ts" setup>
import { TiRadioButton } from '@titian-design/mobile-vue';

const handleChange = (e: CustomEvent<boolean>) => {
console.log(`组件选中状态: ${e.detail ? '选中' : '未选中'}`);
};
</script>

TiRadioGroup 示例

基本使用

<template>
<TiRadioGroup>
<TiRadio label="文字内容-1" value="1" />
<TiRadio label="文字内容-2" value="2" />
<TiRadio label="文字内容-3" value="3" />
</TiRadioGroup>

<TiRadioGroup>
<TiRadioButton label="文字内容-1" value="1" />
<TiRadioButton label="文字内容-2" value="2" />
<TiRadioButton label="文字内容-3" value="3" />
</TiRadioGroup>
</template>

<script lang="ts" setup>
import { TiRadioGroup, TiRadio, TiRadioButton } from '@titian-design/mobile-vue';
</script>

禁用所有单选框点击效果

当设置 disabled 时, 子组件将禁用组件的图标和文字的点击切换效果,当设置 label-disabled 时将禁用子组件文字的点击效果,实现更细粒的控制。

<template>
<TiRadioGroup disabled>
<TiRadio label="禁用整体点击效果-1" value="1" />
<TiRadio label="禁用整体点击效果-2" value="2" />
<TiRadio label="禁用整体点击效果-3" value="3" />
</TiRadioGroup>

<TiRadioGroup label-disabled>
<TiRadio label="禁用文字点击效果-1" value="1" />
<TiRadio label="禁用文字点击效果-2" value="2" />
<TiRadio label="禁用文字点击效果-3" value="3" />
</TiRadioGroup>

<TiRadioGroup disabled>
<TiRadioButton label="禁用点击效果-1" value="1" />
<TiRadioButton label="禁用点击效果-2" value="2" />
<TiRadioButton label="禁用点击效果-3" value="3" />
</TiRadioGroup>
</template>

<script lang="ts" setup>
import { TiRadioGroup, TiRadio, TiRadioButton } from '@titian-design/mobile-vue';
</script>

设置单选框组合中的选中值

<template>
<TiRadioGroup value="1">
<TiRadio label="受控模式-1" value="1" />
<TiRadio label="受控模式-2" value="2" />
<TiRadio label="受控模式-3" value="3" />
</TiRadioGroup>

<TiRadioGroup default-value="1">
<TiRadio label="非受控模式-1" value="1" />
<TiRadio label="非受控模式-2" value="2" />
<TiRadio label="非受控模式-3" value="3" />
</TiRadioGroup>

<TiRadioGroup value="1">
<TiRadioButton label="受控模式-1" value="1" />
<TiRadioButton label="受控模式-2" value="2" />
<TiRadioButton label="受控模式-3" value="3" />
</TiRadioGroup>

<TiRadioGroup default-value="1">
<TiRadioButton label="非受控模式-1" value="1" />
<TiRadioButton label="非受控模式-2" value="2" />
<TiRadioButton label="非受控模式-3" value="3" />
</TiRadioGroup>
</template>

<script lang="ts" setup>
import { TiRadioGroup, TiRadio, TiRadioButton } from '@titian-design/mobile-vue';
</script>

使用 options 创建单选框

此模式只支持 TiRadio

<template>
<TiRadioGroup options={options} />
</template>

<script lang="ts" setup>
import { TiRadioGroup } from '@titian-design/mobile-vue';
</script>

监听单选组合中选中状态变化

<template>
<TiRadioGroup @change="handleChange" >
<TiRadio label="文字内容-1" value="1" />
<TiRadio label="文字内容-2" value="2" />
<TiRadio label="文字内容-3" value="3" />
</TiRadioGroup>

<TiRadioGroup change="handleChange" >
<TiRadioButton label="文字内容-1" value="1" />
<TiRadioButton label="文字内容-2" value="2" />
<TiRadioButton label="文字内容-3" value="3" />
</TiRadioGroup>
</template>

<script lang="ts" setup>
import { TiRadio } from '@titian-design/mobile-vue';
const handleChange = (e: CustomEvent<string | number>) => {
console.log('选中了 %s', e.detail);
};
</script>

TiRadio API

属性 Properties

名称类型是否必填默认值说明备注
valuestring-唯一标识符,根据 value 进行比较,判断是否选中-
labelstring-内容文字-
checkedboolean-指定当前是否选中, 此模式下为受控型组件-
default-checkedboolean-初始是否选中, 此模式下为非受控型组件-
disabledboolean-是否被禁用-
label-disabledboolean-是否禁用文本点击效果-
iconstringcheckbox-hollow自定义图标名称-
sizenumber32自定义图标尺寸-
shapesquare | circle | numbercircle单选框圆角度数-
colorstring-自定义图标颜色-

事件 Events

名称参数列表描述备注
change(e: CustomEvent<boolean>) => void单选框选中时触发的事件当被 TiRadioGroup 包裹时,只有 TiRadioGroupchange 会被触发

插槽 Slots

名称说明备注
icon图标插槽icon={false} 或者 icon 不存在时,使用此插槽

可扩展样式名 External Class

名称说明备注
ext-class根节点可扩展的类名-
icon-class图标节点可扩展的类名-

CSS 变量 CSS Variables

变量默认值说明备注
--radio-radiuscalc(var(--base-radius-size, 0px) + 4px)--
--radio-padding-v0--
--radio-padding-h0--
--radio-label-padding-v0--
--radio-label-padding-h12px--
--radio-label-colorvar(--neutral-color-1, #212121)--
--radio-directionrow--
--radio-icon-colorrgb(@theme-r, @theme-g, @theme-b)--
--radio-icon-revert-colorvar(--neutral-color-9, #ffffff)--
--radio-align-itemscenter--
--radio-icon-wrap-padding-v0--
--radio-icon-wrap-padding-h0--

TiRadioButton API

属性 Properties

名称类型必填默认值说明备注
labelstring-文字内容-
valuestring-标识 radio 名称, 用户确定当前组件是否被选中-
checkedbooleanfalse指定当前是否选中, 此模式下为控制型组件-
default-checkedbooleanfalse初始是否选中, 此模式下为非控制型组件-
disabledbooleanfalse是否禁用-
iconstring-自定义图标名称-
colorstring-自定义图标颜色-
ext-stylestring | Record<string, string>-根节点额外扩展样式属性值如果是带单位的话,要带上单位,如:{margin: '10px'}

事件 Events

名称参数列表描述备注
change(e: CustomEvent<boolean>) => void单选框选中时发生的回调当被 TiRadioGroup 包裹时,只有 TiRadioGroupchange 会被触发

插槽 Slots

名称说明备注
prefix自定义文字前面内容-
suffix自定义文字后面内容-

CSS 变量 CSS Variables

变量默认值说明备注
--radio-button-height56px--
--radio-button-padding-v0--
--radio-button-padding-h12px--
--radio-button-text-colorvar(--neutral-color-2, #757575)--
--radio-button-disabled-text-colorvar(--neutral-color-4, #c4c4c4)--
--radio-button-disabled-border-colorrgba(var(--theme-r, 250), var(--theme-g, 44), var(--theme-b, 25), 20%)--
--radio-button-bg-colorvar(--neutral-color-7, #f5f5f5)--
--radio-button-padding12px 20px--
--radio-button-radiusvar(--radio-radius, @radius-8)--
--radio-button-checked-bg-colorvar(--radio-button-checked-color, rgba(var(--theme-r, 250), var(--theme-g, 44), var(--theme-b, 25), 10%))--
--radio-button-checked-border-colorvar(--radio-button-checked-color, rgba(var(--theme-r, 250), var(--theme-g, 44), var(--theme-b, 25), 40%))--
--radio-button-checked-text-colorvar(--radio-button-checked-color, rgba(var(--theme-r, 250), var(--theme-g, 44), var(--theme-b, 25), 100%))--

TiRadioGroup API

属性 Properties

名称类型是否必填默认值说明备注
valuestring | number-用于设置当前选中的值-
default-valuestring | number-默认选中的值-
disabledbooleanfalse指定当前是否禁用-
label-disabledbooleanfalse是否禁用文本点击效果-
directionhorizontal | verticalhorizontal排列方向-
shapecircle | squarecircle图标形状,可选值为 circle、square-
iconstring-自定义图标名称-
optionsArray<Option>-以配置形式设置子元素-
sizenumber-自定义图标尺寸-
colorstring-自定义图标颜色-
ext-stylestring | Record<string, string>-根节点额外扩展样式属性值如果是带单位的话,要带上单位,如:{margin: '10px'}

Options

interface Option {
label: string;
value: string;
disabled?: boolean;
}

事件 Events

名称参数列表描述备注
change(e: CustomEvent<string | number>) => void单选框选中时发生的回调-

可扩展样式名 External Class

类名说明备注
ext-class扩展样式类名-