weaver-e10-builder 1.0.11-beta → 1.0.12-beta

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 (175) hide show
  1. package/dist/commands/auth.d.ts.map +1 -1
  2. package/dist/commands/auth.js +13 -0
  3. package/dist/commands/auth.js.map +1 -1
  4. package/dist/commands/form-list-permission.d.ts.map +1 -1
  5. package/dist/commands/form-list-permission.js +130 -15
  6. package/dist/commands/form-list-permission.js.map +1 -1
  7. package/dist/commands/form-nlist.d.ts +22 -0
  8. package/dist/commands/form-nlist.d.ts.map +1 -0
  9. package/dist/commands/form-nlist.js +179 -0
  10. package/dist/commands/form-nlist.js.map +1 -0
  11. package/dist/commands/form-serial-mark.d.ts +0 -15
  12. package/dist/commands/form-serial-mark.d.ts.map +1 -1
  13. package/dist/commands/form-serial-mark.js +604 -137
  14. package/dist/commands/form-serial-mark.js.map +1 -1
  15. package/dist/commands/form.d.ts.map +1 -1
  16. package/dist/commands/form.js +91 -0
  17. package/dist/commands/form.js.map +1 -1
  18. package/dist/commands/skill.d.ts +3 -0
  19. package/dist/commands/skill.d.ts.map +1 -0
  20. package/dist/commands/skill.js +112 -0
  21. package/dist/commands/skill.js.map +1 -0
  22. package/dist/commands/workflow-condition.d.ts.map +1 -1
  23. package/dist/commands/workflow-condition.js +3 -1
  24. package/dist/commands/workflow-condition.js.map +1 -1
  25. package/dist/commands/workflow.d.ts.map +1 -1
  26. package/dist/commands/workflow.js +11 -7
  27. package/dist/commands/workflow.js.map +1 -1
  28. package/dist/index.js +4 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/services/condition-rules.d.ts.map +1 -1
  31. package/dist/services/condition-rules.js +3 -1
  32. package/dist/services/condition-rules.js.map +1 -1
  33. package/dist/services/form-create.d.ts.map +1 -1
  34. package/dist/services/form-create.js +4 -1
  35. package/dist/services/form-create.js.map +1 -1
  36. package/dist/services/form-nlist.d.ts +42 -0
  37. package/dist/services/form-nlist.d.ts.map +1 -0
  38. package/dist/services/form-nlist.js +332 -0
  39. package/dist/services/form-nlist.js.map +1 -0
  40. package/dist/services/skill-provision.d.ts +18 -0
  41. package/dist/services/skill-provision.d.ts.map +1 -0
  42. package/dist/services/skill-provision.js +86 -0
  43. package/dist/services/skill-provision.js.map +1 -0
  44. package/dist/services/workflow-initiator.js +3 -3
  45. package/dist/services/workflow-initiator.js.map +1 -1
  46. package/package.json +4 -2
  47. package/skill-docs/SKILL.md +348 -0
  48. package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +17 -0
  49. package/skill-docs/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  50. package/skill-docs/actionflows/references/components/document/AttachmentCopy.md +17 -0
  51. package/skill-docs/actionflows/references/components/document/AttachmentMove.md +17 -0
  52. package/skill-docs/actionflows/references/components/document/DocumentCopy.md +17 -0
  53. package/skill-docs/actionflows/references/components/document/DocumentDelete.md +17 -0
  54. package/skill-docs/actionflows/references/components/document/DocumentEdit.md +17 -0
  55. package/skill-docs/actionflows/references/components/document/DocumentMove.md +17 -0
  56. package/skill-docs/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  57. package/skill-docs/actionflows/references/components/document/DocumentRenewal.md +17 -0
  58. package/skill-docs/actionflows/references/components/document/DocumentRevert.md +17 -0
  59. package/skill-docs/actionflows/references/components/document/DocumentSave.md +17 -0
  60. package/skill-docs/actionflows/references/components/document/DocumentSubscription.md +17 -0
  61. package/skill-docs/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  62. package/skill-docs/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  63. package/skill-docs/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  64. package/skill-docs/actionflows/references/components/document/FileFolderSave.md +17 -0
  65. package/skill-docs/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  66. package/skill-docs/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  67. package/skill-docs/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  68. package/skill-docs/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  69. package/skill-docs/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  70. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +39 -0
  71. package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +21 -0
  72. package/skill-docs/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  73. package/skill-docs/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  74. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +21 -0
  75. package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +17 -0
  76. package/skill-docs/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  77. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +75 -0
  78. package/skill-docs/actionflows/references/components/ebuilder/EventFormData.md +17 -0
  79. package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +17 -0
  80. package/skill-docs/actionflows/references/components/logic/Condition.md +23 -0
  81. package/skill-docs/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  82. package/skill-docs/actionflows/references/components/logic/MultipleExecution.md +38 -0
  83. package/skill-docs/actionflows/references/components/logic/Output.md +17 -0
  84. package/skill-docs/actionflows/references/components/message/SendMessage.md +17 -0
  85. package/skill-docs/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  86. package/skill-docs/actionflows/references/components/personnel/HrmEmployeeUpdate.md +32 -0
  87. package/skill-docs/actionflows/references/components/personnel/PersonnelOnboarding.md +34 -0
  88. package/skill-docs/actionflows/references/components/trigger/SimpleScheduler.md +17 -0
  89. package/skill-docs/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  90. package/skill-docs/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  91. package/skill-docs/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  92. package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +17 -0
  93. package/skill-docs/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  94. package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  95. package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +17 -0
  96. package/skill-docs/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  97. package/skill-docs/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  98. package/skill-docs/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  99. package/skill-docs/actionflows/references/components/workflow/ApproveEntrust.md +17 -0
  100. package/skill-docs/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  101. package/skill-docs/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  102. package/skill-docs/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  103. package/skill-docs/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  104. package/skill-docs/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  105. package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +17 -0
  106. package/skill-docs/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  107. package/skill-docs/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  108. package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +49 -0
  109. package/skill-docs/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  110. package/skill-docs/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  111. package/skill-docs/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  112. package/skill-docs/actionflows/references/condition_rules.md +97 -0
  113. package/skill-docs/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1046 -0
  114. package/skill-docs/actionflows/references/function_rules.md +13 -0
  115. package/skill-docs/actionflows/references/trigger_runtime_notes.md +51 -0
  116. package/skill-docs/assets/sample/.claude/settings.local.json +8 -0
  117. package/skill-docs/assets/sample/api/formApi.js +510 -0
  118. package/skill-docs/assets/sample/config/config.js +0 -0
  119. package/skill-docs/assets/sample/config/configLoad.js +0 -0
  120. package/skill-docs/assets/sample/config/configLoad_default.js +0 -0
  121. package/skill-docs/assets/sample/config/config_default.js +0 -0
  122. package/skill-docs/assets/sample/entry.js +22 -0
  123. package/skill-docs/assets/sample/eslint.config.cjs +48 -0
  124. package/skill-docs/assets/sample/memo.md +0 -0
  125. package/skill-docs/assets/sample/readme.js +8 -0
  126. package/skill-docs/references/auth/guide-auth.md +88 -0
  127. package/skill-docs/references/coding/guide-edit-backfill.md +189 -0
  128. package/skill-docs/references/coding/guide-form-crud.md +262 -0
  129. package/skill-docs/references/coding/guide-page-code.md +224 -0
  130. package/skill-docs/references/coding/guide-page-export.md +119 -0
  131. package/skill-docs/references/coding/ref-compile-rules.md +106 -0
  132. package/skill-docs/references/common/ref-cli-commands.md +286 -0
  133. package/skill-docs/references/components/@weapp-Button.md +104 -0
  134. package/skill-docs/references/components/base-Badge.md +100 -0
  135. package/skill-docs/references/components/base-Dialog.md +358 -0
  136. package/skill-docs/references/components/base-Empty.md +58 -0
  137. package/skill-docs/references/components/base-Tag.md +112 -0
  138. package/skill-docs/references/components/display-Alert.md +64 -0
  139. package/skill-docs/references/components/display-Avatar.md +150 -0
  140. package/skill-docs/references/components/display-Calendar.md +263 -0
  141. package/skill-docs/references/components/display-Carousel.md +115 -0
  142. package/skill-docs/references/components/display-Collapse.md +299 -0
  143. package/skill-docs/references/components/display-FilePreview.md +49 -0
  144. package/skill-docs/references/components/display-Icon.md +66 -0
  145. package/skill-docs/references/components/display-List.md +320 -0
  146. package/skill-docs/references/components/display-Pagination.md +41 -0
  147. package/skill-docs/references/components/display-Spin.md +34 -0
  148. package/skill-docs/references/components/display-Steps.md +89 -0
  149. package/skill-docs/references/components/display-Table.md +160 -0
  150. package/skill-docs/references/components/display-Title.md +117 -0
  151. package/skill-docs/references/components/form-Checkbox.md +161 -0
  152. package/skill-docs/references/components/form-DepartmentBrowser-api.md +52 -0
  153. package/skill-docs/references/components/form-EmployeeBrowser-api.md +51 -0
  154. package/skill-docs/references/components/form-EmployeeBrowser.md +51 -0
  155. package/skill-docs/references/components/form-Input.md +123 -0
  156. package/skill-docs/references/components/form-Radio.md +145 -0
  157. package/skill-docs/references/components/form-Select.md +191 -0
  158. package/skill-docs/references/components/form-Switch.md +46 -0
  159. package/skill-docs/references/components/form-Upload.md +53 -0
  160. package/skill-docs/references/components/generic-Echarts.md +102 -0
  161. package/skill-docs/references/form/guide-create-form.md +407 -0
  162. package/skill-docs/references/form/guide-ebuilder-filter.md +73 -0
  163. package/skill-docs/references/form/guide-ebuilder-scope.md +82 -0
  164. package/skill-docs/references/form/guide-form-data.md +48 -0
  165. package/skill-docs/references/form/guide-form-formula-functions.md +297 -0
  166. package/skill-docs/references/form/guide-form-linkage.md +185 -0
  167. package/skill-docs/references/form/guide-form-view-permission.md +38 -0
  168. package/skill-docs/references/form/guide-form-view.md +267 -0
  169. package/skill-docs/references/form/style-templates.md +44 -0
  170. package/skill-docs/references/hrm/guide-matrix.md +103 -0
  171. package/skill-docs/references/menu/system-menus.md +63 -0
  172. package/skill-docs/references/workflow/guide-workflow-action.md +168 -0
  173. package/skill-docs/references/workflow/guide-workflow-condition.md +405 -0
  174. package/skill-docs/references/workflow/guide-workflow.md +388 -0
  175. package/skill-docs/references/workflow/operator-matrix.md +74 -0
@@ -0,0 +1,388 @@
1
+ # 流程表单指南
2
+
3
+ ## 流程页面 URL
4
+
5
+ 提交流程的页面后缀是 `/sp/workflow/flowpage/create/流程id`:
6
+
7
+ ```
8
+ /sp/workflow/flowpage/create/1281910260426555393
9
+ ```
10
+
11
+ ---
12
+
13
+ ## URL 传参预填
14
+
15
+ 流程页面支持通过 URL query string 传参来预填表单字段。参数名使用**字段 ID**,参数值为要预填的内容。
16
+
17
+ ```js
18
+ var WORKFLOW_ID = '1281935012370612224';
19
+ var workflowUrl = publicUrl + '/sp/workflow/flowpage/create/' + WORKFLOW_ID;
20
+
21
+ // 根据上下文拼接预填参数
22
+ if (selectedCell) {
23
+ var params = [];
24
+ if (selectedCell.roomId) {
25
+ params.push(F.roomNo + '=' + encodeURIComponent(selectedCell.roomId));
26
+ }
27
+ if (selectedCell.date) {
28
+ params.push(F.bookingDate + '=' + encodeURIComponent(selectedCell.date));
29
+ }
30
+ if (params.length > 0) {
31
+ workflowUrl = workflowUrl + '?' + params.join('&');
32
+ }
33
+ }
34
+ // 最终 URL 示例:
35
+ // /sp/workflow/flowpage/create/1281935012370612224?1281934337846132742=1356890123456789&1281934337846132739=2026-06-17
36
+ ```
37
+
38
+ ---
39
+
40
+ ## 注意事项
41
+
42
+ | 规则 | 说明 |
43
+ |------|------|
44
+ | 参数名 | 用表单字段 ID(纯数字字符串) |
45
+ | 参数值 | 需要 `encodeURIComponent` |
46
+ | Select 字段 | 传参时用**选项 ID**(`valueKey`),不能传显示名称 |
47
+ | 参数名不生效 | 可能需要换成流程表单里定义的字段标识(短码),让用户确认 |
48
+
49
+ ---
50
+
51
+ ## CLI 流程管理
52
+
53
+ ### 创建流程
54
+
55
+ ```bash
56
+ e10-cli workflow create <appId> <formObjId> <name> [desc]
57
+ # 自动设置所有人可发起;建流程后自动加「发起菜单」(LAYOUT,指向表单新建页,点开即触发流程)
58
+ # 加 --no-menu 可跳过自动菜单
59
+ ```
60
+
61
+ ### 查看节点
62
+
63
+ ```bash
64
+ e10-cli workflow nodes <workflowId>
65
+ # 输出节点名称、类型(发起/审批/归档)、操作者、连线关系
66
+ ```
67
+
68
+ ### 设置审批人
69
+
70
+ ```bash
71
+ # 指定人
72
+ e10-cli workflow set-operator <workflowId> <nodeId> 张三
73
+ # 指定角色
74
+ e10-cli workflow set-operator <workflowId> <nodeId> 财务主管 --type role
75
+ # 发起人上级
76
+ e10-cli workflow set-operator <workflowId> <nodeId> --type superior
77
+ # 所有人
78
+ e10-cli workflow set-operator <workflowId> <nodeId> --type all
79
+ # 自由选择(发起时自己选)
80
+ e10-cli workflow set-operator <workflowId> <nodeId> --type free
81
+ # 上一节点操作者
82
+ e10-cli workflow set-operator <workflowId> <nodeId> --type prev-node
83
+ # 指定部门(含下级)
84
+ e10-cli workflow set-operator <workflowId> <nodeId> 开发部 --type dept
85
+ # 指定岗位
86
+ e10-cli workflow set-operator <workflowId> <nodeId> 财务经理 --type position
87
+ # 签署顺序 + 批次
88
+ e10-cli workflow set-operator <workflowId> <nodeId> 张三 --sign-order 竞签 --orders 0.10
89
+ # 组内多操作者(一个节点配多人,任一人或全部审批)
90
+ e10-cli workflow set-operator <workflowId> <nodeId> "区域经理,部门领导" --type role --sign-order 竞签
91
+ ```
92
+
93
+ **修改已有操作者的签署顺序(会签→非会签/竞签/依次/抄送),不删掉重建**:
94
+
95
+ ```bash
96
+ e10-cli workflow operator-sign <workflowId> <nodeId> --sign-order 非会签
97
+ e10-cli workflow operator-sign <workflowId> <nodeId> --sign-order 竞签 --group 指定角色
98
+ ```
99
+
100
+ > ⚠️ `set-operator` 建的是**会签**;要改成非会签/竞签/依次/抄送,用 `operator-sign`(更新旧组,不重建,避免破坏关联)。`--group` 指定组名可只改某组。
101
+
102
+ **签署方式(--sign-order)概念**——决定"多个审批人之间怎么算通过":
103
+
104
+ | 签署方式 | 含义 |
105
+ |---------|------|
106
+ | **会签**(默认) | 选择的多人**必须都审批通过**才继续流转 |
107
+ | **非会签** | 选择的多人中**只要一个人审批通过**就流转下去 |
108
+ | **竞签** | 非会签的一种:多人同时可见、**先到先审**,谁先提交谁生效(其他人无需再审) |
109
+ | **依次处理** | 按人员选择顺序逐个审批,**全部审完**才流转 |
110
+ | **抄送** | 抄送对象,**不影响流转**;需批注的抄送对象批注后转入已办,不需批注的查看即转入已办 |
111
+
112
+ > **「A 或 B 审批」= 一个节点多人 + 竞签/非会签**,不是物理分两条线。比如"区域经理 或 部门领导审核":`set-operator <wf> <node> "区域经理,部门领导" --type role --sign-order 竞签`,图上只有一根线。**需求里出现"或/任一人"的审批,优先用竞签/非会签**,只有按条件真正分流(不同分支走不同流程)才拆节点。
113
+ >
114
+ > **一个节点多人**:keyword 用逗号分隔(`"角色1,角色2"` 或 `"张三,李四"`)。`set-operator` 每次全量重建该节点操作者组(先清空旧组再新建),重复设置不会堆积。
115
+ # 矩阵对应(查矩阵表动态获取审批人)
116
+ e10-cli workflow set-operator <workflowId> <nodeId> --type matrix \
117
+ --matrix-id <矩阵ID> --value-config-id <值字段configId> \
118
+ --matrix-rule "<条件configId>:1:1:1" \
119
+ --batch-condition "(申请人 等于 '张三')"
120
+ # matrix-rule 格式: 条件configId:数据来源type:匹配operate:维度virtualId
121
+ # type: 0=指定部门 1=发起人部门 5=当前操作人部门
122
+ # operate: 1=本部门 2=本及下级 3=本及上级 49=逐级向上 67=本及下级逐级向上
123
+ # virtualId: 1=行政组织
124
+ # 表单相关人员(从表单数据中动态获取审批人)
125
+ e10-cli workflow set-operator <workflowId> <nodeId> --type form \
126
+ --source <表单ID> --target <人员字段ID>
127
+ ```
128
+
129
+ ### 节点签字意见必填(退回时意见必填)
130
+
131
+ ```bash
132
+ e10-cli workflow node sign <workflowId> <nodeId> # 查看当前意见必填配置
133
+ e10-cli workflow node sign <wf> <node> --all-required # 全部操作类型意见必填
134
+ e10-cli workflow node sign <wf> <node> --none-required # 全部不必填
135
+ e10-cli workflow node sign <wf> <node> --select "退回,加签" # 指定操作类型意见必填
136
+ ```
137
+
138
+ > 「退回时意见必填」= `--select 退回`(如:上级审核节点退回时要求填写意见)。操作类型以该节点可选范围为准(不同节点类型可操作类型不同)。
139
+
140
+ ### 节点提交校验(智能审批规则,字段 vs 字段)
141
+
142
+ ```bash
143
+ e10-cli workflow node validate <workflowId> <nodeId> --view # 查看校验状态
144
+ e10-cli workflow node validate <wf> <node> --name "一致性校验" \
145
+ --rule "行程明细.行程开始时间 等于 出差开始日期" # 设置校验:行程开始时间=出差开始日期
146
+ e10-cli workflow node validate <wf> <node> --disable # 关闭校验
147
+ ```
148
+
149
+ > **规则语法**:`--rule "主题字段 操作 值字段"`。主题字段用「**明细表名.字段名**」可定位明细字段,操作支持 等于/不等于/大于/大于等于/小于/小于等于,值字段为比较引用的另一字段(字段 vs 字段,非字面值)。重复执行是**更新**同一条规则;对已配置节点会复用原 conformanceId。校验不通过默认**阻止提交**(FORBID_SUBMIT)。
150
+
151
+ **表单相关人员**(`--type form`)从指定表单的 Employee 字段动态获取审批人,支持筛选条件:
152
+
153
+ ```bash
154
+ # 无筛选:取表单中所有员工
155
+ e10-cli workflow set-operator <wf> <nodeId> --type form \
156
+ --source 1294600110549819401 --target 1294600110549819393
157
+
158
+ # 带筛选:人员级别 > 100
159
+ e10-cli workflow set-operator <wf> <nodeId> --type form \
160
+ --source 1294600110549819401 --target 1294600110549819393 \
161
+ --condition '{"fieldId":"1294600110549819396","fieldType":"Number","fieldName":"人员级别","func":"gt","value":"100"}'
162
+
163
+ # 筛选值引用表单字段:申请人 == 创建者(valueFieldId 在流程表单中查找)
164
+ e10-cli workflow set-operator <wf> <nodeId> --type form \
165
+ --source 1294602202274390029 --target 1294602202274390020 \
166
+ --workflow-form 1294601678154162216 \
167
+ --condition '{"fieldId":"1294602202274390020","fieldType":"Employee","fieldName":"申请人","func":"eq","valueFieldId":"2"}'
168
+
169
+ # 或签
170
+ e10-cli workflow set-operator <wf> <nodeId> --type form \
171
+ --source 1294600110549819401 --target 1294600110549819393 \
172
+ --sign-order 或签
173
+ ```
174
+
175
+ > `--condition` 格式:`{"fieldId":"字段ID","fieldType":"字段类型","fieldName":"字段名","func":"比较符","value":"固定值"}`。func 支持:`gt`(大于)、`lt`(小于)、`eq`(等于)、`gte`(≥)、`lte`(≤)、`like`(包含)。用 `valueFieldId` 代替 `value` 表示值引用了表单字段,需同时指定 `--workflow-form <流程表单objId>` 告诉 CLI 在哪个表单里找引用字段。`--sign-order` 默认 `会签`。
176
+
177
+ ### 添加节点
178
+
179
+ ```bash
180
+ e10-cli workflow add-node <workflowId> <type> "节点名称"
181
+ # type: 0=发起 1=审批 2=确认/会签 3=归档 5=投递 7=自动处理 8=等待
182
+ # forkstart=分流点 forkend=合流点 forkmiddle=分流中间点
183
+ # 结束节点 = 归档节点(type=3);流程末尾的归档节点就是「结束」,二者是同一个节点类型
184
+ # --node-attr: 0=一般(默认) 1=分流点 2=分流中间点 3=合流点
185
+ ```
186
+
187
+ > **分流节点不能做审批**:`forkstart` / `forkmiddle` / `forkend`(nodeAttr 1/2/3)是**纯路由节点**,配不了审批操作者——节点一旦被标成分流/合流点,`set-operator` 就设不上审批人。分流职责和审批职责必须分开:分流节点只负责分叉/合流,审批人放在各分支的**审批节点(type=1)**上,即 `forkstart → 各分支审批节点(type=1) → forkend`。
188
+
189
+ ### 等待节点(流程机器人,type=8)
190
+
191
+ 等待节点在平台叫「流程机器人」(nodeType=8),配置走 `workflow node-robot`:
192
+
193
+ ```bash
194
+ e10-cli workflow node-robot get <wf> <nodeId> # 查看当前配置
195
+ e10-cli workflow node-robot set <wf> <nodeId> --wait-value 30 # 设置等待时长
196
+ e10-cli workflow node-robot set <wf> <nodeId> --processing-interval 5 # 处理间隔
197
+ e10-cli workflow node-robot set <wf> <nodeId> --remark "等待审批结果" # 备注(多语言用 set-remark)
198
+ ```
199
+
200
+ > ⚠️ **等待时长 `--wait-value` 的单位是「分钟」,不是小时/天**。`--wait-value 30` = 30 分钟;`--processing-interval` 处理间隔同为分钟。填错单位会导致流程等待时长差 24/60 倍。`--wait-type 1` = 指定时长;`waitTimeValue=0` 是默认值(未配置指定时长)。
201
+
202
+ ### 重命名节点
203
+
204
+ ```bash
205
+ e10-cli workflow rename-node <workflowId> <nodeId> "新名称"
206
+ ```
207
+
208
+ ### 添加连线(节点→节点)
209
+
210
+ 一键添加连线:
211
+ ```bash
212
+ e10-cli workflow add-link <workflowId> <fromNodeId> <toNodeId> "标签"
213
+ e10-cli workflow add-link <workflowId> <fromNodeId> <toNodeId> "退回" --reject
214
+ e10-cli workflow add-link <workflowId> <fromNodeId> <toNodeId> "主线路" --default
215
+ ```
216
+
217
+ 批量添加连线:
218
+ ```bash
219
+ e10-cli workflow add-links <workflowId> @links.json
220
+ # links.json: [{"from":"nodeId","to":"nodeId","label":"发起→审批","reject":true,"default":false}]
221
+ ```
222
+
223
+ > **多条连线用 `add-links`**:`add-link` 内部 fetch→修改→save,并行的会覆盖。`add-links` 按顺序逐条执行,每条都从服务端拉最新 XML 再改,不会丢数据。不要用 `&` 或 `parallel` 并跑 add-link。
224
+
225
+ ### 删除连线
226
+
227
+ ```bash
228
+ # 先用 workflow nodes --json 获取连线的 linkId
229
+ e10-cli workflow nodes <workflowId> --json
230
+ # 返回的 links 数组每条都有 linkId,可直接删除
231
+ e10-cli workflow delete-link <workflowId> <linkId>
232
+ # 支持一次删多条
233
+ e10-cli workflow delete-link <workflowId> <linkId1> <linkId2>
234
+ ```
235
+
236
+ > **注意**:`workflow nodes --json` 返回的每条连线都带 `linkId`,用它来删除,不要用 nodeId。
237
+
238
+ ### 查看出口列表
239
+
240
+ ```bash
241
+ e10-cli workflow link-list <workflowId>
242
+ # 显示源节点→目标节点、默认出口[默认]、退回出口[退回]、条件状态[有条件]
243
+ # --node-id 过滤单个源节点的出口
244
+ e10-cli workflow link-list <workflowId> --node-id <nodeId>
245
+ ```
246
+
247
+ ### 修改/删除出口(列表方式)
248
+
249
+ ```bash
250
+ # 先获取当前出口列表作为基线
251
+ e10-cli workflow link-list <workflowId> --json > links.json
252
+ # 修改后保存
253
+ e10-cli workflow link-save <workflowId> @links.json
254
+ # 删除指定出口
255
+ e10-cli workflow link-save <workflowId> @links.json --delete-rows "linkId1,linkId2"
256
+ ```
257
+
258
+ ### 查看节点列表(含分流/合流属性)
259
+
260
+ ```bash
261
+ e10-cli workflow nodes <workflowId> --mode list
262
+ # 显示 nodeAttr(0=一般/1=分流点/2=分流中间点/3=合流点)+ mergeType(全部分支/指定分支/分支数/比例)
263
+ ```
264
+
265
+ ### 全流程搜索(不依赖 appId)
266
+
267
+ ```bash
268
+ e10-cli workflow search --name "费用报销"
269
+ e10-cli workflow search --id <workflowId>
270
+ e10-cli workflow search --name "审批" --belong 1 --page-size 50
271
+ ```
272
+
273
+ ### 节点操作菜单
274
+
275
+ ```bash
276
+ # 查看菜单
277
+ e10-cli workflow node menu <workflowId> <nodeId>
278
+ # 切换菜单启用状态
279
+ e10-cli workflow node menu <workflowId> <nodeId> --toggle <menuId>
280
+ ```
281
+
282
+ ### 节点退回设置
283
+
284
+ ```bash
285
+ # 查看
286
+ e10-cli workflow node reject <workflowId> <nodeId>
287
+ # 修改
288
+ e10-cli workflow node reject <workflowId> <nodeId> \
289
+ --remind 1 --type 1 --checked-node 1 --submit-type 1
290
+ ```
291
+
292
+ ### 节点超时处理
293
+
294
+ ```bash
295
+ # 查看
296
+ e10-cli workflow node timeout <workflowId> <nodeId>
297
+ # 新增超时规则(指定时间 48h,下一操作者,超时前 2h 提醒)
298
+ e10-cli workflow node timeout <workflowId> <nodeId> \
299
+ --time-type 1 --time-value 48 --flow-type 1 --remind-type 0 --remind-hours 2
300
+ ```
301
+
302
+ ### 工作流维度设置
303
+
304
+ ```bash
305
+ # 提交确认
306
+ e10-cli workflow setting submit <workflowId> --confirm 1
307
+ # 签字意见
308
+ e10-cli workflow setting sign <workflowId> --show-order 1
309
+ # 评论
310
+ e10-cli workflow setting comment <workflowId> --enable 1
311
+ # 批量操作
312
+ e10-cli workflow setting batch <workflowId> --enable-batch 1 --enable-reject 1
313
+ # 自动处理
314
+ e10-cli workflow setting auto <workflowId> --enable 1 --way 0
315
+ # 其他设置
316
+ e10-cli workflow setting other <workflowId> --message-op 1 --auto-save 1
317
+ # 流程标题规则(保存/提交后生成标题)
318
+ e10-cli workflow setting title <workflowId> # 查看可用变量
319
+ e10-cli workflow setting title <wf> --rule "工作流名称|发起人|提交日期" --sep "-" # 标题=流程名-发起人-提交日期
320
+ e10-cli workflow setting title <wf> --disable # 关闭自动生成标题
321
+ ```
322
+
323
+ > **流程标题**:`--rule` 用竖线分隔字段名(可用 `工作流名称`/`发起人`/`提交日期`/`流程编号` 等系统字段或任意表单字段名),`--sep` 指定分隔符(默认 `-`)。CLI 自动把字段名解析成占位编码(如 `工作流名称=-100`)并启用 `subtitleType` 开关。
324
+
325
+ ### 高级设置
326
+
327
+ ```bash
328
+ # 流程存档
329
+ e10-cli workflow advanced doc <workflowId> --enable 1 --doc-types "0,1"
330
+ # 定时触发(每日 09:00)
331
+ e10-cli workflow advanced schedule <workflowId> \
332
+ --enable 1 --frequency '{"item1":1,"item2":1}' --time "09:00:00" --weekday-only 1
333
+ # 定时触发人员范围
334
+ e10-cli workflow advanced schedule-range <workflowId> --list
335
+ ```
336
+
337
+ ### 整体重写流程图(save-layout)
338
+
339
+ 大规模调整节点连线时,构造完整 XML → 一次性保存覆盖当前布局:
340
+
341
+ ```bash
342
+ # 1. 将 XML 文件保存为流程布局(覆盖当前)
343
+ e10-cli workflow save-layout <workflowId> @layout.xml
344
+
345
+ # 2. 构造完整 XML(浏览器 mxGraph 格式)
346
+ ```
347
+
348
+ XML 格式示例(浏览器 mxGraph 格式:节点 cell id 用纯数字,带真实 `nodeId`;连线带真实 `linkId`,`source`/`target` 引用节点的数字 id):
349
+ ```xml
350
+ <mxGraphModel grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1331" pageHeight="888" background="#ffffff"><root>
351
+ <mxCell id="0"/><mxCell id="1" parent="0"/>
352
+ <!-- 节点:vertex="1",带 nodeId -->
353
+ <mxCell id="2" value="发起节点" style="rounded=1;whiteSpace=wrap;html=1;resizable=1;rotatable=0;arcSize=10;fillColor=#5D9CEC;strokeColor=#5D9CEC;" vertex="1" nodeType="0" nodeId="节点ID" operatorNameStr=" " parent="1"><mxGeometry x="465" y="80" width="170" height="64" as="geometry"/></mxCell>
354
+ <mxCell id="3" value="审批节点" style="..." vertex="1" nodeType="1" nodeId="节点ID" parent="1"><mxGeometry x="465" y="220" width="170" height="64" as="geometry"/></mxCell>
355
+ <!-- 连线:edge="1",带 linkId、source、target -->
356
+ <mxCell id="6" value="发起 至 审批" style="edgeStyle=orthogonalEdgeStyle;rounded=1;html=1;strokeColor=#5D9CEC;" edge="1" linkId="连线ID" isDefault="0" isReject="0" orderId="0.0" source="2" target="3" parent="1"><mxGeometry relative="1" as="geometry"/></mxCell>
357
+ </root></mxGraphModel>
358
+ ```
359
+
360
+ **关键规则**:
361
+ - 节点的 `id` 用数字(2, 3, 4...),连线的 `source`/`target` 引用节点的 `id`
362
+ - 连线的 `linkId` 是服务端分配的唯一标识,删除连线用这个
363
+ - 保存:`e10-cli workflow save-layout <workflowId> @修改后的.xml`
364
+ - **务必保持浏览器格式**:服务器 saveLayout 只认纯数字 cell id。`getXml` 输出的 `node_xxx`/`link_xxx` 格式直接回传会解析失败(节点被判为 null/已删除)
365
+
366
+ ### 节点自动排版(auto-layout)
367
+
368
+ CLI 搭建的流程(add-node 加节点)节点通常挤在一列,用自动排版重排:
369
+
370
+ ```bash
371
+ # 默认左右分层(发起在最左)
372
+ e10-cli workflow auto-layout <workflowId>
373
+
374
+ # 上下排布(发起在最顶,平台连线默认纵向)
375
+ e10-cli workflow auto-layout <workflowId> --direction ttb
376
+
377
+ # 只算不打回(看分层结果)
378
+ e10-cli workflow auto-layout <workflowId> --dry-run
379
+ ```
380
+
381
+ **算法**:读 getXml → 按连线最长路径分层(忽略退回线)→ 全量重排节点 mxGeometry → saveLayout 回写 → 回读验证。分支(forkstart→分支们→forkend)自然融入分层,同层节点垂直排开。只改节点坐标,连线自动正交路由。
382
+
383
+ ---
384
+
385
+ ## 相关指南
386
+
387
+ - **分支条件 / 出口条件 / 条件 JSON** → `workflow/guide-workflow-condition.md`
388
+ - **动作流(跨表单写入)/ 提交事件 / 角色管理** → `workflow/guide-workflow-action.md`
@@ -0,0 +1,74 @@
1
+ # 字段类型与关系符矩阵
2
+
3
+ ## 编码通表
4
+
5
+ 以下编码来自本次 `getRuleDesignCondition` 真实响应。执行时仍应以当次响应为准。
6
+
7
+ | 编码 | 通用语义 | 适用说明 |
8
+ |---:|---|---|
9
+ | `"1"` | 大于 | 数值、金额、日期及时间类左/右比较 |
10
+ | `"2"` | 大于等于 | 数值、金额、日期及时间类左/右比较 |
11
+ | `"3"` | 小于 | 数值、金额、日期及时间类左/右比较 |
12
+ | `"4"` | 小于等于 | 数值、金额、日期及时间类左/右比较 |
13
+ | `"5"` | 等于 | 文本、数值、日期、浏览字段 |
14
+ | `"6"` | 不等于 | 文本、数值、日期、浏览字段 |
15
+ | `"7"` | 属于 | 每周日期模式 |
16
+ | `"8"` | 不属于 | 每周日期模式 |
17
+ | `"9"` | 包含或属于 | 由字段类型决定显示文案;文本/人员/部门显示“包含”,发起人/下拉显示“属于” |
18
+ | `"10"` | 不包含或不属于 | 由字段类型决定显示文案 |
19
+ | `"13"` | 为空 | 只允许左关系符 |
20
+ | `"14"` | 不为空 | 只允许左关系符 |
21
+ | `"15"` | 包含(子部门) | 部门字段 |
22
+ | `"16"` | 不包含(子部门) | 部门字段 |
23
+ | `"23"` | 是 | 布尔字段 |
24
+ | `"24"` | 否 | 布尔字段 |
25
+
26
+ ## 字段类型矩阵
27
+
28
+ | 字段来源/类型 | 参数族 | 支持的左关系符 | 支持的右关系符 | 值与附加参数 |
29
+ |---|---|---|---|---|
30
+ | 系统:流程标题 | `String*` | 等于、不等于、包含、不包含、为空、不为空 | 不适用 | `selectType="3"`、`systemVariable="-1"` |
31
+ | 系统:发起人 | `Browser*` | 属于、不属于、为空、不为空、等于、不等于 | 不适用 | `systemVariable="-2"`;先选人员维度 `typeHrm` |
32
+ | 系统:发起时间 | `Date*` | 大于、大于等于、小于、小于等于、等于、不等于、为空、不为空 | 大于、大于等于、小于、小于等于、等于、不等于 | `systemVariable="-3"` |
33
+ | 系统:发起人分部/部门/岗位/职级 | `Browser*` | 按具体浏览字段返回的包含、属于、等于和空值集合 | 不适用 | 系统字段 ID 分别由动态响应取得 |
34
+ | 系统:当前操作人及直接上级 | `Browser*` | 属于、不属于、为空、不为空、等于、不等于 | 不适用 | 先选择人员维度 |
35
+ | 系统:节点通过时间、流程超时 | `Number*` | 数值八种左关系符 | 数值六种右关系符 | 小时数 |
36
+ | 系统:密级、紧急程度 | `Browser*` | 包含、不包含、为空、不为空、等于、不等于 | 不适用 | 选项来自浏览接口 |
37
+ | 主表/明细文本 | `String*` | 等于、不等于、包含、不包含、为空、不为空 | 不适用 | 输入文本;明细另传 `detailOption` |
38
+ | 整数、浮点、金额 | `Number*` | 大于、大于等于、小于、小于等于、等于、不等于、为空、不为空 | 大于、大于等于、小于、小于等于、等于、不等于 | 可以组成左右边界 |
39
+ | 下拉框 | `Browser*` | 属于、不属于、为空、不为空、等于、不等于 | 不适用 | `containType="1"` 任一值,`"2"` 所有值;值对象为选项 ID 和文案 |
40
+ | 人员浏览 | `Browser*` | 包含、不包含、为空、不为空、等于、不等于 | 不适用 | 可先选择具体人员、人员数量、直接上级、所有上级、分部、部门、角色、岗位、职级、群组等维度 |
41
+ | 部门浏览 | `Browser*` | 包含、不包含、包含(子部门)、不包含(子部门)、为空、不为空、等于、不等于 | 不适用 | 值必须来自部门浏览接口 |
42
+ | 日期 | `Date*` | 大于、大于等于、小于、小于等于、等于、不等于、为空、不为空 | 大于、大于等于、小于、小于等于、等于、不等于 | 日期模式支持日期、每周、每月、每年;普通日期为 `typeHrm="16"` |
43
+ | 布尔 | `Bool*` | 是、否 | 不适用 | 不再输入比较值 |
44
+ | 明细任一行 | 取决于字段类型 | 与对应字段类型相同 | 与对应字段类型相同 | `detailOption="1"` |
45
+ | 明细所有行 | 取决于字段类型 | 与对应字段类型相同 | 与对应字段类型相同 | `detailOption="2"` |
46
+ | 明细合计 | `Number*` | 数值八种左关系符 | 数值六种右关系符 | 使用字段浏览响应中 `total=true` 的对象,不传 `detailOption` |
47
+
48
+ ## 系统字段清单
49
+
50
+ | systemVariable | 字段 | 类型 |
51
+ |---:|---|---|
52
+ | `"-1"` | 流程标题 | String |
53
+ | `"-2"` | 发起人 | Browser |
54
+ | `"-3"` | 发起时间 | Date |
55
+ | `"-5"` | 发起人分部 | Browser |
56
+ | `"-4"` | 发起人部门 | Browser |
57
+ | `"-6"` | 发起人岗位 | Browser |
58
+ | `"-7"` | 发起人职级 | Browser |
59
+ | `"-8"` | 当前操作人 | Browser |
60
+ | `"-13"` | 发起人直接上级 | Browser |
61
+ | `"-14"` | 当前操作人直接上级 | Browser |
62
+ | `"-10"` | 节点通过时间(时) | Number |
63
+ | `"-9"` | 流程超时(时) | Number |
64
+ | `"-30"` | 密级 | SysBrowser |
65
+ | `"-12"` | 紧急程度 | SysBrowser |
66
+
67
+ ## 值来源与空值
68
+
69
+ - 文本值:`StringValueOptionLeft="1"`,值放 `StringTextValueLeft1`。
70
+ - 数值值:`NumberValueOptionLeft/Right="1"`,值放对应 `NumberTextValue*`。
71
+ - 日期值:`DateValueOptionLeft/Right="1"`,值放对应 `DateTextValue*`。
72
+ - 浏览值:`BrowserValueOptionLeft="1"`,值放 `BrowserTextValueLeft1` 数组。
73
+ - 为空和不为空不应再传业务值。
74
+ - 关系符 `"9"` 和 `"10"` 的中文语义依赖字段类型;必须先根据当前字段读取专用 `browserCompareOptions`。