RadioButtonGroup 单选按钮组
示例
尺寸
可供选用的 ui
属性值:s
/ m
。
Normal size
Selected: -
Small size & Square shape
<template>
<article>
<section>
<h4>Normal size</h4>
<veui-radio-button-group
v-model="flavor"
:items="flavors"
/>
<p>Selected: {{ readable }}</p>
</section>
<section>
<h4>Small size &amp; Square shape</h4>
<veui-radio-button-group
ui="s"
:items="actions"
>
<template #item="{ value }">
<veui-icon :name="value"/>
</template>
</veui-radio-button-group>
</section>
</article>
</template>
<script>
import { RadioButtonGroup, Icon } from 'veui'
import 'veui-theme-dls-icons/clockwise'
import 'veui-theme-dls-icons/search'
export default {
components: {
'veui-radio-button-group': RadioButtonGroup,
'veui-icon': Icon
},
data () {
return {
flavor: null,
flavors: [
{ value: 'LATTE', label: 'Latte' },
{ value: 'MOCHA', label: 'Mocha' },
{ value: 'AMERICANO', label: 'Americano' }
],
actions: [
{
label: '刷新',
value: 'clockwise'
},
{
label: '搜索',
value: 'search'
}
]
}
},
computed: {
flavorLabelMap () {
return this.flavors.reduce((map, { value, label }) => {
map[value] = label
return map
}, {})
},
readable () {
return this.flavorLabelMap[this.flavor] || '-'
}
}
}
</script>
<style lang="less" scoped>
section {
margin-bottom: 20px;
}
h4 {
margin-top: 0;
}
</style>
简单样式
设置 ui
属性值:simple
来指定简单样式。
Selected: -
<template>
<article>
<section>
<veui-radio-button-group
v-model="flavor"
ui="simple"
:items="flavors"
/>
<p>Selected: {{ readable }}</p>
</section>
</article>
</template>
<script>
import { RadioButtonGroup } from 'veui'
export default {
components: {
'veui-radio-button-group': RadioButtonGroup
},
data () {
return {
flavor: null,
flavors: [
{ value: 'LATTE', label: 'Latte' },
{ value: 'MOCHA', label: 'Mocha' },
{ value: 'AMERICANO', label: 'Americano' }
]
}
},
computed: {
flavorLabelMap () {
return this.flavors.reduce((map, { value, label }) => {
map[value] = label
return map
}, {})
},
readable () {
return this.flavorLabelMap[this.flavor] || '-'
}
}
}
</script>
<style lang="less" scoped>
section {
margin-bottom: 20px;
}
h4 {
margin-top: 0;
}
</style>
额外描述
在数据源的项目中设置 desc
字段或者通过 desc
插槽来指定额外描述。额外描述会在悬浮时显示。
desc
field
desc
slot
<template>
<article>
<section>
<h4><code>desc</code> field</h4>
<veui-radio-button-group
v-model="flavor"
:items="flavors"
/>
</section>
<section>
<h4><code>desc</code> slot</h4>
<veui-radio-button-group
v-model="flavor"
:items="flavors"
>
<template #desc="{ desc, label }">
{{ desc || `A description for ${label}` }}
</template>
</veui-radio-button-group>
</section>
</article>
</template>
<script>
import { RadioButtonGroup } from 'veui'
export default {
components: {
'veui-radio-button-group': RadioButtonGroup
},
data () {
return {
flavor: null,
flavors: [
{ value: 'LATTE', label: 'Latte', desc: 'A description for latte.' },
{ value: 'MOCHA', label: 'Mocha', desc: 'A description for mocha.' },
{ value: 'AMERICANO', label: 'Americano' }
]
}
}
}
</script>
<style lang="less" scoped>
section {
margin-bottom: 20px;
}
h4 {
margin-top: 0;
}
</style>
最小宽度
设置 ui
属性值:stable
来为选项启用最小宽度,使多行场景下布局更为稳定。
<template>
<article>
<section>
<veui-checkbox v-model="isStable">
Stable layout
</veui-checkbox>
</section>
<veui-radio-button-group
v-model="flavor"
:items="flavors"
:ui="isStable ? 'stable' : ''"
/>
</article>
</template>
<script>
import { RadioButtonGroup, Checkbox } from 'veui'
export default {
components: {
'veui-radio-button-group': RadioButtonGroup,
'veui-checkbox': Checkbox
},
data () {
return {
isStable: true,
flavor: null,
flavors: [
{ value: 'LATTE', label: 'Latte' },
{ value: 'MOCHA', label: 'Mocha' },
{ value: 'AMERICANO', label: 'Americano' }
]
}
}
}
</script>
<style lang="less" scoped>
section {
margin-bottom: 20px;
}
h4 {
margin-top: 0;
}
</style>
API
属性
名称 | 类型 | 默认值 | 描述 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ui | string | - | 预设样式。
| |||||||||||||||
items | Array<Object> | [] | 单选按钮组数据源,项目类型为
| |||||||||||||||
value | * | - |
| |||||||||||||||
disabled | boolean | false | 是否为禁用状态。 | |||||||||||||||
readonly | boolean | false | 是否为只读状态。 |
插槽
名称 | 描述 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
item | 按钮内文本区域。 默认内容:
另外, | ||||||||||||||||||
desc | 按钮的额外描述信息,插槽参数同 item 插槽。 |
事件
名称 | 描述 |
---|---|
change |
选中状态变化后触发,回调参数为 |
自定义样式
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
--dls-checkbox-button-min-width | <length> | - | 在 ui 设置了 stable 时的选项最小宽度。 |