weaver-e10-builder 1.2.2 → 1.2.5

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 (274) hide show
  1. package/README.md +8 -19
  2. package/dist/commands/actionflow.d.ts.map +1 -1
  3. package/dist/commands/actionflow.js +14 -1
  4. package/dist/commands/actionflow.js.map +1 -1
  5. package/dist/commands/designer-css.d.ts +15 -0
  6. package/dist/commands/designer-css.d.ts.map +1 -0
  7. package/dist/commands/designer-css.js +205 -0
  8. package/dist/commands/designer-css.js.map +1 -0
  9. package/dist/commands/form-add-detail-table.d.ts.map +1 -1
  10. package/dist/commands/form-add-detail-table.js +127 -7
  11. package/dist/commands/form-add-detail-table.js.map +1 -1
  12. package/dist/commands/form-ebuilder-columns.d.ts +7 -0
  13. package/dist/commands/form-ebuilder-columns.d.ts.map +1 -1
  14. package/dist/commands/form-ebuilder-columns.js +2 -24
  15. package/dist/commands/form-ebuilder-columns.js.map +1 -1
  16. package/dist/commands/form-field-lang.d.ts.map +1 -1
  17. package/dist/commands/form-field-lang.js +4 -39
  18. package/dist/commands/form-field-lang.js.map +1 -1
  19. package/dist/commands/form-formula.d.ts.map +1 -1
  20. package/dist/commands/form-formula.js +35 -11
  21. package/dist/commands/form-formula.js.map +1 -1
  22. package/dist/commands/form-layout-init.d.ts.map +1 -1
  23. package/dist/commands/form-layout-init.js +15 -10
  24. package/dist/commands/form-layout-init.js.map +1 -1
  25. package/dist/commands/form-layout.js +24 -21
  26. package/dist/commands/form-layout.js.map +1 -1
  27. package/dist/commands/form-native.d.ts.map +1 -1
  28. package/dist/commands/form-native.js +181 -0
  29. package/dist/commands/form-native.js.map +1 -1
  30. package/dist/commands/form-nlist.d.ts +1 -1
  31. package/dist/commands/form-nlist.d.ts.map +1 -1
  32. package/dist/commands/form-nlist.js +5 -3
  33. package/dist/commands/form-nlist.js.map +1 -1
  34. package/dist/commands/form-validate.d.ts.map +1 -1
  35. package/dist/commands/form-validate.js +11 -3
  36. package/dist/commands/form-validate.js.map +1 -1
  37. package/dist/commands/form.d.ts.map +1 -1
  38. package/dist/commands/form.js +168 -90
  39. package/dist/commands/form.js.map +1 -1
  40. package/dist/commands/menu.d.ts.map +1 -1
  41. package/dist/commands/menu.js +170 -23
  42. package/dist/commands/menu.js.map +1 -1
  43. package/dist/commands/wf-form.d.ts +1 -0
  44. package/dist/commands/wf-form.d.ts.map +1 -1
  45. package/dist/commands/wf-form.js +44 -13
  46. package/dist/commands/wf-form.js.map +1 -1
  47. package/dist/commands/workflow-auth-resp.d.ts.map +1 -1
  48. package/dist/commands/workflow-auth-resp.js +69 -8
  49. package/dist/commands/workflow-auth-resp.js.map +1 -1
  50. package/dist/commands/workflow-node-assign-flow.d.ts +3 -0
  51. package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -0
  52. package/dist/commands/workflow-node-assign-flow.js +341 -0
  53. package/dist/commands/workflow-node-assign-flow.js.map +1 -0
  54. package/dist/commands/workflow-node.d.ts +2 -0
  55. package/dist/commands/workflow-node.d.ts.map +1 -1
  56. package/dist/commands/workflow-node.js +219 -48
  57. package/dist/commands/workflow-node.js.map +1 -1
  58. package/dist/commands/workflow-odoc.d.ts.map +1 -1
  59. package/dist/commands/workflow-odoc.js +56 -56
  60. package/dist/commands/workflow-odoc.js.map +1 -1
  61. package/dist/commands/workflow-setting.d.ts.map +1 -1
  62. package/dist/commands/workflow-setting.js +77 -1
  63. package/dist/commands/workflow-setting.js.map +1 -1
  64. package/dist/commands/workflow.d.ts.map +1 -1
  65. package/dist/commands/workflow.js +36 -80
  66. package/dist/commands/workflow.js.map +1 -1
  67. package/dist/core/auth.js +1 -1
  68. package/dist/core/client.d.ts +14 -0
  69. package/dist/core/client.d.ts.map +1 -1
  70. package/dist/core/client.js +28 -12
  71. package/dist/core/client.js.map +1 -1
  72. package/dist/index.js +4 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/services/actionflow/command_output.d.ts +7 -0
  75. package/dist/services/actionflow/command_output.d.ts.map +1 -1
  76. package/dist/services/actionflow/command_output.js +46 -0
  77. package/dist/services/actionflow/command_output.js.map +1 -1
  78. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  79. package/dist/services/actionflow/components/action_eb_add.js +14 -4
  80. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  81. package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
  82. package/dist/services/actionflow/components/action_eb_add_compiler.js +29 -0
  83. package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
  84. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  85. package/dist/services/actionflow/components/action_eb_update.js +23 -8
  86. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  87. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
  88. package/dist/services/actionflow/components/action_eb_update_compiler.js +239 -6
  89. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  90. package/dist/services/actionflow/components/assign_var.d.ts +12 -0
  91. package/dist/services/actionflow/components/assign_var.d.ts.map +1 -0
  92. package/dist/services/actionflow/components/assign_var.js +133 -0
  93. package/dist/services/actionflow/components/assign_var.js.map +1 -0
  94. package/dist/services/actionflow/components/custom_set_form.d.ts +10 -0
  95. package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -0
  96. package/dist/services/actionflow/components/custom_set_form.js +65 -0
  97. package/dist/services/actionflow/components/custom_set_form.js.map +1 -0
  98. package/dist/services/actionflow/components/custom_trigger.d.ts +2 -2
  99. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
  100. package/dist/services/actionflow/components/custom_trigger.js +7 -10
  101. package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
  102. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  103. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  104. package/dist/services/actionflow/components/index.d.ts.map +1 -1
  105. package/dist/services/actionflow/components/index.js +9 -0
  106. package/dist/services/actionflow/components/index.js.map +1 -1
  107. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  108. package/dist/services/actionflow/components/output.js +6 -1
  109. package/dist/services/actionflow/components/output.js.map +1 -1
  110. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  111. package/dist/services/actionflow/context_preflight.js +13 -6
  112. package/dist/services/actionflow/context_preflight.js.map +1 -1
  113. package/dist/services/actionflow/context_provider.d.ts.map +1 -1
  114. package/dist/services/actionflow/context_provider.js +3 -2
  115. package/dist/services/actionflow/context_provider.js.map +1 -1
  116. package/dist/services/actionflow/dynamic_resources.d.ts +7 -1
  117. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  118. package/dist/services/actionflow/dynamic_resources.js +65 -8
  119. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  120. package/dist/services/actionflow/ebuilder_source.d.ts +19 -0
  121. package/dist/services/actionflow/ebuilder_source.d.ts.map +1 -0
  122. package/dist/services/actionflow/ebuilder_source.js +78 -0
  123. package/dist/services/actionflow/ebuilder_source.js.map +1 -0
  124. package/dist/services/actionflow/form_source.d.ts +76 -0
  125. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  126. package/dist/services/actionflow/form_source.js +195 -1
  127. package/dist/services/actionflow/form_source.js.map +1 -1
  128. package/dist/services/actionflow/formula_service.d.ts +4 -1
  129. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  130. package/dist/services/actionflow/formula_service.js +97 -23
  131. package/dist/services/actionflow/formula_service.js.map +1 -1
  132. package/dist/services/actionflow/preflight_service.d.ts +6 -0
  133. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  134. package/dist/services/actionflow/preflight_service.js +211 -3
  135. package/dist/services/actionflow/preflight_service.js.map +1 -1
  136. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  137. package/dist/services/actionflow/workflow_compiler.js +83 -15
  138. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  139. package/dist/services/designer-css.d.ts +89 -0
  140. package/dist/services/designer-css.d.ts.map +1 -0
  141. package/dist/services/designer-css.js +163 -0
  142. package/dist/services/designer-css.js.map +1 -0
  143. package/dist/services/dom-structure.d.ts +42 -0
  144. package/dist/services/dom-structure.d.ts.map +1 -0
  145. package/dist/services/dom-structure.js +251 -0
  146. package/dist/services/dom-structure.js.map +1 -0
  147. package/dist/services/form-create.d.ts +2 -1
  148. package/dist/services/form-create.d.ts.map +1 -1
  149. package/dist/services/form-create.js.map +1 -1
  150. package/dist/services/form-ebuilder-columns.d.ts +50 -0
  151. package/dist/services/form-ebuilder-columns.d.ts.map +1 -0
  152. package/dist/services/form-ebuilder-columns.js +68 -0
  153. package/dist/services/form-ebuilder-columns.js.map +1 -0
  154. package/dist/services/form-field-drop.d.ts +30 -1
  155. package/dist/services/form-field-drop.d.ts.map +1 -1
  156. package/dist/services/form-field-drop.js +60 -0
  157. package/dist/services/form-field-drop.js.map +1 -1
  158. package/dist/services/form-field-patch.d.ts +69 -0
  159. package/dist/services/form-field-patch.d.ts.map +1 -0
  160. package/dist/services/form-field-patch.js +117 -0
  161. package/dist/services/form-field-patch.js.map +1 -0
  162. package/dist/services/form-i18n-label.d.ts +48 -0
  163. package/dist/services/form-i18n-label.d.ts.map +1 -0
  164. package/dist/services/form-i18n-label.js +91 -0
  165. package/dist/services/form-i18n-label.js.map +1 -0
  166. package/dist/services/form-nlist.d.ts +1 -0
  167. package/dist/services/form-nlist.d.ts.map +1 -1
  168. package/dist/services/form-nlist.js +32 -5
  169. package/dist/services/form-nlist.js.map +1 -1
  170. package/dist/services/form-style-template.d.ts +6 -2
  171. package/dist/services/form-style-template.d.ts.map +1 -1
  172. package/dist/services/form-style-template.js +8 -4
  173. package/dist/services/form-style-template.js.map +1 -1
  174. package/dist/services/form-sub-detail.d.ts +51 -3
  175. package/dist/services/form-sub-detail.d.ts.map +1 -1
  176. package/dist/services/form-sub-detail.js +183 -20
  177. package/dist/services/form-sub-detail.js.map +1 -1
  178. package/dist/services/formula-detail.d.ts +68 -5
  179. package/dist/services/formula-detail.d.ts.map +1 -1
  180. package/dist/services/formula-detail.js +110 -44
  181. package/dist/services/formula-detail.js.map +1 -1
  182. package/dist/services/menu-catalog.d.ts +84 -0
  183. package/dist/services/menu-catalog.d.ts.map +1 -0
  184. package/dist/services/menu-catalog.js +183 -0
  185. package/dist/services/menu-catalog.js.map +1 -0
  186. package/dist/services/rich-text.d.ts +33 -0
  187. package/dist/services/rich-text.d.ts.map +1 -0
  188. package/dist/services/rich-text.js +134 -0
  189. package/dist/services/rich-text.js.map +1 -0
  190. package/dist/services/workflow-add-step.d.ts +45 -0
  191. package/dist/services/workflow-add-step.d.ts.map +1 -0
  192. package/dist/services/workflow-add-step.js +122 -0
  193. package/dist/services/workflow-add-step.js.map +1 -0
  194. package/dist/services/workflow-assign-flow.d.ts +109 -0
  195. package/dist/services/workflow-assign-flow.d.ts.map +1 -0
  196. package/dist/services/workflow-assign-flow.js +306 -0
  197. package/dist/services/workflow-assign-flow.js.map +1 -0
  198. package/dist/services/workflow-drawback.d.ts +19 -0
  199. package/dist/services/workflow-drawback.d.ts.map +1 -0
  200. package/dist/services/workflow-drawback.js +59 -0
  201. package/dist/services/workflow-drawback.js.map +1 -0
  202. package/dist/services/workflow-links.d.ts +51 -0
  203. package/dist/services/workflow-links.d.ts.map +1 -0
  204. package/dist/services/workflow-links.js +162 -0
  205. package/dist/services/workflow-links.js.map +1 -0
  206. package/dist/services/workflow-node-layout.d.ts +45 -4
  207. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  208. package/dist/services/workflow-node-layout.js +142 -41
  209. package/dist/services/workflow-node-layout.js.map +1 -1
  210. package/dist/services/workflow-node-menu.d.ts +57 -0
  211. package/dist/services/workflow-node-menu.d.ts.map +1 -0
  212. package/dist/services/workflow-node-menu.js +144 -0
  213. package/dist/services/workflow-node-menu.js.map +1 -0
  214. package/dist/services/workflow-odoc-setting.d.ts +43 -0
  215. package/dist/services/workflow-odoc-setting.d.ts.map +1 -0
  216. package/dist/services/workflow-odoc-setting.js +100 -0
  217. package/dist/services/workflow-odoc-setting.js.map +1 -0
  218. package/dist/services/workflow-tab-config.d.ts +54 -0
  219. package/dist/services/workflow-tab-config.d.ts.map +1 -0
  220. package/dist/services/workflow-tab-config.js +137 -0
  221. package/dist/services/workflow-tab-config.js.map +1 -0
  222. package/dist/types.d.ts +5 -1
  223. package/dist/types.d.ts.map +1 -1
  224. package/package.json +1 -1
  225. package/skill-docs/SKILL.md +8 -7
  226. package/skill-docs/_catalog.md +81 -77
  227. package/skill-docs/actionflows/SKILL.md +170 -167
  228. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +39 -2
  229. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +42 -0
  230. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -33
  231. package/skill-docs/actionflows/references/components/logic/Output.md +2 -0
  232. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +16 -11
  233. package/skill-docs/assets/dom-structure/Bar.json +341 -0
  234. package/skill-docs/assets/dom-structure/BarStack.json +341 -0
  235. package/skill-docs/assets/dom-structure/Bubble.json +323 -0
  236. package/skill-docs/assets/dom-structure/Calendar.json +515 -0
  237. package/skill-docs/assets/dom-structure/Circular.json +337 -0
  238. package/skill-docs/assets/dom-structure/CollapsePanel.json +289 -0
  239. package/skill-docs/assets/dom-structure/Comment.json +617 -0
  240. package/skill-docs/assets/dom-structure/CountDown.json +755 -0
  241. package/skill-docs/assets/dom-structure/DigitalPanel.json +191 -0
  242. package/skill-docs/assets/dom-structure/EbButton.json +387 -0
  243. package/skill-docs/assets/dom-structure/FastCreate.json +242 -0
  244. package/skill-docs/assets/dom-structure/Gauge.json +282 -0
  245. package/skill-docs/assets/dom-structure/HBar.json +336 -0
  246. package/skill-docs/assets/dom-structure/HBarStack.json +337 -0
  247. package/skill-docs/assets/dom-structure/Line.json +341 -0
  248. package/skill-docs/assets/dom-structure/NList.json +712 -0
  249. package/skill-docs/assets/dom-structure/NavBar.json +274 -0
  250. package/skill-docs/assets/dom-structure/NavPanel.json +390 -0
  251. package/skill-docs/assets/dom-structure/NewTab.json +606 -0
  252. package/skill-docs/assets/dom-structure/Nightingale.json +336 -0
  253. package/skill-docs/assets/dom-structure/PageHeader.json +205 -0
  254. package/skill-docs/assets/dom-structure/Picture.json +209 -0
  255. package/skill-docs/assets/dom-structure/Pie.json +338 -0
  256. package/skill-docs/assets/dom-structure/ProgressChart.json +299 -0
  257. package/skill-docs/assets/dom-structure/SearchGlobal.json +628 -0
  258. package/skill-docs/assets/dom-structure/Slide.json +489 -0
  259. package/skill-docs/assets/dom-structure/Treemap.json +324 -0
  260. package/skill-docs/references/common/guide-plan-template.md +254 -251
  261. package/skill-docs/references/common/ref-cli-commands.md +537 -519
  262. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +12 -1
  263. package/skill-docs/references/ebuilder-designer/guide-designer-css.md +127 -0
  264. package/skill-docs/references/ebuilder-designer/guide-designer.md +6 -5
  265. package/skill-docs/references/form/guide-create-form.md +233 -232
  266. package/skill-docs/references/form/guide-form-formula-functions.md +11 -1
  267. package/skill-docs/references/form/guide-form-layout-planning.md +1 -1
  268. package/skill-docs/references/form/guide-form-linkage.md +28 -2
  269. package/skill-docs/references/form/guide-form-sub-detail.md +82 -0
  270. package/skill-docs/references/form/guide-list-custom-text.md +52 -0
  271. package/skill-docs/references/menu/system-menus.md +12 -0
  272. package/skill-docs/references/workflow/guide-workflow-auth-resp.md +198 -190
  273. package/skill-docs/references/workflow/guide-workflow-odoc.md +22 -2
  274. package/skill-docs/references/workflow/guide-workflow.md +25 -3
@@ -0,0 +1,52 @@
1
+ # 列表自定义文本列
2
+
3
+ 表单的列表式视图(台账)里,列除了直接绑表单字段,还能加一列**自定义文本**:内容是一段富文本,
4
+ 可以写固定文字、插图,也能在文字中间**插入表单字段**(「合计:〔金额〕元」这种说明性排版)。
5
+
6
+ 命令是 `form nlist apply`:模板里**不给 `fieldId`、改给 `html`** 的列项,就是自定义文本列。
7
+
8
+ ```json
9
+ [
10
+ [
11
+ {"fieldId": "1317534123603582976", "text": "金额", "width": 1},
12
+ {"html": "<p>合计:{{金额}} 元</p>", "text": "合计", "width": 1}
13
+ ]
14
+ ]
15
+ ```
16
+
17
+ ```bash
18
+ e10-cli form nlist apply <objId> <appId> <listId> @template.json
19
+ ```
20
+
21
+ ## 在自定义文本里插入表单字段
22
+
23
+ 写 `{{字段名}}` 或 `{{fieldId}}`,CLI 查表单元数据后展开成平台的字段引用标记。
24
+
25
+ 上面那段 `html` 存进去的是:
26
+
27
+ ```html
28
+ <p>合计:<span contenteditable="false" data-type="list" data-val="{objId.fieldId}">{表名.字段名}</span> 元</p>
29
+ ```
30
+
31
+ 规则:
32
+
33
+ - 同一字段写几次就展开几份 —— 平台按**出现位置**逐个记引用,不去重。
34
+ - 字段显示名在表单内重复时报错,改用 `fieldId`。
35
+ - 字段不存在 → 报错并中止,不会把半截 HTML 写进视图。
36
+
37
+ ## 直接写字段引用标记
38
+
39
+ 已经拿到平台原样标记时,也可以把它整段写进 `html`。CLI 会校验 `data-val` 里的 fieldId 在这张
40
+ 表单里是否存在,查不到只**告警**(平台对这种引用不报错,只是静默显示不出值,所以提醒一声)。
41
+
42
+ 标记的形状固定为 `<span contenteditable="false" data-type="list" data-val="{objId.fieldId}">{表名.字段名}</span>`:
43
+ **身份在 `data-val` 里的 `objId.fieldId`**,span 里的 `{表名.字段名}` 只是占位文本。
44
+
45
+ ## 其它
46
+
47
+ - 列显示名用模板项的 `text`,缺省「自定义文本」。
48
+ - 富文本的配色、字号、背景直接写在内联 `style` 里,与设计器编辑器一致,例如
49
+ `<span style="background-color:#27ae60">应收</span>`。
50
+ - `form nlist apply` 按模板整体重建显示列与排布,PC 与移动端两个槽位一并写入;
51
+ 当前配置用 `form nlist show <objId> <appId> <listId>` 查看。
52
+ - ⚠ 只对列表式(NList)生效,表格式台账用 `form table-view`。
@@ -61,3 +61,15 @@
61
61
  ```
62
62
 
63
63
  > **只有包含工作流的应用**才能挂载工作流系统页面。表单台账会自动挂入菜单,无需手动操作。
64
+
65
+ ---
66
+
67
+ ## 菜单是一棵树
68
+
69
+ 应用菜单不止一层:顶层之外还有 `children` 嵌套(例如平台自带的「设置 → 个人设置 → 个人菜单设置」、系统设置下的「基本信息 / 菜单设置」)。
70
+
71
+ - `menu list <appId>` **递归展开**整棵树,输出带缩进;末尾会注明含多少个嵌套菜单。**这份列表就是全量**,在它里面找不到某个菜单,才能下结论说「该应用没有这个菜单」。
72
+ - `menu rename <appId> <菜单ID或名称> <新名>` 按 ID 或名称定位,**嵌套里的菜单一样能改**。同名多条时命令会报歧义并列出候选 ID,不会替你挑一条。
73
+ - 改名的命令会**重建写报文**再回读比对:名称变了、且「页面绑定 / 菜单 URL / 可见范围」等字段一个都没动,才算成功。改名只动名字,不会顺带改掉已有的筛选条件或页签配置。
74
+
75
+ **平台系统菜单(回收站、设置及其子项)不能改名** —— 它们由平台维护、指向内置页面,改名没有语义,命令会直接拒绝。
@@ -1,190 +1,198 @@
1
- # 权责表与权责表方式流程
2
-
3
- 权责表把多个条件场景及其审批路径维护为“节点列 × 分支行”。它属于工作流公用流转资源,与 HRM 矩阵、普通公共片段和流程图布局分别管理。
4
-
5
- ## 一、选择方式
6
-
7
- - 需要独立维护、供多个流程复用:先创建独立权责表,再由流程引用并映射变量。
8
- - 只服务于当前流程,且表单已经确定:创建权责表方式流程时选择新建权责表,条件直接引用表单字段。
9
- - 需要插入另一张权责表的审批路径中:创建中间片段型权责表,首尾位置使用审批等中间节点类型,再由宿主权责表按分支引用。
10
- - 普通顺序、分支流程继续使用流程图方式;只有需求明确要求权责表时才使用本指南。
11
-
12
- ## 二、独立权责表搭建顺序
13
-
14
- 1. `workflow auth-resp create` 创建权责表并记录 `authRespId`。
15
- 2. `workflow auth-resp variable add` 创建条件需要的变量;条件只能引用已创建变量。
16
- 3. 建立发起、结束设置和多个中间审批节点。中间节点统一作为列创建,操作者规则沿用工作流节点操作者规则。
17
- 4. 为每个有效分支填写分支场景说明并创建条件。
18
- 5. 每个分支从已有中间节点中选择自己的路径,通过顺序号表达串行或并行。
19
- 6. `workflow auth-resp save-design --config @design.json` 保存并回读。
20
-
21
- 从零完整搭建优先使用:
22
-
23
- ```bash
24
- e10-cli workflow auth-resp configure <authRespId> --config @auth-resp.json
25
- ```
26
-
27
- `auth-resp.json` 使用业务结构描述变量、节点、操作者、分支条件及路径:
28
-
29
- ```json
30
- {
31
- "baseId": "创建权责表返回的baseId",
32
- "name": "合同分级审批权责表",
33
- "workflowId": "-99999999",
34
- "usage": "workflow",
35
- "variables": [
36
- { "id": "-自定义稳定ID", "name": "合同金额", "type": "wf_number" }
37
- ],
38
- "start": { "name": "开始节点", "operator": { "type": "all" } },
39
- "end": { "name": "结束节点", "operator": { "type": "initiator" } },
40
- "nodes": [
41
- { "key": "manager", "name": "部门负责人审批", "type": "approve", "operator": { "type": "user", "keyword": "张三" } },
42
- { "key": "finance", "name": "财务审批", "type": "approve", "operator": { "type": "user", "keyword": "李四" } }
43
- ],
44
- "branches": [
45
- {
46
- "scenario": "合同金额不超过5万元",
47
- "condition": {
48
- "relation": "AND",
49
- "childrens": [
50
- {
51
- "selectType": "4",
52
- "formField": [{ "id": "-自定义稳定ID", "name": "合同金额", "fieldType": "NumberComponent", "variable": true, "varFirstType": "wf_number" }],
53
- "NumberCompareOptionLeft": "4",
54
- "NumberValueOptionLeft": "1",
55
- "NumberTextValueLeft1": 50000,
56
- "elementValue1Id": "",
57
- "elementValue2Id": "",
58
- "expressionBaseId": "",
59
- "dataValueId": ""
60
- }
61
- ]
62
- },
63
- "path": [
64
- { "node": "manager", "order": 1 },
65
- { "node": "finance", "order": 2 }
66
- ]
67
- }
68
- ]
69
- }
70
- ```
71
-
72
- 流程内新建权责表时,`workflowId` 写真实流程 ID,条件 `formField` 使用该流程实际表单字段;独立权责表使用 `workflowId=-99999999`,条件引用 `variables` 中的变量。操作者类型直接支持 `all`、`user`、`initiator`;其他已有操作者类型使用 `raw` 并提供平台 `itemDatas`,结构与普通流程操作者一致。
73
-
74
- `usage=workflow` 表示完整流转,首尾默认使用发起和结束节点。`usage=fragment` 表示供其他权责表路径引用的中间片段,`start.type` 与 `end.type` 均配置为 `approve`、`confirm` 等中间节点类型;首尾位置不能使用 `start` 或 `end`。
75
-
76
- ```bash
77
- e10-cli workflow auth-resp create "合同分级审批权责表"
78
- e10-cli workflow auth-resp variable add <authRespId> "合同金额" wf_number
79
- e10-cli workflow auth-resp variable list <authRespId>
80
- e10-cli workflow auth-resp read <authRespId> --base-id <baseId> > design.json
81
- e10-cli workflow auth-resp save-design <authRespId> --config @design.json
82
- ```
83
-
84
- 变量类型码当前已确认:
85
-
86
- | 类型码 | 含义 | 补充配置 |
87
- |---|---|---|
88
- | `wf_string` | 字符串 | — |
89
- | `wf_number` | 数值 | — |
90
- | `wf_select` | 选项 | `--option-template '{"id":"...","name":"..."}'` |
91
- | `wf_browser` | 浏览 | `--second-type` |
92
- | `wf_browser_relate` | 关联浏览 | `--relate-browser @browser.json` |
93
-
94
- ## 三、表格设计结构
95
-
96
- `read` 返回的设计以 `columns` 和 `rows` 为核心:
97
-
98
- - 固定列:发起设置 `creator`、分支场景说明 `eventColumn`、条件 `condition`、结束设置 `endOperator`。
99
- - 动态节点列:名称为 `pubNode-<节点ID>`,`pubNodeInfo` 保存节点类型和操作者摘要。
100
- - 嵌套权责表列:名称为 `pubNode-<权责表sourceId>`,`addMethod=2`,同时保存被引用表的 `baseId` 和版本。
101
- - 分支行:保存场景说明、`conditionKey`、发起/结束配置及选中的节点单元格。
102
- - 节点单元格:`nodeInfo` 表示该分支经过此节点;`approveNum` 是执行顺序,相同值表示并行。
103
-
104
- 每个有效分支必须有非空 `eventColumn` 和 `conditionKey`。界面用于继续录入的空白占位行不进入 CLI 保存数据。
105
-
106
- 操作者和条件的业务规则与普通工作流一致,具体语法读取 [流程指南](guide-workflow.md) 和 [流程条件指南](guide-workflow-condition.md)。权责表条件的上下文标识由权责表命令负责,不把独立权责表变量当作表单字段创建。
107
-
108
- ## 四、在分支中引用权责表
109
-
110
- 先查询当前宿主权责表可以引用的中间型权责表:
111
-
112
- ```bash
113
- e10-cli workflow auth-resp reference list <宿主baseId> --name "金额复核"
114
- ```
115
-
116
- 平台按首尾节点类型过滤可引用项,并排除自身和循环引用。添加时指定被引用权责表的具体版本,以及它出现在哪些分支和对应执行顺序:
117
-
118
- ```bash
119
- e10-cli workflow auth-resp reference add <宿主sourceId> --base-id <宿主baseId> --workflow-id <流程ID> --reference @reference.json
120
- ```
121
-
122
- ```json
123
- {
124
- "id": "被引用权责表sourceId",
125
- "name": "金额复核权责表【V1】",
126
- "baseId": "被引用权责表baseId",
127
- "versionNum": 1,
128
- "paths": [
129
- { "branch": "金额超过50万元", "order": 2 }
130
- ]
131
- }
132
- ```
133
-
134
- 相同顺序号表示并行,不同顺序号表示串行。移除引用时,同时删除节点列和各分支中的对应路径单元格:
135
-
136
- ```bash
137
- e10-cli workflow auth-resp reference remove <宿主sourceId> <被引用sourceId> --base-id <宿主baseId> --workflow-id <流程ID>
138
- ```
139
-
140
- ## 五、权责表方式创建流程
141
-
142
- 权责表是流程的搭建方式,流程表单来源仍按原生工作流程规则选择:自建流程表单、绑定已有流程表单或绑定 EB 表单。基础表单参数写入 `base.json`,其字段与 `workflow create-workflow` 的创建结构一致。
143
-
144
- ### 随流程新建权责表
145
-
146
- ```bash
147
- e10-cli workflow auth-resp-flow create "合同审批流程" --base @base.json --new-table "合同审批权责表"
148
- ```
149
-
150
- 服务端在创建流程时生成并返回 `workflowId`、`formId` 和 `newAuthRespId`。这种方式已确定实际表单,分支条件直接选择表单字段,不做变量映射;发起和结束位置直接设置操作者。
151
-
152
- ### 复用已有权责表
153
-
154
- ```bash
155
- e10-cli workflow auth-resp-flow create "合同审批流程" --base @base.json --reuse-table <authRespId> --mappings @mappings.json
156
- ```
157
-
158
- 也可以对已经创建的流程分步执行:
159
-
160
- ```bash
161
- e10-cli workflow auth-resp-flow bind <workflowId> <authRespId>
162
- e10-cli workflow auth-resp-flow mapping-read <workflowId>
163
- e10-cli workflow auth-resp-flow mapping-save <workflowId> --mappings @mappings.json
164
- ```
165
-
166
- 复用模式把独立权责表变量映射为当前流程表单字段。先用 `mapping-read` 取得平台返回的变量项和可用字段结构,在对应项补全 `fieldBrowser` 后整体保存;变量类型必须与表单字段匹配。
167
-
168
- ## 六、已有权责表流程的维护
169
-
170
- 权责表方式流程的节点、分支条件、流转路径和生成出口统一通过绑定的权责表设计维护:
171
-
172
- ```bash
173
- e10-cli workflow auth-resp-flow design-read <workflowId> --auth-resp-id <sourceId> --base-id <baseId> > design.json
174
- e10-cli workflow auth-resp-flow design-apply <workflowId> --auth-resp-id <sourceId> --config @design.json
175
- ```
176
-
177
- 权责表设计保存后,平台生成流程节点和出口。流程的出口列表用于查看生成结果及继续配置出口附加能力;改变分支、条件、经过节点和执行顺序时修改权责表设计。
178
-
179
- 变量映射是独立的流程功能。复用权责表时,将权责表变量映射到当前流程实际表单字段:
180
-
181
- ```bash
182
- e10-cli workflow auth-resp-flow mapping-read <workflowId>
183
- e10-cli workflow auth-resp-flow mapping-save <workflowId> --mappings @mappings.json
184
- ```
185
-
186
- 映射项保留变量的 `varId`、`varName`、`varType` 和筛选参数,在 `fieldBrowser` 中写入实际字段;变量类型、主表或明细位置应与字段匹配。流程内新建权责表并直接使用表单字段时无需变量映射。
187
-
188
- ## 七、Plan 记录
189
-
190
- 流程计划中写清搭建方式、新建或复用的权责表、变量及字段映射、每个分支的场景说明与条件、经过节点和顺序、中间节点类型及操作者。执行时按“表单确定 → 权责表/流程创建 → 变量或字段条件 → 中间节点 → 分支路径 → 映射 → 其他流程设置”的顺序逐项销号。
1
+ # 权责表与权责表方式流程
2
+
3
+ 权责表把多个条件场景及其审批路径维护为“节点列 × 分支行”。它属于工作流公用流转资源,与 HRM 矩阵、普通公共片段和流程图布局分别管理。
4
+
5
+ ## 一、选择方式
6
+
7
+ - 需要独立维护、供多个流程复用:先创建独立权责表,再由流程引用并映射变量。
8
+ - 只服务于当前流程,且表单已经确定:创建权责表方式流程时选择新建权责表,条件直接引用表单字段。
9
+ - 需要插入另一张权责表的审批路径中:创建中间片段型权责表,首尾位置使用审批等中间节点类型,再由宿主权责表按分支引用。
10
+ - 普通顺序、分支流程继续使用流程图方式;只有需求明确要求权责表时才使用本指南。
11
+
12
+ ## 二、独立权责表搭建顺序
13
+
14
+ 1. `workflow auth-resp create` 创建权责表并记录 `authRespId`。
15
+ 2. `workflow auth-resp variable add` 创建条件需要的变量;条件只能引用已创建变量。变量还必须在某个分支条件里**真正被引用**,否则复用该权责表建流程时它不会进变量映射列表(见 §五)。
16
+ 3. 建立发起、结束设置和多个中间审批节点。中间节点统一作为列创建,操作者规则沿用工作流节点操作者规则。
17
+ 4. 为每个有效分支填写分支场景说明并创建条件。
18
+ 5. 每个分支从已有中间节点中选择自己的路径,通过顺序号表达串行或并行。
19
+ 6. `workflow auth-resp save-design --config @design.json` 保存并回读。
20
+
21
+ 从零完整搭建优先使用:
22
+
23
+ ```bash
24
+ e10-cli workflow auth-resp configure <authRespId> --config @auth-resp.json
25
+ ```
26
+
27
+ `auth-resp.json` 使用业务结构描述变量、节点、操作者、分支条件及路径:
28
+
29
+ ```json
30
+ {
31
+ "baseId": "创建权责表返回的baseId",
32
+ "name": "合同分级审批权责表",
33
+ "workflowId": "-99999999",
34
+ "usage": "workflow",
35
+ "variables": [
36
+ { "id": "-自定义稳定ID", "name": "合同金额", "type": "wf_number" }
37
+ ],
38
+ "start": { "name": "开始节点", "operator": { "type": "all" } },
39
+ "end": { "name": "结束节点", "operator": { "type": "initiator" } },
40
+ "nodes": [
41
+ { "key": "manager", "name": "部门负责人审批", "type": "approve", "operator": { "type": "user", "keyword": "张三" } },
42
+ { "key": "finance", "name": "财务审批", "type": "approve", "operator": { "type": "user", "keyword": "李四" } }
43
+ ],
44
+ "branches": [
45
+ {
46
+ "scenario": "合同金额不超过5万元",
47
+ "condition": {
48
+ "relation": "AND",
49
+ "childrens": [
50
+ {
51
+ "selectType": "4",
52
+ "formField": [{ "id": "-自定义稳定ID", "name": "合同金额", "fieldType": "NumberComponent", "variable": true, "varFirstType": "wf_number" }],
53
+ "NumberCompareOptionLeft": "4",
54
+ "NumberValueOptionLeft": "1",
55
+ "NumberTextValueLeft1": 50000,
56
+ "elementValue1Id": "",
57
+ "elementValue2Id": "",
58
+ "expressionBaseId": "",
59
+ "dataValueId": ""
60
+ }
61
+ ]
62
+ },
63
+ "path": [
64
+ { "node": "manager", "order": 1 },
65
+ { "node": "finance", "order": 2 }
66
+ ]
67
+ }
68
+ ]
69
+ }
70
+ ```
71
+
72
+ 流程内新建权责表时,`workflowId` 写真实流程 ID,条件 `formField` 使用该流程实际表单字段;独立权责表使用 `workflowId=-99999999`,条件引用 `variables` 中的变量。操作者类型直接支持 `all`、`user`、`initiator`;其他已有操作者类型使用 `raw` 并提供平台 `itemDatas`,结构与普通流程操作者一致。
73
+
74
+ `usage=workflow` 表示完整流转,首尾默认使用发起和结束节点。`usage=fragment` 表示供其他权责表路径引用的中间片段,`start.type` 与 `end.type` 均配置为 `approve`、`confirm` 等中间节点类型;首尾位置不能使用 `start` 或 `end`。
75
+
76
+ ```bash
77
+ e10-cli workflow auth-resp create "合同分级审批权责表"
78
+ e10-cli workflow auth-resp variable add <authRespId> "合同金额" wf_number
79
+ e10-cli workflow auth-resp variable list <authRespId>
80
+ e10-cli workflow auth-resp read <authRespId> --base-id <baseId> > design.json
81
+ e10-cli workflow auth-resp save-design <authRespId> --config @design.json
82
+ ```
83
+
84
+ 变量类型码当前已确认:
85
+
86
+ | 类型码 | 含义 | 补充配置 |
87
+ |---|---|---|
88
+ | `wf_string` | 字符串 | — |
89
+ | `wf_number` | 数值 | — |
90
+ | `wf_select` | 选项 | `--option-template '{"id":"...","name":"..."}'` |
91
+ | `wf_browser` | 浏览 | `--second-type` |
92
+ | `wf_browser_relate` | 关联浏览 | `--relate-browser @browser.json` |
93
+
94
+ ## 三、表格设计结构
95
+
96
+ `read` 返回的设计以 `columns` 和 `rows` 为核心:
97
+
98
+ - 固定列:发起设置 `creator`、分支场景说明 `eventColumn`、条件 `condition`、结束设置 `endOperator`。
99
+ - 动态节点列:名称为 `pubNode-<节点ID>`,`pubNodeInfo` 保存节点类型和操作者摘要。
100
+ - 嵌套权责表列:名称为 `pubNode-<权责表sourceId>`,`addMethod=2`,同时保存被引用表的 `baseId` 和版本。
101
+ - 分支行:保存场景说明、`conditionKey`、发起/结束配置及选中的节点单元格。
102
+ - 节点单元格:`nodeInfo` 表示该分支经过此节点;`approveNum` 是执行顺序,相同值表示并行。
103
+
104
+ 每个有效分支必须有非空 `eventColumn` 和 `conditionKey`。界面用于继续录入的空白占位行不进入 CLI 保存数据。
105
+
106
+ 操作者和条件的业务规则与普通工作流一致,具体语法读取 [流程指南](guide-workflow.md) 和 [流程条件指南](guide-workflow-condition.md)。权责表条件的上下文标识由权责表命令负责,不把独立权责表变量当作表单字段创建。
107
+
108
+ ## 四、在分支中引用权责表
109
+
110
+ 先查询当前宿主权责表可以引用的中间型权责表:
111
+
112
+ ```bash
113
+ e10-cli workflow auth-resp reference list <宿主baseId> --name "金额复核"
114
+ ```
115
+
116
+ 平台按首尾节点类型过滤可引用项,并排除自身和循环引用。添加时指定被引用权责表的具体版本,以及它出现在哪些分支和对应执行顺序:
117
+
118
+ ```bash
119
+ e10-cli workflow auth-resp reference add <宿主sourceId> --base-id <宿主baseId> --workflow-id <流程ID> --reference @reference.json
120
+ ```
121
+
122
+ ```json
123
+ {
124
+ "id": "被引用权责表sourceId",
125
+ "name": "金额复核权责表【V1】",
126
+ "baseId": "被引用权责表baseId",
127
+ "versionNum": 1,
128
+ "paths": [
129
+ { "branch": "金额超过50万元", "order": 2 }
130
+ ]
131
+ }
132
+ ```
133
+
134
+ 相同顺序号表示并行,不同顺序号表示串行。移除引用时,同时删除节点列和各分支中的对应路径单元格:
135
+
136
+ ```bash
137
+ e10-cli workflow auth-resp reference remove <宿主sourceId> <被引用sourceId> --base-id <宿主baseId> --workflow-id <流程ID>
138
+ ```
139
+
140
+ ## 五、权责表方式创建流程
141
+
142
+ 权责表是流程的搭建方式,流程表单来源仍按原生工作流程规则选择:自建流程表单、绑定已有流程表单或绑定 EB 表单。基础表单参数写入 `base.json`,其字段与 `workflow create-workflow` 的创建结构一致。
143
+
144
+ ### 随流程新建权责表
145
+
146
+ ```bash
147
+ e10-cli workflow auth-resp-flow create "合同审批流程" --base @base.json --new-table "合同审批权责表"
148
+ ```
149
+
150
+ 服务端在创建流程时生成并返回 `workflowId`、`formId` 和 `newAuthRespId`。这种方式已确定实际表单,分支条件直接选择表单字段,不做变量映射;发起和结束位置直接设置操作者。
151
+
152
+ ### 复用已有权责表
153
+
154
+ ```bash
155
+ e10-cli workflow auth-resp-flow create "合同审批流程" --base @base.json --reuse-table <authRespId> --mappings @mappings.json
156
+ ```
157
+
158
+ 也可以对已经创建的流程分步执行:
159
+
160
+ ```bash
161
+ e10-cli workflow auth-resp-flow bind <workflowId> <authRespId>
162
+ e10-cli workflow auth-resp-flow mapping-read <workflowId>
163
+ e10-cli workflow auth-resp-flow mapping-save <workflowId> --mappings @mappings.json
164
+ ```
165
+
166
+ 复用模式把独立权责表变量映射为当前流程表单字段。先用 `mapping-read` 取得平台返回的变量项和可用字段结构,在对应项补全 `fieldBrowser` 后整体保存;变量类型必须与表单字段匹配。
167
+
168
+ > **前置条件:只有「已被分支条件引用」的变量才会出现在映射列表里。**
169
+ >
170
+ > `mapping-read` 返回的 `variableMappingList` 由平台按「该变量是否被本权责表的条件引用」筛出,未被引用的变量**不会出现**,因而无从映射 —— 列表为空不一定是故障。
171
+ >
172
+ > 自查:`e10-cli workflow auth-resp variable list <authRespId>` 里的 `referred` 字段,为 `false` 的变量不进映射列表。
173
+ >
174
+ > 由此推出搭建顺序:**变量 → 用条件引用它 → 再建/绑流程 → 映射**。反过来(先建流程、后补变量)不会自动补进列表,且 `auth-resp-flow bind` 对已引用过权责表的流程会拒绝重复绑定,只能重建流程。
175
+
176
+ ## 六、已有权责表流程的维护
177
+
178
+ 权责表方式流程的节点、分支条件、流转路径和生成出口统一通过绑定的权责表设计维护:
179
+
180
+ ```bash
181
+ e10-cli workflow auth-resp-flow design-read <workflowId> --auth-resp-id <sourceId> --base-id <baseId> > design.json
182
+ e10-cli workflow auth-resp-flow design-apply <workflowId> --auth-resp-id <sourceId> --config @design.json
183
+ ```
184
+
185
+ 权责表设计保存后,平台生成流程节点和出口。流程的出口列表用于查看生成结果及继续配置出口附加能力;改变分支、条件、经过节点和执行顺序时修改权责表设计。
186
+
187
+ 变量映射是独立的流程功能。复用权责表时,将权责表变量映射到当前流程实际表单字段:
188
+
189
+ ```bash
190
+ e10-cli workflow auth-resp-flow mapping-read <workflowId>
191
+ e10-cli workflow auth-resp-flow mapping-save <workflowId> --mappings @mappings.json
192
+ ```
193
+
194
+ 映射项保留变量的 `varId`、`varName`、`varType` 和筛选参数,在 `fieldBrowser` 中写入实际字段;变量类型、主表或明细位置应与字段匹配。流程内新建权责表并直接使用表单字段时无需变量映射。
195
+
196
+ ## 七、Plan 记录
197
+
198
+ 流程计划中写清搭建方式、新建或复用的权责表、变量及字段映射、每个分支的场景说明与条件、经过节点和顺序、中间节点类型及操作者。执行时按“表单确定 → 权责表/流程创建 → 变量或字段条件 → 中间节点 → 分支路径 → 映射 → 其他流程设置”的顺序逐项销号。
@@ -58,10 +58,17 @@ e10-cli workflow odoc setting set <workflowId> \
58
58
  --request-title-field "公文标题" \
59
59
  --upload-word 1 --upload-pdf 1 --upload-ofd 1 \
60
60
  --text-in-form 1 --column-position 1 \
61
- --attach-area 1 --archive-node "归档"
61
+ --attach-area 1 --archive-node "归档" \
62
+ --open-text-select 2 \
63
+ --edit-text-node "发起节点" \
64
+ --ai-odoc 1 --ai-abstract 1 --ai-format 1
62
65
  ```
63
66
 
64
- 字段参数支持字段名称或字段 ID,节点参数支持节点名称或节点 ID。平台开关值使用 `0` 和 `1`。
67
+ 字段参数支持字段名称或字段 ID,节点参数支持节点名称或节点 ID(名称在流程内重复时报错并给出候选 ID,不擅自挑一个)。平台开关值使用 `0` 和 `1`。
68
+
69
+ - `--open-text-select` 默认打开正文节点的范围编码;`--open-text-node` 配合它指定具体节点(可多个,逗号或空格分隔)。
70
+ - `--edit-text-node` 可编辑正文的节点,可多个。
71
+ - `--ai-odoc` 公文助手总开关;`--ai-abstract` 智能摘要、`--ai-format` 智能排版 是它下面的两项,单独打开它们不会自动把总开关带上,需要一并给。
65
72
 
66
73
  ### 配置结构
67
74
 
@@ -74,3 +81,16 @@ e10-cli workflow odoc setting set <workflowId> \
74
81
  - AI 与格式:`openAiAbstract`、`openAiFormat`、`defaultFormatTemplate`、`showAiAssistant`、`showOfficialDoc`。
75
82
 
76
83
  保存请求携带完整公文设置,其中字段选择值为字段 ID、节点选择值为节点 ID,`signNodeList` 保存节点及其启用、必填状态。
84
+
85
+ **回读的值不能直接写回去。** 平台读回来的形状和保存要的形状不一样,混用会直接被服务端拒掉(`400 Bad Request`):
86
+
87
+ | | 读取 | 保存 |
88
+ |---|---|---|
89
+ | 开关 | 布尔 `true` / `false` | 字符串 `"1"` / `"0"` |
90
+ | 基本类型清单 | 数组 `["id1"]` / `[]` | 逗号串 `"id1"` / 空串 `""` |
91
+ | 签章节点表 | 对象数组 | 对象数组,但**每个对象里的布尔同样要转成串** |
92
+ | 节点清单字段(`editTextNode` 等) | 对象数组 `[{name,id}]` | 逗号串 `"id1,id2"` |
93
+
94
+ 分组的落法也分三种:`odocNumber` / `odocAttachArea` **整组保持嵌套**,`signNode` 组以 `signNodeList` 发出,其余分组的键**平铺**到顶层。这些转换由 CLI 自动完成,`--config` 里也按同样规则给值即可。
95
+
96
+ `setting set` 保存后会**回读比对**,对不上会点名是哪个键没落库 —— 平台对报文形状不合法一律报 400,但对语义问题可能静默收下,读回来才算数。
@@ -297,13 +297,28 @@ e10-cli workflow add-link <workflowId> <fromNodeId> <toNodeId> "退回" --reject
297
297
  e10-cli workflow add-link <workflowId> <fromNodeId> <toNodeId> "主线路" --default
298
298
  ```
299
299
 
300
- 批量添加连线:
300
+ 批量添加连线(出口表混着退回线和默认出口时用这个):
301
301
  ```bash
302
302
  e10-cli workflow add-links <workflowId> @links.json
303
- # links.json: [{"from":"nodeId","to":"nodeId","label":"发起→审批","reject":true,"default":false}]
303
+ # links.json:
304
+ # [
305
+ # {"from":"拟稿","to":"套红", "label":"拟稿 至 套红", "default":true},
306
+ # {"from":"部门经理审稿","to":"拟稿", "label":"部门经理审稿 退回 拟稿","reject":true}
307
+ # ]
304
308
  ```
305
309
 
306
- > **多条连线用 `add-links`**:`add-link` 内部 fetch→修改→save,并行的会覆盖。`add-links` 按顺序逐条执行,每条都从服务端拉最新 XML 再改,不会丢数据。不要用 `&` 或 `parallel` 并跑 add-link。
310
+ > **退回 / 默认出口逐条给**:`reject` / `default` 写在每条连线上;命令行上的 `--reject` / `--default`
311
+ > 是给整批兜底的默认值,逐条给的值优先于它。
312
+ >
313
+ > **默认出口会自动让位**:指定某条为默认出口时,同一源节点上原有的默认出口会被自动取消,
314
+ > 保证一个源节点只有一条默认出口。同一批里给同一源节点指定了两条默认出口会直接报错,
315
+ > 不会静默留下两条。
316
+ >
317
+ > **多条连线用 `add-links`**:`add-link` 内部 read→改→save,并行的会互相覆盖。`add-links` 一次把整批
318
+ > 拼好、一次保存,不会丢数据。不要用 `&` 或 `parallel` 并跑 add-link。
319
+ >
320
+ > 保存后 CLI 会**回读比对**:新连线的退回/默认标志与让位结果都对得上才算成功,
321
+ > 对不上会直接报错退出,不会因为服务端回了「保存成功」就放过。
307
322
 
308
323
  ### 删除连线
309
324
 
@@ -463,6 +478,13 @@ e10-cli workflow auto-layout <workflowId> --dry-run
463
478
 
464
479
  **算法**:读 getXml → 按连线最长路径分层(忽略退回线)→ 全量重排节点 mxGeometry → saveLayout 回写 → 回读验证。分支(forkstart→分支们→forkend)自然融入分层,同层节点垂直排开。只改节点坐标,连线自动正交路由。
465
480
 
481
+ **什么时候跑**:`create` / `create-workflow` 建流程时自动跑一次,**之后不再自动跑**。所以**加/删节点、加/删连线之后要补跑一次**(`add-node` 只把新节点丢在图的边上,不会融进流程线)。`rename-node` / `set-operator` / 条件与动作配置不改拓扑,不用跑。
482
+
483
+ 两个边界要知道:
484
+
485
+ - **会覆盖手工摆放**。它是整图重排,人在浏览器里拖过的坐标一律按算法结果重置。手工调过就别再跑,或跑完重新调。
486
+ - **不保证消除交叉**。分层算法只对「跨 ≥2 层的长跳线」把**目标**节点下移一档;跨层连线的水平段仍可能穿过中间层节点。**跑完看一眼流程图**,有交叉只能手工调坐标(或试 `--direction ttb` 换个走线方向)。
487
+
466
488
  ---
467
489
 
468
490
  ## 相关指南