@gadmin2n/schematics 0.0.143 → 0.0.145

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/lib/application/files/gadmin2-game-angle-demo/config/.types.d.ts +10 -0
  2. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/approval.prisma +2 -0
  3. package/dist/lib/application/files/gadmin2-game-angle-demo/config/prisma/workflow.prisma +140 -19
  4. package/dist/lib/application/files/gadmin2-game-angle-demo/server/package.json +2 -2
  5. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/data-mngt.seed.ts +0 -2
  6. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-node-types.ts +694 -327
  7. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-outbox.ts +57 -0
  8. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow.seed.ts +35 -5
  9. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflows.ts +224 -59
  10. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-executor.spec.ts +23 -0
  11. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-executor.ts +16 -5
  12. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.controller.spec.ts +98 -0
  13. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.controller.ts +26 -6
  14. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/codeRuntime/code-runtime.dto.ts +17 -2
  15. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.controller.spec.ts +1 -0
  16. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.controller.ts +3 -0
  17. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-runtime.dto.ts +0 -2
  18. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-signal-outbox.service.spec.ts +30 -0
  19. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction-signal-outbox.service.ts +28 -6
  20. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.service.spec.ts +63 -0
  21. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-interaction.service.ts +151 -38
  22. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/external-wait.handler.ts +4 -1
  23. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/human-approval.handler.spec.ts +16 -5
  24. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/externalInteraction/human-approval.handler.ts +23 -6
  25. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.controller.spec.ts +130 -0
  26. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.controller.ts +62 -62
  27. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.dto.ts +15 -1
  28. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.util.spec.ts +70 -9
  29. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/httpRequest/http-request-runtime.util.ts +31 -7
  30. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-signal-outbox.service.spec.ts +30 -0
  31. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-signal-outbox.service.ts +28 -6
  32. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-subject-source.util.spec.ts +50 -3
  33. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/approval-subject-source.util.ts +26 -3
  34. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.dto.ts +53 -47
  35. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.errors.ts +0 -1
  36. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.service.spec.ts +541 -0
  37. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.service.ts +442 -200
  38. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/outbox-retry.util.ts +1 -0
  39. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.controller.spec.ts +150 -0
  40. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.controller.ts +56 -40
  41. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/runtime/human-approval-runtime.dto.ts +16 -60
  42. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.controller.ts +13 -0
  43. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.service.spec.ts +44 -0
  44. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/integrationConnection/integration-connection.service.ts +6 -0
  45. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.spec.ts +258 -12
  46. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/dsl-validate.util.ts +127 -14
  47. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/manual-workflow-execution.spec.ts +85 -0
  48. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/manual-workflow-execution.ts +108 -0
  49. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/parameter-binding.ts +5 -5
  50. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/temporal.service.spec.ts +96 -25
  51. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/temporal.service.ts +77 -34
  52. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-callable.spec.ts +23 -34
  53. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-callable.ts +0 -21
  54. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-cancellation.spec.ts +245 -0
  55. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.service.spec.ts +639 -188
  56. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.service.ts +408 -235
  57. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-compiler.types.ts +1 -3
  58. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-data-edge.util.spec.ts +279 -95
  59. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-data-edge.util.ts +360 -80
  60. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-event-catalog.spec.ts +323 -0
  61. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-execution-idempotency.spec.ts +773 -0
  62. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-execution.dto.ts +7 -13
  63. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.dto.ts +0 -16
  64. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.service.spec.ts +184 -0
  65. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-export.service.ts +69 -138
  66. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-handle-validator.spec.ts +113 -0
  67. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-handle-validator.ts +59 -13
  68. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-runtime.facade.ts +86 -0
  69. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-switch-config.spec.ts +25 -0
  70. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-switch-config.ts +45 -0
  71. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.controller.spec.ts +78 -43
  72. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.controller.ts +103 -40
  73. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.dto.ts +57 -0
  74. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.module.ts +3 -1
  75. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.spec.ts +1000 -240
  76. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow.service.ts +2184 -317
  77. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/node-config-validator.service.spec.ts +279 -2
  78. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/node-config-validator.service.ts +5 -1
  79. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/subject-config-validator.service.spec.ts +4 -1
  80. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/subject-config-validator.service.ts +5 -1
  81. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/widget-catalog.service.spec.ts +12 -3
  82. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowConfig/widget-catalog.service.ts +10 -1
  83. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.spec.ts +2 -24
  84. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowNodeInstance/workflowNodeInstance.service.ts +3 -70
  85. package/dist/lib/application/files/gadmin2-game-angle-demo/web/package.json +3 -1
  86. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/RowActions.tsx +25 -5
  87. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/WorkflowActionButton.test.tsx +71 -0
  88. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/WorkflowActionButton.tsx +89 -0
  89. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/index.ts +1 -0
  90. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/components/layout/header.tsx +52 -12
  91. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/config/routeRegistry.tsx +12 -0
  92. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/constants/layout.ts +2 -2
  93. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddDataModal.tsx +10 -33
  94. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/AddPageModal.tsx +13 -37
  95. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/DevShell.tsx +55 -7
  96. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/dev-shell/style.css +14 -0
  97. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/http.ts +10 -0
  98. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/list.tsx +1 -0
  99. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/helpers/workflowAction.ts +19 -0
  100. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/index.ts +1 -0
  101. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/types.ts +3 -1
  102. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useDynamicResources.tsx +1 -6
  103. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/hooks/useReferenceUpload.ts +95 -0
  104. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/common.json +2 -2
  105. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/en/workflow.json +672 -110
  106. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/common.json +2 -2
  107. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/locales/zh_CN/workflow.json +676 -114
  108. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/plugins/devShellPlugin.ts +13 -1
  109. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/agenda/index.tsx +1 -0
  110. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasEditPage.tsx +38 -4
  111. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/CanvasListPage.tsx +276 -376
  112. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/canvas/components/CanvasAiModal.tsx +126 -6
  113. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/DecisionModal.test.tsx +50 -0
  114. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/DecisionModal.tsx +48 -11
  115. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/human-approval/inbox.tsx +32 -34
  116. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/RegisterBusinessEventModal.test.tsx +111 -0
  117. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/RegisterBusinessEventModal.tsx +167 -0
  118. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/business-events.css +99 -0
  119. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/detail.test.tsx +106 -0
  120. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/detail.tsx +324 -0
  121. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/index.test.tsx +73 -0
  122. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/business-events/index.tsx +359 -0
  123. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CanvasZoomControls.tsx +46 -0
  124. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CreateNodeInstanceDrawer.tsx +9 -1
  125. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CustomNode.test.tsx +105 -4
  126. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/CustomNode.tsx +90 -48
  127. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DeletableEdge.tsx +3 -2
  128. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DslView.test.tsx +259 -0
  129. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/DslView.tsx +167 -103
  130. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/EnhancedFlowRenderer.tsx +142 -140
  131. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExecutionStatusNode.test.tsx +60 -15
  132. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ExecutionStatusNode.tsx +25 -12
  133. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/FlowRenderer.tsx +364 -200
  134. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NewNodeDefaults.test.tsx +220 -52
  135. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeOutputSummary.test.tsx +260 -0
  136. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeOutputSummary.tsx +300 -130
  137. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.test.tsx +507 -33
  138. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodePropertyPanel.tsx +630 -592
  139. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ParameterBindingEditor.tsx +67 -70
  140. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ReadonlyNodePanel.test.tsx +90 -0
  141. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/ReadonlyNodePanel.tsx +325 -0
  142. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/RunWorkflowModal.test.tsx +52 -0
  143. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/RunWorkflowModal.tsx +14 -9
  144. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/StatusCards.tsx +2 -1
  145. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/VersionPanel.tsx +2 -1
  146. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/WorkflowCodeEditor.test.tsx +42 -0
  147. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/WorkflowCodeEditor.tsx +76 -0
  148. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/WorkflowWorkspaceHeader.tsx +56 -0
  149. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/parameter-binding-editor.css +46 -0
  150. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/workflow-code-editor.css +34 -0
  151. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/ConnectionModal.test.tsx +53 -7
  152. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/ConnectionModal.tsx +123 -62
  153. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/connections.css +85 -0
  154. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/connectionsApi.ts +29 -0
  155. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/index.test.tsx +75 -0
  156. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/connections/index.tsx +69 -36
  157. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.test.tsx +494 -0
  158. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/editor.tsx +665 -194
  159. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useReferencedNodeInstanceConfigs.test.tsx +92 -0
  160. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useReferencedNodeInstanceConfigs.ts +96 -0
  161. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useWorkflowAgent.test.tsx +297 -0
  162. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useWorkflowAgent.ts +135 -65
  163. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/index.tsx +53 -42
  164. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instance-detail.tsx +344 -155
  165. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/instances.tsx +79 -58
  166. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/CreateNodeInstanceModal.tsx +123 -144
  167. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/NodeInstanceForm.tsx +169 -98
  168. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/components/node-instance-form.css +91 -0
  169. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/index.tsx +54 -31
  170. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/node-config.css +854 -0
  171. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaField.tsx +41 -14
  172. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaForm.test.tsx +75 -0
  173. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/SchemaForm.tsx +3 -0
  174. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/default-widgets.tsx +20 -2
  175. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/schema-form/widget-registry.tsx +2 -1
  176. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/show.tsx +61 -66
  177. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRuleEditor.test.tsx +33 -1
  178. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApprovalRuleEditor.tsx +47 -15
  179. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/BranchConfigEditors.test.tsx +104 -0
  180. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CallableInputParametersEditor.tsx +22 -52
  181. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CodeConfigEditor.test.tsx +72 -0
  182. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CodeConfigEditor.tsx +78 -70
  183. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/CronTriggerConfigEditor.tsx +569 -0
  184. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/DbExecuteConfigEditor.tsx +130 -0
  185. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/DelayConfigEditor.tsx +100 -0
  186. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/EventTriggerConfigEditor.tsx +620 -0
  187. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalRequestConfigEditor.test.tsx +22 -45
  188. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalRequestConfigEditor.tsx +25 -92
  189. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ExternalWaitConfigEditor.tsx +3 -11
  190. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ForEachConfigEditor.test.tsx +58 -0
  191. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ForEachConfigEditor.tsx +107 -0
  192. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HttpRequestConfigEditor.test.tsx +212 -31
  193. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HttpRequestConfigEditor.tsx +214 -304
  194. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HumanApprovalConfigEditor.test.tsx +175 -40
  195. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/HumanApprovalConfigEditor.tsx +693 -293
  196. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/IfElseConfigEditor.tsx +190 -0
  197. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ManualTriggerConfigEditor.test.tsx +152 -0
  198. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ManualTriggerConfigEditor.tsx +286 -0
  199. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ParallelConfigEditor.tsx +101 -0
  200. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ParameterBindingListEditor.tsx +99 -0
  201. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SimplifiedNodeEditors.test.tsx +495 -0
  202. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubWorkflowConfigEditor.test.tsx +124 -0
  203. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubWorkflowConfigEditor.tsx +222 -0
  204. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SubjectPicker.tsx +2 -4
  205. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/SwitchConfigEditor.tsx +204 -0
  206. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/UserGroupCreateModal.tsx +3 -1
  207. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/UserGroupEditModal.tsx +9 -6
  208. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/callable-workflow.ts +4 -0
  209. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/code-config.css +96 -0
  210. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/event-catalog.api.ts +117 -0
  211. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/http-request-config.css +242 -0
  212. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/human-approval-config.css +194 -0
  213. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/show.tsx +264 -167
  214. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/temporal-tenant/index.tsx +6 -9
  215. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types/parameter-binding.ts +19 -16
  216. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/types.ts +28 -4
  217. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/useWorkflowFormValidation.test.tsx +59 -0
  218. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/useWorkflowFormValidation.ts +24 -0
  219. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/forEachConnection.test.ts +311 -0
  220. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/forEachConnection.ts +198 -0
  221. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/mainFlowConnection.test.ts +143 -0
  222. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/mainFlowConnection.ts +19 -0
  223. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/newNodeConfig.ts +103 -5
  224. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/removeWorkflowEdges.test.ts +158 -3
  225. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/removeWorkflowEdges.ts +117 -9
  226. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveEffectiveOutput.test.ts +70 -0
  227. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveEffectiveOutput.ts +48 -0
  228. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveLookupPorts.test.ts +55 -0
  229. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveLookupPorts.ts +95 -22
  230. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveOutputs.test.ts +148 -1
  231. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveOutputs.ts +62 -11
  232. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveWorkflowDisplay.test.ts +19 -0
  233. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/resolveWorkflowDisplay.ts +1 -1
  234. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/subWorkflowChange.test.ts +45 -0
  235. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/subWorkflowChange.ts +26 -0
  236. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/validateWorkflowDsl.test.ts +502 -0
  237. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/validateWorkflowDsl.ts +694 -0
  238. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowDateTime.test.ts +27 -0
  239. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowDateTime.ts +33 -0
  240. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowHistory.test.ts +34 -0
  241. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowHistory.ts +52 -0
  242. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowPublishError.test.ts +99 -0
  243. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowPublishError.ts +91 -0
  244. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowSkillPrompt.test.ts +74 -0
  245. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/workflowSkillPrompt.ts +120 -0
  246. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/workflow-ui.css +481 -0
  247. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/styles/index.css +1 -1
  248. package/package.json +1 -1
  249. package/dist/lib/application/files/gadmin2-game-angle-demo/config/ui/WorkflowEventOutbox.ts +0 -62
  250. package/dist/lib/application/files/gadmin2-game-angle-demo/server/scripts/migrate-human-approval-configs.ts +0 -86
  251. package/dist/lib/application/files/gadmin2-game-angle-demo/server/seed/workflow-event-trigger.ts +0 -60
  252. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/human-approval.external-decision.spec.ts +0 -183
  253. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/humanApproval/legacy-approval-config-migration.ts +0 -227
  254. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-http-response.spec.ts +0 -82
  255. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflow/workflow-http-response.ts +0 -111
  256. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.controller.spec.ts +0 -54
  257. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.controller.ts +0 -147
  258. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.module.ts +0 -10
  259. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.service.spec.ts +0 -350
  260. package/dist/lib/application/files/gadmin2-game-angle-demo/server/src/modules/workflowEventOutbox/workflowEventOutbox.service.ts +0 -110
  261. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/audit/index.ts +0 -1
  262. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/InstanceRequiredDialog.tsx +0 -106
  263. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/LookupConnectionDialog.test.tsx +0 -45
  264. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/LookupConnectionDialog.tsx +0 -43
  265. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/components/NodeTypeBadge.tsx +0 -36
  266. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/hooks/useNodeInstanceLibrary.ts +0 -41
  267. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApproverSourceEditor.test.tsx +0 -47
  268. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ApproverSourceEditor.tsx +0 -182
  269. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ReturnResultConfigEditor.test.tsx +0 -34
  270. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/ReturnResultConfigEditor.tsx +0 -16
  271. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/approver-source.test.ts +0 -25
  272. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/node-instances/widgets/approver-source.ts +0 -42
  273. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/lookupConnection.test.ts +0 -208
  274. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflow/utils/lookupConnection.ts +0 -246
  275. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/create.tsx +0 -111
  276. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/edit.tsx +0 -127
  277. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/index.tsx +0 -4
  278. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/list.tsx +0 -282
  279. package/dist/lib/application/files/gadmin2-game-angle-demo/web/src/routes/workflowEventOutbox/show.tsx +0 -74
@@ -10,11 +10,13 @@
10
10
  "create": "创建",
11
11
  "delete": "删除",
12
12
  "description": "描述",
13
+ "disabled": "停用",
13
14
  "edit": "编辑",
14
15
  "enabled": "启用",
15
16
  "name": "名称",
16
17
  "optionalDescription": "可选描述",
17
18
  "refresh": "刷新",
19
+ "retry": "重试",
18
20
  "save": "保存",
19
21
  "search": "搜索",
20
22
  "view": "查看"
@@ -27,19 +29,28 @@
27
29
  "newConnection": "新建 Connection",
28
30
  "method": "请求方法",
29
31
  "path": "请求路径",
30
- "pathTemplateHint": "路径中需要动态值时,请明确写出来源,例如",
31
- "templateOr": "或",
32
32
  "requestData": "请求数据",
33
33
  "requestDataDescription": "为 API 的每个字段直接选择取值来源:上一个节点的结果、Workflow 启动数据或固定值。",
34
+ "approvalLookupRequestDataDescription": "设置查询审批人接口需要的数据。字段可以读取当前审批节点收到的内容、Workflow 启动数据或使用固定值。",
35
+ "approvalExternalRequestDataDescription": "设置发送到外部审批系统的数据。业务内容、审批任务和 Workflow 启动数据各自使用稳定的数据域。",
36
+ "context": {
37
+ "approvalExternal": {
38
+ "input": "人工审批节点从上一个节点收到的结果。",
39
+ "workflow": "Workflow 最初收到的启动数据。",
40
+ "approval": "当前审批任务,包括 requestId、callbackToken、callbackUrl、task 和 candidates。"
41
+ }
42
+ },
34
43
  "queryParameters": "查询参数",
35
44
  "addQueryParameter": "添加查询参数",
36
45
  "headers": "请求头",
37
46
  "addHeader": "添加请求头",
38
47
  "requestBody": "请求体",
48
+ "fieldCount": "{{count}} 个字段",
49
+ "fieldsMode": "字段模式",
50
+ "jsonMode": "JSON 模式",
39
51
  "advancedJson": "高级 JSON",
40
52
  "useFields": "使用字段模式",
41
53
  "bodyJson": "请求体 JSON",
42
- "advancedJsonHint": "高级 JSON 中也要明确写出来源,例如",
43
54
  "addBodyField": "添加请求体字段",
44
55
  "executionPolicy": "执行策略",
45
56
  "timeoutSeconds": "超时时间(秒)",
@@ -48,15 +59,12 @@
48
59
  "retryInterval": "重试间隔(秒)",
49
60
  "addField": "添加字段",
50
61
  "key": "键",
51
- "value": "值",
62
+ "value": "字段取值",
52
63
  "invalidJson": "请输入有效的 JSON。",
53
64
  "loadConnectionsFailed": "加载 Connection 失败",
54
- "responseOut": "响应输出",
55
- "responseReturned": "返回完整 HTTP 响应",
56
- "responseDescription": "Response OUT 包含 status、data 和 headers;需要提取或转换字段时,请连接到 Code 节点。",
57
65
  "timeoutRetry": "超时与重试",
58
66
  "extraAttempts": "额外尝试次数",
59
- "fieldName": "名称",
67
+ "fieldName": "接口字段名",
60
68
  "deleteField": "删除 {{name}}",
61
69
  "invalidJsonShort": "JSON 无效",
62
70
  "formatJson": "格式化 JSON",
@@ -66,14 +74,13 @@
66
74
  "binding": {
67
75
  "sourceAria": "{{name}}的取值来源",
68
76
  "pathAria": "{{name}}的字段路径",
69
- "systemValueAria": "{{name}}的系统数据",
70
- "systemValuePlaceholder": "选择系统提供的数据",
71
77
  "fixedTypeAria": "{{name}}的固定值类型",
72
78
  "fixedValueAria": "{{name}}的固定值",
79
+ "invalid": "请填写字段路径或有效的固定值",
73
80
  "sources": {
74
81
  "input": "上一个节点的结果",
75
82
  "workflow": "Workflow 启动数据",
76
- "system": "系统提供",
83
+ "approval": "当前审批任务",
77
84
  "fixed": "固定值"
78
85
  },
79
86
  "types": {
@@ -102,64 +109,101 @@
102
109
  "keyRequired": "请输入参数名",
103
110
  "duplicateKey": "参数名不能重复"
104
111
  },
105
- "systemData": {
106
- "callbackToken": "外部结果回调凭证",
107
- "approvalRequestId": "审批请求编号",
108
- "approvalCandidates": "审批人",
109
- "approvalExpiresAt": "审批截止时间",
110
- "invocationId": "调用追踪编号",
111
- "callerWorkflowInstanceId": "调用方 Workflow 实例编号"
112
+ "manualInputs": {
113
+ "title": "启动参数",
114
+ "description": "声明手动运行时需要填写的数据。这里只定义参数,不填写本次运行的实际值。",
115
+ "empty": "暂无启动参数。未声明参数时,手动运行不需要填写数据。",
116
+ "key": "参数名",
117
+ "keyAria": "启动参数 {{number}} 的参数名",
118
+ "keyPlaceholder": "例如 user_id",
119
+ "type": "类型",
120
+ "typeAria": "{{name}}的类型",
121
+ "required": "必填",
122
+ "requiredAria": "{{name}}:手动运行时必填",
123
+ "label": "显示名称",
124
+ "labelAria": "启动参数 {{number}} 的显示名称",
125
+ "labelPlaceholder": "例如 申请人账号",
126
+ "parameterDescription": "说明",
127
+ "descriptionAria": "启动参数 {{number}} 的说明",
128
+ "descriptionPlaceholder": "说明这个参数用于什么",
129
+ "add": "添加启动参数",
130
+ "remove": "删除{{name}}",
131
+ "parameterNumber": "参数 {{number}}",
132
+ "keyRequired": "请输入参数名",
133
+ "duplicateKey": "参数名不能重复",
134
+ "types": {
135
+ "string": "文本",
136
+ "number": "数字",
137
+ "boolean": "是 / 否",
138
+ "object": "对象",
139
+ "array": "数组"
140
+ }
112
141
  },
113
142
  "approval": {
114
- "workflow": "审批方式",
115
- "workflowDescription": "使用系统审批任务,或者选择一个已发布的内部 Workflow 负责创建外部单据、等待回调并返回审批结果。",
116
- "workflowInputs": "传给审批 Workflow 的数据",
117
- "workflowInputsDescription": "填写所选 Workflow 声明的业务参数。每个参数都可以来自上一个节点、Workflow 启动数据或固定值。",
118
- "required": "必填",
119
- "builtInInbox": "系统审批任务(默认)",
120
- "builtInInboxHint": "不选择 Workflow 时,审批人直接在系统的审批任务中处理。",
121
- "workflowHint": "审批人和规则仍由当前人工审批节点管理;所选 Workflow 负责创建外部单据、等待回调并返回结果。",
122
- "whoCanApprove": "谁可以审批",
123
- "description": "可以直接选择固定用户和用户组,也可以通过已配置的规则自动找到审批人。",
143
+ "externalSection": "外部审批",
144
+ "externalSectionDescription": "审批人始终可以在 GAdmin 处理;需要时,也可以把同一审批任务发送到外部系统。",
145
+ "enableExternal": "同时发送到外部系统",
146
+ "gadminOnlyHint": "当前只在 GAdmin 的“审批任务”页面处理。",
147
+ "externalEnabledHint": "审批人可以在 GAdmin 或外部系统同意、拒绝,决定会汇总到同一审批任务。",
148
+ "externalRequest": "发起外部审批",
149
+ "creationResult": "校验发起结果",
150
+ "callbackResult": "转换回调结果",
151
+ "taskSection": "GAdmin 审批任务",
152
+ "taskTitle": "任务标题",
153
+ "taskDescription": "任务说明",
154
+ "optional": "选填",
155
+ "taskDetails": "详情字段",
156
+ "taskDetailsDescription": "把单号、金额、申请人等关键信息展示给审批人。",
157
+ "addTaskDetail": "添加字段",
158
+ "noTaskDetails": "暂无详情字段",
159
+ "taskDetailLabel": "详情字段 {{number}} 的名称",
160
+ "taskDetailPlaceholder": "例如:申请金额",
161
+ "removeTaskDetail": "删除详情字段 {{number}}",
162
+ "taskDetailValue": "字段值",
163
+ "whoCanApprove": "审批人设置",
164
+ "description": "选择固定审批人,或在节点内调用接口动态查询审批人。",
124
165
  "fixedApprovers": "固定审批人",
125
- "automaticApprovers": "自动找审批人",
126
- "automaticApproversDescription": "选择一条已经发布的找人规则,系统会在运行时自动查询审批人。",
127
- "addAutomaticApprover": "选择找人规则,例如:直属主管",
128
- "noAutomaticApprovers": "未配置自动找人规则",
129
- "sourceLoadFailed": "找人规则加载失败,请刷新后重试",
130
- "unknownSource": "找人规则 #{{id}}",
131
166
  "approvedBranch": "通过",
132
167
  "rejectedBranch": "拒绝",
133
- "noSourceParameters": "这条规则不需要传入参数",
134
- "directLookup": "画布内查询",
135
- "directLookupHint": "当审批节点需要调用画布上连接的节点时使用。",
136
168
  "dynamicApprovers": "动态审批人",
137
- "dynamicDescription": "每个动态来源都会在画布上的 AP 节点增加一对清晰标记的查询 OUT 和审批人 IN 端口。",
138
- "addUsers": "添加用户",
139
- "addGroups": "添加用户组",
140
- "noDynamicInputs": "暂无动态审批人输入",
141
- "addDynamicHint": "当 AP 需要调用 HTTP Request 查询用户或用户组 ID 时,在这里添加。",
142
- "lookupDescription": "AP 调用 HR,并接收单个 ID 或 ID 数组",
143
- "lookup": "查询",
144
- "resultType": "结果类型",
145
- "users": "用户",
146
- "groups": "用户组",
147
- "deleteSource": "删除来源",
169
+ "addUsers": "添加动态用户",
170
+ "addGroups": "添加动态用户组",
171
+ "noDynamicInputs": "暂未添加动态审批人",
172
+ "lookupDescription": "调用接口并把响应转换为一个或多个审批人 ID",
173
+ "dynamicUsers": "动态查询用户",
174
+ "dynamicGroups": "动态查询用户组",
175
+ "dynamicUserDefaultName": "查询审批人",
176
+ "dynamicGroupDefaultName": "查询审批用户组",
177
+ "dynamicLookupName": "查询名称",
178
+ "dynamicLookupNamePlaceholder": "例如:查询直属领导",
179
+ "lookupRequest": "查询审批人",
180
+ "lookupResult": "提取审批人",
148
181
  "approvalRule": "审批规则",
149
182
  "ruleMode": "规则模式",
150
183
  "people": "人数",
151
184
  "percentage": "百分比",
152
185
  "all": "所有审批人通过",
153
186
  "any": "任一审批人通过",
187
+ "anyApprove": "任一人通过",
188
+ "allApprove": "所有人通过",
189
+ "countApprove": "指定人数通过",
190
+ "percentageApprove": "指定比例通过",
191
+ "anyReject": "任一人拒绝",
192
+ "allReject": "所有人拒绝",
193
+ "countReject": "指定人数拒绝",
194
+ "percentageReject": "指定比例拒绝",
154
195
  "minimum": "最少通过人数",
155
196
  "selectApprovers": "选择审批人",
156
- "userIds": "用户 ID",
157
- "groupIds": "用户组 ID",
158
197
  "remove": "移除 {{name}}",
159
- "decisionRules": "决策规则",
198
+ "decisionRules": "审批规则",
199
+ "decisionRulesDescription": "分别设置满足什么条件时通过或拒绝。",
160
200
  "approveWhen": "通过条件",
161
201
  "rejectWhen": "拒绝条件",
202
+ "cancellationPolicy": "取消规则",
203
+ "cancellationPolicyDescription": "设置这个审批节点出结果后,当前 Workflow 是否还允许被业务取消。",
204
+ "blockCancellationOnResolved": "审批通过或拒绝后禁止取消 Workflow",
162
205
  "timeout": "超时设置",
206
+ "timeoutDescription": "决定任务等待多久,以及到期后的自动处理结果。",
163
207
  "neverTimeout": "永不超时",
164
208
  "timeoutAfter": "在指定时长后超时",
165
209
  "timeoutAmount": "超时时长",
@@ -175,7 +219,33 @@
175
219
  },
176
220
  "code": {
177
221
  "javascript": "JavaScript",
178
- "description": "input 表示上一个节点的结果,workflow 表示最初的启动数据;return 的值会传给下一个节点。",
222
+ "context": {
223
+ "node": {
224
+ "input": "上一个节点的结果。",
225
+ "workflow": "Workflow 最初收到的启动数据。",
226
+ "return": "返回值会传给下一个节点。"
227
+ },
228
+ "approverLookup": {
229
+ "input": "人工审批节点从上一个节点收到的结果。",
230
+ "workflow": "Workflow 最初收到的启动数据。",
231
+ "response": "查询审批人接口返回的 { status, data, headers }。",
232
+ "return": "返回 { subjects: [{ provider, refs }] },用于确定本次审批人。"
233
+ },
234
+ "approvalCreation": {
235
+ "input": "人工审批节点从上一个节点收到的结果。",
236
+ "workflow": "Workflow 最初收到的启动数据。",
237
+ "approval": "当前审批任务和回调运行信息。",
238
+ "response": "创建外部审批后,接口返回的 { status, data, headers }。",
239
+ "return": "用于检查创建结果,不会传给下一个节点;创建失败时请抛出错误。"
240
+ },
241
+ "approvalCallback": {
242
+ "input": "人工审批节点从上一个节点收到的结果。",
243
+ "workflow": "Workflow 最初收到的启动数据。",
244
+ "approval": "当前审批任务,包括审批人和任务内容。",
245
+ "callback": "已通过 callbackToken 定位的本次外部回调。",
246
+ "return": "返回统一的审批决定,用于计算本次审批结果。"
247
+ }
248
+ },
179
249
  "executionLimits": "执行限制",
180
250
  "runMode": "运行模式",
181
251
  "timeout": "超时时间(毫秒)",
@@ -184,18 +254,18 @@
184
254
  "runOnceEach": "对每一项分别运行",
185
255
  "timeoutMilliseconds": "超时时间(毫秒)"
186
256
  },
187
- "returnResult": {
188
- "fixedTitle": "返回上一个节点的结果",
189
- "fixedHint": "该节点会结束当前 Workflow,并把连接到它的上一个节点结果返回给调用方,无需配置。"
190
- },
191
257
  "connection": {
192
258
  "title": "连接管理",
193
- "subtitle": "复用外部系统地址和加密凭据。",
194
- "new": "新建 Connection",
195
- "search": "搜索通道名称",
196
- "empty": "暂无 Connection",
197
- "secretStored": "密钥已保存",
198
- "description": "Connection 保存系统地址和凭据,API 节点模板可以复用,无需复制密钥。",
259
+ "subtitle": "集中管理外部系统地址和加密凭据,供 Workflow 节点复用。",
260
+ "new": "新建连接",
261
+ "search": "搜索连接名称或编码",
262
+ "empty": "尚未创建连接",
263
+ "refresh": "刷新",
264
+ "secretStored": "已保存凭据",
265
+ "description": "连接保存外部系统地址和凭据,Workflow 节点可以直接复用。",
266
+ "noDescription": "暂无说明",
267
+ "openAndEdit": "查看与编辑",
268
+ "openAria": "查看并编辑 {{name}}",
199
269
  "code": "编码",
200
270
  "codeDescription": "供节点模板永久引用,创建后不可修改。",
201
271
  "autoCode": "留空时自动生成",
@@ -217,50 +287,118 @@
217
287
  "test": "测试连接",
218
288
  "testSuccess": "连接成功",
219
289
  "testFailed": "连接失败",
220
- "createSuccess": "Connection 创建成功",
221
- "updateSuccess": "Connection 更新成功",
222
- "saveFailed": "保存 Connection 失败",
223
- "loadFailed": "加载 Connection 失败",
290
+ "createSuccess": "连接创建成功",
291
+ "updateSuccess": "连接更新成功",
292
+ "saveFailed": "保存连接失败",
293
+ "loadFailed": "加载连接失败",
224
294
  "disabled": "停用",
225
- "edit": "编辑 Connection",
226
- "createAndUse": "创建并使用",
295
+ "edit": "编辑连接",
296
+ "create": "创建连接",
297
+ "saveChanges": "保存修改",
227
298
  "authentication": "认证方式",
228
299
  "basicAuthFull": "用户名和密码",
229
- "storedHint": "凭据已保存;密钥字段留空将保留原值。",
300
+ "basicInformation": "基本信息",
301
+ "credentials": "认证与凭据",
302
+ "requestDefaults": "默认请求设置",
303
+ "storedHint": "凭据已加密保存,需要查看时请主动读取。",
304
+ "showStoredSecret": "显示已保存凭据",
305
+ "reloadStoredSecret": "重新读取",
306
+ "secretLoaded": "凭据已载入,可使用输入框右侧按钮显示内容。",
307
+ "secretLoadFailed": "读取已保存凭据失败",
230
308
  "keyName": "Key 名称",
231
309
  "sendIn": "发送位置",
232
310
  "defaultHeaders": "默认请求头(JSON)",
233
311
  "defaultHeadersInvalid": "默认请求头必须是 JSON 对象",
234
312
  "namePlaceholder": "例如:工单系统"
235
313
  },
314
+ "eventCatalog": {
315
+ "title": "业务事件目录",
316
+ "subtitle": "统一查看、注册和管理可用于触发 Workflow 的业务事件。",
317
+ "refresh": "刷新",
318
+ "searchPlaceholder": "搜索事件名称或字段",
319
+ "resultCount": "{{count}} 个业务事件",
320
+ "event": "业务事件",
321
+ "availableData": "可用数据",
322
+ "subscribers": "使用中的 Workflow",
323
+ "noSubscribers": "暂未使用",
324
+ "latestDelivery": "最近事件",
325
+ "notTriggered": "尚未触发",
326
+ "detailEyebrow": "业务事件详情",
327
+ "identifier": "事件标识",
328
+ "businessKey": "默认业务标识",
329
+ "instancesTitle": "触发的运行",
330
+ "instancesLoadFailed": "事件运行记录加载失败",
331
+ "noInstances": "这个业务事件还没有触发任何 Workflow 运行",
332
+ "run": "运行",
333
+ "workflow": "Workflow",
334
+ "eventTriggered": "事件触发",
335
+ "fieldCount": "{{count}} 个字段",
336
+ "defaultKey": "默认业务标识:{{field}}",
337
+ "fieldsTitle": "Workflow 可读取的数据",
338
+ "fieldsDescription": "触发后,第一个业务节点通过 input 读取这些字段;整个流程可通过 workflow 读取相同的启动数据。",
339
+ "field": "字段",
340
+ "displayName": "显示名称",
341
+ "type": "类型",
342
+ "requirement": "数据要求",
343
+ "primaryKey": "主键",
344
+ "required": "始终提供",
345
+ "nullable": "可能为空",
346
+ "emptyTitle": "当前没有已登记的数据库监听",
347
+ "emptyDescription": "点击“登记业务事件”,选择需要监听的表、操作和字段。",
348
+ "noMatchTitle": "没有匹配的业务事件",
349
+ "noMatchDescription": "请调整搜索内容。",
350
+ "loadFailed": "业务事件加载失败,请刷新后重试",
351
+ "deliveryStates": {
352
+ "pending": "等待处理",
353
+ "delivered": "已处理",
354
+ "failed": "处理失败"
355
+ },
356
+ "registration": {
357
+ "register": "登记业务事件",
358
+ "title": "登记数据库变化",
359
+ "description": "选择当前 PostgreSQL Schema 中的表和数据操作。UPDATE 可指定监听字段;INSERT 和 DELETE 监听整行。PG Trigger 会在同一事务写入 Workflow Outbox。",
360
+ "submit": "完成登记",
361
+ "cancel": "取消",
362
+ "success": "数据库监听已登记",
363
+ "registerFailed": "登记失败,请重试",
364
+ "source": "数据库表",
365
+ "operation": "数据操作",
366
+ "watchedFields": "监听字段",
367
+ "allFields": "全部字段",
368
+ "allFieldsHint": "INSERT 和 DELETE 会在任意一行插入或删除时触发,事件包含该行的全部字段。",
369
+ "sourceLoadFailed": "数据库表结构加载失败",
370
+ "actions": "操作",
371
+ "unregister": "取消注册",
372
+ "unregisterTitle": "取消注册 {{event}}?",
373
+ "unregisterDescription": "取消后将移除对应 PG Trigger。正在被 Workflow 使用的监听不能取消。",
374
+ "unregisterConfirm": "确认取消",
375
+ "unregisterSuccess": "数据库监听已取消",
376
+ "unregisterFailed": "取消注册失败"
377
+ }
378
+ },
379
+ "validation": {
380
+ "required": "请输入或选择 ${label}",
381
+ "url": "请输入有效的 ${label}"
382
+ },
236
383
  "externalRequest": {
237
- "description": "外部系统调用这个地址时,会启动当前 Workflow。",
238
- "workflowData": "请求体、查询参数和请求头分别放在 workflow.body、workflow.query 和 workflow.headers。",
239
384
  "endpoint": "外部请求地址",
385
+ "path": "调用地址名称",
386
+ "pathPlaceholder": "例如 order-paid",
387
+ "pathHint": "填写容易识别的业务名称,只能使用字母、数字、短横线和下划线。",
240
388
  "endpointLoading": "正在生成外部可访问地址…",
241
389
  "endpointLoadFailed": "无法生成外部请求地址,请检查服务器 Workflow 公共地址或网卡配置。",
242
390
  "copyEndpoint": "复制请求地址",
243
391
  "copied": "已复制",
244
- "response": "调用如何结束",
245
- "respondImmediately": "立即返回",
246
- "respondImmediatelyHint": "启动 Workflow 后立即返回 202",
247
- "waitForResult": "等待 Workflow 返回结果",
248
- "waitForResultHint": "保持本次请求,直到流程执行到“返回调用”节点",
249
- "responseTimeout": "最长等待时间",
250
- "seconds": "秒",
251
392
  "verification": "请求验证",
252
393
  "signed": "安全签名",
253
394
  "signedHint": "适合能够按照说明生成签名的系统",
254
395
  "direct": "直接接收",
255
396
  "directHint": "适合 MyOA 等无法生成签名的系统",
256
- "directWarning": "任何知道该地址的人都可以启动此 Workflow。涉及审批或数据修改时,请在后续节点校验回调凭证。",
257
397
  "signing": "请求签名",
258
398
  "signingHint": "X-Workflow-Timestamp 填 Unix 秒时间戳;X-Workflow-Signature 填 sha256=HEX(HMAC-SHA256(密钥, \"{时间戳}.{原始请求体}\"))。",
259
399
  "regenerateSecret": "重新生成签名密钥"
260
400
  },
261
401
  "externalWait": {
262
- "description": "等待外部结果",
263
- "hint": "当前 Workflow 会在这里暂停,直到 callbackToken 对应的外部回调到达或等待超时。",
264
402
  "callbackToken": "回调凭证",
265
403
  "deadline": "使用传入的截止时间",
266
404
  "duration": "手动设置最长等待时间",
@@ -269,7 +407,7 @@
269
407
  "workflows": "处理流程",
270
408
  "dispatchWorkflow": "发送 Workflow",
271
409
  "selectDispatchWorkflow": "选择负责向外部系统发送请求的 Workflow",
272
- "dispatchHint": "它需要以“接收调用参数”开始,并且不返回结果。",
410
+ "dispatchHint": "它需要以“接收调用参数”开始。",
273
411
  "callbackWorkflow": "接收回调的 Workflow(可选)",
274
412
  "selectCallbackWorkflow": "选择以“接收外部请求”开始的 Workflow",
275
413
  "callbackHint": "选择后,系统会自动把可调用的回调地址交给发送 Workflow;不选时可由发送 Workflow 自己确定地址。",
@@ -290,11 +428,210 @@
290
428
  "seconds": "秒",
291
429
  "timeoutHint": "超过这个时间仍没有结果时,从“已超时”出口继续。"
292
430
  },
431
+ "forEach": {
432
+ "items": "循环数据",
433
+ "execution": "执行方式",
434
+ "sequential": "逐条处理",
435
+ "parallel": "并行处理",
436
+ "concurrency": "最大同时处理数",
437
+ "failure": "处理失败时",
438
+ "stop": "停止后续处理",
439
+ "continue": "记录失败并继续"
440
+ },
441
+ "nodeEditors": {
442
+ "cron": {
443
+ "frequency": "执行频率",
444
+ "frequencyPlaceholder": "请选择执行频率",
445
+ "frequencies": {
446
+ "HOURLY": "每小时",
447
+ "DAILY": "每天",
448
+ "WEEKDAYS": "每个工作日",
449
+ "WEEKLY": "每周",
450
+ "MONTHLY": "每月",
451
+ "YEARLY": "每年指定月份"
452
+ },
453
+ "times": "执行时间",
454
+ "timeNumber": "执行时间 {{number}}",
455
+ "addTime": "添加执行时间",
456
+ "removeTime": "删除执行时间 {{number}}",
457
+ "minute": "每小时执行分钟",
458
+ "minuteOption": "每小时第 {{minute}} 分钟",
459
+ "weekday": "执行日期",
460
+ "weekdays": {
461
+ "0": "星期日",
462
+ "1": "星期一",
463
+ "2": "星期二",
464
+ "3": "星期三",
465
+ "4": "星期四",
466
+ "5": "星期五",
467
+ "6": "星期六"
468
+ },
469
+ "monthDay": "执行日期",
470
+ "monthDayOption": "每月 {{day}} 日",
471
+ "months": "执行月份",
472
+ "monthOption": "{{month}} 月",
473
+ "yearMonthDayOption": "{{day}} 日",
474
+ "chooseNewSchedule": "当前计划需要重新选择执行频率。",
475
+ "timezone": "时区",
476
+ "timezonePlaceholder": "请选择时区",
477
+ "timezoneHint": "系统会按照所选地区的当地时间执行。",
478
+ "timezones": {
479
+ "Asia/Shanghai": "中国标准时间",
480
+ "Asia/Singapore": "新加坡时间",
481
+ "Asia/Tokyo": "日本时间",
482
+ "Europe/London": "英国时间",
483
+ "America/New_York": "美国东部时间",
484
+ "UTC": "协调世界时"
485
+ }
486
+ },
487
+ "delay": {
488
+ "duration": "等待一段时间",
489
+ "until": "等待到指定时间",
490
+ "amount": "等待时长",
491
+ "unit": "时间单位",
492
+ "resumeAt": "恢复执行时间",
493
+ "units": {
494
+ "SECONDS": "秒",
495
+ "MINUTES": "分钟",
496
+ "HOURS": "小时",
497
+ "DAYS": "天"
498
+ }
499
+ },
500
+ "parallel": {
501
+ "branches": "并行分支",
502
+ "description": "添加需要同时执行的工作。每一项都是一条独立分支,至少保留两个分支。",
503
+ "branch": "分支 {{number}}",
504
+ "branchName": "分支名称",
505
+ "branchNameWithNumber": "分支名称 {{number}}",
506
+ "branchNamePlaceholder": "例如:发送通知",
507
+ "branchNameHelp": "填写这条分支负责的工作,例如“发送通知”。名称用于在画布和执行结果中区分分支。",
508
+ "addBranch": "添加分支",
509
+ "deleteBranch": "删除分支 {{number}}"
510
+ },
511
+ "subWorkflow": {
512
+ "target": "要调用的 Workflow",
513
+ "select": "选择可调用的 Workflow",
514
+ "version": "使用版本",
515
+ "selectVersion": "选择一个已发布版本",
516
+ "versionLabel": "v{{version}}",
517
+ "latestVersionLabel": "v{{version}} · 最新",
518
+ "newerVersionAvailable": "当前选择保持不变;最新版本是 v{{version}}。",
519
+ "loadFailed": "可调用 Workflow 加载失败,请刷新后重试",
520
+ "noParameters": "这个 Workflow 不需要调用参数"
521
+ },
522
+ "event": {
523
+ "businessEvent": "业务事件",
524
+ "selectEvent": "选择一个已注册的业务事件",
525
+ "loadFailed": "业务事件加载失败,请刷新后重试",
526
+ "empty": "当前没有已注册的业务事件",
527
+ "startCondition": "启动条件",
528
+ "alwaysStart": "每次事件都启动",
529
+ "conditionalStart": "满足条件时启动",
530
+ "matchAll": "全部条件满足",
531
+ "matchAny": "任一条件满足",
532
+ "conditionField": "条件 {{number}} 的字段",
533
+ "conditionOperator": "条件 {{number}} 的判断方式",
534
+ "conditionValue": "条件 {{number}} 的比较值",
535
+ "selectConditionField": "选择字段",
536
+ "newDataField": "新数据 · {{field}}",
537
+ "oldDataField": "原数据 · {{field}}",
538
+ "primaryKeyField": "主键 · {{field}}",
539
+ "addCondition": "添加条件",
540
+ "deleteCondition": "删除条件 {{number}}",
541
+ "booleanTrue": "是",
542
+ "booleanFalse": "否",
543
+ "matchOperators": {
544
+ "EQ": "等于",
545
+ "NEQ": "不等于",
546
+ "EMPTY": "为空",
547
+ "NOT_EMPTY": "不为空"
548
+ },
549
+ "processing": "事件处理方式",
550
+ "parallel": "并行处理",
551
+ "parallelDescription": "每个事件立即开始,适合彼此独立的数据",
552
+ "serial": "同一业务对象顺序处理",
553
+ "serialDescription": "同一对象依次处理,不同对象仍可同时处理",
554
+ "businessKey": "区分业务对象的字段",
555
+ "selectBusinessKey": "选择一个字段",
556
+ "primaryKey": "主键",
557
+ "sameKeyPreview": "{{field}} 相同的事件会按到达顺序处理",
558
+ "advanced": "高级设置",
559
+ "maxConcurrency": "最大同时处理数"
560
+ },
561
+ "database": {
562
+ "sql": "SQL 语句",
563
+ "allowWrite": "允许写入",
564
+ "readOnlyDescription": "关闭时只能查询数据。",
565
+ "readWriteDescription": "开启后可以查询、新增、更新或删除数据。",
566
+ "readOnlyError": "当前节点只允许单条只读查询。",
567
+ "readWriteError": "只允许单条查询、新增、更新或删除语句。",
568
+ "parameters": "参数值",
569
+ "parameter": "参数",
570
+ "value": "值",
571
+ "parametersHint": "SQL 中的 $1、$2… 会依次使用这里的值。",
572
+ "addParameter": "添加参数值",
573
+ "timeout": "超时时间",
574
+ "seconds": "秒"
575
+ },
576
+ "ifElse": {
577
+ "matchAll": "全部条件满足",
578
+ "matchAny": "任一条件满足",
579
+ "condition": "条件 {{number}}",
580
+ "leftValue": "要判断的数据",
581
+ "rightValue": "用于比较的数据",
582
+ "operator": "判断方式",
583
+ "addCondition": "添加条件",
584
+ "deleteCondition": "删除条件 {{number}}",
585
+ "operators": {
586
+ "EQ": "等于",
587
+ "NEQ": "不等于",
588
+ "GT": "大于",
589
+ "GTE": "大于或等于",
590
+ "LT": "小于",
591
+ "LTE": "小于或等于",
592
+ "CONTAINS": "包含",
593
+ "NOT_CONTAINS": "不包含",
594
+ "EMPTY": "为空",
595
+ "NOT_EMPTY": "不为空"
596
+ }
597
+ },
598
+ "switch": {
599
+ "value": "判断数据",
600
+ "rules": "分支规则",
601
+ "case": "分支 {{number}}",
602
+ "label": "分支名称",
603
+ "valueType": "匹配值类型",
604
+ "matchValue": "匹配值",
605
+ "whenValueEquals": "当判断数据等于",
606
+ "thenEnterBranch": "进入分支",
607
+ "addCase": "添加分支",
608
+ "deleteCase": "删除分支 {{number}}",
609
+ "defaultBranchTitle": "其他情况",
610
+ "defaultBranch": "没有匹配任何分支时,从这里继续。"
611
+ }
612
+ },
293
613
  "nodeInstance": {
294
614
  "title": "节点实例",
295
615
  "management": "节点实例管理",
616
+ "managementDescription": "集中维护可在多个工作流中复用的节点配置。",
617
+ "searchPlaceholder": "按实例名称搜索",
618
+ "enabled": "节点实例已启用",
619
+ "disabled": "节点实例已停用",
620
+ "deleted": "节点实例已删除",
621
+ "deleteFailed": "删除节点实例失败",
622
+ "enableConfirm": "确定启用此节点实例吗?",
623
+ "disableConfirm": "确定停用此节点实例吗?",
624
+ "detailDescription": "查看可复用配置及引用它的工作流。",
625
+ "referencesLoadFailed": "引用关系加载失败",
626
+ "createdAt": "创建时间",
627
+ "noConfiguration": "此实例没有配置项",
628
+ "referencedBy": "引用此实例的工作流",
629
+ "noReferences": "暂无工作流引用此实例",
630
+ "node": "节点",
296
631
  "new": "新建实例",
297
632
  "create": "创建节点实例",
633
+ "createDescription": "创建一份可复用的节点配置,供多个 Workflow 直接使用。",
634
+ "editDescription": "更新实例信息和节点参数,引用它的 Workflow 会使用最新配置。",
298
635
  "createAndUse": "创建并使用",
299
636
  "createAndUseDescription": "创建可复用的节点实例,并立即添加到当前工作流。",
300
637
  "instanceName": "实例名称",
@@ -305,14 +642,31 @@
305
642
  "instanceNameExample": "例如:发送 Slack 消息到 #general",
306
643
  "recordNotFound": "未找到记录",
307
644
  "basicInfo": "基本信息",
645
+ "basicInfoDescription": "选择节点类型,并填写便于团队识别和复用的实例信息。",
646
+ "parametersDescription": "配置 {{name}} 在 Workflow 中执行时使用的参数。",
647
+ "parametersPendingDescription": "选择节点类型后,将显示对应的配置项。",
648
+ "parametersPending": "请选择节点类型后继续配置",
308
649
  "deleteConfirm": "确定删除此实例吗?",
309
650
  "deleteWarning": "此操作无法撤销。",
310
- "noEnabled": "暂无已启用的实例,请先创建一个。",
311
- "useInstance": "使用实例",
312
- "useInline": "使用内联配置",
313
651
  "instanceRequired": "此节点必须使用节点实例",
314
652
  "aiCreate": "AI 创建节点实例",
315
653
  "describe": "描述你需要的节点实例",
654
+ "promptPlaceholderDefault": "选择节点类型后,描述这个实例要做什么…",
655
+ "promptPlaceholders": {
656
+ "TRIGGER": "例如:每个工作日早上 9 点(上海时间)触发",
657
+ "ACTION": "例如:将订单数据 POST 到 https://api.example.com/notify",
658
+ "CONDITION": "例如:判断 order.amount > 1000 且 order.status 为 \"pending\"",
659
+ "FLOW_CONTROL": "例如:等待 30 秒、遍历列表项,或并行执行多个分支",
660
+ "APPROVAL": "例如:等待 manager@company.com 审批,24 小时后超时",
661
+ "SUB_WORKFLOW": "例如:调用「订单处理」Workflow 并等待其返回值"
662
+ },
663
+ "promptRequired": "请先描述这个节点实例要做什么",
664
+ "invalidJson": "JSON 格式无效,应为:{ \"name\": \"...\", \"description\": \"...\", \"config\": {...} }",
665
+ "generate": "生成",
666
+ "applyJson": "应用 JSON",
667
+ "regenerate": "重新生成",
668
+ "confirmCreate": "确认创建",
669
+ "generatedDetail": "名称:{{name}},配置包含 {{count}} 个字段。",
316
670
  "waitingAgent": "正在等待 Agent…",
317
671
  "agentHint": "请在聊天面板继续与 Agent 对话。Agent 输出有效 JSON 后会自动填入;你也可以手动粘贴 JSON。",
318
672
  "jsonResult": "JSON 结果",
@@ -324,7 +678,6 @@
324
678
  "createNamed": "创建{{name}}实例",
325
679
  "nameRequired": "请输入实例名称",
326
680
  "nameExample": "例如:用于审批的{{name}}",
327
- "chooseNamed": "选择{{name}}实例",
328
681
  "instanceCode": "实例 {{code}}",
329
682
  "nodeTypeRequired": "请选择节点类型",
330
683
  "overwriteTitle": "覆盖当前内容",
@@ -338,10 +691,18 @@
338
691
  "edit": "编辑节点实例"
339
692
  },
340
693
  "editor": {
694
+ "workspaceEyebrow": "工作流设计",
341
695
  "unsaved": "未保存",
342
696
  "aiGenerate": "AI 自动生成",
343
697
  "save": "保存工作流",
698
+ "replaceDraftTitle": "替换已保存草稿?",
699
+ "replaceDraftContent": "将已发布版本 v{{version}} 保存为当前草稿,现有草稿会被覆盖;已发布版本本身不会改变。",
700
+ "replaceDraftConfirm": "替换草稿",
344
701
  "clear": "清空",
702
+ "undo": "撤销",
703
+ "redo": "重做",
704
+ "fitCanvas": "自适应画布",
705
+ "zoomPercentage": "画布缩放 {{percentage}}%",
345
706
  "workflowName": "工作流名称",
346
707
  "workflowNamePlaceholder": "输入工作流名称",
347
708
  "aiDescription": "用自然语言描述整个工作流,AI 将生成可视化流程。",
@@ -351,35 +712,59 @@
351
712
  "nodeConfiguration": "节点配置",
352
713
  "nodeType": "节点类型",
353
714
  "nodeName": "节点名称",
715
+ "unsavedChanges": "有未保存的修改",
354
716
  "configurationTab": "配置",
355
717
  "aiEditTab": "AI 修改",
356
718
  "deleteNode": "删除节点",
357
719
  "dragNodes": "拖拽节点到左侧画布",
720
+ "addNode": "添加节点",
721
+ "searchNodes": "搜索节点名称或用途",
722
+ "noMatchingNodes": "没有匹配的节点",
723
+ "nodeTypesLoadFailed": "节点类型加载失败。",
724
+ "instanceLoadFailed": "模板加载失败。",
725
+ "templateConfigLoading": "正在同步节点模板配置",
726
+ "templateConfigLoadingShort": "模板配置同步中,端口暂不可用",
727
+ "templateConfigLoadingHint": "同步完成后才能编辑节点参数或保存 Workflow。",
728
+ "templateConfigLoadFailed": "节点模板配置加载失败",
729
+ "templateConfigLoadFailedHint": "无法确认节点的有效配置。请重试,加载成功前不能连接端口或保存 Workflow。",
730
+ "templateConfigUnavailable": "模板配置不可用,端口已锁定",
731
+ "callableCatalogLoadingHint": "可调用 Workflow 目录正在加载,请稍后重试。",
732
+ "callableCatalogLoadFailed": "可调用 Workflow 目录加载失败,请重试。",
733
+ "dslValidationFailed": "Workflow 配置无效:{{- error}}",
358
734
  "add": "添加",
359
- "reuseInstance": "复用已有实例",
360
- "loadingInstances": "正在加载实例…",
361
- "noInstances": "暂无可用实例",
362
- "selectInstance": "选择实例",
363
- "referenceInstance": "引用实例",
364
- "copyInstanceConfig": "载入配置",
365
- "referencedInstance": "引用实例",
735
+ "template": "节点模板",
736
+ "templateOptional": "可以使用模板,也可以直接配置",
737
+ "createTemplate": "新建模板",
738
+ "selectTemplate": "选择模板",
739
+ "noTemplates": "暂无可用模板",
740
+ "loadingInstances": "正在加载模板…",
741
+ "referencedInstance": "使用模板",
366
742
  "detach": "解除引用",
367
743
  "referenceHint": "修改仅应用于当前 Workflow。",
368
744
  "label": "显示名称",
369
745
  "config": "配置",
370
746
  "parameters": "节点参数",
747
+ "indentSpaces": "空格",
371
748
  "output": {
372
- "title": "输出(只读)",
373
- "hint": "下一个节点通过 input 读取这些数据",
374
- "flowBranches": "流程出口",
375
- "required": "必有",
749
+ "title": "输出",
750
+ "passthrough": "原样传递自",
751
+ "inputHint": "下个节点可直接使用这些 input 路径,点击即可复制",
752
+ "parallelBranchResult": "“{{name}}”返回的完整结果",
753
+ "copyPath": "复制路径",
754
+ "pathCopied": "已复制",
755
+ "nestedFields": "可读取字段",
756
+ "required": "必返回",
376
757
  "branchLabels": {
377
758
  "approved": "审批通过",
378
759
  "rejected": "审批拒绝",
379
760
  "matched": "条件满足",
380
761
  "notMatched": "条件不满足",
381
- "received": "已收到",
382
- "timedOut": "已超时"
762
+ "received": "收到外部结果",
763
+ "timedOut": "等待超时",
764
+ "allDone": "全部完成",
765
+ "parallelBranch": "进入并行分支",
766
+ "allBranchesDone": "全部分支完成",
767
+ "other": "其他情况"
383
768
  },
384
769
  "types": {
385
770
  "any": "任意值",
@@ -391,16 +776,91 @@
391
776
  "object": "对象",
392
777
  "string": "文本"
393
778
  },
779
+ "fieldLabels": {
780
+ "webhook_trigger": {
781
+ "body": "请求内容",
782
+ "headers": "请求头",
783
+ "query": "查询参数",
784
+ "receivedAt": "接收时间"
785
+ },
786
+ "http_request": {
787
+ "status": "响应状态码",
788
+ "data": "响应数据",
789
+ "headers": "响应头"
790
+ },
791
+ "db_execute": {
792
+ "rows": "查询结果",
793
+ "rowCount": "结果行数",
794
+ "affectedRows": "影响行数",
795
+ "insertedId": "新增记录 ID"
796
+ },
797
+ "for_each": {
798
+ "results": "处理结果",
799
+ "total": "元素总数",
800
+ "succeeded": "成功数量",
801
+ "failed": "失败数量"
802
+ },
803
+ "parallel": {
804
+ "branch": "各分支结果"
805
+ },
806
+ "approval": {
807
+ "previous": "进入审批前的数据",
808
+ "result": "本次审批的结果"
809
+ },
810
+ "external_wait": {
811
+ "previous": "进入等待前的数据",
812
+ "result": "外部返回的结果"
813
+ }
814
+ },
815
+ "fields": {
816
+ "webhook_trigger": {
817
+ "body": "",
818
+ "headers": "",
819
+ "query": "",
820
+ "receivedAt": ""
821
+ },
822
+ "http_request": {
823
+ "status": "例如 200",
824
+ "data": "",
825
+ "headers": ""
826
+ },
827
+ "db_execute": {
828
+ "rows": "只读查询时返回",
829
+ "rowCount": "",
830
+ "affectedRows": "",
831
+ "insertedId": "仅新增时返回"
832
+ },
833
+ "for_each": {
834
+ "results": "每一项的处理结果",
835
+ "total": "",
836
+ "succeeded": "",
837
+ "failed": ""
838
+ },
839
+ "parallel": {
840
+ "branch": "按照分支配置顺序汇总,索引从 0 开始"
841
+ },
842
+ "approval": {
843
+ "previous": "",
844
+ "result": "包含审批人和处理时间"
845
+ },
846
+ "external_wait": {
847
+ "previous": "",
848
+ "result": "超时时包含超时信息"
849
+ }
850
+ },
394
851
  "dynamic": {
395
- "workflowData": "原样输出 Workflow 启动数据,下一个节点通过 input 读取完整内容。",
396
- "codeReturn": "输出由代码中的 return 决定,下一个节点通过 input 读取完整返回值。",
397
- "workflowReturn": "原样输出所调用 Workflow 的返回值,具体结构由目标 Workflow 决定。",
398
- "returnPrevious": "把上一个节点的完整结果返回给调用方,并结束当前 Workflow。",
399
- "anyValue": "输出结构由节点运行结果决定,下一个节点通过 input 读取完整内容。"
852
+ "scheduledStart": "定时启动时收到的数据",
853
+ "manualStart": "手动运行时填写的数据",
854
+ "callerInput": "调用方传入的数据",
855
+ "eventData": "触发本次运行的事件数据",
856
+ "codeReturn": "代码中 return 返回的值",
857
+ "workflowReturn": "被调用 Workflow 返回的结果",
858
+ "previousResult": "继续传递上一个节点的结果",
859
+ "anyValue": "输出内容在运行时确定"
400
860
  }
401
861
  },
402
- "saveAsInstance": "同时保存为节点实例",
403
- "instanceNamePlaceholder": "实例名称(必填)",
862
+ "saveAsInstance": "同时保存为模板",
863
+ "instanceNamePlaceholder": "模板名称(必填)",
404
864
  "aiEditHint": "描述要修改的内容",
405
865
  "aiEditPlaceholder": "例如:将超时时间改为 30 分钟",
406
866
  "send": "发送",
@@ -416,9 +876,39 @@
416
876
  "saveFailed": "保存失败",
417
877
  "versionLoadFailed": "加载版本失败",
418
878
  "selectVersion": "选择版本",
879
+ "viewMode": "查看方式",
419
880
  "dsl": "DSL",
420
881
  "canvas": "画布"
421
882
  },
883
+ "viewer": {
884
+ "scheduleStatus": {
885
+ "active": "定时计划运行中",
886
+ "paused": "定时计划已暂停",
887
+ "missing": "定时计划未同步",
888
+ "unavailable": "暂时无法读取定时计划"
889
+ },
890
+ "savedDraft": "已保存草稿",
891
+ "noChangesToPublish": "当前没有需要发布的草稿修改",
892
+ "publishSavedDraft": "发布已保存的草稿",
893
+ "workspaceEyebrow": "工作流浏览",
894
+ "copyDsl": "复制 DSL",
895
+ "compareVersions": "对比版本",
896
+ "versionComparison": "版本对比",
897
+ "selectOlderVersion": "选择较早版本",
898
+ "selectNewerVersion": "选择较新版本",
899
+ "aiExplain": "AI 解读",
900
+ "nodeDetails": "节点详情",
901
+ "nodeInstance": "节点实例",
902
+ "readableView": "易读视图",
903
+ "advancedConfig": "高级配置",
904
+ "nodeParameters": "节点参数",
905
+ "noParameters": "这个节点没有需要配置的参数。",
906
+ "noTemplate": "未使用节点模板",
907
+ "rawNodeConfig": "原始节点配置",
908
+ "rawNodeHint": "用于排查问题或复制完整 DSL 节点数据",
909
+ "copyJson": "复制 JSON",
910
+ "copied": "已复制节点 JSON"
911
+ },
422
912
  "run": {
423
913
  "title": "运行工作流",
424
914
  "run": "运行",
@@ -482,11 +972,13 @@
482
972
  },
483
973
  "list": {
484
974
  "title": "工作流",
975
+ "subtitle": "设计、发布并查看业务流程的运行情况。",
485
976
  "new": "新建工作流",
486
977
  "fetchFailed": "加载工作流失败",
487
978
  "deleted": "工作流已删除",
488
979
  "published": "工作流发布成功!",
489
980
  "publishFailed": "发布失败",
981
+ "publishFailedHint": "发布检查未通过,请根据下面的提示修改工作流。",
490
982
  "publish": "发布",
491
983
  "publishTitle": "发布工作流",
492
984
  "runHistory": "运行记录",
@@ -496,17 +988,89 @@
496
988
  "completed": "已完成",
497
989
  "running": "运行中",
498
990
  "failed": "失败",
499
- "publishedStatus": "已发布"
991
+ "publishedStatus": "已发布",
992
+ "status": "状态",
993
+ "version": "版本",
994
+ "runs": "运行情况",
995
+ "lastRun": "最近运行",
996
+ "updatedAt": "更新时间",
997
+ "actions": "操作",
998
+ "import": "导入",
999
+ "searchPlaceholder": "按名称搜索",
1000
+ "total": "共 {{count}} 条",
1001
+ "deleteDescription": "相关版本和运行记录也会被删除。",
1002
+ "publishDescription": "填写本次发布的版本说明:",
1003
+ "publishPlaceholder": "简要说明本次修改…",
1004
+ "enabledSuccess": "工作流已启用",
1005
+ "disabledSuccess": "工作流已停用"
1006
+ },
1007
+ "workflowStatus": {
1008
+ "draft": "草稿",
1009
+ "published": "已发布",
1010
+ "deleting": "正在删除"
1011
+ },
1012
+ "instances": {
1013
+ "title": "{{name}} · 运行记录",
1014
+ "subtitle": "查看每次运行的状态、耗时和发起人。",
1015
+ "loadFailed": "运行记录加载失败",
1016
+ "workflowLoadFailed": "工作流名称加载失败,运行记录仍可查看。",
1017
+ "status": "状态",
1018
+ "startedAt": "开始时间",
1019
+ "finishedAt": "结束时间",
1020
+ "duration": "耗时",
1021
+ "creator": "发起人",
1022
+ "executionSource": "执行来源",
1023
+ "initialRun": "首次运行",
1024
+ "resumedFrom": "从 #{{id}} 恢复",
1025
+ "detail": "查看详情",
1026
+ "allStatuses": "全部状态",
1027
+ "statuses": {
1028
+ "pending": "等待中",
1029
+ "running": "运行中",
1030
+ "completed": "已完成",
1031
+ "failed": "失败",
1032
+ "cancelled": "已取消"
1033
+ }
1034
+ },
1035
+ "instanceDetail": {
1036
+ "eyebrow": "运行详情",
1037
+ "title": "{{name}} · 运行 #{{id}}",
1038
+ "openTemporal": "在 Temporal 中查看",
1039
+ "cancel": "取消运行",
1040
+ "executionDetails": "运行信息",
1041
+ "result": "最终结果",
1042
+ "retryAll": "重新运行整个流程",
1043
+ "retryAllConfirm": "确定重新运行整个流程吗?",
1044
+ "retryAllDescription": "流程会从起点重新执行,可能再次执行已经成功的操作。",
1045
+ "retryAllStarted": "已开始重新运行整个流程",
1046
+ "retryFromNode": "从这里重试",
1047
+ "retryFromNodeConfirm": "从“{{name}}”重新执行吗?",
1048
+ "retryFromNodeDescription": "将复用此前成功节点的结果,原失败记录会保留。",
1049
+ "retryFromNodeStarted": "已从失败节点开始重试",
1050
+ "retryFromNodeFailed": "无法从该节点重试",
1051
+ "viewRetryAttempt": "查看重试 #{{id}}",
1052
+ "retrySource": "恢复来源",
1053
+ "reusedResults": "前序结果",
1054
+ "reusedResultsCount": "已复用 {{count}} 个成功节点的结果",
1055
+ "reusedResult": "复用前序结果",
1056
+ "reusedResultDescription": "这个节点此前已成功,本次直接复用其结果。"
500
1057
  },
501
1058
  "nodeTypeBadge": "{{type}}节点",
1059
+ "nodeCategories": {
1060
+ "TRIGGER": "触发流程",
1061
+ "ACTION": "执行操作",
1062
+ "CONDITION": "判断与分支",
1063
+ "FLOW_CONTROL": "流程控制",
1064
+ "APPROVAL": "人工审批",
1065
+ "SUB_WORKFLOW": "Workflow 调用"
1066
+ },
502
1067
  "nodeTypes": {
503
1068
  "approval": "人工审批",
504
1069
  "code": "代码处理",
505
1070
  "cron_trigger": "定时触发",
506
- "db_execute": "数据库写入",
507
- "db_query": "数据库查询",
1071
+ "db_execute": "数据库操作",
508
1072
  "delay": "定时等待",
509
- "event_trigger": "事件触发",
1073
+ "event_trigger": "业务事件触发",
510
1074
  "for_each": "循环处理",
511
1075
  "http_request": "HTTP 请求",
512
1076
  "if_else": "条件分支",
@@ -516,7 +1080,6 @@
516
1080
  "switch": "多路分支",
517
1081
  "webhook_trigger": "接收外部调用",
518
1082
  "callable_trigger": "接收内部调用",
519
- "return_result": "返回调用",
520
1083
  "external_wait": "等待外部结果"
521
1084
  },
522
1085
  "schema": {
@@ -526,7 +1089,8 @@
526
1089
  "add": "添加{{label}}",
527
1090
  "remove": "移除{{label}} {{index}}",
528
1091
  "fields": {
529
- "connectionRef": "Connection",
1092
+ "connectionRef": "连接",
1093
+ "sql": "SQL 语句",
530
1094
  "method": "请求方法",
531
1095
  "path": "请求路径",
532
1096
  "inputParameters": "请求参数",
@@ -539,8 +1103,6 @@
539
1103
  "retryInterval": "重试间隔",
540
1104
  "script": "脚本",
541
1105
  "mode": "模式",
542
- "approvalWorkflowId": "审批 Workflow ID",
543
- "approverSources": "自动找审批人",
544
1106
  "subjects": "审批人",
545
1107
  "approvalRule": "通过规则",
546
1108
  "rejectionRule": "拒绝规则",