Select 选择器
当选项过多时,使用下拉菜单展示并选择内容。
基础用法
可通过options
属性设置下拉菜单选项,options
属性为Json数组,一般情况下至少保证有value
与label
两个字段。
html
<script setup>
import { ref } from 'vue'
const selval = ref('')
const options = ref([
{
value: 'GZ',
label: '广州',
disabled: false // 为true时禁用选项
}
])
</script>
<os-select
v-model="selval"
:options="options"
placeholder="请选择"></os-select>
可清空单选
clearable
属性设置为可一键清除操作,此功能目前只支持单选情况下。
html
<os-select
v-model="selval"
:options="options"
placeholder="请选择"
clearable>
</os-select>
筛选选项
filterable
属性设置为可搜索过滤功能。
html
<os-select
v-model="selval"
:options="options"
placeholder="请选择"
filterable>
</os-select>
多选框
multiple
属性设置为能选择多个参数,并能通过属性collapse
参数设置为只显示一个选项。
html
<os-select
v-model="selval"
:options="options"
placeholder="请选择"
size="large">
</os-select>
WARNING
注:多选情况下,双向绑定的参数格式需为数组。
自定义模板
自定义模板可通过slot插槽方式完成。
html
<script setup>
import { ref } from 'vue'
const selarr = ref([])
const options = ref([{
value: 'Beijing',
label: '北京'
}, {
value: 'Shanghai',
label: '上海'
}, {
value: 'Nanjing',
label: '南京'
}, {
value: 'Chengdu',
label: '成都'
}, {
value: 'Shenzhen',
label: '深圳',
disabled: true,
customerData: '这是自定义数据'
}, {
value: 'Guangzhou',
label: '广州'
}])
</script>
<os-select v-model="selarr" :options="options" placeholder="请输入关键字" clearable filterable>
<template #options="{ option }">
<div class="os-padding-xs">
{{ option.label }} ({{ option.value }})<br/>
<span class="os-text-neutral-4 os-height9">{{ option.customerData }}</span>
</div>
</template>
</os-select>
尺寸
使用 size
属性改变下拉框大小。 除了默认大小外,还有另外两个选项: large
, mini
。
html
<os-select
v-model="selval"
:options="options"
placeholder="请选择"
size="large">
</os-select>