weaver-e10-builder 1.6.12 → 1.6.14

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 (266) hide show
  1. package/dist/cli-register.d.ts +22 -0
  2. package/dist/cli-register.d.ts.map +1 -0
  3. package/dist/cli-register.js +352 -0
  4. package/dist/cli-register.js.map +1 -0
  5. package/dist/commands/actionflow.d.ts.map +1 -1
  6. package/dist/commands/actionflow.js +4 -0
  7. package/dist/commands/actionflow.js.map +1 -1
  8. package/dist/commands/designer-event.d.ts +3 -0
  9. package/dist/commands/designer-event.d.ts.map +1 -0
  10. package/dist/commands/designer-event.js +106 -0
  11. package/dist/commands/designer-event.js.map +1 -0
  12. package/dist/commands/designer-source.d.ts +3 -0
  13. package/dist/commands/designer-source.d.ts.map +1 -0
  14. package/dist/commands/designer-source.js +51 -0
  15. package/dist/commands/designer-source.js.map +1 -0
  16. package/dist/commands/form-browser-scope-rules.d.ts +2 -1
  17. package/dist/commands/form-browser-scope-rules.d.ts.map +1 -1
  18. package/dist/commands/form-browser-scope-rules.js +8 -4
  19. package/dist/commands/form-browser-scope-rules.js.map +1 -1
  20. package/dist/commands/form-browser-scope-tree.js +1 -1
  21. package/dist/commands/form-browser-scope-tree.js.map +1 -1
  22. package/dist/commands/form-field-linkage.d.ts.map +1 -1
  23. package/dist/commands/form-field-linkage.js +6 -11
  24. package/dist/commands/form-field-linkage.js.map +1 -1
  25. package/dist/commands/form-layout-detail-settings.d.ts +3 -0
  26. package/dist/commands/form-layout-detail-settings.d.ts.map +1 -0
  27. package/dist/commands/form-layout-detail-settings.js +36 -0
  28. package/dist/commands/form-layout-detail-settings.js.map +1 -0
  29. package/dist/commands/form-list-columns.d.ts.map +1 -1
  30. package/dist/commands/form-list-columns.js +258 -3
  31. package/dist/commands/form-list-columns.js.map +1 -1
  32. package/dist/commands/form-list-config.d.ts +9 -0
  33. package/dist/commands/form-list-config.d.ts.map +1 -0
  34. package/dist/commands/form-list-config.js +189 -0
  35. package/dist/commands/form-list-config.js.map +1 -0
  36. package/dist/commands/form-list-event.d.ts.map +1 -1
  37. package/dist/commands/form-list-event.js +2 -1
  38. package/dist/commands/form-list-event.js.map +1 -1
  39. package/dist/commands/form-list-filter.d.ts.map +1 -1
  40. package/dist/commands/form-list-filter.js +231 -3
  41. package/dist/commands/form-list-filter.js.map +1 -1
  42. package/dist/commands/form-list-hierarchy.d.ts.map +1 -1
  43. package/dist/commands/form-list-hierarchy.js +2 -1
  44. package/dist/commands/form-list-hierarchy.js.map +1 -1
  45. package/dist/commands/form-list-utils.d.ts.map +1 -1
  46. package/dist/commands/form-list-utils.js +4 -3
  47. package/dist/commands/form-list-utils.js.map +1 -1
  48. package/dist/commands/form-list.d.ts.map +1 -1
  49. package/dist/commands/form-list.js +2 -1
  50. package/dist/commands/form-list.js.map +1 -1
  51. package/dist/commands/form-nlist.d.ts.map +1 -1
  52. package/dist/commands/form-nlist.js +125 -1
  53. package/dist/commands/form-nlist.js.map +1 -1
  54. package/dist/commands/form-permission.d.ts.map +1 -1
  55. package/dist/commands/form-permission.js +743 -77
  56. package/dist/commands/form-permission.js.map +1 -1
  57. package/dist/commands/page-combination.d.ts +3 -0
  58. package/dist/commands/page-combination.d.ts.map +1 -0
  59. package/dist/commands/page-combination.js +86 -0
  60. package/dist/commands/page-combination.js.map +1 -0
  61. package/dist/commands/page-permission.d.ts +3 -0
  62. package/dist/commands/page-permission.d.ts.map +1 -0
  63. package/dist/commands/page-permission.js +46 -0
  64. package/dist/commands/page-permission.js.map +1 -0
  65. package/dist/index.js +19 -213
  66. package/dist/index.js.map +1 -1
  67. package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -1
  68. package/dist/services/actionflow/build_workflow_draft.js +8 -0
  69. package/dist/services/actionflow/build_workflow_draft.js.map +1 -1
  70. package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -1
  71. package/dist/services/actionflow/calendar_mapper.js +7 -4
  72. package/dist/services/actionflow/calendar_mapper.js.map +1 -1
  73. package/dist/services/actionflow/component_registry.d.ts.map +1 -1
  74. package/dist/services/actionflow/component_registry.js +18 -2
  75. package/dist/services/actionflow/component_registry.js.map +1 -1
  76. package/dist/services/actionflow/components/action_eb_delete.js +1 -1
  77. package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
  78. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  79. package/dist/services/actionflow/components/action_eb_update.js +9 -1
  80. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  81. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
  82. package/dist/services/actionflow/components/approve_create.js +4 -3
  83. package/dist/services/actionflow/components/approve_create.js.map +1 -1
  84. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
  85. package/dist/services/actionflow/components/document_actions.js +15 -48
  86. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  87. package/dist/services/actionflow/components/enquiry_form.d.ts +0 -7
  88. package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
  89. package/dist/services/actionflow/components/enquiry_form.js +10 -54
  90. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  91. package/dist/services/actionflow/components/form_data_builder.d.ts +2 -0
  92. package/dist/services/actionflow/components/form_data_builder.d.ts.map +1 -1
  93. package/dist/services/actionflow/components/form_data_builder.js +53 -2
  94. package/dist/services/actionflow/components/form_data_builder.js.map +1 -1
  95. package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -1
  96. package/dist/services/actionflow/components/inner_mq_send.js +8 -2
  97. package/dist/services/actionflow/components/inner_mq_send.js.map +1 -1
  98. package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
  99. package/dist/services/actionflow/components/send_message.js +52 -1
  100. package/dist/services/actionflow/components/send_message.js.map +1 -1
  101. package/dist/services/actionflow/components/serverless_action.d.ts.map +1 -1
  102. package/dist/services/actionflow/components/serverless_action.js +39 -0
  103. package/dist/services/actionflow/components/serverless_action.js.map +1 -1
  104. package/dist/services/actionflow/components/simple_scheduler.d.ts.map +1 -1
  105. package/dist/services/actionflow/components/simple_scheduler.js +46 -12
  106. package/dist/services/actionflow/components/simple_scheduler.js.map +1 -1
  107. package/dist/services/actionflow/components/time_batch_trigger.js +4 -3
  108. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
  109. package/dist/services/actionflow/context_discovery.d.ts +2 -0
  110. package/dist/services/actionflow/context_discovery.d.ts.map +1 -1
  111. package/dist/services/actionflow/context_discovery.js +32 -4
  112. package/dist/services/actionflow/context_discovery.js.map +1 -1
  113. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  114. package/dist/services/actionflow/context_preflight.js +24 -7
  115. package/dist/services/actionflow/context_preflight.js.map +1 -1
  116. package/dist/services/actionflow/form_source.d.ts +2 -0
  117. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  118. package/dist/services/actionflow/form_source.js +45 -10
  119. package/dist/services/actionflow/form_source.js.map +1 -1
  120. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  121. package/dist/services/actionflow/formula_service.js +28 -13
  122. package/dist/services/actionflow/formula_service.js.map +1 -1
  123. package/dist/services/actionflow/param_mapping_basis.d.ts +3 -0
  124. package/dist/services/actionflow/param_mapping_basis.d.ts.map +1 -0
  125. package/dist/services/actionflow/param_mapping_basis.js +61 -0
  126. package/dist/services/actionflow/param_mapping_basis.js.map +1 -0
  127. package/dist/services/actionflow/preflight_service.d.ts +10 -0
  128. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  129. package/dist/services/actionflow/preflight_service.js +149 -47
  130. package/dist/services/actionflow/preflight_service.js.map +1 -1
  131. package/dist/services/actionflow/runtime_metadata.d.ts +1 -0
  132. package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -1
  133. package/dist/services/actionflow/runtime_metadata.js +3 -0
  134. package/dist/services/actionflow/runtime_metadata.js.map +1 -1
  135. package/dist/services/actionflow/trigger_common.d.ts.map +1 -1
  136. package/dist/services/actionflow/trigger_common.js +4 -7
  137. package/dist/services/actionflow/trigger_common.js.map +1 -1
  138. package/dist/services/actionflow/update_service.d.ts +6 -0
  139. package/dist/services/actionflow/update_service.d.ts.map +1 -1
  140. package/dist/services/actionflow/update_service.js +6 -38
  141. package/dist/services/actionflow/update_service.js.map +1 -1
  142. package/dist/services/actionflow/workflow_compiler.d.ts +1 -1
  143. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  144. package/dist/services/actionflow/workflow_compiler.js +34 -20
  145. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  146. package/dist/services/actionflow/workflow_request_level.d.ts +3 -0
  147. package/dist/services/actionflow/workflow_request_level.d.ts.map +1 -0
  148. package/dist/services/actionflow/workflow_request_level.js +11 -0
  149. package/dist/services/actionflow/workflow_request_level.js.map +1 -0
  150. package/dist/services/designer-event.d.ts +54 -0
  151. package/dist/services/designer-event.d.ts.map +1 -0
  152. package/dist/services/designer-event.js +312 -0
  153. package/dist/services/designer-event.js.map +1 -0
  154. package/dist/services/designer-source.d.ts +46 -0
  155. package/dist/services/designer-source.d.ts.map +1 -0
  156. package/dist/services/designer-source.js +145 -0
  157. package/dist/services/designer-source.js.map +1 -0
  158. package/dist/services/field-identity.d.ts +3 -0
  159. package/dist/services/field-identity.d.ts.map +1 -0
  160. package/dist/services/field-identity.js +8 -0
  161. package/dist/services/field-identity.js.map +1 -0
  162. package/dist/services/form-layout-detail-advanced.d.ts +10 -0
  163. package/dist/services/form-layout-detail-advanced.d.ts.map +1 -0
  164. package/dist/services/form-layout-detail-advanced.js +134 -0
  165. package/dist/services/form-layout-detail-advanced.js.map +1 -0
  166. package/dist/services/form-layout-detail-settings.d.ts +151 -0
  167. package/dist/services/form-layout-detail-settings.d.ts.map +1 -0
  168. package/dist/services/form-layout-detail-settings.js +131 -0
  169. package/dist/services/form-layout-detail-settings.js.map +1 -0
  170. package/dist/services/form-list-columns.d.ts +11 -0
  171. package/dist/services/form-list-columns.d.ts.map +1 -1
  172. package/dist/services/form-list-columns.js +12 -1
  173. package/dist/services/form-list-columns.js.map +1 -1
  174. package/dist/services/form-list-config.d.ts +93 -0
  175. package/dist/services/form-list-config.d.ts.map +1 -0
  176. package/dist/services/form-list-config.js +369 -0
  177. package/dist/services/form-list-config.js.map +1 -0
  178. package/dist/services/form-list-fields.d.ts +38 -0
  179. package/dist/services/form-list-fields.d.ts.map +1 -0
  180. package/dist/services/form-list-fields.js +261 -0
  181. package/dist/services/form-list-fields.js.map +1 -0
  182. package/dist/services/form-list-filter-http.d.ts +60 -0
  183. package/dist/services/form-list-filter-http.d.ts.map +1 -0
  184. package/dist/services/form-list-filter-http.js +137 -0
  185. package/dist/services/form-list-filter-http.js.map +1 -0
  186. package/dist/services/form-list-filter-sql.d.ts +74 -0
  187. package/dist/services/form-list-filter-sql.d.ts.map +1 -0
  188. package/dist/services/form-list-filter-sql.js +206 -0
  189. package/dist/services/form-list-filter-sql.js.map +1 -0
  190. package/dist/services/form-list-search-group.d.ts.map +1 -1
  191. package/dist/services/form-list-search-group.js +3 -2
  192. package/dist/services/form-list-search-group.js.map +1 -1
  193. package/dist/services/form-list-search.d.ts.map +1 -1
  194. package/dist/services/form-list-search.js +3 -13
  195. package/dist/services/form-list-search.js.map +1 -1
  196. package/dist/services/form-list-table-fields.d.ts +58 -0
  197. package/dist/services/form-list-table-fields.d.ts.map +1 -0
  198. package/dist/services/form-list-table-fields.js +265 -0
  199. package/dist/services/form-list-table-fields.js.map +1 -0
  200. package/dist/services/form-nlist-field-attrs.d.ts +43 -0
  201. package/dist/services/form-nlist-field-attrs.d.ts.map +1 -0
  202. package/dist/services/form-nlist-field-attrs.js +170 -0
  203. package/dist/services/form-nlist-field-attrs.js.map +1 -0
  204. package/dist/services/form-nlist.d.ts +25 -0
  205. package/dist/services/form-nlist.d.ts.map +1 -1
  206. package/dist/services/form-nlist.js +226 -2
  207. package/dist/services/form-nlist.js.map +1 -1
  208. package/dist/services/form-permission-edit.d.ts +115 -0
  209. package/dist/services/form-permission-edit.d.ts.map +1 -0
  210. package/dist/services/form-permission-edit.js +552 -0
  211. package/dist/services/form-permission-edit.js.map +1 -0
  212. package/dist/services/form-view.d.ts +3 -3
  213. package/dist/services/form-view.d.ts.map +1 -1
  214. package/dist/services/form-view.js +26 -12
  215. package/dist/services/form-view.js.map +1 -1
  216. package/dist/services/matrix-condition.d.ts +0 -30
  217. package/dist/services/matrix-condition.d.ts.map +1 -1
  218. package/dist/services/matrix-condition.js +3 -2
  219. package/dist/services/matrix-condition.js.map +1 -1
  220. package/dist/services/page-combination.d.ts +58 -0
  221. package/dist/services/page-combination.d.ts.map +1 -0
  222. package/dist/services/page-combination.js +296 -0
  223. package/dist/services/page-combination.js.map +1 -0
  224. package/dist/services/page-permission.d.ts +74 -0
  225. package/dist/services/page-permission.d.ts.map +1 -0
  226. package/dist/services/page-permission.js +287 -0
  227. package/dist/services/page-permission.js.map +1 -0
  228. package/dist/services/report/verify.d.ts.map +1 -1
  229. package/dist/services/report/verify.js +1 -7
  230. package/dist/services/report/verify.js.map +1 -1
  231. package/dist/services/workflow-function-management.d.ts +1 -1
  232. package/package.json +1 -1
  233. package/skill-docs/SKILL.md +14 -4
  234. package/skill-docs/_catalog.md +7 -0
  235. package/skill-docs/actionflows/SKILL.md +7 -3
  236. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +5 -1
  237. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +5 -1
  238. package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +32 -32
  239. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +5 -1
  240. package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -19
  241. package/skill-docs/references/common/ref-cli-commands.md +27 -7
  242. package/skill-docs/references/ebuilder-designer/events/actions-integration.md +88 -0
  243. package/skill-docs/references/ebuilder-designer/events/actions-interaction.md +108 -0
  244. package/skill-docs/references/ebuilder-designer/events/guide-events.md +57 -0
  245. package/skill-docs/references/ebuilder-designer/guide-designer.md +296 -288
  246. package/skill-docs/references/ebuilder-designer/guide-page-combination.md +142 -0
  247. package/skill-docs/references/ebuilder-designer/guide-page-permission.md +145 -0
  248. package/skill-docs/references/ebuilder-designer/page-source/page-source-guide.md +129 -0
  249. package/skill-docs/references/ebuilder-designer/page-source/sdk-chart.md +49 -0
  250. package/skill-docs/references/ebuilder-designer/page-source/sdk-coverage.json +372 -0
  251. package/skill-docs/references/ebuilder-designer/page-source/sdk-date.md +54 -0
  252. package/skill-docs/references/ebuilder-designer/page-source/sdk-dialogs.md +279 -0
  253. package/skill-docs/references/ebuilder-designer/page-source/sdk-form.md +255 -0
  254. package/skill-docs/references/ebuilder-designer/page-source/sdk-foundations.md +401 -0
  255. package/skill-docs/references/ebuilder-designer/page-source/sdk-index.md +34 -0
  256. package/skill-docs/references/ebuilder-designer/page-source/sdk-list.md +297 -0
  257. package/skill-docs/references/ebuilder-designer/page-source/sdk-native.md +193 -0
  258. package/skill-docs/references/ebuilder-designer/page-source/sdk-navigation.md +156 -0
  259. package/skill-docs/references/ebuilder-designer/page-source/sdk-other.md +242 -0
  260. package/skill-docs/references/ebuilder-designer/page-source/sdk-refresh.md +132 -0
  261. package/skill-docs/references/ebuilder-designer/page-source/sdk-sql.md +39 -0
  262. package/skill-docs/references/form/guide-form-permission.md +185 -0
  263. package/skill-docs/references/form/guide-form-view.md +725 -423
  264. package/skill-docs/references/form/layout/detail-advanced.md +124 -0
  265. package/skill-docs/references/form/layout/detail-settings.md +106 -0
  266. package/skill-docs/references/form/layout/layout-overview.md +2 -0
@@ -18,6 +18,8 @@ description: "将业务需求编译为 Weaver ESB 动作流,或读取已有动
18
18
 
19
19
  ## 生成 SOP
20
20
 
21
+ 复用表单设置协议的组件(包括 e-builder、人员、文档、会议和日程等)统一遵循选项赋值规则:普通动态赋值可指定 `assignType: "name"` 或 `"id"`;依据值下级通过 `fieldSet.matchMode` 指定 `"optionName"` 或 `"optionId"`,并保持 `switchType: "sub"`。名称匹配应引用实时上下文返回的名称字段;不支持或取不到对应字段时不得伪造。组件是否提供该设置及可选字段仍以当前组件契约和实时元数据为准。
22
+
21
23
  按顺序推进;只读取当前步骤需要的信息。每个场景是独立事务。
22
24
 
23
25
  ### 1. 识别与选择
@@ -56,7 +58,7 @@ description: "将业务需求编译为 Weaver ESB 动作流,或读取已有动
56
58
  5. 不把 `Output` 写入 `actions`。需要配置终止状态、提示或页面动作时使用顶层 `finalOutput.params`;提醒内容使用前端富文本组件对应的 `reminderContent`(`ContestSettingDTO`,动态片段放在 `formulaBeans`),不要使用旧的 `reminderMsgFormula`。流程触发(`ApproveTrigger`)只支持提醒,不支持页面交互、页面动作或跳转地址;页面动作仅可用于 `EventButton`。平台内部 FormulaBean 由 CLI 生成,只有组件契约明确要求前端原对象时才传原生 DTO。
57
59
  5.1. 所有 CLI 生成或继续编译的 FormulaBean,只要包含 `frontId`,允许使用空串;非空时必须使用平台真实字段 ID 的纯数字字符串。`field_<数字>` 仅可在生成时规范化为 `<数字>`。禁止把字段名、paramKey 尾段、临时公式 ID 或其他包含字母/符号的值写入 `frontId`;非空值无法解析为纯数字时必须直接报错。
58
60
  6. 定时组件优先使用平台原生频率:`rate=1` 一次、`2` 按小时、`3` 按日、`4` 按周、`5` 按月,并按需提供 `cycle`、`hour`、`day`、`week`、`atWeek`、`atWeekDetail` 或 `lastWeek`;只有明确选择 `rate=6` 时才传 `cornString`。图形化频率必须提供 `startTime`。
59
- 7. `EnquiryForm`、`TimeBatchTrigger`、`DateTrigger` 的 `queryFields` 会裁剪 `getComponentContext` 返回的动态上下文。字段必须来自当前租户的 `showDataSourceFields` 完整字段对象;若后续动态赋值引用了其中字段,预检会按真实字段 ID 匹配并把它并入 `queryFields`,匹配不到就报错,不能按名称或路径尾段造字段。未明确限制输出字段时不传 `queryFields`(或传空数组),CLI 默认全选。查询节点还必须使用自身真实节点 ID 作为 `dataSource.enquiryId`,否则平台可能静默丢弃业务字段。正式回读必须确认每个声明的 `queryFields` 仍存在;缺失即生成失败,不能仅凭接口 `code=200`、`saved=true` 判定成功。e-builder 数据触发后发送消息且未显式给链接时,CLI 自动补 PC/移动端当前记录详情链接;不手写 `{formId}` / `{dataId}` 的 FormulaBean。查询结果字段动态赋值必须按手工设计器对象编译:普通业务字段使用 `FormField.<查询表单ID>.field_<真实字段ID>`,`config.paramKey` 使用 `<查询表单ID>.field_<真实字段ID>`,`config.fieldInfo.tablePrimaryKey` 为 `FormField`;系统字段按平台真实字段键(例如 `id`)保留。禁止使用 `FormData.<表单ID>[临时位置]...`,也禁止把临时公式 ID 当作 `frontId`。
61
+ 7. `EnquiryForm`、`TimeBatchTrigger`、`DateTrigger` 的 `queryFields` 会裁剪 `getComponentContext` 返回的动态上下文。字段必须来自当前租户的 `showDataSourceFields` 完整字段对象;若后续动态赋值引用了其中字段,预检会按真实字段 ID 匹配并把它并入 `queryFields`,匹配不到就报错,不能按名称或路径尾段造字段。未明确限制输出字段时不传 `queryFields`(或传空数组),CLI 默认全选。查询节点还必须使用自身真实节点 ID 作为 `dataSource.enquiryId`,否则平台可能静默丢弃业务字段。正式回读必须确认每个声明的 `queryFields` 仍存在;缺失即生成失败,不能仅凭接口 `code=200`、`saved=true` 判定成功。e-builder 数据触发后发送消息且未显式给链接时,CLI 自动补 PC/移动端当前记录详情链接;不手写 `{formId}` / `{dataId}` 的 FormulaBean。查询结果字段动态赋值必须使用 `getComponentContext` 返回的真实 `paramKey` 和字段实例 ID;字段名称缺失或匹配不唯一时停止,不按数字 ID 拼接前缀。禁止使用 `FormData.<表单ID>[临时位置]...`,也禁止把临时公式 ID 当作 `frontId`。
60
62
  8. `ActionEbAdd` 批量新增以 `basisValue` 为明细行上下文:来源于该行的字段都用 `mapping`,编译为“依据值下级”(`switchType:"sub"`),下拉字段也同样处理。只有已核实来源/目标选项 ID 不同且语义需要转换时,才使用 `SWITCH`。关联 e-builder 字段应引用查询结果的 `数据ID`,固定格式为 `{target,kind:"query_result",source:"<EnquiryForm ref>",formId,fieldId:"id",index:0}`;`kind:"enquiry"`、`sourceId` 等旧写法会直接报错,绝不降级为空固定值。
61
63
  9. 动态赋值可使用或新建动作流变量、租户常量:已有资源必须用真实 ID;计划新建变量写顶层 `variables[]`,新建常量写 `constantDefinitions[]`,常量分组可传 `groupPk` 或 `groupName`。变量按当前 `applicationId + sceneId` 隔离,常量按分组跨动作流复用。生成时先调用真实接口创建/解析资源,再编译为变量 `type:"7"` 或常量 `type:"5"` FormulaBean;详细格式见 `references/dynamic_resources.md`。消息 `SendMessage.msgTitlev/msgContentv/picLink/msgPcLink/msgMobileLink` 的 `parts` 支持 `variable`/`constant` 动态片段,并统一保存为 `ContestSettingDTO`。
62
64
  9.1. 每个参数先分为“动态公式属性”“动态人员属性”“固定平台资源属性”三类:上下文、系统变量、变量、常量、函数/公式必须保留为 FormulaBean;动态人员必须使用真实人员字段上下文或系统变量,不得把引用里的 `id` 当人员 Browser ID 查询;工作流、文档目录、按钮、规则等平台资源只有在其组件契约明确提供动态引用时才允许动态化。生成前必须记录本次组件/属性的判定,生成后按属性检查回读结果;具体映射和验证状态见 `references/dynamic_capability_matrix.md`。
@@ -131,7 +133,7 @@ e10-cli actionflow disable '{"appId":"动作流ID"}' #
131
133
  e10-cli actionflow update '@update-plan.json' --out update-result.json # 读取后按原 ID 保留式修改;一次保存,失败停止
132
134
  ```
133
135
 
134
- 常用发现命令:`form-search`、`form-applications`、`form-list`、`form-fields`、`workflow-browser-list`、`workflow-search`、`workflow-nodes`、`workflow-context-fields`、`component-context-fields`、`recipient-search`、`document-statuses`、`hrm-onboarding-fields`、`variable-list`、`variable-create`、`constant-list`、`constant-group-list`、`constant-group-create`、`constant-create`、`http-connectors`、`http-resources`、`http-interfaces`、`http-interface-detail`、`application-list`、`design-versions`、`read-stash`。变量/常量计划定义和引用见 `references/dynamic_resources.md`。
136
+ 常用发现命令:`form-search`、`form-applications`、`form-list`、`form-fields`、`data-source-condition-fields`、`workflow-browser-list`、`workflow-search`、`workflow-nodes`、`workflow-context-fields`、`component-context-fields`、`recipient-search`、`document-statuses`、`hrm-onboarding-fields`、`variable-list`、`variable-create`、`constant-list`、`constant-group-list`、`constant-group-create`、`constant-create`、`http-connectors`、`http-resources`、`http-interfaces`、`http-interface-detail`、`application-list`、`design-versions`、`read-stash`。变量/常量计划定义和引用见 `references/dynamic_resources.md`。
135
137
 
136
138
  执行设置支持 `actuator`(`main` 主执行器 / `low` 慢速执行器)、`controlMode`(`max` 高并发 / `low` 低并发)、`concurrentNum`、`maxExecuteTimeout`(秒)、`maxCycleTimes`、`maxQueryNum`、`memoryKb`(KB)、`streamlineFlag`(布尔值或 0/1)及 `reminders`。提醒 `configType` 1–6 依次为执行失败、执行异常、执行超时、输出失败、其他状态、动作流受影响;每项可传 `enabled`、`remindType`(1 手动选择 / 2 动作流创建人 / 3 维护权限对象)和 `remindUser:[{id,name}]`。提醒数组只 patch 指定类型,其余提醒保留。
137
139
 
@@ -175,7 +177,9 @@ e10-cli actionflow update '@update-plan.json' --out update-result.json #
175
177
  - 使用 `Condition` 或 e-builder 筛选条件时,读取 `references/condition_rules.md`。
176
178
  - 组件需要计算、转换或函数树时,读取 `references/function_rules.md`;仅在该组件的说明允许函数树时使用。
177
179
 
178
- 筛选条件左值的字段身份必须按实时 `componentKey` 生成,不能只按字段 ID 是否为数字判断。普通 e-builder 业务字段才使用 `field_<id>`;`Workflow` 关联流程字段使用原始数字 `fieldName`、`fieldType:"String"`、空 `module`/`originBrowserType`、`formInfo.formId/layoutId`、顶层 `sformId` 和仅含 `fieldId` 的 `config`。Workflow 的 `sformId` 必须由 `workflowPath.formIds` 反查真实流程表单对象;查不到就停止,不能用目标表单版本 ID兜底。保存后正式回读必须检查左值没有出现“已删除”。
180
+ 筛选条件输入 `filter.field.id` 使用数据源 `/ds/fields` 返回的字段 `id`;可用 `actionflow data-source-condition-fields` 查询。唯一匹配的接口 `name` 也可兼容解析,重名须使用 id。显示名称和 `component-context-fields` 中每次生成的临时字段 id 不能当筛选 id;输出字段 `queryFields` 使用 `showDataSourceFields` 的 id,下游动态赋值使用 `component-context-fields` 返回的 paramKey。
181
+
182
+ 编译输出的 `filterInput.datas[].fieldName` 与输入 id 是不同口径:优先使用 `ds/fields` 的真实 `name`;不能把 `field_<id>` 等输出形式当输入 id。`Workflow` 关联流程字段还需要真实类型及关联对象;`sformId` 必须由 `workflowPath.formIds` 反查真实流程表单对象,查不到就停止。保存后正式回读检查条件左值没有显示“已删除”。
179
183
 
180
184
  ## 不变约束
181
185
 
@@ -6,7 +6,11 @@
6
6
 
7
7
  ## 选择项跨表映射
8
8
 
9
- 来源、目标选择字段的选项 ID 经当前租户字段元数据确认一致时,直接 `mapping` 动态赋值;批量新增会生成“依据值下级”(`switchType:"sub"`),这是任务明细字段的默认做法。需求指定固定选项时,不做动态映射;在 `constants` 中传该字段的真实 `valueKey`(可同时带 `label`),例如 `"<任务类型字段id>":{"kind":"fixed","value":"<研发的valueKey>","label":"研发"}`。CLI 会保留目标字段 `Select` 类型,使设计器以下拉项“研发”回显。只有两边选项 ID 不同、且需求明确要求按语义转换时,才在 `formula`(批量明细为 `detail[].formula`)中用 `SWITCH` 显式映射:
9
+ 按名称匹配时,`mapping` 的目标写 `{ "target": "<目标字段id>", "assignType": "name" }`,来源必须是组件上下文实际返回的选项名称字段(如 `..._name`)。如果传入的是实时上下文中的选择字段本身,CLI 只会在同一上下文确有唯一对应名称字段时切换过去;找不到时明确报错。名称匹配会同时设置外层和动态公式中的 `switchType: "optionName"`,不要求两表选项 valueKey 相同。普通文本来源可直接作为名称输入。模板或级联字段的可用模式以设计器能力为准。
10
+
11
+ 依据值下级使用另一套设置:保持 `switchType: "sub"` 和 type=10,在 mapping 的目标对象中传 `fieldSet: {"matchMode":"optionName"}` 按名称匹配,或 `fieldSet: {"matchMode":"optionId"}` 按选项 value 匹配。名称模式引用真实上下文中的名称字段;value 模式引用值字段。`fieldSet.assignTypeset` 属于“新建时赋值内容”的设置,不替代 `matchMode`。未明确指定匹配方式时不擅自补写。
12
+
13
+ 来源、目标选择字段的选项 valueKey 经当前租户字段元数据确认逐项一致时,可直接按值动态赋值;批量新增会生成“依据值下级”(`switchType:"sub"`)。需求指定固定选项时,在 `constants` 中传目标字段的真实 `valueKey`(可同时带 `label`)。两边选项名称相同时可以按上面的名称方式匹配;名称不同时,如需求明确给出转换关系,可在 `formula`(批量明细为 `detail[].formula`)中用 `SWITCH` 显式映射:
10
14
 
11
15
  ```json
12
16
  {
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 何时使用
4
4
 
5
- 更新已有 e-builder 数据;新增数据使用 `ActionEbAdd`,删除数据使用 `ActionEbDelete`。
5
+ 更新 e-builder 数据;若需要在匹配条件不满足时新增数据,可开启 `needAdd`;删除数据使用 `ActionEbDelete`。
6
6
 
7
7
  ## 先查询
8
8
 
@@ -26,6 +26,10 @@
26
26
 
27
27
  `basisValue` 只是 `id` 和 `fieldUpdate` 的批量开关,不能用于条件筛选更新。CLI 会在编译前校验这些组合,避免把一个模式的定位参数静默带入另一个模式。
28
28
 
29
+ ### 条件不满足时插入
30
+
31
+ `needAdd` 对应平台参数 `EbuilderActionDTO.needAdd`,默认 `false`。设为 `true` 时启用“条件不满足时插入”:匹配到目标记录时更新,未匹配到时新增。需要“存在则更新、否则新增”时应设置 `needAdd: true`,不需要另行组合新增组件。
32
+
29
33
  当 `id` 或 `fieldUpdate` 配置了 `basisValue` 时,如果 `updateId` 或 `updateFieldCondition.updateField[].assign` 的来源字段 `paramKey` 明确位于该依据值下级(例如依据值为 `100.12345[]`,来源字段为 `100.12345[].67890`),CLI 会按前端“依据值下级”协议编译为 `type:"10"`、`config.switchType:"sub"`。只有路径明确以该依据值加 `.` 开头时才会转换;不相关的明细字段仍按普通动态上下文编译,不凭路径形状猜测依据关系。`basisValue` 和来源字段都应使用前置上下文接口返回的真实字段元数据。
30
34
 
31
35
  ### 明细表策略
@@ -1,32 +1,32 @@
1
- # 按日期字段触发(`DateTrigger`)
2
-
3
- ## 何时使用
4
-
5
- 根据 e-builder 数据中的日期/日期时间字段,在指定时机触发。
6
-
7
- ## 先查询
8
-
9
- 查询数据源、日期字段、可输出字段和操作人。
10
-
11
- ## 不可猜测
12
-
13
- 日期字段必须属于当前数据源;操作人必须是当前租户真实人员对象。
14
-
15
- ## 最小计划
16
-
17
- `dataSource`、`dateField`、`operator`;其余时间规则按需求指定。未明确限制 `queryFields` 时不要传它(或传空数组),CLI 会默认全选主表和系统字段,包含后续链接/赋值需要的“数据ID”。
18
-
19
- ## 重复周期
20
-
21
- `repeatType` 使用平台真实编码:
22
-
23
- | 值 | 含义 |
24
- |---|---|
25
- | `1` | 一次(不重复) |
26
- | `2` | 每天 |
27
- | `3` | 工作日(周一至周五) |
28
- | `4` | 每周 |
29
- | `5` | 每月 |
30
- | `6` | 每年 |
31
-
32
- 不指定时默认为 `1`,即只触发一次。不要把 `1` 当成每日。
1
+ # 按日期字段触发(`DateTrigger`)
2
+
3
+ ## 何时使用
4
+
5
+ 根据 e-builder 数据中的日期/日期时间字段,在指定时机触发。
6
+
7
+ ## 先查询
8
+
9
+ 查询数据源、日期字段、可输出字段和操作人。
10
+
11
+ ## 不可猜测
12
+
13
+ 日期字段必须属于当前数据源;操作人必须是当前租户真实人员对象。
14
+
15
+ ## 最小计划
16
+
17
+ `dataSource`、`dateField`、`operator`;其余时间规则按需求指定。未明确限制 `queryFields` 时不要传它(或传空数组),预检会全选当前数据源字段选择器实际返回的字段,无法获取时停止生成。
18
+
19
+ ## 重复周期
20
+
21
+ `repeatType` 使用平台真实编码:
22
+
23
+ | 值 | 含义 |
24
+ |---|---|
25
+ | `1` | 一次(不重复) |
26
+ | `2` | 每天 |
27
+ | `3` | 工作日(周一至周五) |
28
+ | `4` | 每周 |
29
+ | `5` | 每月 |
30
+ | `6` | 每年 |
31
+
32
+ 不指定时默认为 `1`,即只触发一次。不要把 `1` 当成每日。
@@ -8,13 +8,17 @@
8
8
 
9
9
  查询数据源、全部字段、筛选字段、输出字段和查询操作人。
10
10
 
11
+ `actionflow data-source-condition-fields '{"dataSource":{...}}'` 查询条件左值;`filter.field.id` 使用其中的 `id`。`name` 唯一时可兼容输入,重名必须使用 id。`queryFields` 的 id 来自 `showDataSourceFields`,下游引用使用 `component-context-fields` 的 paramKey;不要把临时上下文 id 当条件字段 id。CLI 输出的条件 `fieldName` 取真实字段 `name`。
12
+
11
13
  ## 不可猜测
12
14
 
13
15
  筛选、排序、分组和输出字段都必须来自当前数据源;统计结果应作为后续节点上下文使用。
14
16
 
15
17
  ## 最小计划
16
18
 
17
- `dataSource`、`person`;按 `opType` 补充查询字段和筛选条件。未明确限制 `queryFields` 时不要传它(或传空数组),CLI 会默认全选主表和系统字段,包含“数据ID”。未指定 `filter` 时,CLI 会生成平台必填的中性条件“数据ID不为空”,不改变业务筛选范围;只有明确指定 `filter` 时才使用业务条件。
19
+ `dataSource`、`person`;按 `opType` 补充查询字段,必须提供 `filter` 或 `conditionFormula`。未给出条件时应向用户确认具体筛选条件;即使需要查询全部数据,也不能臆造中性条件,应先确认并使用 `ds/fields` 返回的真实字段及支持的运算符。未明确限制 `queryFields` 时不要传它(或传空数组),CLI 会默认全选实时可选字段。
20
+
21
+ 业务模块数据源使用 `dataSourceKind:"business_module"`,可用平台实时分类名 `groupName` 或分类 ID `groupId` 缩小范围(例如 HRM);未指定时逐分类查找,存在多个候选时须明确选择。字段查询沿用选中数据源返回的服务组。
18
22
 
19
23
  ## 动态分页和条件
20
24
 
@@ -1,19 +1,19 @@
1
- # 定时批量触发(`TimeBatchTrigger`)
2
-
3
- ## 何时使用
4
-
5
- 按一次、按小时、按日、按周、按月或 Quartz Cron 表达式扫描 e-builder 表单中满足条件的数据,并逐条触发后续动作。
6
-
7
- ## 先查询
8
-
9
- 查询数据源、查询/筛选字段与操作人。
10
-
11
- ## 不可猜测
12
-
13
- 批量筛选只能使用数据源真实字段;操作人不能使用文本或不存在的系统别名。
14
-
15
- `rate` 使用平台原生频率编码:`1` 一次、`2` 按小时、`3` 按日、`4` 按周、`5` 按月、`6` Cron。图形化频率需要 `startTime`;按小时/日/周用 `cycle` 或指定列表,按月用 `day`、`atWeek` 或 `lastWeek`。`orderFields` 支持查询排序;`endTime` 支持定时窗口;`openRetryFlag` 支持失败补偿。
16
-
17
- ## 最小计划
18
-
19
- `dataSource`、`rate`、`startTime`、`operator`;按需求补充频率子项、查询字段、筛选条件、`orderFields`、`endTime` 和 `openRetryFlag`。未明确限制 `queryFields` 时不要传它(或传空数组),CLI 会默认全选主表和系统字段,包含后续链接/赋值需要的“数据ID”。Cron 模式使用 `rate=6` + `cornString`,例如每天 10:00:`0 0 10 * * ?`。
1
+ # 定时批量触发(`TimeBatchTrigger`)
2
+
3
+ ## 何时使用
4
+
5
+ 按一次、按小时、按日、按周、按月或 Quartz Cron 表达式扫描 e-builder 表单中满足条件的数据,并逐条触发后续动作。
6
+
7
+ ## 先查询
8
+
9
+ 查询数据源、查询/筛选字段与操作人。
10
+
11
+ ## 不可猜测
12
+
13
+ 批量筛选只能使用数据源真实字段;操作人不能使用文本或不存在的系统别名。
14
+
15
+ `rate` 使用平台原生频率编码:`1` 一次、`2` 按小时、`3` 按日、`4` 按周、`5` 按月、`6` Cron。图形化频率需要 `startTime`;按小时/日/周用 `cycle` 或指定列表,按月用 `day`、`atWeek` 或 `lastWeek`。`orderFields` 支持查询排序;`endTime` 支持定时窗口;`openRetryFlag` 支持失败补偿。
16
+
17
+ ## 最小计划
18
+
19
+ `dataSource`、`rate`、`startTime`、`operator`;按需求补充频率子项、查询字段、筛选条件、`orderFields`、`endTime` 和 `openRetryFlag`。未明确限制 `queryFields` 时不要传它(或传空数组),预检会全选当前数据源字段选择器实际返回的字段,无法获取时停止生成。Cron 模式使用 `rate=6` + `cornString`,例如每天 10:00:`0 0 10 * * ?`。
@@ -103,12 +103,22 @@
103
103
  | `e10-cli form rename <objId> <appId> <新名称>` | 修改**表单名称**。⚠ 表单名称与**自定义标题**是分开的两套(标题用 `form title`),两者不一致属正常状态,不是漏改。平台该接口是整对象覆盖,命令内部**先读回完整对象、只换名称、再整体回写**,不会清掉其它配置;改完回读校验。改名称**不影响**标题 |
104
104
  | `e10-cli form title get <objId> <appId>` | 查看**表单自定义标题**:标题文本、表单页面名、是否隐藏页面头部 / 隐藏表单标题、页面名是否全含 |
105
105
  | `e10-cli form title set <objId> <appId> [--show-name <文本>] [--form-page-name <文本>] [--hide-header\|--no-hide-header] [--hide-title\|--no-hide-title] [--page-name-all-in 0\|1]` | 修改自定义标题(至少要给一项)。先读回现有标题、叠上改动再整份提交,改完逐项回读校验。⚠ **标题处于隐藏状态时,改了标题文本界面上也看不出变化**(`get` 会提示) |
106
- | `e10-cli form permission data add <objId> <appId> --org-type <类型> [--org-id <id>] --rights <view/edit/delete...> [--file-rights <view/download...>]` | **表单数据权限**,`1/view=查看`、`2/edit=编辑`、`3/delete=删除`,可任意组合;附件 `401/view=查看`、`402/download=下载`。固定写入 `obj_data_admin` 并按新增权限 ID 回读。授权对象支持 all/role/department/company/employee/group/post;all 的 orgId 自动为 0 |
107
- | `e10-cli form permission imp-exp <list\|add> <objId> <appId> ...` | **导入导出权限**(独立分类 `data_imp_exp`,⚠ 勿用 `data add` 加——共享权限只有 查看/编辑/删除 三种,导出/导入不在其中)。`list` 查看;`add --org-type <类型> [--org-id] --rights <export/import/delete-import...> [--update-import] [--export-details] [--export-attachment] [--export-field-range listShowField|all]`。`export=8`、`import=9`、`delete-import=93`(93 须与 import 同选,自动带更新导入);添加后按权限 ID 回读 `impRightList` 校验。删除同 `permission remove --right-id` |
106
+ | `e10-cli form permission create <add\|update\|show> <objId> <appId> [--right-id <id>] --org-type <类型> [--org-id <id>] [--org-name <名>] [设置项]` | **创建权限**(谁能新建记录)。通用对象支持 all/employee/department/company/role/group/post/partTime/grade/external/externalAll;`all`/`externalAll` 的 orgId 自动 0。`update` 只改点名项并整行回写;`show` 查看布局/优先级/描述/条件/同步列表。设置项见下一行 |
107
+ | `e10-cli form permission data <add\|update\|show> <objId> <appId> [--right-id <id>] --target <general\|creator\|field\|matrix\|govern> --rights <view/edit/delete/comment...> [设置项]` | **共享权限**(查看/编辑/删除/评论;`1/2/3/4`)。`general` 通用对象(同上 11 种类型);`creator --creator-related 0~7` 创建人相关;`field --field <字段id或名>` 字段相关(`--sub-form-id` 支持明细字段);`matrix --matrix <矩阵>` 或 `--eb-form <e-Builder表单>` + `--matrix-value`/`--matrix-value-raw`/`--matrix-condition-raw`;`govern --govern-json <json>` 政务单位相关。附件 `--file-rights view/download/edit`(401/402/403)与 `--file-right-type temporary\|insert`(临时/插入赋权)。保存后按权限 ID 回读核对。详见 `form/guide-form-permission.md` |
108
+ | 权限通用设置(`create` / `data` 的 `add\|update`) | `--layout` / `--edit-layout` / `--mobile-layout` / `--mobile-edit-layout`(关联 PC、编辑、移动、移动编辑布局)、`--same-layout on\|off`(PC 移动统一布局)、`--layout-order <n>`(优先级,0 最高)、`--desc <文本>` / `--desc-label-id`(权限描述)、`--condition <json\|@file>` / `--clear-condition`(权限条件,写入前按平台算法压缩)、`--org-virtual-type`(组织维度)、`--contain-extra on\|off`(含兼职人员)、`--min-seclevel` / `--max-seclevel`(安全级别 0~100)、`--exclude-obj <json\|@file>`(排除项)、`--sync-forms <objId...>`(同步至其他表单,整体替换)。修改只改点名项;未点名的布局、条件、同步列表原样保留 |
109
+ | `e10-cli form permission imp-exp <list\|add\|update\|show> <objId> <appId> [--right-id <id>] ...` | **导入导出权限**(独立分类 `data_imp_exp`,⚠ 勿用 `data add` 加——共享权限只有 查看/编辑/删除 三种,导出/导入不在其中)。`list` 查看;`add/update --org-type <类型> [--org-id] --rights <export/import/delete-import...> [--update-import] [--export-details] [--export-attachment] [--export-field-range listShowField\|allField]`;`show` 查看单条。`export=8`、`import=9`、`delete-import=93`(93 须与 import 同选,自动带更新导入);授权对象与共享权限同一套 11 种通用对象(含兼职岗位/职级/外部联系人/所有外部联系人)。保存后按权限 ID 回读 `impRightList` 校验;修改只改点名项。删除同 `permission remove --right-id`。不支持权限描述/更新导入校验数据编辑权限/导入关联布局/优先级/同步至其他表单 |
108
110
  | `e10-cli form permission archive <list\|add\|remove\|card> <objId> <appId> --workflow <workflowId>` | **流程归档权限**(归档后数据对谁可见/可改/可删,**按流程各一套**,与共享权限不同)。`add --target <general/creator/field/matrix>`:`general` 通用对象配 `--org-type`+`--org-id`;`creator` 创建人相关配 `--creator-related 0~7`;`field` 字段相关配 `--field <字段id或名>`(`--sub-form-id` 支持明细字段,未收录的字段类型需 `--org-type field_xxx` 显式指定);`matrix` 矩阵相关配 `--matrix`(真矩阵)或 `--eb-form`(e-Builder 表单)+ `--matrix-value`(e-Builder 表单按名取它自己的人员字段/创建者,人员字段 valueType=resource),另可加**矩阵条件**(e-Builder 表单的条件列自动取该表单主表字段) `--matrix-condition '<json>'`(可重复 / `@文件` 给数组;右值三选一 `value` 固定值 / `field` 引本表单字段 / `fieldRef` 直给字段描述符)+ `--matrix-condition-relation and\|or`。权限码 `5/view` 归档查看、`6/edit` 归档编辑、`7/delete` 归档删除(**归档查看是系统默认必选,界面不可取消;`--rights` 没传 view 会自动并入**);归档附件另算 `501/view`、`502/download`、`503/edit`(**不是**共享权限的 401/402;**归档附件查看 501 同属系统必选,不给 `--file-rights` 也会带上**)。保存后按 ID 回读逐项核对;`card <workflowId> <appId> [--set 0\|1]` 读写归档卡片开关。详见 `form/guide-form-archive-permission.md` |
109
111
  | `e10-cli form permission <list\|add\|remove\|rebuild> <objId> <appId>` | 权限通用管理及兼容入口。新建权限与数据权限分开;旧 `add --right-type` 保留兼容。`list` 查看全部分类;`remove --right-id <id[,id...]>` 删除一条或多条权限;添加后提示 `isShowRebuild=2` 时执行 `rebuild` |
110
112
  | `e10-cli form list-view <objId> <appId>` | 查看台账/数据列表(获取 viewId 用于菜单配置) |
111
- | `e10-cli form list-columns <objId> <appId> <listId> [--add <fieldId...>] [--remove <fieldId...>] [--set @columns.json] [--terminal pc/mobile] [--pc-only]` | 查看/批量设置台账显示列。增量追加、移除或整组指定顺序/列宽/格式;整组模式与增删互斥。支持主表和明细子字段,保留已有列未指定属性、事件及数据主键;一次保存并回读核对目标列和另一终端。详见 `references/form/guide-list-columns.md` |
113
+ | `e10-cli form list-columns <objId> <appId> <listId> [--add <fieldId...>] [--remove <fieldId...>] [--set @columns.json] [--terminal pc/mobile] [--pc-only]` | 查看/批量设置台账显示列。增量追加、移除或整组指定顺序/列宽/格式;整组模式与增删互斥。支持主表和明细子字段,保留已有列未指定属性、事件及数据主键;一次保存并回读核对目标列和另一终端。**只作用于表格式 `tableField`**:列表式/卡片视图(NList)会直接报错并指向 `form nlist`。详见 `references/form/guide-list-columns.md` |
114
+ | `e10-cli form list-columns field show\|set <objId> <appId> <listId> --field <fieldId> [--text <标题>] [--custom-text <列名称>] [--remark <注释>] [--align left\|center\|right] [--width N] [--width-unit px\|%] [--merge-row on\|off] [--hidden-column on\|off] [--fixed on\|off] [--title-wrap on\|off] [--show-filter on\|off] [--wrap whole\|auto\|disabled] [--color '#RRGGBB'] [--font-size 16px] [--bold on\|off] [--terminal pc/mobile]` | 数据列表「字段设置」抽屉(`config.tableField[]`):列名称自定义、列注释、对齐、列宽、合并行、隐藏列、冻结、表头换行、列头筛选、换行设置、文字样式(颜色/字号/加粗)。只改点名字段与点名属性,其它字段/配置键/另一端原样回写,保存后只回读被改的键。与 `attr set`(`getListFields` 层)不是同一层 |
115
+ | `e10-cli form list-columns field event show\|set <objId> <appId> <listId> --field <fieldId> [--events '<json\|@file>'] [--terminal pc/mobile]` | 字段事件动作(`tableField[].eventGroup`):整段读写,外层按触发方式分组(`CLICKDATA`)、内层是依次执行的动作;**动作类型不设白名单**(NewPage / ClosePage / CopyLink / ShowMenu / JsCode 等原样透传),`show --json` 导出后可改完回写。缺 `id` / 触发名 / `disableDelete` 时自动补齐;写入对 PC 与移动端同时生效,保存后逐字回读 |
116
+ | `e10-cli form nlist field show\|set <objId> <appId> <listId> --field <fieldId> [--align left\|center\|right] [--hor-align 0\|1\|2] [--word-wrap on\|off] [--show-trans '<json>'] [--color '#RRGGBB'] [--font-size 14px] [--bold on\|off]` | 列表式字段展示属性(`config.cardLayout.grid` 单元格的 `field`):列表式没有表头,对齐/水平对齐码/换行/显示转换/文字样式都在这层。同字段多个单元格一并更新,只改点名键,其它单元格与移动端原样回写 |
117
+ | `e10-cli form list-config extend get\|set <objId> <appId> <listId> [--fields <fieldId...>] [--page-size N] [--page-mode <s>] [--clear]` | 拓展显示区域(`config.extendArea`):主列表之外再挂一组字段,运行时默认不显示。`--fields` 取自主列表 `tableField`、隐藏主键自动带上;新建补齐 `display:"none"` / `extendType:"current"` / `pageSize:"5"` / `pageMode:"part"` 并生成 32 位十六进制 id;`--clear` 写空对象。主列表与移动端配置原样回写 |
118
+ | `e10-cli form list-columns attr show\|set <objId> <appId> <listId> --field <fieldId> [--align left\|center\|right] [--remark <文本>] [--plain-text on\|off] [--view-data-detail on\|off] [--formula-type sum,avg\|none] [--formula-range currentPage,allPage] [--fixed on\|off] [--width N] [--width-unit px\|%] [--wrap whole\|auto\|disabled] [--hidden-column on\|off] [--editable 0\|1] [--rich-editor on\|off] [--show-name <名>] [--conversion '<json>'] [--terminal pc/mobile]` | 列属性层(`getListFields`):对齐、字段注释、纯文本展示、数据超链接、列统计与统计范围、冻结、列宽、换行设置、隐藏列、显示名、可编辑、富文本、显示转换。PC 写入走平台单字段接口 `saveListFieldById`(**两端同时生效**);`--terminal mobile` 按终端回写,只支持宽度/冻结/换行/隐藏这类独立属性。只改目标列,保存后回读目标列断言 |
119
+ | `e10-cli form list-filter sql get\|set <objId> <appId> <listId> [--sql @sql.json] [--base-sql <sql>] [--dialect "mysql=<sql>"] [--dataset-id <id>]` | **SQL 条件**(`filter.type=sql_where`):SQL 正文写进独立的 `sqlfragments` 数据集,视图只记数据集 ID。`sql.json` 键:`base` + `mysql/oracle/sqlserver/pg/dm/kingbase/st/oceanbase`(对应平台 `mysqlSql/oracleSql/sqlserverSql/pgSql/dmSql/kingBaseSql/stSql/oceanbaseMysql`)。主表别名 `t1`、明细 `d1`、`{参数}` 为运行时占位;保存后回读视图条件与数据集正文。`--dataset-id` 只切绑定不新建;`--ignore-empty on|off` 写「变量值为空时不参与过滤」(`filterIsNull`:on→false,off→true)。详见 `form/guide-form-view.md` |
120
+ | `e10-cli form list-filter http get\|set <objId> <appId> <listId> --url <url> [--method GET\|POST] [--param name=value] [--header name=value] [--form name=value] [--payload '<json>'] [--ignore-empty on\|off]` | **自定义接口条件**(`filter.type=http`):URL + 方法 + Params/Headers/Body(form-data 或 JSON)。落库 `data.{method,contentType,url,urlParams[],headers[],formData[],payload}`,`rootStr="自定义接口"`,PC/移动端同写;保存后回读 URL 与方法。详见 `form/guide-form-view.md` |
121
+ | `e10-cli form list-config get\|set <objId> <appId> <listId> [选项...] [--terminal pc/mobile] [--pc-only]` | 视图设置(`getNListConfig` 顶层键),选项按平台面板分组:基本信息(`--show-title`/`--hide-checkbox`/`--default-display-edit-modal`/`--operate-column-fixed`/`--spread-top-button`/`--prefix-column`/`--field-choose-width-fixed`/`--quick-search-textarea`/`--sub-form-main`/`--sub-form-show-empty`/`--head-merge`/`--page-size`;数据列表插件另有 `--title`/`--hide-table-header`/`--operate-btn-fixed`/`--group '<json>'`/`--superior '<json>'`)、网格(`--grid-row|col|width|height` + `-type`)、显示数据(`--permission-scope`/`--data-range-type`/`--list-data-range`/`--show-follow`/`--read-state`/`--set-top|type|rule`)、批量(`--batch-add|edit` + `-fields`/`--batch-edit-value`/`--can-delete`)、展示模式(`--open-child-list`/`--sup-field`/`--expand-level`/`--expand-num-limit`/`--expand-page-type`/`--enable-group`/`--group-field`/`--group-enable-count`/`--only-display-data-group`)。只改点名键、其余原样回写,保存后只回读被改的键;`get` 额外展示操作按钮摘要(只读,不写 `buttonConfig`)。键名与平台「视图设置」面板的配置项一一对应 |
112
122
  | `e10-cli form list-unit <objId> <appId> <listId> <fieldId> <后缀> [--prefix <前缀>] [--clear] [--pc-only]` | 设置台账列显示**单位**(后缀/前缀)。平台无字段级单位属性,靠列表列配置 `showTrans.ruleConfig.suffix/prefix` 实现。如 `form list-unit ... <fieldId> "(元)"` 让列显示单位;`--clear` 清除 |
113
123
  | `e10-cli form list-format <objId> <appId> <listId> <fieldId> [--thousandths] [--no-thousandths] [--decimal <n>] [--clear] [--pc-only]` | 查看/设置台账列**千分位/小数位**(Number/Money 列)。不加参数显示当前;`--thousandths` 开千分位(列 `format:"THOUSANDS"`)、`--no-thousandths` 关、`--decimal <n>` 小数位数(`decimalLength`)、`--clear` 清除恢复默认。与 `list-unit`(单位,走 `showTrans`)是两套不同机制。**自动保留移动端配置** |
114
124
  | `e10-cli form list-click <objId> <appId> <listId> <fieldId> [--target <formObjId>] [--open-mode <模式>] [--win-size <尺寸>] [--clear] [--pc-only]` | 设置台账列**点击跳转**。`--open-mode` 支持当前页面/新窗口/弹出窗口/右侧滑出/右侧推出;`--win-size` 仅用于滑出/推出,具体数值按需求填写:百分比使用 `%`(0~100),像素使用 `px`,两种单位不可混用。缺省 `800px` |
@@ -135,10 +145,11 @@
135
145
  | `e10-cli form list-permission <objId> <appId> <listId> [--add-all] [--add-user <userId> --name <name>] [--add-role <roleId> [--name <name>]] [--add-matrix <矩阵id> --name <name>] [--share-level <n>] [--seclevel <min>-<max>] [--add-raw '<json>'] [--remove <id>] [--remove-all] [--clear]` | 查看/配置**台账视图权限**(谁能查看这个台账)。`--add-all` 所有人(自动把空 dataid 与 0 视为同一主体,避免重复)、`--add-user` 人员、`--add-role` 角色、`--add-matrix` 矩阵(同 `form permission archive` 的矩阵条件参数:`--matrix-condition` / `--matrix-condition-relation` / `--matrix-condition-comp-type` / `--matrix-condition-raw`)。`--remove <id>` 删除指定权限;`--remove-all` 删除全部“所有人”,与 `--add-all` 同用可清理重复后只保留一条;`--clear` 清空全部。保存走 `list/permission/save` 全量覆盖并回读。另支持共享级别和安全级别范围 |
136
146
  | `e10-cli form list-search-group <objId> <appId> <listId> [--add <字段名或fieldId>] [--add-custom <名称>] [--custom @配置.json] [--archive on\|off] [--position 0\|1] [--display 平铺\|下拉] [--show-archive on\|off] [--option-order default\|field] [--no-show-count] [--count-update] [--only-with-data] [--date-granularity <列表>] [--default-group <粒度> --default-value <起,止>] [--options <列表>] [--default-options <列表>] [--remove <fieldId>] [--clear] [--pc-only]` | 查看/配置**分类搜索**(台账顶部/下拉的分类筛选)。`--add` 收**字段名或 fieldId**,已在里面则按本次参数**重建那条**(改配置走它)—— 本次没给的选项一律回到缺省,所以只改一项时要把想留着的一起给全。支持四类:**选项类**(Select/RadioBox/CheckBox)、**浏览框类**(Ebuilder/Browser/Employee/Department)、**日期类**(DateComponent)、**系统字段**(创建者/数据ID 这类)。`--position` **0=顶部(缺省)/1=左侧(下拉样式)**(平台枚举 Top="0"、Left/DropDown="1");`--display` 是「显示方式」:`平铺` 写 `tabStyle="tab"`、`下拉` 写 `"select"`(缺省下拉);`--show-archive on|off` 控制「显示封存的选项」`showArchiveOption`(缺省 on)。`--add-custom <名称>` 添加**自定义分类**(`componentKey=GroupCustom`):id 由前端生成 18 位数字、`fieldId=GroupCustom_<id>`(平台没有创建接口),分类值 `listGroupSets` 初始为空、之后在设计器里配置;同名分类再执行即更新(保留原 id),可用 `--remove <名称|id|fieldId>` 删除;`--option-order` 浏览框的选项排序(default 默认排序 / field 按字段属性设置);`--no-show-count` 关掉统计数字,`--count-update` 让统计数字**随搜索结果更新**(选项/浏览框/日期可用,缺省只在进入台账时统计一次);`--only-with-data` **仅显示有数据的选项**(**只有**选项/浏览框类有这个键,日期与系统字段用不了;这个键**勾上才出现**,不勾整个键都没有);`--date-granularity` 日期粒度(全年/半年/季度/月,缺省全要);`--options` / `--default-options` 控制选项类**哪些选项出现 / 哪些默认选中**。日期类的**默认值**用 `--default-group <粒度>` + `--default-value "起,止"`(两个**必须一起给**;平台存的是一条 `{value,group}` 的默认值,并把它对应的粒度标成默认勾上)。**仅主表字段,不支持明细(产品边界,传明细报错)**。走 saveNListConfig `config.searchConditions.groupFilters`(视图级明文) |
137
147
  | `e10-cli form nlist apply <objId> <appId> <listId> <template>` | 配置**列表式视图**(台账)的显示列:模板是二维数组(行 → 列),列项可绑表单字段(`fieldId`)或做**自定义文本**列(不给 `fieldId`、给 `html`,里面用 `{{字段名}}` 插入表单字段)。自动读移动端槽位一并写入。`show` 查看当前配置。⚠ 仅对列表式(NList)生效,表格式用 `form table-view`。详见 `form/guide-list-custom-text.md` |
148
+ | `e10-cli form nlist add-field\|remove-field <objId> <appId> <listId> <fieldId...> [--form-id <id>]` | **增量**改列表式/卡片视图显示字段:追加的字段各占一行,移除时同时清 `listField` 与 `cardLayout.grid`;已有布局原样保留(不重建模板)。隐藏主键 `id=5` 恒保留。PC 与移动端一次提交,两端回读 |
138
149
  | `e10-cli form view list <objId> <appId> [--with-comps]` | 列出表单全部视图。`--with-comps` 额外拉每个视图布局 comps 数、标出空视图(NList 数据视图会显示「读取失败」,正常) |
139
- | `e10-cli form view rename <objId> <appId> <viewId> <新名称>` | 修改视图名称并回读。**表单视图与台账各走一条接口**(台账走 `viewlist/buttonEvent` 的编辑动作,其余视图走 `layout/rename`),命令按类型自动选。保留原视图 ID 和配置。需求名称与默认名称不一致时统一用此命令,不新建重复视图 |
140
- | `e10-cli form view delete <objId> <appId> <viewId>` | 删除视图(表单视图 / 台账 / 看板等,按类型自动选接口)。⚠ **不可逆、无回收站**。先回读定位目标,删完**再回读确认确实没了**才算成功 |
141
- | `e10-cli form view create <objId> <appId> <视图名> [--type formView\|kanbanView\|calendarView\|mindMapView\|multiView] [--terminal PC\|MOBILE] [--layout-type FLOW\|EXCEL] [--detail <明细名>] [--sub-form-id <明细subFormId>]` | 给**已有表单**添加视图。`formView` 创建后是空布局,需续跑 `form view populate` 填字段;`kanbanView`/`calendarView`/`mindMapView`/`multiView` 建视图实体。**multiView 数据维度**:缺省主表;明细表维度用 `--detail <明细名>`(按名解析)或 `--sub-form-id <明细subFormId>`(直传),传值即明细维度(`subFormMain:true`)。**台账(NList)视图**用 `form table-view create`,不在此命令 |
150
+ | `e10-cli form view rename <objId> <appId> <viewId> <新名称>` | 修改视图名称并回读。**表单视图与台账各走一条接口**(台账与卡片视图走 `viewlist/buttonEvent` 的编辑动作,报文 `viewType` 分别为 `nListView`/`cardView`;其余视图走 `layout/rename`),命令按类型自动选。保留原视图 ID 和配置。需求名称与默认名称不一致时统一用此命令,不新建重复视图 |
151
+ | `e10-cli form view delete <objId> <appId> <viewId>` | 删除视图(表单视图 / 台账 / **卡片视图** / 看板等,按类型自动选接口;台账与卡片视图走 `viewlist/buttonEvent`)。⚠ **不可逆、无回收站**。先回读定位目标,删完**再回读确认确实没了**才算成功 |
152
+ | `e10-cli form view create <objId> <appId> <视图名> [--type formView\|cardView\|kanbanView\|calendarView\|mindMapView\|multiView] [--terminal PC\|MOBILE] [--layout-type FLOW\|EXCEL] [--detail <明细名>] [--sub-form-id <明细subFormId>]` | 给**已有表单**添加视图。`formView` 创建后是空布局,需续跑 `form view populate` 填字段;`cardView` 走精简 body(不带 layoutType),创建后必须在 `cardView.detail` 回读到,否则报错提示抓 createView 报文;`kanbanView`/`calendarView`/`mindMapView`/`multiView` 建视图实体。**multiView 数据维度**:缺省主表;明细表维度用 `--detail <明细名>`(按名解析)或 `--sub-form-id <明细subFormId>`(直传),传值即明细维度(`subFormMain:true`)。**台账(NList)视图**用 `form table-view create`,不在此命令 |
142
153
  | `e10-cli form view populate <objId> <appId> <viewId>` | 把已有字段按布局类型填入 formView。视图为空则整份填;**视图已有字段时只补缺**——只补视图里还没有的字段,已有组件的排版与属性一个不动(重跑幂等)。表单新增字段后要让它出现在某个视图里,也走这条 |
143
154
  | `e10-cli form message list <appId> [--obj-id <objId>] [--keyword <kw>] [--page-size <n>] [--page-index <n>]` | 列出**消息提醒**(表单数据变动时提醒人)。不传 `--obj-id` 列出整个应用的;传了**在本地按表单收口**(平台那条过滤参数不生效)。详见 `references/form/guide-form-message.md` |
144
155
  | `e10-cli form message get <appId> <triggerId> [--obj-id <objId>]` | 查看单条消息提醒,含**推送渠道**与提醒对象。渠道不在列表与详情返回里,命令额外读一次补上 |
@@ -149,6 +160,7 @@
149
160
  | `e10-cli form native <子命令>` | **原生表单引擎**(formdatareport/biaoge,非 Ebuilder;只有 formId、无 objId、无 appId)的命令组:`create <名称>` 建表、`read <formId>` 读字段、`add-field` / `add-detail-table` / `init` / `field-group`,以及 `list [--keyword]`(存活表单,名称模糊搜)、`trash`(回收站)、`delete <formId...>`(停用→检查→删除,进回收站,删后回读确认)。**注意与 EB 表单不通用**:URL 前缀 `/api/formdatareport/...`、body module `biaoge` 或 `formdatareport` 视接口而定 |
150
161
  | `e10-cli form layout read <objId> [--view-id <id>] [--raw] [--out <file>]` | 读表单布局结构;raw/out 获取完整原生快照,含 workbook。不传 view-id 读默认布局 |
151
162
  | `e10-cli form layout describe <id> [--module ebuilderform\|workflow\|biaoge] [--id-type obj\|form] [--view-id <id>] [--terminal PC\|MOBILE] [--field <名称或ID>] [--out <file>]` | 只读输出目标布局、字段标题和值组件、分组、明细及网格摘要;`--out` 保存完整结构化结果,保留 `layout read --raw` 作为原生快照入口。使用方法见 `form/layout/inspect-edit.md` |
163
+ | `e10-cli form layout detail get\|set <id> <subFormId> --view-id <布局ID> [--module ebuilderform\|workflow] [--config <JSON或@文件>] [--apply]` | 查询或部分更新明细容器属性、行操作权限和操作者过滤;set 默认预览,apply 保存并回读。开启必填需正整数 requiredRows,自动开启显示、编辑;过滤只允许目标明细内的人员/部门/分部字段。完整码表及参数见 `form/layout/detail-settings.md` |
152
164
  | `e10-cli form layout diff <id> --terminal PC\|MOBILE --config @layout-edit.json [--module ...] [--view-id <id>] [--out <file>]` | 只读预览表格式布局行高、列宽、已有单元格样式及字段标题/值组件位置的前后差异、关联组件和冲突;不会保存。配置见 `form/layout/inspect-edit.md` |
153
165
  | `e10-cli form layout edit <id> --terminal PC\|MOBILE --config @layout-edit.json --preview @layout-diff.json [--module ...] [--view-id <id>] [--out <file>]` | 核对预览报告、配置哈希和最新快照后,单次保存表格式布局网格样式或同网格字段位置调整,并独立回读;旧预览会阻断。见 `form/layout/inspect-edit.md` |
154
166
  | `e10-cli form layout document export <id> --out <file> [--module ...] [--view-id <id>]` | 只读导出可编辑的完整 `formLayout` 文档,保留目标、环境、字段与快照指纹。见 `form/layout/document.md` |
@@ -448,7 +460,7 @@
448
460
  > **删连线**: delete-link 直接操作出口列表 API (getWfpNodeLinkTable → saveNodeLinkEditTable, deleteRows)
449
461
  > **删节点**: delete-node 直接操作节点列表 API (saveNodeEditTable, deleteRows),`--bridge` 自动桥接
450
462
  > **查看节点/出口**: nodes --mode list / link-list 走列表 API(比 chart XML 更完整)
451
- > **加分支条件两种方式**:
463
+ > **加分支条件两种方式**:
452
464
  > - 简化: `condition add` — 一行命令搞定
453
465
  > - 完整: generate-link-id → save-layout → save-condition → set-link-condition-key
454
466
  > **加节点提交动作(字段常量赋值)**: save-action @action.json(格式见 `workflow/guide-workflow-action.md`)
@@ -731,3 +743,11 @@ e10-cli workflow action list-node <wf> <nodeId>
731
743
  写入使用 `--data JSON/@文件`,未指定项保留,单次保存后回读。详见 [参数、范围与自然语言示例](../workflow/guide-opinion-settings.md)。
732
744
 
733
745
  | `e10-cli workflow base file-set <workflowId>` | 附件删除开关:`--create-delete 0/1`、`--async-delete 0/1`;先读后合并,保存后回读。 |
746
+
747
+ 页面权限:`page permission get/schema`、`common add/update/remove`、`matrix fields/add/update/remove`;默认预览,`--apply` 保存。配置结构与码表见 [页面权限指南](../ebuilder-designer/guide-page-permission.md)。
748
+
749
+ 组合页面:使用 page combination 的 list/get/create/update/copy/delete、tab add/update/remove/order、tab permission get/schema/add/remove。配置见 [组合页面指南](../ebuilder-designer/guide-page-combination.md)。
750
+
751
+ 普通页面源码:`designer source read <pageId> --terminal pc|mobile [--out file]`;`designer source check --js-file page.js --css-file page.css` 离线检查;`designer source set <pageId> --terminal pc|mobile --js-file page.js --css-file page.css [--apply]` 默认预览,`--clear-js/--clear-css` 显式清空;`designer source sdk [--query 方法名] [--id 接口ID] [--out file]` 查询接口文档。见 [页面源码指南](../ebuilder-designer/page-source/page-source-guide.md) 及 [完整 SDK 索引](../ebuilder-designer/page-source/sdk-index.md)。
752
+
753
+ 页面事件:`designer event schema` 查询动作及码表;`get/set/enable/remove <pageId> [--comp id] [--collection name --item id] --terminal pc|mobile|both` 定位页面、组件或子项;写命令使用 `--trigger CLICK|DIDMOUNT`,`set --config @action.json` 替换唯一动作,`enable --value true|false` 启停,`--apply` 保存。`lookup --kind page|esb|logic|device|person|sign --id id` 读取资源;`condition-create <pageId> --comp id --where-file file [--apply]` 独立创建刷新过滤条件。完整配置见 [事件指南](../ebuilder-designer/events/guide-events.md)。
@@ -0,0 +1,88 @@
1
+ # 页面事件集成动作
2
+
3
+ 动作统一以 `{type,enabled?,config}` 保存。config 使用各动作自己的原生字段,CLI 不执行这些动作,保存不等于调用成功。实际资源从对应浏览或设置接口取得,不能用显示名称伪造对象。
4
+
5
+ ## 资源查询
6
+
7
+ ```bash
8
+ e10-cli designer event lookup --kind page --id <pageId>
9
+ e10-cli designer event lookup --kind esb --id <applicationId>
10
+ e10-cli designer event lookup --kind logic --id <logicId> --app-id <appId>
11
+ e10-cli designer event lookup --kind device --id <deviceId>
12
+ e10-cli designer event lookup --kind person --id <resourceId>
13
+ e10-cli designer event lookup --kind sign --id <签署组件ID>
14
+ ```
15
+
16
+ ESB 查询还读取输入表结构,返回 resource 和 inputSchema;逻辑流分页读取候选并按 ID 唯一匹配。没有匹配时检查目标应用和资源 ID。查询对象用于构造各动作配置,不能把查询到对象的 id、userid、applicationId 等不同标识互换。
17
+
18
+ ## 执行 ESB:EsbFlow
19
+
20
+ config 对应 esbFlow,包含:
21
+
22
+ - `esbData`:选择的自定义触发动作流完整对象数组,包含 id/applicationId、triggerType 等真实元数据。
23
+ - `params`:输入配置,包含 formType:input、businessModule、tableList 等;每张表记录 setFormId、isMain、orderNum、fieldDatas、extFieldDatas。
24
+ - `extFieldDatas` 按输入参数 paramName 配置,包含 value、switchType、originValue、otherParam、fieldName。固定值/平台表达式可使用 fixvalue,例如 value 和 originValue 均为 `{time}`。
25
+
26
+ 输入定义通过 `/api/bs/esb/setting/customData/application/getCustomDataByApplicationId` 查询,applicationId 为选中动作流的应用 ID,formType 为 input。tableList 内 id 是输入定义表 ID,实际映射中的 setFormId 应指向该定义表;映射记录自身的 id 不与业务字段 ID 混用。命令要求传完整参数结构,不根据名称猜测字段或主明细归属。
27
+
28
+ 配置外壳为 `{"type":"EsbFlow","config":{"esbData":[真实动作流对象],"params":完整输入配置}}`。输入必需字段和类型以该动作流的定义为准,不把 `{time}` 默认适配所有日期、月份字段。
29
+
30
+ ## 执行逻辑流:ExecLogicFlow
31
+
32
+ config 对应 execLogicFlow:`data` 为完整前端逻辑流对象数组,`inputParams` 为输入映射数组。绑定对象 type 必须为 FRONTEND,来源页和终端等 ref 信息须与逻辑流的设计一致。
33
+
34
+ ```json
35
+ {"type":"ExecLogicFlow","config":{"data":[{"id":"逻辑流ID","type":"FRONTEND","refType":"PAGE","name":"逻辑名称","isEnable":1}],"inputParams":[]}}
36
+ ```
37
+
38
+ 它绑定已有逻辑流,不代替创建节点、连线、变量、函数和生成逻辑代码。逻辑流资源与事件引用分别维护,不能只创建空画布就宣称业务逻辑完成。输入映射按目标逻辑流的真实定义提供。
39
+
40
+ ## 企业微信会话:OpenWeComSession
41
+
42
+ config 对应 openWeComSession:chatidInput 会话标识、chatidInputType 输入来源、userids 人员对象数组、useridsType 人员来源、chatidOutput 输出会话变量名。当前结构化写入支持两种来源字段均为 fixvalue。
43
+
44
+ ```json
45
+ {"type":"OpenWeComSession","config":{"chatidInput":"会话标识","chatidInputType":"fixvalue","userids":[],"useridsType":"fixvalue","chatidOutput":"chatId"}}
46
+ ```
47
+
48
+ 人员数组从真实人员浏览取得。会话变量不是页面参数名称的任意别名,需与目标变量设计匹配;实际打开依赖企业微信环境与账号对应关系。CLI 保存不会创建或打开会话。
49
+
50
+ ## 扫描上传:ScanUpload
51
+
52
+ config 对应 scanUploadInfo。它包含设备和扫描文件处理设置:
53
+
54
+ | 字段 | 配置内容 |
55
+ |---|---|
56
+ | deviceTypeSelect、deviceType | 设备选择模式和类型对象 |
57
+ | useDevice | 实际设备浏览对象数组 |
58
+ | dataProcess、actionFlow | 数据处理模式及选中的动作流 |
59
+ | isMerge、isAutoCheck、isParallel | 合并、自动检查、并行相关布尔设置 |
60
+ | fileType、uploadPathSelect | 输出文件和上传位置相关设置 |
61
+ | scanFileNameType、scanFileNameCustom、scanFileNameField | 文件名模式、自定义名称、字段来源 |
62
+
63
+ 这些模式字段保留本入口原始字符串码,含义应从对应设备设置读取,不用字段名称推断所有枚举。可用设置接口有 `/api/bs/intdevice/web/eb/device/getBaseSetting`、`getScanSetting`、`getCardSetting`。实际 deviceType 3 的浏览对象标记为身份证阅读器,不把其他设备类型的选项和扫描器设置互换。
64
+
65
+ 需要真实 useDevice;有 actionFlow 时提供完整浏览对象。未提供完整模式设置会被拒绝。配置检查不能替代实体设备、驱动、客户端和文件处理实测。
66
+
67
+ ## 身份识别:LoginAuthentication
68
+
69
+ config 对应 loginAuthenticationInfo,包括 deviceType 对象数组、useDevice 实际设备对象数组。设备类型浏览可能包含多类设备;识别方式标识与设备对象中的 deviceType 不一定使用同一套编号,不能因都叫 deviceType 就直接对应。读取设备资料后保留完整对象。
70
+
71
+ 本动作仅维护事件配置,不修改登录策略、不关闭鉴权,也不通过普通页面回读证明设备身份识别已通过。
72
+
73
+ ## 发起签署:StartSignAction
74
+
75
+ 原生字段为 startSignAction.signSetting、params。当前接口资料只有空 signSetting 和空 params,未定义非空签署目标的完整保存形状。因此本命令可读取、保留已有动作,并通过 enable/remove 管理;set 新增或替换明确拒绝。需补充选择真实 NewSign 设置、填写参数并保存的报文后再开放,不能保存空目标冒充可用。
76
+
77
+ ## 报表动作
78
+
79
+ 以下动作只提供 type 和可选 enabled,不接收 config:
80
+
81
+ | type | 功能 |
82
+ |---|---|
83
+ | ReportPrint | 报表打印 |
84
+ | ReportExport | 报表导出 |
85
+ | CreateReportShot | 生成报表快照 |
86
+ | ViewReportShot | 查看报表快照 |
87
+
88
+ 例如 `{"type":"ReportExport","enabled":true}`。它们依赖当前报表页面和运行上下文,不能通过添加到空白普通页面就获得报表数据。保存协议和启停可单独检查;实际打印、导出、生成/查看快照应在对应报表中验收。
@@ -0,0 +1,108 @@
1
+ # 页面事件交互动作
2
+
3
+ 以下 config 放在 `{ "type":"动作类型", "enabled":true, "config":... }` 中。查询当前定义用 `designer event schema`;先读 [事件指南](guide-events.md) 理解单事件单动作和终端规则。
4
+
5
+ ## 打开页面 NewPage
6
+
7
+ 设置目标页面、打开形式、参数以及窗口外观。config 对应平台 linkInfo,目标信息通过 `designer event lookup --kind page --id <页面ID>` 获取。目标页面名称、所属应用等使用真实元数据。
8
+
9
+ | openMode | 本事件入口的含义 |
10
+ |---|---|
11
+ | `"4"` | 当前页面 |
12
+ | `"0"` | 新窗口 |
13
+ | `"5"` | 弹出窗口 |
14
+ | `"1"` | 右侧滑出 |
15
+ | `"7"` | 右侧推出 |
16
+
17
+ 本码表不等于组合页面 openMode 或 ebSdk.openPage 的 openType。实际打开方式在 linkInfo.openMode;目标 page 中可能也保留 openMode 元数据,不能拿它覆盖本动作设置。
18
+
19
+ ```json
20
+ {
21
+ "type":"NewPage",
22
+ "config":{
23
+ "page":{"pageId":"目标页面ID","pageName":"目标名称","pageType":"PAGE","parentId":"pages","appid":"目标应用ID","terminalScopes":"PC,MOBILE"},
24
+ "openMode":"5",
25
+ "name":"打开详情",
26
+ "params":[{"name":"source","value":"workbench","type":"fixed"}],
27
+ "modalWidth":"70%","modalHeight":"70%",
28
+ "pageTitle":{"nameAlias":"详情"},
29
+ "isBlankClose":false
30
+ }
31
+ }
32
+ ```
33
+
34
+ 附加设置有 `icon` 图标描述、`flatToBottom`、`isRelationCustomPage`、`winSize`/`winSizeNew` 等。它们是否生效与窗口形式有关,读取对应设置后保留,不把所有尺寸字段当成同义字段。参数数组支持多个命名参数,本轮结构化参数为 name/value/type:fixed,值可包含平台表达式;不将其等同普通字符串替换。
35
+
36
+ `paramsMode` 可保留本入口的 `"1"`/`"2"`。两值与界面传参模式的逐项含义尚需独立核清,命令不按其他入口的码表转换;未指定时不自动补值。存在此字段不意味着可以宣称“隐式传参无限长”。
37
+
38
+ ## 刷新组件 RefreshComp
39
+
40
+ 设置 `selectedCom` 目标组件数组;`filterIsNull`、`isOverrideFilter` 为本动作过滤选项布尔值;有过滤时携带完整 `dataset` 和 `conditionSet`。目标必须属于配置终端,both 会映射组件 ID。
41
+
42
+ ```json
43
+ {"type":"RefreshComp","config":{"selectedCom":["列表组件ID"],"filterIsNull":true,"isOverrideFilter":true}}
44
+ ```
45
+
46
+ SQL WHERE 条件独立存储,不能把条件文本直接放进 condition ID:
47
+
48
+ ```bash
49
+ e10-cli designer event condition-create <pageId> --comp <触发组件ID> --where-file where.txt --apply
50
+ ```
51
+
52
+ where.txt 是条件文本,例如 `1=1`。命令将文本 LZW 压缩,以 multipart 的 compId、conditionValue 创建条件并返回 ID;它不执行查询,也不替代数据库字段、表达式有效性及权限检查。创建是独立写入,之后保存事件失败时可能留下未引用条件,先记录 ID 再检查,不反复创建。
53
+
54
+ 引用形式:
55
+
56
+ ```json
57
+ {"type":"sql_where","isNewFilter":true,"version":1,"data":{"condition":"返回条件ID","formDw":false,"sourceId":"目标数据源ID"}}
58
+ ```
59
+
60
+ 该对象放在 config.conditionSet 中,同时提供与目标组件一致的 dataset。条件创建接口没有在本命令中定义删除能力。
61
+
62
+ ## 关闭页面 ClosePage / 复制链接 CopyLink
63
+
64
+ 这两种动作不需要 config:`{"type":"ClosePage"}`、`{"type":"CopyLink"}`。关闭效果取决于页面宿主,复制效果取决于浏览器剪贴板能力,不用数据保存成功替代运行检查。
65
+
66
+ ## 条件控制 IF
67
+
68
+ 有规则判断和确认框两种模式,控制本次事件的条件结果;本入口不能在其后追加多个动作作为流程。
69
+
70
+ ```json
71
+ {"type":"IF","config":{"mode":"dialog","title":"确认","content":"是否继续?","confirmText":"是","cancelText":"否"}}
72
+ ```
73
+
74
+ 规则使用明确的逻辑组和条件,不写平台机器 key:
75
+
76
+ ```json
77
+ {"type":"IF","config":{"mode":"rule","condition":{"logic":"and","rules":[{"left":"{userid}","operator":"eq","right":"人员ID"},{"logic":"or","rules":[{"left":"20","operator":"gt","right":"15"}]}]}}}
78
+ ```
79
+
80
+ 本事件规则保存 `relationship:"1"` 为 AND、`"0"` 为 OR。CLI 同时生成条件树和条件显示文字;不沿用其他范围条件的逻辑码。当前可结构化编译 eq 等于、gt 大于;right 使用字符串。left 按平台表达式或输入文字原样写入,不把字段标题擅自转换为组件引用。规则模式保存 Rule;确认框保存 Dialog,切换模式移除原规则遗留字段。树最多 12 层、500 节点。
81
+
82
+ ## JavaScript JsCode
83
+
84
+ ```json
85
+ {"type":"JsCode","config":{"code":"ebSdk.msg('操作完成');"}}
86
+ ```
87
+
88
+ 命令生成 compiledCode;编译失败不保存。脚本只影响当前事件环境,不在这里写页面 load 外壳或 import/export。可调用页面源码导出的函数:`pageSdk.getExports().方法名()`,前提是源码中存在对应 export。
89
+
90
+ ## 显示/隐藏组件 ShowHideComponent
91
+
92
+ config 为数组,每项 id 是目标组件 ID,display 为 show 显示、hide 隐藏、switchover 切换:
93
+
94
+ ```json
95
+ {"type":"ShowHideComponent","config":[{"id":"列表组件ID","display":"switchover"},{"id":"导航组件ID","display":"show","children":[{"id":"导航项ID","display":"hide"}]}]}
96
+ ```
97
+
98
+ children 用于组件内部真实子项,并非任意 DOM 节点;不把显示隐藏当成权限控制。
99
+
100
+ ## 显示菜单 ShowMenu
101
+
102
+ `menuType`:dropDownMenu 下拉菜单、footerMenu 底部菜单;`displayMode`:vertical 纵向、horizontal 横向;本次可用位置字段 menuPosition 包括 bottom、right,其他位置需读取本入口设置后再用。
103
+
104
+ ```json
105
+ {"type":"ShowMenu","config":{"menuType":"dropDownMenu","menuPosition":"bottom","displayMode":"vertical","menuItems":[{"menuName":"显示提示","menuIcon":"","action":{"type":"JsCode","config":{"code":"ebSdk.msg('菜单执行');"}}}]}}
106
+ ```
107
+
108
+ 每项可配置独立 id、menuName、menuIcon。新增时省略 id 由 CLI 生成;action 编译为该菜单项的 CLICK 事件,仍只有一个动作。读取原有菜单时可见原生 menuEvent;action 与 menuEvent 二选一,不同时填。嵌套菜单事件最多 8 层,不能利用嵌套数组绕过单事件单动作限制。
@@ -0,0 +1,57 @@
1
+ # 页面与组件事件配置
2
+
3
+ ## 整体功能介绍
4
+
5
+ 事件配置把页面或组件的触发时机与一个动作绑定,可实现打开/关闭页面、刷新、条件判断、JavaScript、组件显隐、菜单、集成及其他交互。它保存于页面布局的事件设置中,与页面源码 JS/CSS 分别维护。
6
+
7
+ **同一配置对象的单击 CLICK 和加载完成 DIDMOUNT 各最多一条,每条最多一个动作。两种事件可以同时存在。** 修改事件是替换该动作,不追加动作列表;没有动作的事件不承担业务行为。条件控制不是包含多个动作的流程编排,需要复杂步骤时绑定已经配置好的逻辑流或使用相应事件脚本。
8
+
9
+ 配置对象可为页面、组件,或组件中的导航/按钮子项。每个对象独立维护事件;显示菜单的菜单项也可有自己的单击事件。页面事件位于 `layout.config.eventGroup`,组件事件位于 `comp.config.eventGroup`,子项事件位于对应子项。它们采用双层 `eventGroup`,条目内 `events` 只包含一个动作,不把平台数组形式理解为支持多个动作。
10
+
11
+ ## 查询与命令
12
+
13
+ ```bash
14
+ e10-cli designer event schema
15
+ e10-cli designer event get <pageId> --comp <compId> --terminal pc
16
+ e10-cli designer event get <pageId> --terminal pc
17
+ e10-cli designer event set <pageId> --comp <compId> --trigger CLICK --config @action.json
18
+ e10-cli designer event set <pageId> --comp <compId> --trigger CLICK --config @action.json --apply
19
+ e10-cli designer event enable <pageId> --comp <compId> --trigger CLICK --value false --apply
20
+ e10-cli designer event remove <pageId> --comp <compId> --trigger DIDMOUNT --apply
21
+ ```
22
+
23
+ 默认预览,`--apply` 保存。`set` 在没有该事件时新增,在已有该事件时替换唯一动作,保留另一种事件。`enable` 只改动作启用标记;`remove` 删除指定触发事件。不存在事件时删除会报错,不将其当成成功。
24
+
25
+ 省略 `--comp` 操作页面事件。操作直接子项时传 `--comp`、`--collection menuConfig|btnGroup|navMenus|newButtons`、`--item <子项ID>`,按真实 ID 定位,不按显示名称或数组下标猜测。
26
+
27
+ 配置统一为:
28
+
29
+ ```json
30
+ {"type":"JsCode","enabled":true,"config":{"code":"ebSdk.msg('操作完成');"}}
31
+ ```
32
+
33
+ `type` 为本入口动作类型,`enabled` 默认为 true,`config` 为该动作的设置。普通动作配置见 [交互动作](actions-interaction.md),外部资源和宿主相关动作见 [集成动作](actions-integration.md)。
34
+
35
+ ## 终端与保存
36
+
37
+ `--terminal pc|mobile|both`,默认 pc。单端修改保留另一端;both 以 PC 组件为源,通过双向 `refCompId` 定位 MOBILE 组件。刷新目标、显隐目标会转换为对应终端的组件 ID,缺少配对则拒绝。子项必须在对应终端存在相同真实子项 ID;不按名称猜测子项映射。
38
+
39
+ JavaScript 和集成参数属于不透明业务内容,不在字符串内部替换组件 ID。两端需要不同代码或打开方式时,分别设置 pc/mobile,不使用 both 强行覆盖。打开方式只控制对应动作,不改变目标页面的布局或权限。
40
+
41
+ 保存前读取整页双端布局和编辑状态;页面已锁定时停止,不解除他人编辑锁。保存前再次检查并发变化,保存后核对组件、事件、页面配置和源码,再释放本次保存软锁。其他事件、其他组件、源码和主题配置均保留。失败或响应丢失时先 get 查询状态,不重复盲写。
42
+
43
+ 修改动作类型时仅生成新类型的配置,移除上一类型遗留的参数。更新同一事件仍需提供完整 config,不对缺少的动作参数作隐式继承。
44
+
45
+ ## 编写边界
46
+
47
+ 事件 JavaScript 的 `code` 与 `compiledCode` 同步维护;这里只编译脚本片段,不使用页面源码的 JSONP/load 外壳,不使用 import/export。`ebSdk`、`pageSdk` 和事件环境由平台提供。异步动作衔接可使用仅适用于事件动作的 `asyncFn`,见 [页面 SDK 基础](../page-source/sdk-foundations.md)。
48
+
49
+ 页面源码 `pageSdk.on('pageLoad')` 与事件配置 `DIDMOUNT` 是不同入口,不混写名称。涉及组件内部数据时按页面 SDK 的 compLoad 等时机处理;不要在加载完成动作中无条件刷新自身,造成重复加载。
50
+
51
+ 配置保存检查和前台行为检查分别判断。设备、企业微信、签署和报表依赖对应资源及运行宿主;不能因动作成功写入普通页面就认定这些外部功能已经执行成功。
52
+
53
+ ## 当前支持范围
54
+
55
+ 18 种动作可识别、查询和保留;其中 17 种支持本指南所列结构的新增/替换。StartSignAction 仅支持已有动作的查询、启停、删除,非空签署目标的新增结构需补充后开放。规则条件结构化编译当前支持 eq、gt 和 and/or 嵌套;不将其他模块的操作符或逻辑码直接拿来填。
56
+
57
+ 原有导航专用命令只覆盖其特定跳页配置,不代表通用事件能力;统一事件设置使用本组命令。新增事件或动作排序不适用于这里。