Skip to content

FxAutocomplete 自动补全输入框

根据当前输入获取推荐建议。不依赖任何 UI 框架,继承 FxInput 全部能力,内部组合 FxTooltip + FxScrollbar + FxIcon

基础用法

fetch-suggestions 是返回建议的方法。本例中 querySearch(queryString, cb) 在建议就绪时通过 cb(data) 回传;第二个示例关闭 trigger-on-focus,仅输入时才出建议。

自定义模板

用作用域插槽自定义建议项,作用域内通过 item 访问建议对象。

远程搜索

从服务端异步搜索数据。

自定义 loading

通过 loading 插槽覆盖加载内容。

通过 header / footer 插槽自定义下拉的头部和底部。

API

Attributes

属性说明类型默认值
model-value (v-model)绑定值string / number''
value-key建议对象用于显示的键名string'value'
debounce输入防抖延时(ms)number300
placement下拉位置'top' / 'top-start' / 'top-end' / 'bottom' / 'bottom-start' / 'bottom-end''bottom-start'
fetch-suggestions获取建议的方法:建议就绪后调 cb(data) 回传,亦可返回数组 / Promise((queryString: string, cb) => void) / array
trigger-on-focus聚焦时是否展示建议booleantrue
select-when-unmatched无匹配项时回车是否仍触发 selectbooleanfalse
hide-loading是否隐藏远程加载图标booleanfalse
highlight-first-item是否默认高亮首项booleanfalse
fit-input-width下拉宽度是否与输入框一致(默认仅最小宽度对齐)booleanfalse
loop-navigation键盘导航是否首尾循环booleantrue
popper-class下拉自定义类名string / array / object
popper-style下拉自定义样式string / CSSProperties
popper-optionsfloating-ui 参数object{}
show-arrow是否显示箭头booleantrue
teleported下拉是否 teleport 到 bodybooleantrue
append-to下拉挂载位置string / HTMLElement
placeholder占位文本string
clearable是否显示清除按钮booleanfalse
disabled是否禁用booleanfalse
size尺寸'large' / 'default' / 'small'
prefix-icon前置图标(字符串为 FxIcon 图标名)string / Component
suffix-icon后置图标(字符串为 FxIcon 图标名)string / Component
name原生 namestring
aria-label原生 aria-labelstring

另继承 FxInput 其余 props(readonly / maxlength / formatter / parser 等,详见 FxInput)。

Events

事件名说明类型
update:modelValue绑定值更新(value: string | number) => void
input输入时(value: string | number) => void
change值变化(失焦 / 回车等)(value: string | number) => void
focus聚焦(event: FocusEvent) => void
blur失焦(event: FocusEvent) => void
clear点击清除按钮() => void
select选中某条建议(item: Record<string, any>) => void

Slots

插槽名说明类型
default自定义建议项内容{ item: Record<string, any> }
header下拉顶部内容
footer下拉底部内容
loading自定义加载内容
prefix输入框前置内容(透传 FxInput)
suffix输入框后置内容(透传 FxInput)
prepend输入框前置区块(透传 FxInput)
append输入框后置区块(透传 FxInput)

Exposes

名称说明类型
highlightedIndex当前高亮项索引Ref<number>
activated是否已激活Ref<boolean>
loading远程加载态Ref<boolean>
inputRefFxInput 实例Ref<FxInputInstance>
popperRefFxTooltip 实例Ref<FxTooltipInstance>
suggestions当前建议列表Ref<Record<string, any>[]>
focus聚焦输入框() => void
blur失焦输入框() => void
close关闭下拉() => void
highlight高亮指定索引项(index: number) => void
handleSelect选中某条建议(item: any) => Promise<void>
handleKeyEnter处理回车() => Promise<void>
getData拉取建议列表(queryString: string) => Promise<void>

键盘导航

按键行为
/ 移动高亮
Enter / NumpadEnter选中当前项
Esc关闭下拉
Tab关闭下拉
Home / End跳到首 / 末项
PageUp / PageDown翻 10 项