# Select 选择器
当选项过多时,使用下拉菜单展示并选择内容。
简介
aile-ui/select 是一款 Select 组件,基于 Vue2 和 ElementUI 进行的二次封装,使用组件时,在原 ElSelect 属性的基础上新增 config 属性,增强 Select 的功能。当然,你也可以像使用 <el-select> 那样通过插槽放入 <el-option> 来使用,It's up to you!
# 基础用法
适用广泛的基础单选
# 有禁用选项
# 禁用状态
选择器不可用状态
# 可清空单选
包含清空按钮,可将选择器清空为初始状态
# 基础多选
适用性较广的基础多选,用 Tag 展示已选项
# 自定义模板
可以自定义备选项,采用原生方案,后续将推出AileUI配置化方案。
# 分组
备选项进行分组展示,采用原生方案,后续将推出AileUI配置化方案。
# 可搜索
可以利用搜索功能快速查找选项
# 远程搜索:原生版
从服务器搜索数据,输入关键字进行查找
# 远程搜索:加强版
# 创建条目
可以创建并选中选项中不存在的条目
TIP
如果 Select 的绑定值为对象类型,请务必指定 value-key 作为它的唯一性标识。
# 配置项
# 插件配置
在 main.js 中通过插件方式引入 AileUI 时(使用方式:插件安装),可对全局的 AileSelect 配置如下属性:
| 参数 | 数据类型 | 说明 |
|---|---|---|
| attrs | Object | 全局属性配置,支持 ElSelect 的所有属性 |
| config | Object | 支持全局设置 AileSelect config 属性 |
# config 配置项
| 参数 | 数据类型 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|
| data | Array[String] / Array[Obuject] | [] | - | 静态无需请求时的备选列表(与 remoteMethod 互斥) |
| isClear | Boolean | false | true/false | 是否清空选项列表 |
| label | String/Function | 'label' | — | 设置 el-option 的 label,不传则使用遍历项本身 |
| value | String/Function | 'value' | — | 设置 el-option 的 value,不传则使用遍历项本身 |
| disabled | String/Function | — | — | 判断是否禁用的字段名,默认为 disabled |
| showTooltip | Boolean/Function | false | — | 设置el-option是否需要显示tooltip |
| tooltipComponent | String | false | — | 设置tooltip采用的组件名称, 默认采用 AileTooltip,如果是按需加载,则需手动配置为 'el-tooltip' |
| remoteMethod | Function | — | — | 请求 API,传入后组件 remote、filterable 将置 true,remote-method 方法将使用该请求 API(与 data 互斥) |
| nonEmpty | Boolean | false | true/false | 请求参数是否不得为空 |
| scrollable | Boolean | false | true/false | 是否需要无限滚动加载可选项 |
| onceRequest | Boolean | false | true/false | 只初始请求一次数据 |
| queryField | String | 'keyword' | — | 请求时的动态字段名 |
| pageField | String | page_index | — | 分页页码参数名 |
| sizeField | String | page_size | — | 分页每页显示条目个数参数名 |
| pageSize | Number | 20 | — | 分页每页显示条目个数 |
| requestParams | Object | — | — | 请求时的静态参数 |
| respDataField | String | data | - | 设置请求返回结果的数据项字段名称 |
| respTotalField | String | total | - | 设置请求返回结果的总数项字段名称 |
| respFormatter | Function | — | — | 请求成功后的回调函数,用于组装数据 |
| showEachLoading | Boolean | false | true/false | 所有请求均展示loading效果,默认为false,仅展示初次加载的loading |
# Attributes/Props 属性
支持 ElementUI 中 Select (opens new window) 的所有属性:value / v-model / multiple / disabled / clearable / collapse-tags / multiple-limit / filterable 等,此处仅展示额外属性:
| 参数 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| config | object | - | 配置项,字段同全局config配置项相同 |
注意: 当使用了默认 slot 的可选项时,config 配置无效,组件与 el-select 一般无二
# Slot 插槽
支持 ElementUI 中 Select (opens new window) 的所有插槽,此处仅展示新增插槽:
| name | 说明 |
|---|---|
| — | Option 组件列表 |
| empty | 无选项时的列表 |
| prefix | Select 组件头部内容 |
# Events 事件
支持 ElementUI 中 Select (opens new window) 的所有事件,此处仅展示新增事件:
| 事件名 | 说明 | 参数 |
|---|---|---|
| select | 选中值发生变化时触发 | 目前的选中对象 |
| inited | 首次远程请求结束时出发 | 首次加载完成的下拉列表数组 |
# Methods 方法
支持 ElementUI 中 Select (opens new window) 的所有方法