Select
Demos
Size variants
Available size variants for the ui
prop: xs
/ s
/ m
/ l
.
<template>
<article>
<veui-select
v-model="license"
ui="l"
:options="options"
/>
<veui-select
v-model="license"
:options="options"
/>
<veui-select
v-model="license"
ui="s"
:options="options"
/>
<veui-select
v-model="license"
ui="xs"
:options="options"
/>
</article>
</template>
<script>
import { Select } from 'veui'
export default {
components: {
'veui-select': Select
},
data () {
return {
license: null,
options: [
{
label: 'MIT',
value: 'mit'
},
{
label: 'BSD',
value: 'bsd'
},
{
label: 'Apache 2.0',
value: 'apache2'
}
]
}
}
}
</script>
<style lang="less" scoped>
.veui-select {
max-width: 120px;
margin-right: 10px;
}
</style>
Embedded options
Can be used with embedded OptionGroup
s & Option
s.
Selected: -
clearable
can be used to allow selected values to be discarded for Select
. Set position
of the embedded OptionGroup
s to popup
to display children options inside a popup menu.
<template>
<article>
<veui-select
v-model="item"
placeholder="Pick one..."
clearable
>
<veui-option-group
label="Editors"
position="popup"
>
<veui-option
value="vscode"
label="VSCode"
/>
<veui-option
value="sublime"
label="SublimeText"
/>
<veui-option
value="atom"
label="Atom"
/>
</veui-option-group>
<veui-option-group
label="Browsers"
position="popup"
>
<veui-option-group
label="Desktop"
position="popup"
>
<veui-option
value="ie"
label="IE"
/>
<veui-option
value="edge"
label="Edge"
/>
<veui-option
value="firefox"
label="Firefox"
/>
<veui-option
value="chrome"
label="Chrome"
/>
</veui-option-group>
<veui-option-group
label="Mobile"
position="popup"
>
<veui-option
value="ios_safari"
label="iOS Safari"
/>
<veui-option
value="android"
label="Android Browser"
/>
<veui-option
value="android_chrome"
label="Chrome for Android"
/>
</veui-option-group>
</veui-option-group>
</veui-select>
<p>Selected: {{ item || '-' }}</p>
</article>
</template>
<script>
import { Select, OptionGroup, Option } from 'veui'
export default {
components: {
'veui-select': Select,
'veui-option-group': OptionGroup,
'veui-option': Option
},
data () {
return {
item: null
}
}
}
</script>
<style lang="less" scoped>
.veui-select {
width: 180px;
}
</style>
Searchable options
Use the searchable
prop to make options searchable.
<template>
<article>
<veui-select
v-model="license"
:options="options"
searchable
/>
</article>
</template>
<script>
import { Select } from 'veui'
export default {
components: {
'veui-select': Select
},
data () {
return {
license: null,
options: [
{
label: 'MIT',
value: 'mit'
},
{
label: 'BSD',
value: 'bsd'
},
{
label: 'Apache 2.0',
value: 'apache2'
}
]
}
}
}
</script>
Multiple selections
Use the multiple
prop to enable multiple selections.
Use max
to specify the max number of options that can be selected. The searchable
prop can also be used here to make options searchable.
<template>
<article>
<section>
<veui-checkbox v-model="searchable">
Searchable
</veui-checkbox>
</section>
<section>
<veui-select
v-model="license"
multiple
:options="options"
:max="5"
:searchable="searchable"
/>
</section>
</article>
</template>
<script>
import { Select, Checkbox } from 'veui'
export default {
components: {
'veui-select': Select,
'veui-checkbox': Checkbox
},
data () {
return {
searchable: false,
license: null,
options: [
{
label: 'MIT',
value: 'mit'
},
{
label: 'BSD',
value: 'bsd'
},
{
label: 'Apache 2.0',
value: 'apache2'
},
{
label: 'GPL 3.0',
value: 'gpl3'
},
{
label: 'AGPL 3.0',
value: 'agpl3'
},
{
label: 'LGPL 2.1',
value: 'lgpl2'
},
{
label: 'MPL 2.0',
value: 'mpl2'
}
]
}
}
}
</script>
<style lang="less" scoped>
section {
margin-bottom: 1em;
}
</style>
API
Props
Name | Type | Default | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ui | string= | - | Style variants.
| |||||||||||||||
options | Array<Object> | - | The list of options with the option type being
| |||||||||||||||
value | Array<*>|* | - |
The value of the selected option. | |||||||||||||||
multiple | boolean | false | Whether users can select multiple items. | |||||||||||||||
max | number | - | The max items users can select. | |||||||||||||||
placeholder | string | select.placeholder | Placeholder text when no option is selected. | |||||||||||||||
clearable | boolean | false | Whether the select is clearable. | |||||||||||||||
searchable | boolean | false | Whether the options are searchable. | |||||||||||||||
show-select-all | boolean | false | Whether to display the “Select All” option in multi-select mode. | |||||||||||||||
expanded | boolean= | false |
Whether the dropdown menu is expanded. | |||||||||||||||
disabled | boolean= | false | Whether the select is disabled. | |||||||||||||||
readonly | boolean= | false | Whether the select is read-only. | |||||||||||||||
overlay-class | string | Array | Object= | - | See the overlay-class prop of the Overlay component. | |||||||||||||||
overlay-style | string | Array | Object= | - | See the overlay-style prop of the Overlay component. | |||||||||||||||
match | (item, keyword, { ancestors }) => boolean | [number, number] | Array<[number, number]> | - | Custom highlighting logic, case insensitive by default. See Autocomplete . | |||||||||||||||
filter | (item, keyword, { ancestors, offsets }) => boolean | - | Custom hit logic, case insensitive by default. See Autocomplete . |
Slots
Name | Description | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
default | The content of the options dropdown layer. Can be used to place Option s or OptionGroups s when the options prop is not specified. | |||||||||||||||||||||
before | The content before the options in the dropdown layer. No default content.
| |||||||||||||||||||||
after | The content after the options in the dropdown layer. No default content. | |||||||||||||||||||||
label | The content of the select button. Displays the
Additionally, custom properties apart from the listed ones will also be passes into the slot props object via | |||||||||||||||||||||
group-label | The label text of each option group (option with child
Additionally, custom properties in current option, apart from the listed ones, will also be passes into the slot props object via | |||||||||||||||||||||
option-label | The label text of each option (option without child
Additionally, custom properties in current option, apart from the listed ones, will also be passes into the slot props object via | |||||||||||||||||||||
option | The entire content area of each option (option without child
Additionally, custom properties in current option, apart from the listed ones, will also be passes into the slot props object via | |||||||||||||||||||||
trigger | The entire drop-down trigger area. Displays the select input by default.
|
Events
Name | Description |
---|---|
change |
Triggers when the selected option changed. The callback parameter list is |
toggle | Triggered when the expanded state is going to change. The callback parameter list is (expanded: boolean) . expanded denotes whether the dropdown menu is to be expanded or collapsed. |
Configs
Key | Type | Default | Description |
---|---|---|---|
select.placeholder | string | @@select.placeholder | The placeholder text when no option is selected. |
Icons
Name | Description |
---|---|
expand | Expand the dropdown panel. |
collapse | Collapse the dropdown panel. |