WDropdown 下拉菜单组件
下拉菜单组件,基于 WinDesignNext Dropdown 封装,通过 dataSource 数据驱动自动渲染菜单项,支持 command 事件响应。
数据驱动模式:与 WiRadioGroup 相同,
dataSource提供菜单项数组,child为菜单项内容模板 ID,模板内通过@row.xxx访问当前项数据。children首项为触发器组件(通常为 WButton)。
基础用法
API
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
component | string | WDropdown | 组件类型(必填) |
trigger | string | hover | 触发方式:hover / click / contextmenu |
placement | string | bottom | 菜单弹出位置 |
disabled | boolean | false | 是否禁用 |
splitButton | boolean | false | 分裂按钮模式 |
hideOnClick | boolean | true | 点击菜单项后隐藏 |
size | string | — | 尺寸 |
children | string[] | — | 触发器子组件 ID(首项) |
dataSource | string | — | 菜单项数组路径 |
child | string | — | 菜单项内容模板组件 ID |
action | object | — | 事件配置 |
dataSource 项字段
| 字段 | 类型 | 说明 |
|---|---|---|
label | string | 显示文字(无 child 模板时使用) |
name / text | string | 备选显示文字 |
command / value | string | number | object | 菜单项指令值 |
disabled | boolean | 是否禁用 |
divided | boolean | 是否显示分割线 |
icon | string | 图标名称 |
事件
| 事件 | type | 说明 |
|---|---|---|
| 点击菜单项 | command | 选中菜单项时触发 |
| 显示/隐藏 | visible-change | 下拉面板显隐变化 |
json
{
"action": {
"event": {
"name": "onMenuCommand",
"type": "command",
"context": [{ "key": "command", "value": { "path": "@row.command" } }]
}
}
}path 支持说明
| 属性 | path 支持 | 说明 |
|---|---|---|
dataSource | ✅ | 字符串路径,指向 dataModel 中的菜单项数组 |
| 模板内子组件 | ✅ | 使用 @row.xxx / @.$index 访问当前项 |
动态菜单
Agent 更新菜单数据:
json
{
"version": "v0.9",
"updateDataModel": {
"surfaceId": "main",
"path": "/menuItems",
"value": [
{ "label": "导出 PDF", "command": "export-pdf" },
{ "label": "打印", "command": "print" }
]
}
}使用场景
| 场景 | 推荐配置 |
|---|---|
| 操作菜单 | children 放 WButton + dataSource 菜单项 |
| Agent 驱动操作 | 配置 action command 事件 + @row.command |
| 自定义菜单项 | child 模板 + @row.label |
注意事项
- 未配置
children时显示默认「更多操作」按钮 - 未配置
child时,使用 dataSource 项的label/name作为菜单文字 command值优先取item.command,其次item.value、item.label