WAutocomplete 组件
自动补全输入框,基于 WinDesignNext Autocomplete 封装,在用户输入时根据建议列表自动补全,支持 modelValue 数据绑定、options/dataSource 建议加载及 action 事件响应。
与 WInput 的区别:WAutocomplete 带下拉建议列表;与 WSelect 的区别:可自由输入,不限于预设选项。
基础用法
API
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
component | string | WAutocomplete | 组件类型(必填) |
modelValue | DataBindingValue | — | 输入值,支持 path 双向绑定 |
options | array | — | 静态建议列表,与 dataSource 二选一 |
dataSource | string | — | 从 dataModel 加载建议的路径 |
valueKey | string | value | 选项对象中的值字段名 |
placeholder | string | — | 占位文本 |
clearable | boolean | false | 是否可清空 |
debounce | number | 300 | 搜索防抖(毫秒) |
triggerOnFocus | boolean | true | 聚焦时是否显示建议 |
highlightFirstItem | boolean | false | 是否高亮第一项 |
selectWhenUnmatched | boolean | false | 无匹配时是否允许选中输入值 |
action | Action | — | 输入/选中事件 |
path 支持说明
| 属性 | path 支持 | 说明 |
|---|---|---|
modelValue | ✅ | 输入值双向绑定,输入或选中后写回 dataModel |
dataSource | ✅(路径字符串) | 建议列表数组路径 |
modelValue 数据绑定
json
{ "modelValue": { "path": "/drugName" } }dataSource 动态建议
json
{
"component": "WAutocomplete",
"dataSource": "/deptSuggestions",
"modelValue": { "path": "/deptName" }
}建议数据格式:
json
[
{ "value": "心内科", "label": "心内科" },
{ "value": "骨科", "label": "骨科" }
]action 定义
json
{
"action": {
"event": {
"name": "onDrugSelect",
"type": "change",
"context": [{ "key": "drugName", "value": { "path": "/drugName" } }]
}
}
}- 输入过程中触发
input事件(若配置了action) - 选中建议项时触发
change事件
数据同步机制
- Agent 定义组件并设置
modelValue.path - Agent 通过
updateDataModel初始化建议列表和输入值 - 用户输入或选中后,渲染器自动
setData写回 dataModel - 配置了
action时触发 A2UI 事件
注意事项
- A2UI 协议中
options/dataSource映射到底层fetchSuggestions属性 - 不支持
fetchSuggestions函数形式,远程搜索请通过 Agent 更新dataSource数据 - 选项需包含
value字段(或通过valueKey指定)