V1.0.0
Skip to content

组件参考

a2ui-vue 内置了 66 个组件,覆盖布局、内容展示、交互、数据展示等类别。

所有组件均可通过 A2UI JSON 消息驱动,也可直接作为 Vue 组件导入使用。

需要了解哪些属性支持 path 数据绑定?请参阅 path 数据绑定速查

组件汇总

组件名类型说明文档链接
TextA2UI 基础文本组件,支持语义化变体渲染详情
WRowWinDesign行布局容器,水平排列子组件详情
WColWinDesign列布局容器,配合 WRow 使用详情
WSpaceWinDesign间距组件,设置组件间间距详情
WDividerWinDesign分割线,用于内容区域分隔详情
WDropdownWinDesign下拉菜单,数据驱动操作菜单详情
WScrollbarWinDesign滚动条,固定高度区域自定义滚动详情
WBreadcrumbWinDesign面包屑,数据驱动层级导航路径详情
WCardWinDesign卡片组件,信息容器详情
WButtonWinDesign按钮组件,支持点击事件详情
WLinkWinDesign链接组件,跳转或触发点击事件详情
WTextWinDesignWinDesign 文本组件详情
WTagWinDesign标签组件,用于标记和分类详情
WAlertWinDesign提示组件,展示警告/成功/错误信息详情
WStatusWinDesign状态指示,带圆点的状态文字展示详情
WProgressWinDesign进度条,展示任务或加载进度详情
WTitleWinDesign标题组件,用于页面区块标题详情
WTooltipWinDesign文字提示,展示简短说明详情
WFormWinDesign表单容器,用于数据收集详情
WFormItemWinDesign表单项,配合 WForm 使用详情
WInputWinDesign输入框组件,支持双向绑定详情
WAutocompleteWinDesign自动补全输入框,输入时匹配建议列表详情
WMentionWinDesign提及输入框,@ 触发人员/对象提及详情
WPaginationWinDesign分页,列表数据分页导航详情
WPopoverWinDesign悬浮框,展示较丰富的弹出内容详情
WInputTagWinDesign标签输入框,输入回车生成多值标签详情
WInputNumberWinDesign数字输入框,支持步进与精度控制详情
WSelectWinDesign下拉选择组件,支持单选多选搜索详情
WSelectV2WinDesign虚拟化下拉选择,适合大数据量选项详情
WTableSelectWinDesign下拉表格选择,展示多列选项信息详情
WTransferWinDesign穿梭框,左右栏移动多选数据详情
WSwitchWinDesign开关,用于两种状态切换详情
WRadioGroupWinDesign数据驱动单选框组,通过 dataSource 渲染详情
WRateWinDesign评分,用于星级评级操作详情
WCheckboxGroupWinDesign数据驱动复选框组,通过 dataSource 渲染详情
WSegmentedWinDesign分段控制器,多选项互斥切换详情
WTreeSelectWinDesign树形选择,适用于层级数据选取详情
WTreeWinDesign树形控件,展示与操作层级数据详情
WTreeV2WinDesign虚拟化树形控件,适合大规模层级数据详情
WCascaderWinDesign级联选择器,支持多级数据选择详情
WDatePickerWinDesign日期选择器,支持日期/范围选择详情
WTimePickerWinDesign时间选择器,支持时刻/范围选择详情
WTimeSelectWinDesign固定时间点选择,适合预约时段详情
WCollapseWinDesign折叠面板,用于内容分组详情
WColorPickerWinDesign颜色选择器,用于选择颜色值详情
WCollapseItemWinDesign折叠项,配合 WCollapse 使用详情
WSplitterWinDesign分隔面板,可拖拽调整区域大小详情
WSplitterPanelWinDesign分隔面板项,配合 WSplitter 使用详情
WTabsWinDesign标签页,数据驱动多标签切换详情
WTimelineWinDesign时间线,用于展示时间流信息详情
WTimelineItemWinDesign时间线节点,配合 WTimeline 使用详情
WDescriptionsWinDesign描述列表,用于键值对展示详情
WDescriptionsItemWinDesign描述列表项,配合 WDescriptions 使用详情
WListWinDesign数据驱动列表,通过模板自动循环渲染详情
WIconWinDesign图标组件,支持颜色/尺寸/名称数据绑定详情
WTableWinDesign表格组件,用于数据列表展示详情
WTableV2WinDesign虚拟化表格,适合大数据量列表详情
WEmptyWinDesign空状态,用于无数据占位展示详情
WResultWinDesign结果页,用于操作结果反馈展示详情
WSkeletonWinDesign骨架屏,加载过程中的占位动画详情
WSliderWinDesign滑块,用于数值区间选取详情
WSkeletonItemWinDesign骨架屏项,配合 WSkeleton 使用详情
WTableColumnWinDesign表格列,配合 WTable 使用详情
WiCheckboxGroupWinDesignAI数据驱动复选框组,通过 dataSource 自动渲染详情
WiRadioGroupWinDesignAI数据驱动单选框组,通过 dataSource 自动渲染详情
WiTagWinDesignAI标签组件,用于标记和分类详情
WiListTableSelectWinDesignAI列表选择器,用于表格数据选择详情

组件事件类型

支持 action 属性的组件在触发事件时会携带 type 字段:

组件触发时机默认 type 值
WButton点击按钮click
WLink点击链接click
WBreadcrumb点击节点click
WDropdown点击菜单项command
WAlert关闭提示close
WScrollbar滚动scroll
WScrollbar到达边缘end-reached
WInput输入内容input
WAutocomplete输入内容input
WAutocomplete选中建议change
WMention输入内容input
WMention选中提及select
WInputTag标签变化change
WInputNumber数值变化change
WSelect选择变化change
WSelectV2选择变化change
WTableSelect选择变化change
WTransfer选项移动change
WSwitch状态变化change
WRadioGroup选择变化change
WRate评分变化change
WCheckboxGroup勾选变化change
WSegmented切换变化change
WSlider滑块变化change
WTreeSelect选择变化change
WTree节点交互node-click / check / current-change
WTreeV2节点交互node-click / check / current-change
WPagination分页变化change
WPopover显示/隐藏visible-change
WTooltip显示/隐藏show / hide
WCascader选择变化change
WColorPicker选择变化change
WDatePicker选择变化change
WTimePicker选择变化change
WTimeSelect选择变化change
WiCheckboxGroup勾选变化change
WiRadioGroup选择变化change
WiListTableSelect选择变化change
WiListTableSelect添加项add
WiListTableSelect删除项remove
WSplitter拖拽结束resize-end
WSplitter面板折叠collapse
WTabs切换标签tab-click
WTabs关闭标签tab-remove

详细事件监听说明请参考 事件监听


A2UI 标准属性

所有 WinDesign 组件的属性完全继承原组件库,新增以下 A2UI 标准属性:

属性名类型说明
idstring组件唯一标识(必填)
componentstring组件类型(必填)
childrenstring[]子组件 ID 列表
childstring单个子组件 ID
actionobjectA2UI v0.9 事件定义

action 结构

typescript
interface Action {
  event: {
    name: string; // 事件名称
    type?: string; // 事件类型(可选,组件会自动补充默认值)
    context?: ActionContextItem[]; // 上下文数据
  };
}

示例:

json
{
  "action": {
    "event": {
      "name": "submitForm",
      "type": "click",
      "context": [{ "key": "formId", "value": { "literalString": "form_001" } }]
    }
  }
}

path 数据绑定速查

A2UI 通过 DataBindingValue 将组件属性与 dataModel 关联。常见写法:

写法示例适用场景
path 引用{ "path": "/quantity" }双向绑定(modelValue)或动态读取属性
字符串字面量{ "literalString": "09:30" }初始文本值
数字字面量{ "literalNumber": 10 }初始数值
数组字面量{ "literalArray": ["a", "b"] }初始数组(范围选择、级联路径等)
对象字面量{ "literalObject": { "multiple": true } }初始对象(如级联 props 配置)
dataSource 路径"dataSource": "/options"字符串路径,加载选项/列表/表格数据
作用域路径{ "path": "@row.name" }列表/表格/单选模板内引用当前行

完整协议说明见 数据绑定格式

各组件 path 支持一览

组件支持 path 的属性文档
表单输入
WInputmodelValueWInput
WAutocompletemodelValue; dataSourceWAutocomplete
WMentionmodelValue; dataSourceWMention
WInputTagmodelValueWInputTag
WInputNumbermodelValue, min, max, step, precisionWInputNumber
WPaginationmodelValue, pageSize, total, pageCount, pageSizesWPagination
WSelectmodelValue; dataSourceWSelect
WSelectV2modelValue, height, itemHeight; dataSourceWSelectV2
WTableSelectmodelValue, props, tableWidth, tableMaxHeight; dataSource, columnsSourceWTableSelect
WTransfermodelValue, props; dataSourceWTransfer
WSwitchmodelValue, activeValue, inactiveValue, activeText, inactiveTextWSwitch
WRadioGroupmodelValue; dataSource; 模板 @row.*WRadioGroup
WRatemodelValueWRate
WCheckboxGroupmodelValue; dataSource; 模板 @row.*WCheckboxGroup
WTabsmodelValue; dataSource; 模板 @row.*WTabs
WBreadcrumbseparator; dataSource; 模板 @row.*WBreadcrumb
WDropdowndataSource; 模板 @row.*WDropdown
WSegmentedmodelValue, props; dataSourceWSegmented
WSlidermodelValue, min, max, stepWSlider
WTreeSelectmodelValue, props; dataSourceWTreeSelect
WTreedataSource, props, currentNodeKey, checkedKeys, emptyTextWTree
WTreeV2dataSource, props, currentNodeKey, checkedKeys, expandedKeys, height, itemSize, emptyTextWTreeV2
WCascadermodelValue, props, separator; dataSourceWCascader
WColorPickermodelValueWColorPicker
WDatePickermodelValue, type, format, valueFormatWDatePicker
WTimePickermodelValue, format, valueFormatWTimePicker
WTimeSelectmodelValue, format, start, end, step, minTime, maxTimeWTimeSelect
选择与展示
WiRadioGroupmodelValue; dataSource; 模板 @row.*WiRadioGroup
WiCheckboxGroupmodelValue; dataSource; 模板 @row.*WiCheckboxGroup
WiListTableSelectmodelValue; dataSourceWiListTableSelect
WCollapsemodelValueWCollapse
WCollapseItemtitle, nameWCollapse
WSplitterPanelsize, min, max, titleWSplitter
WTimelineItemtimestamp, type, colorWTimeline
文本与图标
TexttextText
WTexttext, typeWText
WTag / WiTagtypeWTag / WiTag
WAlerttitle, description, type, closeTextWAlert
WScrollbarheight, maxHeightWScrollbar
WStatustypeWStatus
WProgresspercentage, type, status, strokeWidth, width, titleWProgress
WLinkhref, typeWLink
WPopovercontent, title, visibleWPopover
WTooltipcontent, visibleWTooltip
WEmptydescription, messageWEmpty
WResulttitle, subTitle, iconWResult
WSkeletonloading, count, rowsWSkeleton
WIconname, color, sizeWIcon
数据驱动
WListdataSource; 模板 @row.*, @.$indexWList
WTabledataSource; 单元格 @row.*WTable
WTableV2dataSource, columnsSource, width, height, maxHeight, rowHeightWTableV2
事件
action 的组件action.event.context[].value各组件文档 / WButton
带 API 的 actionaction.event.api.constParams[].valuejson-format

不支持 path 的组件

以下组件属性均为静态配置,动态变更请使用 updateDataModelupdateProp

WRowWColWSpaceWDividerWTimelineWCardWFormWFormItemWTitleWDescriptionsWDescriptionsItemWSplitter

作用域路径(@row)

WListWTableWRadioGroupWCheckboxGroupWTabsWBreadcrumbWDropdownWiRadioGroupWiCheckboxGroup 的数据驱动模板中,子组件可用作用域路径访问当前行/当前选项数据:

写法含义示例
@row.xxx当前行字段@row.label
@row.a.b嵌套字段@row.user.name
@.$index当前索引@.$index
scope.row.xxx同上(完整写法)scope.row.name
json
{
  "id": "item-text",
  "component": "Text",
  "text": { "path": "@row.name" },
  "variant": "body"
}

使用方式

JSON 消息驱动

通过 A2UI v0.9 协议消息驱动组件渲染:

json
{
  "version": "v0.9",
  "updateComponents": {
    "surfaceId": "main",
    "components": [
      {
        "id": "row_001",
        "component": "WRow",
        "gutter": 20,
        "justify": "center",
        "children": ["col_001", "col_002"]
      },
      {
        "id": "col_001",
        "component": "WCol",
        "span": 6,
        "children": ["button_001"]
      },
      {
        "id": "button_001",
        "component": "WButton",
        "type": "primary",
        "child": "button_text_001",
        "action": {
          "event": {
            "name": "onClick",
            "type": "click"
          }
        }
      },
      {
        "id": "button_text_001",
        "component": "Text",
        "text": "点击按钮",
        "variant": "body"
      }
    ]
  }
}

Vue 组件导入

直接作为 Vue 组件使用:

vue
<script setup>
import { A2UIText } from 'win-design-a2ui-vue';
</script>

<template>
  <A2UIText text="Hello" variant="h1" />
</template>