CheckButtonGroup 复选按钮组
示例
尺寸
可供选用的 ui
属性值:s
/ m
。
Normal size
Checked: -
Small size
Checked: -
<template>
<article>
<section>
<h4>Normal size</h4>
<veui-check-button-group
v-model="selected"
:items="licenses"
/>
<p>Checked: {{ readable }}</p>
</section>
<section>
<h4>Small size</h4>
<veui-check-button-group
v-model="selected"
ui="s"
:items="licenses"
/>
<p>Checked: {{ readable }}</p>
</section>
</article>
</template>
<script>
import { CheckButtonGroup } from 'veui'
export default {
components: {
'veui-check-button-group': CheckButtonGroup
},
data () {
return {
selected: null,
licenses: [
{
label: 'MIT License',
value: 'mit'
},
{
label: 'BSD License',
value: 'bsd'
},
{
label: 'Apache License 2.0',
value: 'apache2'
}
]
}
},
computed: {
readable () {
return (this.selected || []).join(', ') || '-'
}
}
}
</script>
<style lang="less" scoped>
section {
margin-bottom: 20px;
}
h4 {
margin-top: 0;
}
</style>
简单样式
设置 ui
属性值:simple
来指定简单样式。
Checked: any
<template>
<article>
<section>
<veui-check-button-group
v-model="selected"
ui="simple"
:items="sizes"
/>
<p>Checked: {{ readable }}</p>
</section>
</article>
</template>
<script>
import { CheckButtonGroup } from 'veui'
export default {
components: {
'veui-check-button-group': CheckButtonGroup
},
data () {
return {
selected: ['any'],
sizes: [
{
label: 'Any',
value: 'any'
},
{
label: 'Small',
value: 'sm'
},
{
label: 'Medium',
value: 'md'
},
{
label: 'Large',
value: 'lg'
}
]
}
},
computed: {
readable () {
return (this.selected || []).join(', ') || '-'
}
}
}
</script>
<style lang="less" scoped>
section {
margin-bottom: 20px;
}
h4 {
margin-top: 0;
}
</style>
单复选共存
可以使用 exclusive
选项与 empty-value
实现一些单复选共存的场景。
Select size
Checked: any
<template>
<article>
<section>
<h4>Select size</h4>
<veui-check-button-group
v-model="selected"
:items="licenses"
empty-value="any"
/>
<p>Checked: {{ readable }}</p>
</section>
</article>
</template>
<script>
import { CheckButtonGroup } from 'veui'
export default {
components: {
'veui-check-button-group': CheckButtonGroup
},
data () {
return {
selected: ['any'],
licenses: [
{
label: 'Any',
value: 'any',
exclusive: true
},
{
label: 'Small',
value: 'sm'
},
{
label: 'Medium',
value: 'md'
},
{
label: 'Large',
value: 'lg'
}
]
}
},
computed: {
readable () {
return (this.selected || []).join(', ') || '-'
}
}
}
</script>
<style lang="less" scoped>
section {
margin-bottom: 20px;
}
h4 {
margin-top: 0;
}
</style>
额外描述
在数据源的项目中设置 desc
字段或者通过 desc
插槽来指定额外描述。额外描述会在悬浮时显示。
<template>
<article>
<section>
<veui-check-button-group
v-model="flavor"
:items="flavors"
/>
</section>
<section>
<veui-check-button-group
v-model="flavor"
:items="flavors"
>
<template #desc="{ desc, label }">
{{ desc || `a description for ${label}` }}
</template>
</veui-check-button-group>
</section>
</article>
</template>
<script>
import { CheckButtonGroup } from 'veui'
export default {
components: {
'veui-check-button-group': CheckButtonGroup
},
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-check-button-group
v-model="flavor"
:items="flavors"
:ui="isStable ? 'stable' : ''"
/>
</article>
</template>
<script>
import { CheckButtonGroup, Checkbox } from 'veui'
export default {
components: {
'veui-check-button-group': CheckButtonGroup,
'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;
}
</style>
API
属性
名称 | 类型 | 默认值 | 描述 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ui | string | - | 预设样式。
| ||||||||||||||||||
items | Array<Object> | [] | 复选按钮组数据源,项目类型为
| ||||||||||||||||||
value | Array | [] |
| ||||||||||||||||||
disabled | boolean | false | 是否为禁用状态。 | ||||||||||||||||||
readonly | boolean | false | 是否为只读状态。 | ||||||||||||||||||
empty-value | * | - | 当取消所有选择时组件需要默认选中的值,通常用于存在 exclusive 选项的场景。 |
插槽
名称 | 描述 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
item | 按钮内文本区域。 默认内容:
另外, | |||||||||||||||
desc | 按钮的额外描述信息,插槽参数同 item 插槽。 |
事件
名称 | 描述 |
---|---|
change |
选中状态变化后触发,回调参数为 |
图标
名称 | 描述 |
---|---|
check | 已选标志。 |
自定义样式
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
--dls-checkbox-button-min-width | <length> | - | 在 ui 设置了 stable 时的选项最小宽度。 |