功能按钮
功能按钮用于在页面中提供可点击的操作入口,点击后执行一段动作流水线(Action Pipeline),可完成新增、编辑、删除、请求接口、页面跳转等操作。
概述
将「功能按钮」拖入画布后,在属性抽屉中配置按钮文本、业务类型、动作流水线、按钮样式与图标。
- 业务类型当前支持「执行动作流水线」,配置后点击按钮即依次执行流水线中的 动作。
- 按钮样式、危险态、是否撑满父容器宽度等外观均可配置。
配置项
| 配置项 | 说明 |
|---|---|
| 按钮文本 | 按钮显示文字,必填 |
| 业务类型 | 按钮点击后的行为类型,当前仅支持「执行动作流水线」,必填 |
| 动作流水线 | 业务类型为「执行动作流水线」时配置,定义依次执行的动作 |
| 按钮类型 | 按钮样式:默认 / 主按钮 / 幽灵按钮 / 虚线按钮 / 链接按钮 / 文本按钮,默认「默认」 |
| 危险按钮 | 开启后按钮以危险色(红色)呈现,默认关闭 |
| 撑满父容器宽度 | 开启后按钮宽度撑满父容器,默认关闭 |
| 图标 | 按钮上的图标,可不填 |
点击动作与事件流
按钮的点击行为由「业务类型」驱动:
- 业务类型为「执行动作流水线」(
ExecuteActionPipeline)时,按钮被动作流水线容器包裹,点击后按ActionPipeline中定义的顺序依次执行其中的动作,并可在动作之间传递上下文(当前数据、当前页面等)。 - 业务类型为空时,按钮仅渲染外观、不执行任何动作。
可用的动作类型包括:弹窗新增后刷新、弹窗编辑后刷新、逻辑删除后刷新、删除后刷新、数据 导入、数据导出、请求接口、页面类动作(打开推屏 / 弹窗、当前页打开、新页打开)以及基础动作(刷新页面、重新加载页面)。具体以编辑器中的动作选择列表为准。
动作流水线
动作流水线由若干动作组成,按顺序执行。常用动作包括:
| 动作 | 说明 |
|---|---|
| 弹窗新增后刷新 | 打开新增表单弹窗,提交后刷新数据 |
| 弹窗编辑后刷新 | 打开编辑表单弹窗,提交后刷新数据 |
| 逻辑删除后刷新 | 对数据进行逻辑删除并刷新 |
| 删除后刷新 | 对数据进行物理删除并刷新 |
| 数据导入 / 导出 | 触发数据导入、导出流程 |
| 请求接口 | 调用指定的平台接口 |
| 页面类动作 | 页面跳转、打开推屏 / 弹窗、返回等 |
| 基础动作 | 提交表单、重置、刷新等 |
具体可用动作以编辑器中的动作选择列表为准。
使用建议
- 列表页之外的独立操作入口(如详情页的「发起处理」)适合用功能按钮承载。
- 动作流水线中可组合多个动作,实现「先校验、再提交、后刷新」的完整链路。
下一步
属性明细
以下内容面向技术实现与 AI 检索。组件的全部配置项均存放在节点的 meta 中,且所有 meta 值统一以字符串形式存储。
组件属性(meta)
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
Text | string | 按钮文本,必填 | 展示文本,侧边栏拖入时默认「按钮」 |
BizType | string | 业务类型,必填 | 当前仅 ExecuteActionPipeline |
ActionPipeline | string(JSON) | 动作流水线配置 | JSON 数组字符串,默认 [];BizType 为 ExecuteActionPipeline 时使用 |
Type | string | 按钮样式 | default(默认) / primary / ghost / dashed / link / text |
IsDanger | string(boolean) | 是否危险按钮 | true / false(默认) |
Block | string(boolean) | 是否撑满父容器宽度 | true / false(默认) |
Icon | string | 按钮图标 | 图标标识,默认空 |
存储示例
以下为一个完整的 WidgetItem 节点,其中 uid 为该组件在侧边栏中的固定 GUID:
{
"id": "a4e8c1b2-5d36-4f79-8b14-7c2d9e0f1a35",
"uid": "88fe8fad-c54a-4b78-97bb-6749fb6f76df",
"dragType": "Widget",
"originalType": "Widget",
"widgetType": "Button",
"widgetTypeName": "功能按钮",
"meta": {
"Text": "发起处理",
"BizType": "ExecuteActionPipeline",
"ActionPipeline": "[]",
"Type": "primary",
"IsDanger": "false",
"Block": "false",
"Icon": ""
},
"children": []
}