Select 选择器
用于在多个备选项中选中单个结果。
基础用法
<template>
<lb-select v-model="value" placeholder="请选择">
<lb-select-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</lb-select>
</template>
<script setup>
import { ref } from "vue";
const value = ref("");
const options = [
{
value: "Option1",
label: "Option1",
},
{
value: "Option2",
label: "Option2",
},
{
value: "Option3",
label: "Option3",
},
{
value: "Option4",
label: "Option4",
},
{
value: "Option5",
label: "Option5",
},
];
</script>
禁用状态
<template>
<lb-select v-model="value" placeholder="请选择" disabled>
<lb-select-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</lb-select>
</template>
<script setup>
import { ref } from "vue";
const value = ref("");
const options = [
{
value: "Option1",
label: "Option1",
},
{
value: "Option2",
label: "Option2",
},
{
value: "Option3",
label: "Option3",
},
{
value: "Option4",
label: "Option4",
},
{
value: "Option5",
label: "Option5",
},
];
</script>
尺寸
<template>
<div style="display: flex; gap: 10px">
<lb-select v-model="value" placeholder="请选择" size="small">
<lb-select-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</lb-select>
<lb-select v-model="value" placeholder="请选择" size="base">
<lb-select-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</lb-select>
<lb-select v-model="value" placeholder="请选择" size="large">
<lb-select-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</lb-select>
</div>
</template>
<script setup>
import { ref } from "vue";
const value = ref("");
const options = [
{
value: "Option1",
label: "Option1",
},
{
value: "Option2",
label: "Option2",
},
{
value: "Option3",
label: "Option3",
},
{
value: "Option4",
label: "Option4",
},
{
value: "Option5",
label: "Option5",
},
];
</script>
筛选功能
TIP
可以通过 filterable-method 自定义筛选逻辑。
<template>
<lb-select v-model="value" placeholder="请选择" filterable>
<lb-select-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</lb-select>
</template>
<script setup>
import { ref } from "vue";
const value = ref("");
const options = [
{
value: "Option1",
label: "Option1",
},
{
value: "Option2",
label: "Option2",
},
{
value: "Option3",
label: "Option3",
},
{
value: "Option4",
label: "Option4",
},
{
value: "Option5",
label: "Option5",
},
];
</script>
多选功能
<template>
<lb-select v-model="selectArr" multiple filterable>
<lb-select-option
v-for="option in options"
:key="option.value"
:label="option.label"
:value="option.value"
></lb-select-option>
</lb-select>
</template>
<script setup>
import { ref } from "vue";
const options = ref([
{
label: "选项1",
value: "1",
},
{
label: "选项2",
value: "2",
},
]);
const selectArr = ref([]);
</script>
value-key
TIP
当选项的标签和值不是简单的字符串时,需要通过 value-key 指定选项的值的键名。
<template>
<lb-select v-model="selectValue" value-key="id">
<lb-select-option
v-for="option in options"
:key="option.id"
:label="option.name"
:value="option"
></lb-select-option>
</lb-select>
<span>选中的值: {{ selectValue }}</span>
</template>
<script setup>
import { ref } from "vue";
const selectValue = ref("");
const options = ref([
{
id: 1,
name: "选项1",
},
{
id: 2,
name: "选项2",
},
]);
</script>
Select Props
属性名 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
modelValue / v-model | 绑定值 | string | number | boolean | null | — | null |
placeholder | 占位符 | string | — | '' |
disabled | 是否禁用 | boolean | true | false | false |
size | Select 的尺寸 | "small" | "base" | "large" | small , base , large | base |
clearable | 是否可清空 | boolean | true | false | false |
filterable | 是否可搜索 | boolean | true | false | false |
filterable-method | 自定义筛选逻辑 | (value: string, option: SelectOption) => boolean | — | — |
multiple | 是否多选 | boolean | true | false | false |
value-key | 选项的值的键名 | string | — | value |
Select Events
事件名 | 说明 | 回调参数 |
---|---|---|
change | 绑定值变化时触发的事件 | (value: string | number | boolean | null) => void |
update:modelValue | 绑定值变化时触发的事件 | (value: string | number | boolean | null) => void |
clear | 清空时触发的事件 | () => void |
SelectOption Props
属性名 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
value | 选项的值 | string | number | boolean | — | — |
label | 选项的标签 | string | — | — |
disabled | 是否禁用 | boolean | true | false | false |
SelectOption Events
事件名 | 说明 | 回调参数 |
---|---|---|
select | 选中时触发的事件 | (value: string | number | boolean) => void |