# 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) 的所有方法