AutoComplete 自动完成
本质是增强型 Input:监听输入给出建议列表,保留上次选中值,只允许字符串返回。
何时使用
- 输入时根据用户输入实时提供补全建议时。
- 选项较多、需要搜索过滤时。
基础用法
通过 onSearch 监听输入,更新 data 提供建议。
导入
更多示例
对象数组数据
data 支持对象数组,每个对象需包含 value 和 label。
自定义候选项渲染
通过默认 slot 自定义候选项渲染。
远程搜索
尺寸
下拉位置
禁用
校验状态
默认高亮第一项
返回完整对象
设置 onSelectWithObject 为 true,select 事件返回完整对象。
前缀和后缀
自定义空内容
加载中
清除按钮
受控
API
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
data | (string | AutoCompleteItem)[] | [] | 候选项数据 |
value | string | number | - | 当前值(v-model:value) |
defaultValue | string | number | - | 默认值 |
placeholder | string | - | 占位文字 |
disabled | boolean | false | 是否禁用 |
size | small | default | large | default | 尺寸 |
showClear | boolean | false | 显示清除按钮 |
clearIcon | VNode | - | 自定义清除按钮 |
loading | boolean | false | 加载中 |
motion | boolean | true | 动画 |
maxHeight | number | string | 300 | 下拉最大高度 |
position | top | bottom | bottom | 下拉位置 |
emptyContent | VNode | string | - | 空内容 |
defaultActiveFirstOption | boolean | false | 默认高亮第一项 |
defaultOpen | boolean | false | 默认展开 |
autoFocus | boolean | false | 自动聚焦 |
prefix | VNode | string | - | 前缀 |
suffix | VNode | string | - | 后缀 |
validateStatus | default | error | warning | default | 校验状态 |
onSelectWithObject | boolean | false | 返回完整对象 |
dropdownClassName | string | - | 下拉类名 |
dropdownStyle | CSSProperties | - | 下拉样式 |
zIndex | number | 1050 | z-index |
class | string | - | 附加类名 |
Events
| 事件 | 说明 | 回调参数 |
|---|---|---|
change | 输入变化/选中时 | (value: string | number) |
search | 输入时 | (value: string) |
select | 选中候选项 | (item: string | AutoCompleteItem) |
focus | 获得焦点 | (e: FocusEvent) |
blur | 失去焦点 | (e: FocusEvent) |
keydown | 键盘按下 | (e: KeyboardEvent) |
Slots
| 名称 | 说明 | 参数 |
|---|---|---|
default | 自定义候选项渲染 | { item: AutoCompleteItem, index: number } |
emptyContent | 自定义空内容 | - |
类型
AutoCompleteItem:
| 属性 | 类型 | 说明 |
|---|---|---|
value | string | 值 |
label | string | 显示标签 |
键盘操作
| 按键 | 功能 |
|---|---|
↑ / ↓ | 切换高亮选项 |
Enter | 选中高亮项(或打开面板) |
Esc | 关闭面板 |
国际化
空状态文案默认跟随全局语言(zh-CN / zh-TW / en-US)。
