V1.0.0
Skip to content

WDropdown 下拉菜单组件

下拉菜单组件,基于 WinDesignNext Dropdown 封装,通过 dataSource 数据驱动自动渲染菜单项,支持 command 事件响应。

数据驱动模式:与 WiRadioGroup 相同,dataSource 提供菜单项数组,child 为菜单项内容模板 ID,模板内通过 @row.xxx 访问当前项数据。children 首项为触发器组件(通常为 WButton)。

基础用法

API

属性类型默认值说明
componentstringWDropdown组件类型(必填)
triggerstringhover触发方式:hover / click / contextmenu
placementstringbottom菜单弹出位置
disabledbooleanfalse是否禁用
splitButtonbooleanfalse分裂按钮模式
hideOnClickbooleantrue点击菜单项后隐藏
sizestring尺寸
childrenstring[]触发器子组件 ID(首项)
dataSourcestring菜单项数组路径
childstring菜单项内容模板组件 ID
actionobject事件配置

dataSource 项字段

字段类型说明
labelstring显示文字(无 child 模板时使用)
name / textstring备选显示文字
command / valuestring | number | object菜单项指令值
disabledboolean是否禁用
dividedboolean是否显示分割线
iconstring图标名称

事件

事件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.valueitem.label