# Select 选择器
拓展ElementUI的`el-select`,支持快捷配置数据源。
## 基础用法
适用广泛的基础单选
::: snippet 设置`options`配置选择器数据源
```html
```
:::
::: snippet 配置`option`**插槽**可自定义选项样式
```html
{{ item.label }}
{{ item.type }}
```
:::
::: snippet 设置`filterable`启用搜索功能
```html
```
:::
::: snippet 设置`clearable`可清空选项
```html
```
:::
::: snippet 支持直接配置``子项
```html
单车
牵引车
```
:::
## 绑定值参数名
可以根据不同业务数据的需要,自定义下拉框的绑定值参数名。
::: snippet `labelKey`设置下拉框显示的文本,默认**label**;`valueKey`设置下拉框选项对应的值,默认**value**。
```html
{{ model }}
```
:::
## 设置多选
多选时支持字符串或数组类型的值
::: snippet 设置`multiple`开启多选,选中值为**数组**类型
```html
{{ model }}
```
:::
::: snippet 设置`stringify`后,选中值为**字符串**类型
```html
{{ model }}
```
:::
::: snippet 设置`sequence`固定序列,选中顺序与数据源顺序保持一致
```html
{{ model }}
```
:::
## 远程加载
可以通过设置`queryApi`自定义查询接口,必须是返回`Promise`的`Function`类型,Promise的返回值为`Array`类型,格式需要与`lebalKey`、`valueKey`项对应。
::: snippet `queryApi`自定义查询接口
```html
{{ model }}
```
:::
::: snippet `lazy`设置懒加载,即初始化后不自动执行查询,而是第一次点击下拉时加载
```html
{{ model }}
```
:::
::: snippet `update`设置每次打开下拉框都保持最新数据
```html
{{ model }}
```
:::
## 搜索前校验
可以通过设置`before-query`设置搜索之前的钩子,若为返回值为**false**则不执行搜索。
::: snippet 一般用于搜索前的业务逻辑校验
```html
```
:::
## 可创建新条目
设置`allow-create`和`filterable`允许创建新的选项,输入内容后可以直接选择已输入的内容
::: snippet 单选示例
```html
单车
牵引车
{{ model }}
```
:::
::: snippet 多选示例
```html
单车
牵引车
{{ model }}
```
:::
::: snippet 远程示例,输入创建的新项为临时项,选中后再次下拉时不会包括在选项结果中
```html
{{ model }}
```
:::
## API
## Attribute 属性
参数|说明|类型|可选值|默认值
-|-|-|-|-
value | 值 | String, Number, Boolean, Object, Array | - | -
placeholder | 占位符 | String | - | 请选择
options | 选项列表 | Array | - | []
labelKey | 标签字段名 | String | - | label
valueKey | 值字段名 | String | - | value
searchKey | 搜索字段名 | String | - | query
size | 大小 | String | mini、small、large | mini
multiple | 多选 | Boolean | - | false
disabled | 禁用 | Boolean | - | false
clearable | 可清除 | Boolean | - | true
filterable | 可搜索 | Boolean | - | true
queryApi | 自定义接口 | Function | - | -
lazy | 初始化后懒加载数据 | Boolean | - | true
update | 点开下拉框时更新数据 | Boolean | - | false
## Events 事件
事件名称|说明|回调参数
-|-|-
change | 改变选中 | 值,选中项数据