docs_vue2/one/docs/demo/radio-button-group/default.vue
2021-09-15 20:03:51 +08:00

78 lines
1.4 KiB
Vue

<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, label }">
<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>