weaver-e10-builder 1.5.9 → 1.5.11

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 (249) hide show
  1. package/dist/commands/app.d.ts.map +1 -1
  2. package/dist/commands/app.js +159 -8
  3. package/dist/commands/app.js.map +1 -1
  4. package/dist/commands/designer-setters.d.ts.map +1 -1
  5. package/dist/commands/designer-setters.js +26 -4
  6. package/dist/commands/designer-setters.js.map +1 -1
  7. package/dist/commands/form-association-manage.d.ts.map +1 -1
  8. package/dist/commands/form-association-manage.js +3 -0
  9. package/dist/commands/form-association-manage.js.map +1 -1
  10. package/dist/commands/form-button-actions-cmd.d.ts +3 -0
  11. package/dist/commands/form-button-actions-cmd.d.ts.map +1 -0
  12. package/dist/commands/form-button-actions-cmd.js +309 -0
  13. package/dist/commands/form-button-actions-cmd.js.map +1 -0
  14. package/dist/commands/form-button-permission-cmd.d.ts +3 -0
  15. package/dist/commands/form-button-permission-cmd.d.ts.map +1 -0
  16. package/dist/commands/form-button-permission-cmd.js +132 -0
  17. package/dist/commands/form-button-permission-cmd.js.map +1 -0
  18. package/dist/commands/form-button-props-cmd.d.ts +3 -0
  19. package/dist/commands/form-button-props-cmd.d.ts.map +1 -0
  20. package/dist/commands/form-button-props-cmd.js +236 -0
  21. package/dist/commands/form-button-props-cmd.js.map +1 -0
  22. package/dist/commands/form-button.d.ts.map +1 -1
  23. package/dist/commands/form-button.js +82 -55
  24. package/dist/commands/form-button.js.map +1 -1
  25. package/dist/commands/form-formula-linkage.d.ts.map +1 -1
  26. package/dist/commands/form-formula-linkage.js +154 -63
  27. package/dist/commands/form-formula-linkage.js.map +1 -1
  28. package/dist/commands/form-list-permission.d.ts.map +1 -1
  29. package/dist/commands/form-list-permission.js +31 -12
  30. package/dist/commands/form-list-permission.js.map +1 -1
  31. package/dist/commands/form-list-search-group.d.ts.map +1 -1
  32. package/dist/commands/form-list-search-group.js +66 -3
  33. package/dist/commands/form-list-search-group.js.map +1 -1
  34. package/dist/commands/form-list-utils.d.ts +14 -0
  35. package/dist/commands/form-list-utils.d.ts.map +1 -1
  36. package/dist/commands/form-list-utils.js +65 -4
  37. package/dist/commands/form-list-utils.js.map +1 -1
  38. package/dist/commands/form-message.d.ts.map +1 -1
  39. package/dist/commands/form-message.js +16 -4
  40. package/dist/commands/form-message.js.map +1 -1
  41. package/dist/commands/form-permission.d.ts +20 -0
  42. package/dist/commands/form-permission.d.ts.map +1 -1
  43. package/dist/commands/form-permission.js +442 -6
  44. package/dist/commands/form-permission.js.map +1 -1
  45. package/dist/commands/menu-permission.d.ts.map +1 -1
  46. package/dist/commands/menu-permission.js +6 -7
  47. package/dist/commands/menu-permission.js.map +1 -1
  48. package/dist/commands/menu.d.ts +2 -2
  49. package/dist/commands/menu.d.ts.map +1 -1
  50. package/dist/commands/menu.js +107 -51
  51. package/dist/commands/menu.js.map +1 -1
  52. package/dist/commands/wf-form.d.ts.map +1 -1
  53. package/dist/commands/wf-form.js +56 -36
  54. package/dist/commands/wf-form.js.map +1 -1
  55. package/dist/commands/workflow-function-management.d.ts +5 -0
  56. package/dist/commands/workflow-function-management.d.ts.map +1 -0
  57. package/dist/commands/workflow-function-management.js +91 -0
  58. package/dist/commands/workflow-function-management.js.map +1 -0
  59. package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -1
  60. package/dist/commands/workflow-node-assign-flow.js +1 -0
  61. package/dist/commands/workflow-node-assign-flow.js.map +1 -1
  62. package/dist/commands/workflow-node-sign.d.ts +0 -12
  63. package/dist/commands/workflow-node-sign.d.ts.map +1 -1
  64. package/dist/commands/workflow-node-sign.js +31 -102
  65. package/dist/commands/workflow-node-sign.js.map +1 -1
  66. package/dist/commands/workflow-opinion-settings.d.ts +5 -0
  67. package/dist/commands/workflow-opinion-settings.d.ts.map +1 -0
  68. package/dist/commands/workflow-opinion-settings.js +51 -0
  69. package/dist/commands/workflow-opinion-settings.js.map +1 -0
  70. package/dist/commands/workflow-subprocess.d.ts.map +1 -1
  71. package/dist/commands/workflow-subprocess.js +370 -20
  72. package/dist/commands/workflow-subprocess.js.map +1 -1
  73. package/dist/commands/workflow.d.ts.map +1 -1
  74. package/dist/commands/workflow.js +35 -61
  75. package/dist/commands/workflow.js.map +1 -1
  76. package/dist/index.js +4 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -1
  79. package/dist/services/actionflow/calendar_mapper.js +44 -13
  80. package/dist/services/actionflow/calendar_mapper.js.map +1 -1
  81. package/dist/services/actionflow/component_registry.d.ts.map +1 -1
  82. package/dist/services/actionflow/component_registry.js +6 -0
  83. package/dist/services/actionflow/component_registry.js.map +1 -1
  84. package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -1
  85. package/dist/services/actionflow/components/custom_set_form.js +9 -7
  86. package/dist/services/actionflow/components/custom_set_form.js.map +1 -1
  87. package/dist/services/actionflow/components/index.d.ts.map +1 -1
  88. package/dist/services/actionflow/components/index.js +2 -1
  89. package/dist/services/actionflow/components/index.js.map +1 -1
  90. package/dist/services/actionflow/components/inner_mq_listener.d.ts +6 -0
  91. package/dist/services/actionflow/components/inner_mq_listener.d.ts.map +1 -1
  92. package/dist/services/actionflow/components/inner_mq_listener.js +50 -2
  93. package/dist/services/actionflow/components/inner_mq_listener.js.map +1 -1
  94. package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -1
  95. package/dist/services/actionflow/components/meeting_create.js +6 -2
  96. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  97. package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
  98. package/dist/services/actionflow/components/multiple_execution.js +20 -19
  99. package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
  100. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  101. package/dist/services/actionflow/components/output.js +3 -10
  102. package/dist/services/actionflow/components/output.js.map +1 -1
  103. package/dist/services/actionflow/components/schedule_create.js +2 -2
  104. package/dist/services/actionflow/components/schedule_create.js.map +1 -1
  105. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  106. package/dist/services/actionflow/components/workflow_actions.js +48 -19
  107. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  108. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  109. package/dist/services/actionflow/context_preflight.js +47 -10
  110. package/dist/services/actionflow/context_preflight.js.map +1 -1
  111. package/dist/services/actionflow/custom_trigger_context.d.ts.map +1 -1
  112. package/dist/services/actionflow/custom_trigger_context.js +1 -0
  113. package/dist/services/actionflow/custom_trigger_context.js.map +1 -1
  114. package/dist/services/actionflow/formula_service.d.ts +7 -0
  115. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  116. package/dist/services/actionflow/formula_service.js +39 -9
  117. package/dist/services/actionflow/formula_service.js.map +1 -1
  118. package/dist/services/actionflow/machine_key.d.ts +13 -0
  119. package/dist/services/actionflow/machine_key.d.ts.map +1 -0
  120. package/dist/services/actionflow/machine_key.js +62 -0
  121. package/dist/services/actionflow/machine_key.js.map +1 -0
  122. package/dist/services/actionflow/param_group_dto.d.ts.map +1 -1
  123. package/dist/services/actionflow/param_group_dto.js +14 -5
  124. package/dist/services/actionflow/param_group_dto.js.map +1 -1
  125. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  126. package/dist/services/actionflow/preflight_service.js +9 -3
  127. package/dist/services/actionflow/preflight_service.js.map +1 -1
  128. package/dist/services/app-publish.d.ts +25 -0
  129. package/dist/services/app-publish.d.ts.map +1 -1
  130. package/dist/services/app-publish.js +38 -0
  131. package/dist/services/app-publish.js.map +1 -1
  132. package/dist/services/app-range.d.ts +66 -0
  133. package/dist/services/app-range.d.ts.map +1 -0
  134. package/dist/services/app-range.js +137 -0
  135. package/dist/services/app-range.js.map +1 -0
  136. package/dist/services/form-association.d.ts +13 -0
  137. package/dist/services/form-association.d.ts.map +1 -1
  138. package/dist/services/form-association.js +42 -0
  139. package/dist/services/form-association.js.map +1 -1
  140. package/dist/services/form-button-action.d.ts +82 -0
  141. package/dist/services/form-button-action.d.ts.map +1 -1
  142. package/dist/services/form-button-action.js +194 -2
  143. package/dist/services/form-button-action.js.map +1 -1
  144. package/dist/services/form-button-condition.d.ts +45 -0
  145. package/dist/services/form-button-condition.d.ts.map +1 -0
  146. package/dist/services/form-button-condition.js +106 -0
  147. package/dist/services/form-button-condition.js.map +1 -0
  148. package/dist/services/form-button-context.d.ts +41 -0
  149. package/dist/services/form-button-context.d.ts.map +1 -0
  150. package/dist/services/form-button-context.js +54 -0
  151. package/dist/services/form-button-context.js.map +1 -0
  152. package/dist/services/form-button-logicflow.d.ts +30 -0
  153. package/dist/services/form-button-logicflow.d.ts.map +1 -0
  154. package/dist/services/form-button-logicflow.js +59 -0
  155. package/dist/services/form-button-logicflow.js.map +1 -0
  156. package/dist/services/form-button-org.d.ts +30 -0
  157. package/dist/services/form-button-org.d.ts.map +1 -0
  158. package/dist/services/form-button-org.js +80 -0
  159. package/dist/services/form-button-org.js.map +1 -0
  160. package/dist/services/form-button-permission.d.ts +65 -0
  161. package/dist/services/form-button-permission.d.ts.map +1 -0
  162. package/dist/services/form-button-permission.js +113 -0
  163. package/dist/services/form-button-permission.js.map +1 -0
  164. package/dist/services/form-button-position.d.ts +4 -18
  165. package/dist/services/form-button-position.d.ts.map +1 -1
  166. package/dist/services/form-button-position.js +4 -36
  167. package/dist/services/form-button-position.js.map +1 -1
  168. package/dist/services/form-button-props.d.ts +55 -0
  169. package/dist/services/form-button-props.d.ts.map +1 -0
  170. package/dist/services/form-button-props.js +90 -0
  171. package/dist/services/form-button-props.js.map +1 -0
  172. package/dist/services/form-button-save.d.ts +49 -0
  173. package/dist/services/form-button-save.d.ts.map +1 -0
  174. package/dist/services/form-button-save.js +54 -0
  175. package/dist/services/form-button-save.js.map +1 -0
  176. package/dist/services/form-formula-linkage.d.ts +116 -20
  177. package/dist/services/form-formula-linkage.d.ts.map +1 -1
  178. package/dist/services/form-formula-linkage.js +250 -38
  179. package/dist/services/form-formula-linkage.js.map +1 -1
  180. package/dist/services/form-list-search-group.d.ts +17 -2
  181. package/dist/services/form-list-search-group.d.ts.map +1 -1
  182. package/dist/services/form-list-search-group.js +29 -12
  183. package/dist/services/form-list-search-group.js.map +1 -1
  184. package/dist/services/form-list-search.d.ts.map +1 -1
  185. package/dist/services/form-list-search.js +4 -0
  186. package/dist/services/form-list-search.js.map +1 -1
  187. package/dist/services/form-list-stats.d.ts.map +1 -1
  188. package/dist/services/form-list-stats.js +9 -2
  189. package/dist/services/form-list-stats.js.map +1 -1
  190. package/dist/services/form-message.d.ts +26 -7
  191. package/dist/services/form-message.d.ts.map +1 -1
  192. package/dist/services/form-message.js +52 -5
  193. package/dist/services/form-message.js.map +1 -1
  194. package/dist/services/form-permission-archive.d.ts +121 -0
  195. package/dist/services/form-permission-archive.d.ts.map +1 -0
  196. package/dist/services/form-permission-archive.js +375 -0
  197. package/dist/services/form-permission-archive.js.map +1 -0
  198. package/dist/services/form-view-populate.d.ts.map +1 -1
  199. package/dist/services/form-view-populate.js +7 -0
  200. package/dist/services/form-view-populate.js.map +1 -1
  201. package/dist/services/icon-path.d.ts +70 -0
  202. package/dist/services/icon-path.d.ts.map +1 -0
  203. package/dist/services/icon-path.js +80 -0
  204. package/dist/services/icon-path.js.map +1 -0
  205. package/dist/services/matrix-condition.d.ts +161 -0
  206. package/dist/services/matrix-condition.d.ts.map +1 -0
  207. package/dist/services/matrix-condition.js +403 -0
  208. package/dist/services/matrix-condition.js.map +1 -0
  209. package/dist/services/menu-catalog.d.ts +46 -0
  210. package/dist/services/menu-catalog.d.ts.map +1 -1
  211. package/dist/services/menu-catalog.js +80 -0
  212. package/dist/services/menu-catalog.js.map +1 -1
  213. package/dist/services/permission-entity.d.ts +55 -0
  214. package/dist/services/permission-entity.d.ts.map +1 -0
  215. package/dist/services/permission-entity.js +79 -0
  216. package/dist/services/permission-entity.js.map +1 -0
  217. package/dist/services/workflow-assign-flow.d.ts.map +1 -1
  218. package/dist/services/workflow-assign-flow.js.map +1 -1
  219. package/dist/services/workflow-function-management.d.ts +123 -0
  220. package/dist/services/workflow-function-management.d.ts.map +1 -0
  221. package/dist/services/workflow-function-management.js +425 -0
  222. package/dist/services/workflow-function-management.js.map +1 -0
  223. package/dist/services/workflow-matrix-rule.d.ts +34 -0
  224. package/dist/services/workflow-matrix-rule.d.ts.map +1 -0
  225. package/dist/services/workflow-matrix-rule.js +94 -0
  226. package/dist/services/workflow-matrix-rule.js.map +1 -0
  227. package/dist/services/workflow-opinion-settings.d.ts +67 -0
  228. package/dist/services/workflow-opinion-settings.d.ts.map +1 -0
  229. package/dist/services/workflow-opinion-settings.js +328 -0
  230. package/dist/services/workflow-opinion-settings.js.map +1 -0
  231. package/package.json +1 -1
  232. package/skill-docs/SKILL.md +5 -5
  233. package/skill-docs/_catalog.md +5 -1
  234. package/skill-docs/actionflows/SKILL.md +1 -0
  235. package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +2 -0
  236. package/skill-docs/actionflows/references/components/logic/Output.md +1 -1
  237. package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +1 -1
  238. package/skill-docs/actionflows/references/dynamic_capability_matrix.md +3 -3
  239. package/skill-docs/references/common/ref-cli-commands.md +63 -23
  240. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +9 -0
  241. package/skill-docs/references/form/guide-form-archive-permission.md +175 -0
  242. package/skill-docs/references/form/guide-form-association.md +13 -0
  243. package/skill-docs/references/form/guide-form-button.md +87 -0
  244. package/skill-docs/references/form/guide-form-message.md +19 -2
  245. package/skill-docs/references/form/guide-form-view.md +23 -3
  246. package/skill-docs/references/form/guide-formula-linkage.md +42 -11
  247. package/skill-docs/references/workflow/guide-function-management.md +154 -0
  248. package/skill-docs/references/workflow/guide-opinion-settings.md +126 -0
  249. package/skill-docs/references/workflow/guide-workflow.md +22 -6
@@ -58,6 +58,11 @@ e10-cli form view create <objId> <appId> "交付日历" \
58
58
  **已有组件的排版与属性一个不动**(重跑幂等,已齐就只回一句「已有完整字段布局」)。
59
59
  所以「表单加了字段、要让它出现在某个视图里」也走这条 —— 不必删视图重建。
60
60
 
61
+ 字段的**物理表归属**会一并带进组件:表单在「字段管理 → 其他」里加过附属物理表(一张表单多张物理表)时,
62
+ 字段列表会把各张物理表的字段一起返回,`populate` 按每个字段自己的物理表归属写入组件,
63
+ 附属表的字段在视图里挂对表、不会被平台按主表校验拒掉
64
+ (被拒的报错就是 `此字段不属于当前物理表,不能更改位置`)。
65
+
61
66
  ## 复制 / 设默认 / 删除一套布局
62
67
 
63
68
  设计器里视图卡片右键的三个动作,各有对应命令(都在 `form layout` 组下,不是 `form view`):
@@ -307,13 +312,28 @@ e10-cli form list-permission <objId> <appId> <listId> --remove-all --add-all
307
312
  # 共享级别 = roleLevel(验证: 总部=1 分部=2 全部=3)。同一角色可按不同共享级别各存一条(同 role 两条 roleLevel 1/2 并存)→ 去重键含 roleLevel
308
313
  # 幂等:目标(含 roleLevel)已存在时跳过保存,打印「无变化」
309
314
 
310
- # 分类搜索:按选项字段分类筛选(走 saveNListConfig config.searchConditions.groupFilters)
311
- # 仅主表选项类字段(Select/RadioBox/CheckBox),不支持明细字段(产品边界)
312
- e10-cli form list-search-group <objId> <appId> <listId> --add <选项字段fieldId>
315
+ # 分类搜索:台账左侧的分类筛选(走 saveNListConfig config.searchConditions.groupFilters)
316
+ # 支持主表选项类、浏览框类、日期类与系统字段;不支持明细字段(产品边界)
317
+ e10-cli form list-search-group <objId> <appId> <listId> --add <字段名或fieldId>
318
+ e10-cli form list-search-group <objId> <appId> <listId> --add <字段> --position 0 --option-order field
319
+ e10-cli form list-search-group <objId> <appId> <listId> --add <字段> --default-options "选项1,选项2" # 默认选中
320
+ e10-cli form list-search-group <objId> <appId> <listId> --add <字段> --options "选项1,选项3" # 只让这些选项出现
321
+ e10-cli form list-search-group <objId> <appId> <listId> --add <字段> --count-update # 统计数字随搜索结果更新
322
+ e10-cli form list-search-group <objId> <appId> <listId> --add <字段> --only-with-data # 仅显示有数据的选项
323
+ e10-cli form list-search-group <objId> <appId> <listId> --add <日期字段> --date-granularity 月,季度 \
324
+ --default-group month --default-value "2024-01-01 00:00:00,2024-12-31 23:59:59" # 日期类默认区间
313
325
  e10-cli form list-search-group <objId> <appId> <listId> --remove <fieldId>
314
326
  e10-cli form list-search-group <objId> <appId> <listId> --clear
315
327
  ```
316
328
 
329
+ `--add` 对同一个字段**重建**那条分类搜索:本次没给的选项一律回到缺省(不勾默认值、全显示、不勾统计更新、不勾仅显示有数据),所以要改其中之一就把那条要保留的选项一起给全。
330
+
331
+ 两个开关的适用范围不同,用错类型会当场报错而不是写一个界面上看不见的键:
332
+
333
+ - `--count-update`(统计数字随搜索结果更新):选项 / 浏览框 / 日期类可用。缺省关,数字只在进入台账时统计一次。
334
+ - `--only-with-data`(仅显示有数据的选项):**只有**选项 / 浏览框类有这个键,日期与系统字段用不了。这个键**勾上才出现** —— 不勾时整个键都没有(不会写成 0)。
335
+ - `--no-show-count` 管的是**统计数字显不显示**,与 `--count-update` 是两回事。
336
+
317
337
  `list-hierarchy` 与 `list-group` 不可混为一谈:前者按自关联字段建立父子树,后者按普通字段聚合分组。需求出现“上下级”“父级”“树形”“根据上级类型展示”时使用 `list-hierarchy`。字段名不要求固定为“上级类型”,但字段关系必须满足自关联单选。
318
338
 
319
339
  字段 ID 来自 `form read <objId> --app-id <appId>` 或 `form list-columns` 当前列(系统列如 `2`创建者/`3`创建时间也可增删;`5`数据ID主键自动保留,禁止移除)。显示列命令保存后回读校验,`otherTerminalPreserved:true` 表示另一终端配置核对一致。
@@ -6,7 +6,7 @@
6
6
 
7
7
  例:`数量` 或 `单价` 变化时 → `销售金额 = 数量 × 单价`。
8
8
 
9
- 设计器里的位置是字段属性面板的「函数联动」,要配四件事:**在哪生效**(当前表单 / 某个布局)、**什么时候触发**(事件)、**谁触发**(触发字段)、**赋值给谁 + 怎么算**(目标字段 + 函数体)。
9
+ 设计器里的位置是字段属性面板的「函数联动」,要配四件事:**在哪生效**(生效维度)、**什么时候触发**(触发时机,**可以挂多个**)、**谁触发**(触发字段)、**赋值给谁 + 怎么算**(目标字段 + 函数体)。
10
10
 
11
11
  > **不跨表。** 要查另一张表把值带回来,那是 `form field-linkage`(跨表带出),见 `guide-field-linkage.md`。
12
12
 
@@ -102,9 +102,9 @@ e10-cli form formula-linkage delete <appId> <objId> <linkageId...>
102
102
  |---|---|
103
103
  | `--target <字段>` | **赋值目标**,被写入的字段。只能是业务字段 |
104
104
  | `--expression <函数体>` | 公式右侧。含引号/换行时可用 `@文件路径` |
105
- | `--event <事件>` | 触发事件,默认 `changeField`(值改变时)。可传 `type` 或中文名 |
106
- | `--trigger <字段...>` | 触发字段,可多个。字段级事件必填;表单级事件(如「载入时」)不用给 |
107
- | `--effect <维度>` | 生效维度:`form`(默认,当前表单)/ `formLayout`(表单布局) |
105
+ | `--event <事件...>` | **触发时机,可给多个**(一条联动能挂多个)。每个可自带触发字段:写 `事件名或 type`,或 `类型:字段,字段`。默认 `changeField`(值改变时) |
106
+ | `--trigger <字段...>` | 触发字段,可多个。作用于**没有自带字段**的字段级事件;表单级 / 流程级事件不用给 |
107
+ | `--effect <维度>` | 生效维度:`form`(默认,当前表单)/ `formLayout`(表单布局)/ `workFlow`(当前工作流)/ `includeNode`(选择节点,另需 `--node`)。后两者必给 `--workflow-id` |
108
108
  | `--name <名>` | 联动名。默认 `<公式名> - 公式_<时间戳>` |
109
109
  | `--formula-name <名>` | 公式名,默认取表单名 |
110
110
  | `--formula-id <id>` | 复用/更新已有公式,不新建 |
@@ -131,6 +131,30 @@ e10-cli form formula-linkage add <appId> <objId> --effect formLayout \
131
131
  |---|---|---|---|
132
132
  | 字段 | 值改变时 / 获取输入焦点时 / 失去输入焦点时 / 鼠标单击时 / 鼠标双击时 | `changeField` / `onfocus` / `onblur` / `onclick` / `ondbclick` | 要 |
133
133
  | 表单 | 载入时 / 载入时(可编辑) / 载入时(新建) / 创建数据时 / 窗口滚动时 | `onLoadForm` / `onLoadFormEdit` / `onLoadFormCreate` / `createData` / `onscroll` | 不要 |
134
+ | 流程 | 提交/批准时 / 转发时 / 保存时 / 退回时 / 转办时 / 意见征询时 / 传阅时 | `EVENT_SUBMIT_OR_AGREE` / `EVENT_FORWARD` / `EVENT_SAVE_DATA` / `EVENT_REJECT` / `EVENT_TURNTODO` / `EVENT_REMARKADVICE` / `EVENT_CIRCULATE` | 不要 |
135
+
136
+ ⚠ **「流程」那一组默认列不出来**:`form formula-linkage events` 不给 `--effect` 时只列前两组 10 个,加 `--effect workFlow --workflow-id <流程id>` 才列得出 17 个。用了流程事件就要把生效维度也设成「当前工作流 / 选择节点」——两者的关系不是可选的;换个维度又沿用旧事件时 CLI 会直接报错拦下。
137
+
138
+ ### 一条联动挂多个触发时机
139
+
140
+ 「触发时机」**不是单选**:设计器里勾几个,`monitorActions` 就存几条。
141
+
142
+ ```bash
143
+ # 7 个流程时机一起挂(都不需要触发字段)
144
+ e10-cli form formula-linkage add <appId> <objId> --effect workFlow --workflow-id <wf> \
145
+ --event EVENT_SUBMIT_OR_AGREE EVENT_FORWARD EVENT_SAVE_DATA \
146
+ --target 登记时间 --expression '{主表.当前日期}'
147
+
148
+ # 各配各的触发字段:值改变时看「数量、单价」,鼠标单击时看「按钮」
149
+ e10-cli form formula-linkage add <appId> <objId> \
150
+ --event changeField:数量,单价 onclick:按钮 \
151
+ --target 销售金额 --expression "VALUE({主表.数量})*VALUE({主表.单价})"
152
+
153
+ # 老写法照旧:--trigger 给所有「没自带字段」的字段级事件
154
+ e10-cli form formula-linkage add <appId> <objId> \
155
+ --event changeField onclick --trigger 数量 \
156
+ --target 销售金额 --expression "VALUE({主表.数量})"
157
+ ```
134
158
 
135
159
  ## 示例
136
160
 
@@ -164,13 +188,14 @@ e10-cli form formula-linkage add <appId> <objId> \
164
188
  > 公式**语言本身**的硬规则(函数名必须大写 / 比较用 `==` / 赋值用 `=` / 跨表粘贴要换字段变量)在 `guide-form-formula-functions.md` 的「写公式前先记住这四条」,写表达式前先过一遍 —— 这几条写错**不报错**,只是算不对。
165
189
 
166
190
  1. **目标只能是业务字段**。系统模块字段(`主表数据id`/`当前日期`/`操作者部门` 等 21 个)不能作 `--target`,但可以出现在公式右边、也可以当触发字段。
167
- 2. **一个触发字段一条触发动作**。`--trigger` 传多个时,平台侧是 N 条动作记录,不是一条里挂 N 个字段 —— CLI 已按这个形状下发。
191
+ 2. **一个触发时机 × 一个触发字段 = 一条触发动作**。多个触发字段 → N 条 `actionType` 相同的动作;多个触发时机 → 多条 `actionType` 各异的动作。平台侧就是这张表,不是一条里挂 N 个字段 —— CLI 已按这个形状下发。**`update` 不给 `--event`/`--trigger` 时原样沿用现有的触发时机**,不会只留第一条。
168
192
  3. **触发字段与目标不能搞反**。`--trigger` 是「谁变了」,`--target` 是「谁被写」。写反了规则会反向生效,回读时表达式左边能看到真实目标。
169
193
  4. **字段名有歧义会报错**,不会默认取第一条。两张明细表里各有一个「编号」时,写 `编号` 会列出两个候选,改用字段 id 或 `明细表名.编号`。
170
194
  5. **业务字段与模块字段同名时**(如业务字段叫「标题」、模块字段 `name` 的标签也叫「标题」),按裸标签写会报歧义,用字段 id 或完整列名 `主表.标题` 区分。
171
- 6. **生效范围两种**:缺省「当前表单」(所有布局 + 所有关联该表单的工作流),`--effect formLayout` 则只对某个布局生效。布局 id 由 CLI 现查(见上「生效维度」)。`update` 不传 `--effect` 会沿用现有维度。
195
+ 6. **生效范围四种**:缺省「当前表单」(所有布局 + 所有关联该表单的工作流)、`--effect formLayout`(只对某个布局生效)、`--effect workFlow`(当前工作流,需 `--workflow-id`)、`--effect includeNode`(选择节点,需 `--workflow-id` + `--node`)。布局 id 由 CLI 现查(见上「生效维度」)。`update` 不传 `--effect` 会沿用现有维度 —— 但**在「表单/布局」与「工作流/节点」之间换维度时必须同时给 `--event`**,否则会存出一条事件与维度对不上的坏规则。
172
196
  7. **改了公式不会同步 `inFields`/`outFields`**。平台的数据源上带这两组字段(公式用到的来源字段 / 被赋值的字段),它们反映的是**建这条联动时**的公式;后来改公式它们不跟着变。这不影响运行,但别拿它当「当前公式用了哪些字段」的依据 —— 用 `form formula-linkage read` 看表达式。
173
197
  8. **`form field-linkage` 看不见这类联动**。两者 `linkageType` 不同(`excel` vs `template`),各查各的。`form field-linkage list` 末尾会提示「另有 N 条函数联动」;`form field-linkage delete` 传函数联动的 id 会直接报错指路,不会静默删 0 条。
198
+ 9. **`--event` 里 `类型:字段,字段` 的分隔符只认半角 `:` 与 `,`**(全角「:」「,」不作分隔)。字段名里真含半角逗号时会被切坏 —— 那种字段改用 `--trigger`(空格分隔),或直接写字段 id。
174
199
 
175
200
  ## 流程表单上的函数联动(`wf-form formula-linkage`)
176
201
 
@@ -198,12 +223,14 @@ wf-form formula-linkage delete <formId> --workflow-id <id> <linkageIds...>
198
223
  | 定位入参 | `customParam: {appId, objId}`(读、存都发) | **顶层 `refId` = workflowId**;`customParam: {scene:'workflow'}` **只在读的时候发,保存报文里没有这个键** |
199
224
  | 公式参数里的 `appId` | 有 | **没有这个键** |
200
225
  | 不可作赋值目标的系统字段 | 21 项 | **30 项**(模块字段桶是 32 —— 差的两个见下) |
201
- | 触发事件 | 10 个(字段组 5 + 表单组 5) | **17 个**(多一组「流程」事件) |
202
- | 生效维度 | 当前表单 / 表单布局 | 当前表单 / 表单布局 / **当前工作流 / 选择节点** |
226
+ | 触发事件 | 默认 10 个(字段组 5 + 表单组 5);生效维度给 `workFlow`/`includeNode` 时取流程那套 = **17 个** | **恒 17 个**(这条路由一直取流程那套) |
227
+ | 生效维度 | 四种:当前表单 / 表单布局 / 当前工作流 / 选择节点(后两者需 `--workflow-id`) | 同样四种 |
203
228
 
204
229
  ### 多出来的「流程」触发事件
205
230
 
206
- 除了字段组的 5 个与表单组的 5 个,流程表单还多 7 个流程级事件(都不需要 `--trigger`):
231
+ 除了字段组的 5 个与表单组的 5 个,还有 7 个流程级事件(都不需要 `--trigger`):
232
+
233
+ > ⚠ 这 7 个**不是流程表单专属**:eb 表选了「当前工作流 / 选择节点」维度时一样能用(设计器就这么配、也存得下)。差别只在**取清单**:eb 路由默认只给前两组 10 个,要给流程事件得加 `--effect workFlow --workflow-id <流程id>` 让它去取流程那套。
207
234
 
208
235
  ```
209
236
  EVENT_SUBMIT_OR_AGREE 提交/批准时 EVENT_REJECT 退回时
@@ -223,6 +250,8 @@ EVENT_SAVE_DATA 保存时 EVENT_REMARKADVICE 意见征询时
223
250
 
224
251
  「选择节点」的 `--node` 可以给节点 id 或节点名。「当前工作流」的选项名是 `流程名【V活动版本号】`,版本号取活动版本 —— 与设计器发出的形状一致。
225
252
 
253
+ 四种取值 eb 表也有(1.5.11 起),命令面同名同义。另外:`fdEffect.effectModule` **跟生效维度走、不跟路由走** —— 「当前工作流 / 选择节点」两个维度归卡片模块(`ebuildercard`),即便这条联动挂在 eb 表上(`linkageModule` 仍是 `ebuilderform`)。
254
+
226
255
  ### 系统字段里有两个**可以**当赋值目标
227
256
 
228
257
  流程表单的模块字段桶有 32 项,但平台标「不可赋值」的只有 30 项,差的是:
@@ -245,6 +274,8 @@ REQUEST_LEVEL 紧急程度
245
274
  | 系统模块字段「X」不能作为赋值目标 | `--target` 写了模块字段 | 换成业务字段;模块字段只能出现在公式右边 |
246
275
  | 「X」在…上匹配到 N 个字段 | 字段名有歧义 | 用字段 id(`form formula-linkage columns` 里)
247
276
  | 表达式里写的是一个赋值式,它的左侧是「A」,与 --target「B」不一致 | 粘贴的赋值式目标与 `--target` 不符 | 改 `--target`,或只给右侧函数体 |
248
- | 事件「载入时」不需要触发字段 | 表单级事件给了 `--trigger` | 去掉 `--trigger`(CLI 会忽略并提示) |
249
- | 事件「值改变时」需要指定触发字段 | 字段级事件没给 `--trigger` | 补 `--trigger` |
277
+ | 事件「载入时」是表单级/流程级的,不需要触发字段,--trigger 已忽略 | 表单级 / 流程级事件给了触发字段 | 无害提示;去掉字段即可 |
278
+ | 事件「值改变时」需要指定触发字段 | 字段级事件没给触发字段 | 补 `--trigger`,或写成 `--event changeField:<字段,字段>` |
279
+ | 未知事件「EVENT_FORWARD」,可用: …(只列 10 个) | 想在 eb 表上用流程级事件,但没换维度 | 加 `--effect workFlow --workflow-id <流程id>` 再试 |
280
+ | 生效维度在「当前表单/表单布局」与「当前工作流/选择节点」之间切换时,必须同时用 --event 指定… | `update` 换了维度却沿用旧事件 | 一起给 `--event`(新的维度下可用的事件) |
250
281
  | 平台回读的表达式与提交不一致 | 归一化猜错了写法 | 以平台为准;把 `read` 的结果记下来反馈 |
@@ -0,0 +1,154 @@
1
+ # 工作流高级设置:功能管理
2
+
3
+ 适用位置:工作流设置 → 高级设置 → 功能管理。以下命令配置流程定义,不对流程实例执行撤回、加审或减审操作。加审与已有的加签 `workflow add-step` 是不同功能。
4
+
5
+ ## 命令与工作方式
6
+
7
+ | 命令组 | get | create | update |
8
+ |---|---|---|---|
9
+ | `workflow withdraw` 撤回 | 查询当前配置 | 初始化/保存单份配置 | 局部修改单份配置 |
10
+ | `workflow add-operator` 加审 | 基本设置+权限规则;`--rule-id` 查单条 | 新增权限规则 | `--rule-id` 改规则;不带则改基本/会签属性 |
11
+ | `workflow minus-operator` 减审 | 权限规则;`--rule-id` 查单条 | 新增权限规则 | 必须 `--rule-id` |
12
+ | `workflow receiver-range` 接收人范围 | 基础设置+普通模式明细 | 新增一条范围明细 | `--rule-id` 改明细;不带则改总开关 |
13
+ | `workflow forward-circulate-back` 转发/传阅/抄送收回 | 查询当前配置 | 初始化/保存单份配置 | 局部修改单份配置 |
14
+
15
+ 每个命令的位置参数都是 `<workflowId>`。写入使用 `--data '{...}'` 或 `--data @配置文件.json`,只传用户明确要求的设置项。`get --schema` 返回本环境的字段、枚举和默认值;`--out 文件.json` 保存结果。长 ID 一律字符串,浏览字段使用 ID 数组。枚举既可用编码,也可用当前环境返回的选项中文原文。
16
+
17
+ 新增规则先读服务端新增表单,未指定项继承默认值;修改先查询现有值,合并补丁后保存并回读检查。撤回和收回属于流程级单份配置,create 不会新增第二份;已有配置也保留未指定字段。未知字段、无效枚举、错误节点/规则归属会拒绝,不自动重复发送新增请求。
18
+
19
+ ## 撤回管理
20
+
21
+ ```bash
22
+ e10-cli workflow withdraw get <wf> --schema
23
+ e10-cli workflow withdraw create <wf> --data '{}'
24
+ e10-cli workflow withdraw update <wf> --data '{"remarkRequired":true,"allowRemind":false}'
25
+ ```
26
+
27
+ | 字段 | 意义 / 可选值 |
28
+ |---|---|
29
+ | allowType | 能撤回的节点:`0` 选择,`1` 排除 |
30
+ | allowNodes | 对应节点 ID 数组 |
31
+ | beAllowType | 允许被撤回的节点:`0` 全部,`1` 选择,`2` 排除 |
32
+ | beAllowNodes | 对应节点 ID 数组 |
33
+ | allowRemind | 允许前台用户选择是否提醒,布尔值 |
34
+ | remarkRequired | 撤回时意见必填,布尔值 |
35
+ | doPreOperate | 启用节点前附加操作,布尔值;部分环境页面隐藏此项 |
36
+
37
+ 自然语言示例:“把流程【名称/ID】的撤回意见改为必填,其他设置保留。”
38
+
39
+ ## 加审 / 减审
40
+
41
+ ```bash
42
+ # 查询实时默认值与当前规则
43
+ e10-cli workflow add-operator get <wf> --schema
44
+ # 新增仅针对这个审批节点的加审权限
45
+ e10-cli workflow add-operator create <wf> --data '{"allowNode":["节点ID"],"operatorType":["1"]}'
46
+ # 修改一条权限规则;不改节点范围或接收人范围引用
47
+ e10-cli workflow add-operator update <wf> --rule-id <ruleId> --data '{"operatorType":["1","2"]}'
48
+ # 加审基本设置
49
+ e10-cli workflow add-operator update <wf> --data '{"todoAfterBackTodo":true,"allowModifyBackTodo":["1"]}'
50
+ # 减审
51
+ e10-cli workflow minus-operator create <wf> --data '{"allowNode":["节点ID"],"operatorType":["1"]}'
52
+ e10-cli workflow minus-operator update <wf> --rule-id <ruleId> --data '{"operatorType":["1","2"]}'
53
+ ```
54
+
55
+ 权限规则字段:
56
+
57
+ | 字段 | 意义 / 可选值 |
58
+ |---|---|
59
+ | allowNodeType | `0` 全部;`1` 选择;`2` 排除 |
60
+ | allowNode | 节点 ID 数组;选择/排除时必填,按实时节点浏览范围校验 |
61
+ | operatorType | 数组:`0` 上一节点操作者,`1` 当前节点未操作者,`2` 当前节点已操作者,`3` 指定节点操作者 |
62
+ | operatorNode | 指定节点的 ID 数组;operatorType 包含 `3` 时必填 |
63
+
64
+ 加审基本设置:`todoAfterBackTodo`(全部加审人审批后回本人待办)、`allowModifyBackTodo`(允许修改为 `["1"]`,关闭为 `[]`);会签属性 `todoSignAttr` 本节点待办、`todoNoSignAttr` 非本节点待办、`doneSignAttr` 已办,以及各自 `Def` 默认会签属性。选项以 `get --schema` 为准(一般 `1` 跟随操作者、`2` 用户选择、`3` 会签、`4` 非会签、`5` 依次处理,部分字段不允许 `1`)。减审不写与加审共用的基本设置。
65
+
66
+ 自然语言示例:
67
+
68
+ - “流程【ID】增加一条加审权限:允许在【1级审批】加审,由当前节点未操作者操作,其他用系统默认。”
69
+ - “把加审规则【ID】改为当前节点已操作和未操作人员均可操作,其余保持。”
70
+ - “流程【ID】增加减审权限,只针对【节点】,可由指定节点【节点】操作者操作。”
71
+
72
+ ## 接收人范围:普通模式
73
+
74
+ 范围统一使用 `workflow receiver-range`,支持以下三个上下文;本次仅支持普通模式,高级模式已有配置会被拒绝,避免覆盖。
75
+
76
+ | 页面位置 | 定位参数 | 后端场景 |
77
+ |---|---|---|
78
+ | 加审管理 → 权限行的限制接收人可选范围 | `--add-operator-id <加审权限规则ID>` | 10 |
79
+ | 指定流转 → 目标节点通用设置 → 接收人范围 | `--scene assign-flow --node-id <源节点ID>` | 6 |
80
+ | 指定流转 → 目标节点单独设置 → 接收人范围 | `--scene assign-flow-target --node-id <源节点ID> --target-node-id <目标节点ID>` | 7 |
81
+
82
+ CLI 自动解析并回读核对真实范围引用,不需要传 mainId 或 receiverRangeKey。加审规则 ID 不是范围明细 ID;指定流转的源节点 ID 不是目标节点 ID。单独目标节点设置须已存在,可先用 `workflow node-assign-flow targets <wf> <源节点ID>` 查询,缺少时先 `add-target <wf> <源节点ID> <目标节点ID>`。
83
+
84
+ ```bash
85
+ e10-cli workflow receiver-range get <wf> --add-operator-id <addOperatorId> --schema
86
+ # 新增:指定部门;关系、安全级别未指定则沿用服务端默认
87
+ e10-cli workflow receiver-range create <wf> --add-operator-id <addOperatorId> --data '{"objtype":"10","dept":["部门ID"]}'
88
+ # 新增:指定分部
89
+ e10-cli workflow receiver-range create <wf> --add-operator-id <addOperatorId> --data '{"objtype":"11","subDept":["分部ID"]}'
90
+ # 修改一条明细,仅改变关系
91
+ e10-cli workflow receiver-range update <wf> --add-operator-id <addOperatorId> --rule-id <rangeRuleId> --data '{"relationship":"1"}'
92
+ # 启用限制(新增明细不会隐式打开总开关)
93
+ e10-cli workflow receiver-range update <wf> --add-operator-id <addOperatorId> --data '{"isopen":true}'
94
+ ```
95
+
96
+ 指定流转使用相同的 `get/create/update` 和普通明细参数:
97
+
98
+ ```bash
99
+ # 查询通用范围及当前环境默认值
100
+ e10-cli workflow receiver-range get <wf> --scene assign-flow --node-id <源节点ID> --schema
101
+ # 通用范围新增指定部门,仅适用于操作者;其他参数读取默认值
102
+ e10-cli workflow receiver-range create <wf> --scene assign-flow --node-id <源节点ID> --data '{"objtype":"10","dept":["部门ID"],"suitableType":"1"}'
103
+ # 启用限制,并限定在目标节点操作者范围内
104
+ e10-cli workflow receiver-range update <wf> --scene assign-flow --node-id <源节点ID> --data '{"isopen":true,"limitOperatorRange":true}'
105
+ # 单独目标节点范围:新增指定分部,仅适用于抄送人
106
+ e10-cli workflow receiver-range create <wf> --scene assign-flow-target --node-id <源节点ID> --target-node-id <目标节点ID> --data '{"objtype":"11","subDept":["分部ID"],"suitableType":"2"}'
107
+ # 局部修改单独范围某一条明细的适用类型,保留对象、安全级别和关系
108
+ e10-cli workflow receiver-range update <wf> --scene assign-flow-target --node-id <源节点ID> --target-node-id <目标节点ID> --rule-id <明细ID> --data '{"suitableType":"全部"}'
109
+ ```
110
+
111
+ 指定流转额外支持:基础字段 `limitOperatorRange`(只能在目标节点操作者设置范围内选择);明细字段 `suitableType`(`0` 全部、`1` 操作者、`2` 抄送人,也可传中文标签)。前者启用后与明细范围取交集,目标节点操作者无法计算时可选人员为空。新增明细不会自动启用限制或指定流转,须按需求分别设置。`workflow node-assign-flow` 仍负责指定流转基础/通用属性;原 `range` 子命令保留兼容,完整普通模式范围使用此统一命令。
112
+
113
+ 自然语言示例:“把流程【ID】源节点【ID】的指定流转通用接收人范围设为普通模式,新增指定部门【名称】,只适用于操作者,启用限制,其他设置不变。”单独设置请明确:“源节点【ID】到目标节点【ID】的单独范围”。先查询现有明细,已有匹配项用 update,避免重复新增。
114
+
115
+ | objtype | 接收人类型 | 其他字段 |
116
+ |---|---|---|
117
+ | 0 / 1 / 2 / 3 / 4 | 本部门 / 直接上级部门 / 所有上级部门 / 下级部门 / 所有下级部门 | 无浏览值 |
118
+ | 5 / 6 / 7 / 8 / 9 | 本分部 / 直接上级分部 / 所有上级分部 / 下级分部 / 所有下级分部 | 无浏览值 |
119
+ | 10 | 指定部门 | `dept` ID 数组;安全级别 |
120
+ | 11 | 指定分部 | `subDept` ID 数组;安全级别 |
121
+ | 12 | 指定人员 | `person` ID 数组 |
122
+ | 13 | 指定角色 | `role` ID 数组;`rolelevel` 成员级别;安全级别 |
123
+ | 14 | 指定岗位 | `job` ID 数组;`joblevel` 岗位级别;`joblevelBrowser` 对应组织 ID 数组 |
124
+ | 15 | 所有人 | 安全级别 |
125
+
126
+ 通用 `relationship`:`0` 包含、`1` 排除。安全级别 `seclevel` 为 `"最小值,最大值"`,如 `"0,100"`,合法边界 -999 至 999;只在组织已启用安全级别且该类型支持时可设置,默认从服务端读取。角色级别通常 `0` 总部、`1` 所有级别、`2` 分部及总部;岗位级别 `0` 总部、`1` 指定部门、`2` 指定分部,非总部时需要 joblevelBrowser。以实时选项为准。
127
+
128
+ 注意接口特性:
129
+
130
+ - 第一次查询可能由服务端创建范围主记录并关联加审权限规则或目标节点单独配置,行为与打开页面弹窗一致。
131
+ - `enableSecurityLevel`、`isUpgrade` 是服务端能力信息,不能通过此命令修改。
132
+ - 后端没有按 ID 修改明细的接口。CLI 先新增并回读核对,验证通过才删除旧明细,再检查其他明细未变。结果返回 `previousRuleId` 与新的 `ruleId`,后续必须使用新 ID。
133
+ - 新项校验失败会尝试清理新项并保留旧项;清理/删除失败会报告相关 ID,应先查询现状,不要重复新增。替换不是服务端事务,请避免同时编辑同一范围。
134
+
135
+ 自然语言示例:“给流程【ID】的加审规则【ID】限制接收人范围,普通模式,包含本部门和指定分部【名称】,启用限制,其他不变。”执行时先查询规则、解析真实分部 ID,再分别新增范围明细、启用总开关。
136
+
137
+ ## 转发 / 传阅 / 抄送收回
138
+
139
+ ```bash
140
+ e10-cli workflow forward-circulate-back get <wf> --schema
141
+ e10-cli workflow forward-circulate-back update <wf> --data '{"forwardBackCondition":["1"],"forwardAllowBack":false}'
142
+ ```
143
+
144
+ | 字段前缀 | 功能 | 后缀 BackCondition | 后缀 AllowBack |
145
+ |---|---|---|---|
146
+ | forward | 转发 | 收回条件数组:`1` 查看前、`2` 查看后;`[]` 清空 | 接收人批注后允许收回 |
147
+ | circulate | 传阅 | 同上 | 接收人批示后允许收回 |
148
+ | cc | 抄送 | 同上 | 接收人批注后允许收回 |
149
+
150
+ 自然语言示例:“流程【ID】的转发只允许查看前收回,批注后不允许收回,传阅和抄送保持原样。”
151
+
152
+ ## 源码验证入口
153
+
154
+ 修改后在 CLI 项目内运行 `npm run build`,随后可直接用 `node dist/index.js workflow ...` 测试,不需要先打包或全局安装。开发时也可用 `node --import tsx src/index.ts workflow ...`。自然语言测试依赖执行方加载此文档;CLI 本身接收结构化命令,不直接解析整句自然语言。
@@ -0,0 +1,126 @@
1
+ # 拟签意见、节点转发与节点签字意见
2
+
3
+ 本地开发使用 `node dist/index.js` 替换下文的 `e10-cli`。先运行 `npm run build`,使用目标测试环境的已有登录态;不需要打包或重新全局安装。所有长 ID 都使用字符串。
4
+
5
+ 三个命令都先读取服务端现有值或默认值,再合并 `--data` 中明确指定的项,保存一次后回读核对。未指定项保留;未知字段、无效枚举、未匹配名称提前报错。`--data` 支持 JSON 或 `@文件`,`--out` 保存不含认证信息的结果。`create` 对单份配置表示初始化/保存,不新增第二份同类配置。
6
+
7
+ ## 拟签意见:workflow draft-opinion
8
+
9
+ ```bash
10
+ # 流程展现设置及环境支持的选项
11
+ e10-cli workflow draft-opinion get <workflowId> --schema
12
+ # 查询布局中已保存的拟签控件,取得 widgetId(不是普通字段ID)
13
+ e10-cli workflow draft-opinion fields <workflowId>
14
+ e10-cli workflow draft-opinion get <workflowId> --widget-id <widgetId> --schema
15
+ # 修改控件的意见显示方式
16
+ e10-cli workflow draft-opinion update <workflowId> --widget-id <widgetId> \
17
+ --data '{"typeAfSign":"显示全部意见"}'
18
+ # 开启流程自定义展现,弹窗填写,正序显示
19
+ e10-cli workflow draft-opinion update <workflowId> \
20
+ --data '{"openCustomSet":true,"pcFillMethod":"弹窗填写","opinionOrder":"正序"}'
21
+ ```
22
+
23
+ 流程展现参数(枚举支持 ID 或服务端完整中文名称,以 `get --schema` 为准):
24
+
25
+ | 参数 | 含义 |
26
+ |---|---|
27
+ | openCustomSet | 启用本流程自定义展现;关闭时读取应用级默认设置 |
28
+ | openTextarea | 是否使用纯文本意见输入框 |
29
+ | defautFont / defaultFontSize | 意见默认字体/字号;defautFont 是接口原拼写 |
30
+ | showBlank / openSearch | 显示空的意见/启用意见搜索 |
31
+ | opinionOrder | 0正序、1倒序 |
32
+ | showLog | 显示操作日志 |
33
+ | pcFillMethod | 1弹窗填写、2直接填写 |
34
+ | alertEndCountersign | 提交流程时弹出结束拟签提示 |
35
+
36
+ 控件参数:
37
+
38
+ | 参数 | 含义 |
39
+ |---|---|
40
+ | opinionType | 0多人编辑同一条意见、1一个人一条意见 |
41
+ | enableCountersign | 启用组织意见拟签;开启前需已有结束拟签操作者或节点配置 |
42
+ | conterSignType | 拟签组织维度,按环境 schema 选择(接口原拼写) |
43
+ | typeBfSignDepart / typeBfSignSubcom | 结束拟签前的查看方式;按当前部门/分部维度使用对应参数,两项对应同一存储字段 |
44
+ | typeAfSign | 意见展示方式,例如显示最后一次意见/显示全部意见,以 schema 为准 |
45
+ | enableCopyClear / copyClearOperate / copyClearNode | 启用抄清、抄清操作者模式、节点名称或字符串 ID 数组 |
46
+ | enableGenerateRecord / agentRecordOperate / agentRecordNode | 启用代录、代录操作者模式、节点名称或字符串 ID 数组 |
47
+
48
+ 既有的结束拟签操作者、抄清/代录人员范围引用会保留。选择节点操作者时,必须已有对应节点及人员范围。组织拟签结束人员、抄清/代录范围子弹窗的新增尚未接入此命令。切换“多人编辑同一条意见”不会悄悄关闭抄清/代录,须显式关闭后二次设置。
49
+
50
+ 本命令配置**已存在并保存的拟签控件**,不向节点布局自动插入新控件。尚无控件时先在布局设计器添加并保存,再执行 `fields` 查询。
51
+
52
+ ### 显示内容与按钮样式
53
+
54
+ ```bash
55
+ e10-cli workflow draft-opinion content get <workflowId>
56
+ e10-cli workflow draft-opinion content update <workflowId> \
57
+ --data '{"displayContent":"<p>$f_opinionContent$</p>"}'
58
+ e10-cli workflow draft-opinion style get <workflowId>
59
+ e10-cli workflow draft-opinion style update <workflowId> \
60
+ --data '{"fontSize":"14","buttons":[{"menuKey":"fill","customName":"填写拟签","menuColor":"#336699"}]}'
61
+ ```
62
+
63
+ `content` 的 `displayContent` 是 HTML 模板,不是对运行中流程填写意见;可用占位符由 `content get` 返回。CLI 负责 URL 编码。模板/样式首次保存前会读取主配置以完成服务端初始化。
64
+
65
+ `style` 可写 `menuFont`、`fontSize`、`buttons`。每个按钮以 `menuKey` 定位,可改 `customName`、`menuColor`、`menuFontColor`、`menuBorderColor`、`menuOrderNum`。未指定按钮和属性保留,调序不得重复。`fill` 为填写意见,其他 key 以查询结果为准。
66
+
67
+ 模板和按钮样式的保存不隐式开启 `openCustomSet`,需要采用流程自定义展现时明确开启。`fieldSet/displayContent/menuStyle/logviewer` 在流程配置中只是齿轮状态,不能当开关写入。日志查看人员权限、应用全局设置不在本命令范围内。
68
+
69
+ ## 节点转发:workflow node forward-setting
70
+
71
+ ```bash
72
+ e10-cli workflow node forward-setting get <workflowId> <nodeId>
73
+ e10-cli workflow node forward-setting update <workflowId> <nodeId> \
74
+ --data '{"todo":{"isForward":true,"allowSubOpt":false},"done":{"isForward":true,"allowSubOpt":true}}'
75
+ ```
76
+
77
+ 顶层三组:`todo` 待办、`done` 已办、`end` 结束。每组支持:
78
+
79
+ | 参数 | 含义 |
80
+ |---|---|
81
+ | isForward | 是否允许转发 |
82
+ | allowSubOpt | 转发接收人是否可提交意见 |
83
+ | allowForward | 转发接收人是否可继续转发 |
84
+ | allowSubOptCusName | “可提交意见”自定义名称,空串恢复默认名称 |
85
+ | allowForwardCusName | “可转发”自定义名称,空串恢复默认名称 |
86
+
87
+ 开关用 true/false 或 0/1。开启转发时不会顺便重置未指定的接收人权限。这个命令与 `forward-circulate-back`(收回设置)不同。节点转发菜单的启用仍用 `workflow node menu`;本命令不修改接收人范围,不执行“保存并同步”。
88
+
89
+ ## 节点签字意见:workflow node sign
90
+
91
+ 原命令及 `--all-required`、`--none-required`、`--select` 保留。
92
+
93
+ ```bash
94
+ e10-cli workflow node sign <workflowId> <nodeId> --schema
95
+ e10-cli workflow node sign <workflowId> <nodeId> --options viewTypeDto
96
+ e10-cli workflow node sign <workflowId> <nodeId> --options signOperateTypeList
97
+ e10-cli workflow node sign <workflowId> <nodeId> --select '退回,加签'
98
+ e10-cli workflow node sign <workflowId> <nodeId> \
99
+ --data '{"hideInput":true,"viewTypeSelectDto":"1","viewTypeDto":["批准/确认","拟签意见"],"viewEmptyNotShow":true,"signOperateTypeSelect":"1","signOperateTypeList":["批准/确认"]}'
100
+ ```
101
+
102
+ | 参数 | 含义 |
103
+ |---|---|
104
+ | mustInputDto | 0全部不必填、1全部必填、2按操作类型 |
105
+ | inputOperateTypeSelectDto + inputOperateTypeDto | 意见必填操作类型的模式与列表 |
106
+ | hideInput | 意见输入框不显示(只对不必填的操作生效) |
107
+ | signOperateTypeSelect + signOperateTypeList | 必须使用签批或签名的操作类型 |
108
+ | hideArea | 意见及评论区域不显示 |
109
+ | viewTypeSelectDto + viewTypeDto | 意见列表显示类型 |
110
+ | viewEmptyNotShow | 空意见不显示 |
111
+ | viewRangeSelectDto + viewRangeDto | 意见显示节点范围 |
112
+ | notSeeEachOther | 当前节点操作者不可互相查看意见 |
113
+ | feedback / nullNotFeedback | 意见反馈/意见为空时不反馈 |
114
+
115
+ 四个 Select 模式字段均为 `0全部/1选择/2排除`(以当前 schema 为准);列表传完整名称或字符串 ID 数组。完整候选通过 `--options <对应列表字段>` 获取,会保留节点类型等过滤条件。部分名称命中失败会整体拒绝,不静默丢失。
116
+
117
+ `signOperateTypeSelect=1` 且 `signOperateTypeList=[]` 表示不指定必须签批的操作。全部节点模式须同时显式清空已有节点列表。全部操作意见必填与隐藏输入框冲突时,须显式设置 `hideInput:false`。不修改其他节点,不执行同步。
118
+
119
+ ## 自然语言测试话术
120
+
121
+ - “使用 107 测试环境,查询流程【ID】已有拟签字段,把【控件ID】改为显示全部意见,其他保持原样,保存后回读。”
122
+ - “流程【ID】开启拟签自定义展现,填写方式改为弹窗、意见正序排列;不要改字体、模板和按钮。”
123
+ - “流程【ID】节点【ID】,待办允许转发但接收人不能提交意见;已办允许转发且可提交意见,结束流程设置保持不变。”
124
+ - “流程【ID】节点【ID】,签字意见只展示批准和拟签意见、隐藏空意见,批准时必须使用签批或签名,其余配置不变。”
125
+
126
+ 执行前先查询真实 workflowId/nodeId/widgetId、环境枚举和操作候选;自然语言由 AI 映射为上面的 CLI 参数。验证完成应区分配置回读通过和前台运行行为通过。
@@ -200,19 +200,28 @@ e10-cli workflow set-operator <workflowId> <nodeId> --type matrix \
200
200
  --matrix-id <矩阵ID> --value-config-id <值字段configId> \
201
201
  --matrix-rule "<条件configId>:1:1" \
202
202
  --batch-condition "(申请人 等于 '张三')"
203
- # matrix-rule 格式: 条件configId:数据来源type:匹配operate(三段)
204
- # type: 0=指定部门 1=发起人部门 5=当前操作人部门
205
- # operate: 1=本部门 2=本及下级 3=本及上级 49=逐级向上 67=本及下级逐级向上
206
- # 旧写法末尾还有第 4 段 virtualId(1=行政组织),**平台已不再使用**——照写不会报错但会被忽略,新配置按三段写
203
+ # matrix-rule 格式: 条件configId:来源type:operate(operate可省略)
204
+ # type: 1=发起人部门/分部,3=当前节点未操作者部门/分部,5=当前操作人部门/分部;或真实表单字段ID。
205
+ # operate: 部门1/2/3/49/67,分部4/5/6/50;省略为本级(部门1,分部4)。
206
+ # 同义范围按条件列类型转换:1↔4、2↔5、3↔6、49↔50;分部不支持67。
207
+ # 也支持self/children/parents/upward。旧第4段仍忽略,不能用它传组织ID。
208
+ # 表单字段/指定组织推荐 --matrix-rules JSON或@文件,与 --matrix-rule 互斥。
209
+ # JSON示例(所有ID替换为真实值;ID用字符串以免精度丢失):
210
+ # [{"sourceField":"条件列ID","type":"field","targetField":"表单字段ID","targetFieldCN":"申请分部","operate":"self"}]
211
+ # [{"sourceField":"条件列ID","type":"0","content":["部门或分部ID"],"contentCN":"组织名称","operate":"self"}]
212
+ # sourceField为矩阵条件列configId;部门/分部由该列元数据自动识别。
213
+ # type=field(也接受type=2+targetField)在请求中转换为真实字段ID,后端落库type=2、targetField=真实字段ID。
214
+ # 不要把裸type=2当成字段ID;指定组织type=0必须提供content(ID逗号串或数组)。
215
+ # 参数校验完成后才清理旧组;--append保留旧组。仅支持部门/分部条件,复杂自定义条件仍需扩展。
207
216
  # 表单相关人员(从表单数据中动态获取审批人)
208
217
  e10-cli workflow set-operator <workflowId> <nodeId> --type form \
209
218
  --source <表单ID> --target <人员字段ID>
210
219
  ```
211
220
 
212
- ### 节点签字意见必填(退回时意见必填)
221
+ ### 节点签字意见(必填、签批签名、显示、反馈)
213
222
 
214
223
  ```bash
215
- e10-cli workflow node sign <workflowId> <nodeId> # 查看当前意见必填配置
224
+ e10-cli workflow node sign <workflowId> <nodeId> # 查看全部签字意见配置
216
225
  e10-cli workflow node sign <wf> <node> --all-required # 全部操作类型意见必填
217
226
  e10-cli workflow node sign <wf> <node> --none-required # 全部不必填
218
227
  e10-cli workflow node sign <wf> <node> --select "退回,加签" # 指定操作类型意见必填
@@ -220,6 +229,9 @@ e10-cli workflow node sign <wf> <node> --select "退回,加签" # 指定操
220
229
 
221
230
  > 「退回时意见必填」= `--select 退回`(如:上级审核节点退回时要求填写意见)。操作类型以该节点可选范围为准(不同节点类型可操作类型不同)。
222
231
 
232
+ 新增 `--data` 局部修改隐藏输入框、必须签批签名、意见列表类型/范围、隐藏空意见及反馈。拟签使用 `workflow draft-opinion`;节点转发使用 `workflow node forward-setting`。完整参数和话术见 [拟签、转发与签字意见指南](guide-opinion-settings.md)。
233
+
234
+
223
235
  ### 节点提交校验
224
236
 
225
237
  ```bash
@@ -450,6 +462,10 @@ e10-cli workflow advanced schedule <workflowId> \
450
462
  e10-cli workflow advanced schedule-range <workflowId> --list
451
463
  ```
452
464
 
465
+ ### 高级设置 → 功能管理
466
+
467
+ 撤回 `withdraw`、加审 `add-operator`、减审 `minus-operator`、接收人范围 `receiver-range`、转发/传阅/抄送收回 `forward-circulate-back`,每组提供 `get/create/update`。读取默认值后新增、读取现有值后局部修改,并回读核对。接收人范围统一支持加审规则(`--add-operator-id`)、指定流转通用范围(`--scene assign-flow --node-id`)、单独目标节点范围(`--scene assign-flow-target --node-id --target-node-id`);限普通模式。详见 [功能管理命令、参数与自然语言示例](guide-function-management.md)。
468
+
453
469
  ### 整体重写流程图(save-layout)
454
470
 
455
471
  大规模调整节点连线时,构造完整 XML → 一次性保存覆盖当前布局: