EditableSelect 可输入下拉选择框
同时支持输入和下拉选择的输入框。
何时使用
当需要同时支持用户输入数据和选择已有数据的时候使用,加入输入联想功能,方便用户搜索已有数据。
基本用法
v-model 的值为当前被选中的 value 属性值。
尺寸
支持 sm、md、lg 三种尺寸,默认为 md。
small
middle
large
禁用选择器本身
禁用整个选择器组件
设置 disabled 属性,则整个选择器不可用。
有禁用选项
设置 disabled-key 值来自定义禁用选项的 Key 值。
可清空选项
可将选择器清空为初始状态
设置 allow-clear 属性,则可将选择器清空。
自定义筛选方法
你可以自定义本地搜索的筛选方法,仅本地搜索有效。
自定义模板展示
你可以自定义单个选项怎么被渲染,及没有匹配数据时的展示模板。
远程搜索
通过输入关键字在服务器上来搜索数据
为了启用远程搜索,需要传入一个 remote-method
。 remote-method
为一个 Function
,它会在输入值发生变化时调用,参数为当前输入值。
EditableSelect 参数
参数名 | 类型 | 默认值 | 说明 | 跳转 Demo |
---|---|---|---|---|
model-value / v-model | string | number | '' | 可选,选中项绑定值 | 基本用法 |
options | Options | [] | 可选,数据列表 | 基本用法 |
allow-clear | boolean | false | 可选,是否可以清空选项 | 基本用法 |
size | string | 'md' | 可选,输入框尺寸,有三种选择'lg','md','sm' | 尺寸 |
placeholder | string | 'Select' | 可选,输入框的默认提示文字 | 基本用法 |
width | number | -- | 可选,输入框宽度 | 基本用法 |
max-height | number | -- | 可选,下拉框最大高度 | 基本用法 |
disabled | boolean | false | 可选,是否禁用选择器本身 | 禁用选择器本身 |
disabled-key | string | '' | 可选,设置禁用选项的 Key 值 | 禁用选项 |
enable-lazy-load | boolean | false | 可选,是否允许懒加载 | 远程搜索 |
filter-method | (inputValue:string)=>Array<Options> | -- | 可选,自定义筛选方法 | 自定义匹配方法 |
remote-method | (inputValue:string)=>Array<Options> | -- | 可选,自定义远程搜索方法 | 远程搜索 |
show-glow-style | boolean | true | 可选,是否展示悬浮发光效果 | |
max-length | number | -- | 可选,输入框可输入的最大长度 |
EditableSelect 事件
事件名 | 回调参数 | 说明 | 跳转 Demo |
---|---|---|---|
load-more | (inputvalue:string)=>void | 可选,懒加载触发事件 | 远程搜索 |
focus | (e: FocusEvent)=>void | 可选,当 input 获得焦点时触发 | |
blur | (e: FocusEvent)->void | 可选,当 input 失去焦点时触发 | |
change | (value:string|number)=>void | 可选,选中值发生变化时触发 | |
visible-change | (visible:boolean)=>void | 可选,下拉框显隐时触发 | |
input-change | (inputvalue:string)=>void | 可选,输入框输入内容时触发 | 可清空选项 |
EditableSelect 插槽
插槽名 | 说明 | 跳转 Demo |
---|---|---|
item | 可选,下拉菜单条目的模板 | 自定义模板展示 |
noResultItem | 可选,下拉菜单条目搜索后,没有结果的模板 | 自定义模板展示 |
EditableSelect 类型定义
Options
export type Option = {
label: string;
value: string | number;
disabled?: boolean;
[key: string]: unknown;
};
export type Options = Array<Option>;