weaver-e10-builder 1.6.11 → 1.6.13

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 (260) hide show
  1. package/dist/cli-register.d.ts +22 -0
  2. package/dist/cli-register.d.ts.map +1 -0
  3. package/dist/cli-register.js +340 -0
  4. package/dist/cli-register.js.map +1 -0
  5. package/dist/commands/form-browser-definition.d.ts.map +1 -1
  6. package/dist/commands/form-browser-definition.js +108 -7
  7. package/dist/commands/form-browser-definition.js.map +1 -1
  8. package/dist/commands/form-browser-scope-rules.d.ts +27 -0
  9. package/dist/commands/form-browser-scope-rules.d.ts.map +1 -0
  10. package/dist/commands/form-browser-scope-rules.js +141 -0
  11. package/dist/commands/form-browser-scope-rules.js.map +1 -0
  12. package/dist/commands/form-browser-scope-tree.d.ts +14 -0
  13. package/dist/commands/form-browser-scope-tree.d.ts.map +1 -0
  14. package/dist/commands/form-browser-scope-tree.js +115 -0
  15. package/dist/commands/form-browser-scope-tree.js.map +1 -0
  16. package/dist/commands/form-list-columns.d.ts.map +1 -1
  17. package/dist/commands/form-list-columns.js +85 -3
  18. package/dist/commands/form-list-columns.js.map +1 -1
  19. package/dist/commands/form-list-config.d.ts +9 -0
  20. package/dist/commands/form-list-config.d.ts.map +1 -0
  21. package/dist/commands/form-list-config.js +113 -0
  22. package/dist/commands/form-list-config.js.map +1 -0
  23. package/dist/commands/form-list-filter.d.ts.map +1 -1
  24. package/dist/commands/form-list-filter.js +231 -3
  25. package/dist/commands/form-list-filter.js.map +1 -1
  26. package/dist/commands/form-nlist.d.ts.map +1 -1
  27. package/dist/commands/form-nlist.js +48 -1
  28. package/dist/commands/form-nlist.js.map +1 -1
  29. package/dist/commands/matrix-maintainer.d.ts +3 -0
  30. package/dist/commands/matrix-maintainer.d.ts.map +1 -0
  31. package/dist/commands/matrix-maintainer.js +117 -0
  32. package/dist/commands/matrix-maintainer.js.map +1 -0
  33. package/dist/commands/matrix.d.ts.map +1 -1
  34. package/dist/commands/matrix.js +2 -0
  35. package/dist/commands/matrix.js.map +1 -1
  36. package/dist/commands/report-validate.d.ts.map +1 -1
  37. package/dist/commands/report-validate.js +36 -0
  38. package/dist/commands/report-validate.js.map +1 -1
  39. package/dist/commands/role.d.ts.map +1 -1
  40. package/dist/commands/role.js +354 -0
  41. package/dist/commands/role.js.map +1 -1
  42. package/dist/commands/special.d.ts.map +1 -1
  43. package/dist/commands/special.js +67 -31
  44. package/dist/commands/special.js.map +1 -1
  45. package/dist/commands/wf-form.d.ts.map +1 -1
  46. package/dist/commands/wf-form.js +1 -121
  47. package/dist/commands/wf-form.js.map +1 -1
  48. package/dist/commands/workflow-layout-components.d.ts +3 -0
  49. package/dist/commands/workflow-layout-components.d.ts.map +1 -0
  50. package/dist/commands/workflow-layout-components.js +36 -0
  51. package/dist/commands/workflow-layout-components.js.map +1 -0
  52. package/dist/commands/workflow-node-batch.d.ts +3 -0
  53. package/dist/commands/workflow-node-batch.d.ts.map +1 -0
  54. package/dist/commands/workflow-node-batch.js +136 -0
  55. package/dist/commands/workflow-node-batch.js.map +1 -0
  56. package/dist/commands/workflow-node-opinion.d.ts +3 -0
  57. package/dist/commands/workflow-node-opinion.d.ts.map +1 -0
  58. package/dist/commands/workflow-node-opinion.js +51 -0
  59. package/dist/commands/workflow-node-opinion.js.map +1 -0
  60. package/dist/commands/workflow-node-reject.js +1 -1
  61. package/dist/commands/workflow-node-reject.js.map +1 -1
  62. package/dist/commands/workflow-node.d.ts.map +1 -1
  63. package/dist/commands/workflow-node.js +4 -3
  64. package/dist/commands/workflow-node.js.map +1 -1
  65. package/dist/index.js +19 -209
  66. package/dist/index.js.map +1 -1
  67. package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -1
  68. package/dist/services/actionflow/build_workflow_draft.js +8 -0
  69. package/dist/services/actionflow/build_workflow_draft.js.map +1 -1
  70. package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -1
  71. package/dist/services/actionflow/calendar_mapper.js +7 -4
  72. package/dist/services/actionflow/calendar_mapper.js.map +1 -1
  73. package/dist/services/actionflow/component_registry.d.ts.map +1 -1
  74. package/dist/services/actionflow/component_registry.js +18 -2
  75. package/dist/services/actionflow/component_registry.js.map +1 -1
  76. package/dist/services/actionflow/components/action_eb_delete.js +1 -1
  77. package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
  78. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  79. package/dist/services/actionflow/components/action_eb_update.js +2 -1
  80. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  81. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
  82. package/dist/services/actionflow/components/approve_create.js +4 -3
  83. package/dist/services/actionflow/components/approve_create.js.map +1 -1
  84. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
  85. package/dist/services/actionflow/components/document_actions.js +15 -48
  86. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  87. package/dist/services/actionflow/components/enquiry_form.d.ts +0 -7
  88. package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
  89. package/dist/services/actionflow/components/enquiry_form.js +10 -54
  90. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  91. package/dist/services/actionflow/components/form_data_builder.d.ts +2 -0
  92. package/dist/services/actionflow/components/form_data_builder.d.ts.map +1 -1
  93. package/dist/services/actionflow/components/form_data_builder.js +35 -0
  94. package/dist/services/actionflow/components/form_data_builder.js.map +1 -1
  95. package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -1
  96. package/dist/services/actionflow/components/inner_mq_send.js +8 -2
  97. package/dist/services/actionflow/components/inner_mq_send.js.map +1 -1
  98. package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
  99. package/dist/services/actionflow/components/send_message.js +60 -4
  100. package/dist/services/actionflow/components/send_message.js.map +1 -1
  101. package/dist/services/actionflow/components/serverless_action.d.ts.map +1 -1
  102. package/dist/services/actionflow/components/serverless_action.js +39 -0
  103. package/dist/services/actionflow/components/serverless_action.js.map +1 -1
  104. package/dist/services/actionflow/components/simple_scheduler.d.ts.map +1 -1
  105. package/dist/services/actionflow/components/simple_scheduler.js +46 -12
  106. package/dist/services/actionflow/components/simple_scheduler.js.map +1 -1
  107. package/dist/services/actionflow/components/time_batch_trigger.js +4 -3
  108. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
  109. package/dist/services/actionflow/context_preflight.js +5 -5
  110. package/dist/services/actionflow/context_preflight.js.map +1 -1
  111. package/dist/services/actionflow/form_source.d.ts +2 -0
  112. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  113. package/dist/services/actionflow/form_source.js +45 -10
  114. package/dist/services/actionflow/form_source.js.map +1 -1
  115. package/dist/services/actionflow/formula_service.d.ts +1 -0
  116. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  117. package/dist/services/actionflow/formula_service.js +130 -36
  118. package/dist/services/actionflow/formula_service.js.map +1 -1
  119. package/dist/services/actionflow/param_mapping_basis.d.ts +3 -0
  120. package/dist/services/actionflow/param_mapping_basis.d.ts.map +1 -0
  121. package/dist/services/actionflow/param_mapping_basis.js +61 -0
  122. package/dist/services/actionflow/param_mapping_basis.js.map +1 -0
  123. package/dist/services/actionflow/preflight_service.d.ts +2 -0
  124. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  125. package/dist/services/actionflow/preflight_service.js +73 -35
  126. package/dist/services/actionflow/preflight_service.js.map +1 -1
  127. package/dist/services/actionflow/runtime_metadata.d.ts +1 -0
  128. package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -1
  129. package/dist/services/actionflow/runtime_metadata.js +3 -0
  130. package/dist/services/actionflow/runtime_metadata.js.map +1 -1
  131. package/dist/services/actionflow/trigger_common.d.ts.map +1 -1
  132. package/dist/services/actionflow/trigger_common.js +4 -7
  133. package/dist/services/actionflow/trigger_common.js.map +1 -1
  134. package/dist/services/actionflow/update_service.d.ts +6 -0
  135. package/dist/services/actionflow/update_service.d.ts.map +1 -1
  136. package/dist/services/actionflow/update_service.js +6 -38
  137. package/dist/services/actionflow/update_service.js.map +1 -1
  138. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  139. package/dist/services/actionflow/workflow_compiler.js +7 -7
  140. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  141. package/dist/services/actionflow/workflow_request_level.d.ts +3 -0
  142. package/dist/services/actionflow/workflow_request_level.d.ts.map +1 -0
  143. package/dist/services/actionflow/workflow_request_level.js +11 -0
  144. package/dist/services/actionflow/workflow_request_level.js.map +1 -0
  145. package/dist/services/form-layout-describe.d.ts.map +1 -1
  146. package/dist/services/form-layout-describe.js +3 -2
  147. package/dist/services/form-layout-describe.js.map +1 -1
  148. package/dist/services/form-layout-document.d.ts.map +1 -1
  149. package/dist/services/form-layout-document.js +2 -1
  150. package/dist/services/form-layout-document.js.map +1 -1
  151. package/dist/services/form-list-columns.d.ts +11 -0
  152. package/dist/services/form-list-columns.d.ts.map +1 -1
  153. package/dist/services/form-list-columns.js +10 -0
  154. package/dist/services/form-list-columns.js.map +1 -1
  155. package/dist/services/form-list-config.d.ts +58 -0
  156. package/dist/services/form-list-config.d.ts.map +1 -0
  157. package/dist/services/form-list-config.js +140 -0
  158. package/dist/services/form-list-config.js.map +1 -0
  159. package/dist/services/form-list-fields.d.ts +36 -0
  160. package/dist/services/form-list-fields.d.ts.map +1 -0
  161. package/dist/services/form-list-fields.js +182 -0
  162. package/dist/services/form-list-fields.js.map +1 -0
  163. package/dist/services/form-list-filter-http.d.ts +60 -0
  164. package/dist/services/form-list-filter-http.d.ts.map +1 -0
  165. package/dist/services/form-list-filter-http.js +137 -0
  166. package/dist/services/form-list-filter-http.js.map +1 -0
  167. package/dist/services/form-list-filter-sql.d.ts +74 -0
  168. package/dist/services/form-list-filter-sql.d.ts.map +1 -0
  169. package/dist/services/form-list-filter-sql.js +206 -0
  170. package/dist/services/form-list-filter-sql.js.map +1 -0
  171. package/dist/services/form-nlist.d.ts +25 -0
  172. package/dist/services/form-nlist.d.ts.map +1 -1
  173. package/dist/services/form-nlist.js +223 -0
  174. package/dist/services/form-nlist.js.map +1 -1
  175. package/dist/services/form-view.d.ts +3 -3
  176. package/dist/services/form-view.d.ts.map +1 -1
  177. package/dist/services/form-view.js +26 -12
  178. package/dist/services/form-view.js.map +1 -1
  179. package/dist/services/matrix-maintainer.d.ts +27 -0
  180. package/dist/services/matrix-maintainer.d.ts.map +1 -0
  181. package/dist/services/matrix-maintainer.js +142 -0
  182. package/dist/services/matrix-maintainer.js.map +1 -0
  183. package/dist/services/report/drill.d.ts +74 -0
  184. package/dist/services/report/drill.d.ts.map +1 -0
  185. package/dist/services/report/drill.js +259 -0
  186. package/dist/services/report/drill.js.map +1 -0
  187. package/dist/services/role-function-permission.d.ts +12 -0
  188. package/dist/services/role-function-permission.d.ts.map +1 -0
  189. package/dist/services/role-function-permission.js +46 -0
  190. package/dist/services/role-function-permission.js.map +1 -0
  191. package/dist/services/special-layout.d.ts +113 -0
  192. package/dist/services/special-layout.d.ts.map +1 -0
  193. package/dist/services/special-layout.js +178 -0
  194. package/dist/services/special-layout.js.map +1 -0
  195. package/dist/services/workflow-base-settings.d.ts +1 -10
  196. package/dist/services/workflow-base-settings.d.ts.map +1 -1
  197. package/dist/services/workflow-field-permission-route.d.ts +15 -41
  198. package/dist/services/workflow-field-permission-route.d.ts.map +1 -1
  199. package/dist/services/workflow-field-permission-route.js +23 -8
  200. package/dist/services/workflow-field-permission-route.js.map +1 -1
  201. package/dist/services/workflow-function-management.d.ts +1 -1
  202. package/dist/services/workflow-layout-components.d.ts +52 -0
  203. package/dist/services/workflow-layout-components.d.ts.map +1 -0
  204. package/dist/services/workflow-layout-components.js +66 -0
  205. package/dist/services/workflow-layout-components.js.map +1 -0
  206. package/dist/services/workflow-layout-draft.d.ts +49 -0
  207. package/dist/services/workflow-layout-draft.d.ts.map +1 -0
  208. package/dist/services/workflow-layout-draft.js +98 -0
  209. package/dist/services/workflow-layout-draft.js.map +1 -0
  210. package/dist/services/workflow-node-batch-spec.d.ts +122 -0
  211. package/dist/services/workflow-node-batch-spec.d.ts.map +1 -0
  212. package/dist/services/workflow-node-batch-spec.js +496 -0
  213. package/dist/services/workflow-node-batch-spec.js.map +1 -0
  214. package/dist/services/workflow-node-batch.d.ts +73 -0
  215. package/dist/services/workflow-node-batch.d.ts.map +1 -0
  216. package/dist/services/workflow-node-batch.js +328 -0
  217. package/dist/services/workflow-node-batch.js.map +1 -0
  218. package/dist/services/workflow-node-opinion-description.d.ts +12 -0
  219. package/dist/services/workflow-node-opinion-description.d.ts.map +1 -0
  220. package/dist/services/workflow-node-opinion-description.js +52 -0
  221. package/dist/services/workflow-node-opinion-description.js.map +1 -0
  222. package/dist/services/workflow-node-opinion-layout.d.ts +22 -0
  223. package/dist/services/workflow-node-opinion-layout.d.ts.map +1 -0
  224. package/dist/services/workflow-node-opinion-layout.js +113 -0
  225. package/dist/services/workflow-node-opinion-layout.js.map +1 -0
  226. package/dist/services/workflow-node-opinion-range.d.ts +21 -0
  227. package/dist/services/workflow-node-opinion-range.d.ts.map +1 -0
  228. package/dist/services/workflow-node-opinion-range.js +74 -0
  229. package/dist/services/workflow-node-opinion-range.js.map +1 -0
  230. package/dist/services/workflow-node-opinion.d.ts +43 -0
  231. package/dist/services/workflow-node-opinion.d.ts.map +1 -0
  232. package/dist/services/workflow-node-opinion.js +198 -0
  233. package/dist/services/workflow-node-opinion.js.map +1 -0
  234. package/dist/services/workflow-opinion-settings.d.ts +14 -0
  235. package/dist/services/workflow-opinion-settings.d.ts.map +1 -1
  236. package/dist/services/workflow-opinion-settings.js +18 -2
  237. package/dist/services/workflow-opinion-settings.js.map +1 -1
  238. package/package.json +1 -1
  239. package/skill-docs/SKILL.md +164 -162
  240. package/skill-docs/_catalog.md +3 -2
  241. package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +32 -32
  242. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +3 -1
  243. package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -19
  244. package/skill-docs/actionflows/references/components/message/SendMessage.md +32 -30
  245. package/skill-docs/references/common/guide-plan-template.md +4 -1
  246. package/skill-docs/references/common/map.md +28 -4
  247. package/skill-docs/references/common/ref-cli-commands.md +23 -8
  248. package/skill-docs/references/form/guide-browser-definition.md +2 -219
  249. package/skill-docs/references/form/guide-browser-scope.md +285 -0
  250. package/skill-docs/references/form/guide-create-form.md +1 -1
  251. package/skill-docs/references/form/guide-form-view.md +201 -0
  252. package/skill-docs/references/hrm/guide-matrix.md +276 -245
  253. package/skill-docs/references/hrm/guide-role.md +77 -0
  254. package/skill-docs/references/report/drilldown-report-guide.md +17 -1
  255. package/skill-docs/references/report/event-hreflink-guide.md +2 -0
  256. package/skill-docs/references/report/query-condition-api-guide.md +29 -0
  257. package/skill-docs/references/workflow/guide-layout-components.md +26 -0
  258. package/skill-docs/references/workflow/guide-node-opinion.md +58 -0
  259. package/skill-docs/references/workflow/guide-workflow.md +43 -0
  260. package/skill-docs/references/form/guide-ebuilder-scope.md +0 -82
@@ -61,16 +61,7 @@ export declare class BaseSettings extends OpinionSettings {
61
61
  };
62
62
  configs: any;
63
63
  renderer: "legacy";
64
- route: {
65
- kind: import("./workflow-context.js").WorkflowFormKind;
66
- module: string;
67
- endpoint: string;
68
- bridge: {
69
- bridgeService: string;
70
- } | {
71
- bridgeService?: undefined;
72
- };
73
- };
64
+ route: import("./workflow-field-permission-route.js").FieldPermissionRoute;
74
65
  }>;
75
66
  saveShareFields(w: string, p: Config): Promise<{
76
67
  workflowId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-base-settings.d.ts","sourceRoot":"","sources":["../../src/services/workflow-base-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-base-settings.d.ts","sourceRoot":"","sources":["../../src/services/workflow-base-settings.ts"],"names":[],"mappings":"AAGA,OAAO,EAAI,KAAK,MAAM,EAAC,KAAK,MAAM,EAAC,KAAK,IAAI,EAAC,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAC,eAAe,EAAc,MAAM,gCAAgC,CAAC;AAE5E,eAAO,MAAM,CAAC,6BAA2B,CAAC;AAC1C,eAAO,MAAM,MAAM;;;;;;;CAOlB,CAAC;AACF,MAAM,MAAM,IAAI,GAAC,SAAS,GAAC,UAAU,GAAC,QAAQ,CAAC;AAC/C,MAAM,MAAM,OAAO,GAAC,WAAW,GAAC,mBAAmB,CAAC;AAEpD,wBAAgB,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAE,QAG7C;AACD,wBAAgB,MAAM,CAAC,CAAC,EAAC,GAAG,GAAE,IAAI,CAAuE;AACzG,wBAAgB,OAAO,CAAC,CAAC,EAAC,MAAM,GAAE,OAAO,CAA2G;AAEpJ,wBAAgB,WAAW,CAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,GAAE,MAAM,CAO7D;AAYD,wBAAgB,MAAM,CAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,EAAE,QAG/D;AACD,wBAAgB,UAAU,CAAC,CAAC,EAAC,IAAI,GAAE,MAAM,CAOxC;AACD,wBAAgB,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,GAAE,MAAM,CAI3C;AACD,qBAAa,YAAa,SAAQ,eAAe;gBACpC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM;IAC/B,IAAI,CAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM;IAC/B,IAAI,CAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;IAStC,SAAS,CAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,GAAG,EAAC,CAAC,EAAC,MAAM,GAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IAqB3D,KAAK,CAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAE,GAAE,OAAO,CAAC,MAAM,CAAC;IAevD,IAAI,CAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM;;;;;;IAOhC,OAAO,CAAC,CAAC,EAAC,MAAM;IAMhB,WAAW,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM;;;;;;IAQ7B,YAAY,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,KAAK,CAAC,EAAC,MAAM;;;;;;;IA+B5C,cAAc,CAAC,CAAC,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM;;;;;;;;;YAS5B,oBAAoB;IAM5B,WAAW,CAAC,CAAC,EAAC,MAAM;;;;;;;;;IAyBpB,eAAe,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM;;;;;;;IAiBjC,iBAAiB,CAAC,CAAC,EAAC,MAAM;IAI1B,qBAAqB,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM;;;;;;IAcvC,MAAM,CAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO;IAC3B,UAAU,CAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM;;;;;;;IAcxC,WAAW,CAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO,GAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IAGnD,YAAY,CAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO;IAIjC,cAAc,CAAC,CAAC,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM,EAAC,KAAK,CAAC,EAAC,MAAM;;;;;;;IAsB1D,gBAAgB,IAAG,OAAO,CAAC,OAAO,CAAC;IAMnC,SAAS,CAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,CAAC,EAAC,MAAM;IAO7C,YAAY,CAAC,CAAC,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,MAAM,CAAC,EAAC,MAAM;;;;;;;;CAmB5E"}
@@ -1,54 +1,28 @@
1
+ import { type WorkflowFormKind } from './workflow-context.js';
1
2
  import { type Client } from './workflow-function-management.js';
2
- /** Read-only form discovery shared by node and sharing permissions. Never retry a write on another route. */
3
- export declare function resolveFieldPermissionRoute(client: Client, base: string, workflowId: string, formId?: string): Promise<{
4
- kind: import("./workflow-context.js").WorkflowFormKind;
3
+ export interface FieldPermissionRoute {
4
+ kind: WorkflowFormKind;
5
5
  module: string;
6
6
  endpoint: string;
7
- bridge: {
8
- bridgeService: string;
9
- } | {
10
- bridgeService?: undefined;
11
- };
12
- }>;
13
- export declare function loadNodeFieldPermission(client: Client, base: string, workflowId: string, nodeId: string): Promise<{
14
- route: {
15
- kind: import("./workflow-context.js").WorkflowFormKind;
16
- module: string;
17
- endpoint: string;
18
- bridge: {
19
- bridgeService: string;
20
- } | {
21
- bridgeService?: undefined;
22
- };
23
- };
7
+ bridge: Record<string, unknown>;
8
+ formId: string;
9
+ }
10
+ /** 流程级路由映射:接口路径只取决于流程表单类型,可在一次批量里解析一次复用。 */
11
+ export declare function fieldPermissionRouteOf(kind: WorkflowFormKind, formId: string): FieldPermissionRoute;
12
+ /** Read-only form discovery shared by node and sharing permissions. Never retry a write on another route. */
13
+ export declare function resolveFieldPermissionRoute(client: Client, base: string, workflowId: string, formId?: string): Promise<FieldPermissionRoute>;
14
+ export declare function loadNodeFieldPermission(client: Client, base: string, workflowId: string, nodeId: string,
15
+ /** 已解析的流程级路由(批量场景复用);传入时不再重复请求 getPathFrameInfo,但仍校验节点表单一致。 */
16
+ knownRoute?: FieldPermissionRoute): Promise<{
17
+ route: FieldPermissionRoute;
24
18
  formId: any;
25
19
  permissionId: any;
26
20
  nodeFormRelateId: any;
27
21
  layoutId: any;
28
22
  relateFormId: any;
29
23
  hasNodePermissionSet: boolean;
24
+ allowModify: any;
30
25
  customParam: {
31
- bridgeService: string;
32
- workflowId: string;
33
- nodeId: string;
34
- scene: number;
35
- nodeFormRelate: {
36
- id: any;
37
- workflowId: string;
38
- layoutId: any;
39
- nodeId: string;
40
- permissionId: any;
41
- relateFormId: any;
42
- allowModify: number;
43
- enableNodePermission: number;
44
- mLayoutId: string;
45
- mLayoutMode: string;
46
- };
47
- allowModify: number;
48
- isDefault: boolean;
49
- entrance: string;
50
- } | {
51
- bridgeService?: undefined;
52
26
  workflowId: string;
53
27
  nodeId: string;
54
28
  scene: number;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-field-permission-route.d.ts","sourceRoot":"","sources":["../../src/services/workflow-field-permission-route.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAEpE,6GAA6G;AAC7G,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;GASlH;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwB7G;AAED,4EAA4E;AAC5E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,gBAUlF"}
1
+ {"version":3,"file":"workflow-field-permission-route.d.ts","sourceRoot":"","sources":["../../src/services/workflow-field-permission-route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAM,KAAK,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,oBAAoB,CASnG;AAED,6GAA6G;AAC7G,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAChE,OAAO,CAAC,oBAAoB,CAAC,CAG/B;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;AAChE,+DAA+D;AAC/D,UAAU,CAAC,EAAE,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiClC;AAED,4EAA4E;AAC5E,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAC5B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,gBAUlF"}
@@ -1,22 +1,33 @@
1
1
  import { getWorkflowContext } from './workflow-context.js';
2
2
  import { id } from './workflow-function-management.js';
3
- /** Read-only form discovery shared by node and sharing permissions. Never retry a write on another route. */
4
- export async function resolveFieldPermissionRoute(client, base, workflowId, formId) {
5
- const form = await getWorkflowContext(client, base, workflowId, formId);
6
- const eb = form.kind === 'ebuilder';
3
+ /** 流程级路由映射:接口路径只取决于流程表单类型,可在一次批量里解析一次复用。 */
4
+ export function fieldPermissionRouteOf(kind, formId) {
5
+ const eb = kind === 'ebuilder';
7
6
  return {
8
- kind: form.kind,
7
+ kind,
9
8
  module: eb ? 'ebuildercard' : 'workflow',
10
9
  endpoint: eb ? '/api/ebuilder/flow/form/view/relate' : '/api/workflow/core/form/view/relate',
11
10
  bridge: eb ? { bridgeService: 'ebuilder' } : {},
11
+ formId: String(formId),
12
12
  };
13
13
  }
14
- export async function loadNodeFieldPermission(client, base, workflowId, nodeId) {
14
+ /** Read-only form discovery shared by node and sharing permissions. Never retry a write on another route. */
15
+ export async function resolveFieldPermissionRoute(client, base, workflowId, formId) {
16
+ const form = await getWorkflowContext(client, base, workflowId, formId);
17
+ return fieldPermissionRouteOf(form.kind, form.formId);
18
+ }
19
+ export async function loadNodeFieldPermission(client, base, workflowId, nodeId,
20
+ /** 已解析的流程级路由(批量场景复用);传入时不再重复请求 getPathFrameInfo,但仍校验节点表单一致。 */
21
+ knownRoute) {
15
22
  const dl = await client.get(`${base}/api/bs/workflow/pathdef/nodeLayout/getDisplayLayoutForm?workflowId=${id(workflowId)}&nodeId=${id(nodeId)}`);
16
23
  const d = dl?.data;
17
24
  if (dl?.code !== 200 || dl.status === false || !d?.formId)
18
25
  throw Error('无法读取节点表单关联,停止字段权限操作');
19
- const route = await resolveFieldPermissionRoute(client, base, workflowId, String(d.formId));
26
+ const nodeFormId = String(d.formId);
27
+ if (knownRoute && knownRoute.formId !== nodeFormId) {
28
+ throw Error(`节点 ${nodeId} 的表单(${nodeFormId})与流程主表单(${knownRoute.formId})不一致,停止字段权限操作`);
29
+ }
30
+ const route = knownRoute ?? await resolveFieldPermissionRoute(client, base, workflowId, nodeFormId);
20
31
  const permissionId = d.permissionId ?? '-1', nodeFormRelateId = d.nodeFormRelateId ?? '-1';
21
32
  const customParam = {
22
33
  workflowId, nodeId, scene: 0,
@@ -32,10 +43,14 @@ export async function loadNodeFieldPermission(client, base, workflowId, nodeId)
32
43
  });
33
44
  if (gp?.code !== 200 || gp.status === false || !Array.isArray(gp.data?.configs))
34
45
  throw Error('未读到完整节点字段权限,停止写入');
46
+ // 「允许修改流程表单内容」在 displayLayoutForm.data 里;顶层没有这个字段。
47
+ const layoutData = d.displayLayoutForm?.data || {};
35
48
  return {
36
49
  route, formId: d.formId, permissionId, nodeFormRelateId,
37
50
  layoutId: d.layoutId || '', relateFormId: d.relateFormId || '',
38
- hasNodePermissionSet: !!d.hasNodePermissionSet, customParam, configs: gp.data.configs,
51
+ hasNodePermissionSet: !!d.hasNodePermissionSet,
52
+ allowModify: layoutData.allowModify ?? d.allowModify,
53
+ customParam, configs: gp.data.configs,
39
54
  };
40
55
  }
41
56
  /** Persist through the same route that supplied the permission snapshot. */
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-field-permission-route.js","sourceRoot":"","sources":["../../src/services/workflow-field-permission-route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-field-permission-route.js","sourceRoot":"","sources":["../../src/services/workflow-field-permission-route.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export declare class FunctionManagement {
56
56
  rules: any[];
57
57
  rule: any;
58
58
  context: RangeContext;
59
- scene: 10 | 6 | 7;
59
+ scene: 7 | 10 | 6;
60
60
  nodeId: string;
61
61
  }>;
62
62
  private rangeRows;
@@ -0,0 +1,52 @@
1
+ /** Workflow-only components are not physical form fields. */
2
+ export declare const workflowSystemComponents: readonly [readonly ["工作流名称", "FlowPageSysFieldWorkflowName", "WORKFLOW_NAME", false], readonly ["工作流类型", "FlowPageSysFieldWorkflowType", "WORKFLOW_TYPE", false], readonly ["工作流描述", "FlowPageSysFieldWorkflowDesc", "WORKFLOW_DESC", false], readonly ["流程标题", "FlowPageSysFieldReqName", "REQ_REQUEST_NAME", false], readonly ["流程编号", "FlowPageSysFieldMarkReserved", "REQUEST_NO", false], readonly ["紧急程度", "FlowPageSysFieldRequestlevel", "REQUEST_LEVEL", false], readonly ["密级", "FlowPageSysFieldSeclevel", "REQUEST_SECRET_LEVEL", false], readonly ["提交人", "FlowPageSysFieldCreator", "CREATE_USER", true], readonly ["提交人分部", "FlowPageSysFieldCreatorSubCompany", "CREATE_SUB", true], readonly ["提交人部门", "FlowPageSysFieldCreatorDept", "CREATE_DEPT", true], readonly ["提交时间", "FlowPageSysFieldCreateTime", "CREATE_DATETIME", true], readonly ["结束时间", "FlowPageSysFieldFinishTime", "FINISH_DATETIME", true], readonly ["流程状态", "FlowPageFlowStatus", "FLOW_STATUS_COMP", false], readonly ["签字意见", "FlowPageSignInput", "FLOW_SIGN_INPUT", false]];
3
+ export declare const DRAFT_TYPE = "FlowPageDraftOpinion";
4
+ export declare function workflowComponentKind(comp: any): string | undefined;
5
+ export declare function classifyWorkflowDescription(input: {
6
+ title: string;
7
+ description?: string;
8
+ }): {
9
+ title: string;
10
+ description: string;
11
+ kind: string;
12
+ createPhysicalField: boolean;
13
+ reason: string;
14
+ } | {
15
+ kind: string;
16
+ type: string;
17
+ createPhysicalField: boolean;
18
+ patch: Record<string, any>;
19
+ rangeRules: Record<string, any>[];
20
+ requiresConfirmation: boolean;
21
+ unrecognized: string[];
22
+ mode: string;
23
+ title: string;
24
+ description: string;
25
+ fieldId?: undefined;
26
+ } | {
27
+ title: string;
28
+ description: string;
29
+ kind: string;
30
+ type: string;
31
+ createPhysicalField: boolean;
32
+ fieldId?: undefined;
33
+ } | {
34
+ title: string;
35
+ description: string;
36
+ kind: string;
37
+ type: string;
38
+ fieldId: string;
39
+ createPhysicalField: boolean;
40
+ };
41
+ export declare function describeWorkflowComponents(comps: any[]): {
42
+ kind: string | undefined;
43
+ type: any;
44
+ componentId: string;
45
+ title: any;
46
+ widgetId: string | undefined;
47
+ fieldId: any;
48
+ position: any;
49
+ config: any;
50
+ }[];
51
+ export declare function validWorkflowComponentIdentity(comp: any): boolean;
52
+ //# sourceMappingURL=workflow-layout-components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-layout-components.d.ts","sourceRoot":"","sources":["../../src/services/workflow-layout-components.ts"],"names":[],"mappings":"AACA,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,wgCAe3B,CAAC;AACX,eAAO,MAAM,UAAU,yBAAuB,CAAC;AAC/C,wBAAgB,qBAAqB,CAAC,IAAI,EAAC,GAAG,GAAE,MAAM,GAAC,SAAS,CAK/D;AACD,wBAAgB,2BAA2B,CAAC,KAAK,EAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,WAAW,CAAC,EAAC,MAAM,CAAA;CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAenF;AACD,wBAAgB,0BAA0B,CAAC,KAAK,EAAC,GAAG,EAAE;;;;;;;;;IAIrD;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAC,GAAG,GAAE,OAAO,CAK/D"}
@@ -0,0 +1,66 @@
1
+ import { parseNodeOpinion } from './workflow-node-opinion-description.js';
2
+ /** Workflow-only components are not physical form fields. */
3
+ export const workflowSystemComponents = [
4
+ ['工作流名称', 'FlowPageSysFieldWorkflowName', 'WORKFLOW_NAME', false],
5
+ ['工作流类型', 'FlowPageSysFieldWorkflowType', 'WORKFLOW_TYPE', false],
6
+ ['工作流描述', 'FlowPageSysFieldWorkflowDesc', 'WORKFLOW_DESC', false],
7
+ ['流程标题', 'FlowPageSysFieldReqName', 'REQ_REQUEST_NAME', false],
8
+ ['流程编号', 'FlowPageSysFieldMarkReserved', 'REQUEST_NO', false],
9
+ ['紧急程度', 'FlowPageSysFieldRequestlevel', 'REQUEST_LEVEL', false],
10
+ ['密级', 'FlowPageSysFieldSeclevel', 'REQUEST_SECRET_LEVEL', false],
11
+ ['提交人', 'FlowPageSysFieldCreator', 'CREATE_USER', true],
12
+ ['提交人分部', 'FlowPageSysFieldCreatorSubCompany', 'CREATE_SUB', true],
13
+ ['提交人部门', 'FlowPageSysFieldCreatorDept', 'CREATE_DEPT', true],
14
+ ['提交时间', 'FlowPageSysFieldCreateTime', 'CREATE_DATETIME', true],
15
+ ['结束时间', 'FlowPageSysFieldFinishTime', 'FINISH_DATETIME', true],
16
+ ['流程状态', 'FlowPageFlowStatus', 'FLOW_STATUS_COMP', false],
17
+ ['签字意见', 'FlowPageSignInput', 'FLOW_SIGN_INPUT', false],
18
+ ];
19
+ export const DRAFT_TYPE = 'FlowPageDraftOpinion';
20
+ export function workflowComponentKind(comp) {
21
+ if (comp?.type === 'NodeRequestLog')
22
+ return 'node-opinion';
23
+ if (comp?.type === DRAFT_TYPE)
24
+ return 'draft-opinion';
25
+ if (comp?.type === 'FlowPageSignInput')
26
+ return 'sign-input';
27
+ if (workflowSystemComponents.some(x => x[1] === comp?.type))
28
+ return 'workflow-system';
29
+ }
30
+ export function classifyWorkflowDescription(input) {
31
+ if (!input || typeof input.title !== 'string' || !input.title.trim() || input.description !== undefined && typeof input.description !== 'string')
32
+ throw Error('控件需要非空 title,description 须为字符串');
33
+ const title = input.title.trim(), description = (input.description ?? title).trim();
34
+ const custom = (reason) => ({ title, description, kind: 'custom-field', createPhysicalField: true, reason });
35
+ if (/[((]\s*不使用\s*[))]/.test(description) || /(?:不使用|不作为|不用|不要|非|不识别为)\s*(?:流程系统字段|系统字段|拟签控件|拟签意见|节点意见|流转意见|意见放表单)/.test(description))
36
+ return custom('描述明确排除业务控件');
37
+ const opinion = parseNodeOpinion(description);
38
+ if (opinion)
39
+ return { title, description, ...opinion };
40
+ if (/拟签(?:控件|意见)/.test(description))
41
+ return { title, description, kind: 'draft-opinion', type: DRAFT_TYPE, createPhysicalField: false };
42
+ if (description === '意见输入框')
43
+ return { title, description, kind: 'sign-input', type: 'FlowPageSignInput', fieldId: 'FLOW_SIGN_INPUT', createPhysicalField: false };
44
+ const explicit = description.includes('流程系统字段');
45
+ const clean = description.replace(/[((]\s*流程系统字段\s*[))]/g, '').replace(/流程系统字段[::]?/g, '').trim();
46
+ const entry = workflowSystemComponents.find(x => x[0] === clean || explicit && x[0] === title);
47
+ if (!entry)
48
+ return custom('未匹配系统控件名称');
49
+ if (entry[3] && !explicit)
50
+ return custom('提交人/时间类要求显式声明流程系统字段');
51
+ return { title, description, kind: entry[1] === 'FlowPageSignInput' ? 'sign-input' : 'workflow-system', type: entry[1], fieldId: entry[2], createPhysicalField: false };
52
+ }
53
+ export function describeWorkflowComponents(comps) {
54
+ return comps.filter(c => workflowComponentKind(c)).map(c => ({ kind: workflowComponentKind(c), type: c.type, componentId: String(c.id),
55
+ title: c.config?.title, widgetId: c.type === DRAFT_TYPE ? String(c.config?.widgetId || c.config?.fieldId || '') : undefined,
56
+ fieldId: c.config?.fieldId, position: c.config?.excel || c.config?.flow, config: c.config }));
57
+ }
58
+ export function validWorkflowComponentIdentity(comp) {
59
+ const fieldId = String(comp?.config?.associatedId || comp?.config?.fieldId || '');
60
+ if (comp?.type === 'NodeRequestLog')
61
+ return /^[1-9]\d*$/.test(String(comp.config?.componentKey || '')) && (/^(?:nodeId_)?[1-9]\d*$/.test(fieldId) || fieldId === 'nodeId_-10001' || fieldId === 'nodeId_-99999');
62
+ if (comp?.type === DRAFT_TYPE)
63
+ return /^[1-9]\d*$/.test(fieldId) && (!comp.config.widgetId || String(comp.config.widgetId) === fieldId);
64
+ return workflowSystemComponents.some(entry => entry[1] === comp?.type && entry[2] === fieldId);
65
+ }
66
+ //# sourceMappingURL=workflow-layout-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-layout-components.js","sourceRoot":"","sources":["../../src/services/workflow-layout-components.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import { type LayoutClient } from './form-layout-io.js';
2
+ export declare function workflowLayoutContext(client: LayoutClient, base: string, w: string, layoutId: string): Promise<import("./form-layout-source/types.js").LayoutContext>;
3
+ export declare function insertDraftExcel(page: any, config: any, title: string, row: number, col: number): {
4
+ id: string;
5
+ type: string;
6
+ category: string;
7
+ package: string;
8
+ applyStyle: string;
9
+ isCover: number;
10
+ config: any;
11
+ };
12
+ export declare function ensureDraftLayout(client: LayoutClient, base: string, w: string, layoutId: string, input: {
13
+ title: string;
14
+ description?: string;
15
+ row: number;
16
+ col: number;
17
+ terminal?: string;
18
+ }): Promise<{
19
+ created: boolean;
20
+ verified: boolean;
21
+ widgetId: string;
22
+ component: {
23
+ kind: string | undefined;
24
+ type: any;
25
+ componentId: string;
26
+ title: any;
27
+ widgetId: string | undefined;
28
+ fieldId: any;
29
+ position: any;
30
+ config: any;
31
+ };
32
+ physicalFieldsUnchanged?: undefined;
33
+ } | {
34
+ created: boolean;
35
+ verified: boolean;
36
+ widgetId: string;
37
+ component: {
38
+ kind: string | undefined;
39
+ type: any;
40
+ componentId: string;
41
+ title: any;
42
+ widgetId: string | undefined;
43
+ fieldId: any;
44
+ position: any;
45
+ config: any;
46
+ };
47
+ physicalFieldsUnchanged: boolean;
48
+ }>;
49
+ //# sourceMappingURL=workflow-layout-draft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-layout-draft.d.ts","sourceRoot":"","sources":["../../src/services/workflow-layout-draft.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmF,KAAK,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAMxI,wBAAsB,qBAAqB,CAAC,MAAM,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,kEAKnG;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM;;;;;;;;EAmBtF;AACD,wBAAsB,iBAAiB,CAAC,MAAM,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,WAAW,CAAC,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,EAAC,MAAM,CAAA;CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuD/K"}
@@ -0,0 +1,98 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { isDeepStrictEqual } from 'node:util';
3
+ import { getWorkflowContext } from './workflow-context.js';
4
+ import { businessData, readLayoutContext, layoutSaveBody, layoutRoute, snapshotHash, fieldsHash } from './form-layout-io.js';
5
+ import { flattenComponents } from './form-layout-source/binding.js';
6
+ import { DRAFT_TYPE, describeWorkflowComponents, classifyWorkflowDescription } from './workflow-layout-components.js';
7
+ import { OpinionSettings } from './workflow-opinion-settings.js';
8
+ import { assert } from './form-layout-source/schema.js';
9
+ export async function workflowLayoutContext(client, base, w, layoutId) {
10
+ const wf = await getWorkflowContext(client, base, w);
11
+ // Native route verified separately; do not probe EB endpoints or guess the bridge contract.
12
+ assert(wf.kind === 'workflow', '当前拟签布局插入支持原生工作流;EB布局桥接保存契约尚未验证');
13
+ return readLayoutContext(client, base, { module: 'workflow', formId: wf.formId, viewId: layoutId, routeKind: 'default' });
14
+ }
15
+ export function insertDraftExcel(page, config, title, row, col) {
16
+ assert(page.layoutType === 'EXCEL', '拟签新增目前支持EXCEL布局');
17
+ const sheet = page.config?.workbook?.Sheet1;
18
+ assert(sheet && Array.isArray(sheet.cells), '缺少主网格');
19
+ assert(Number.isInteger(row) && Number.isInteger(col) && row >= 0 && col >= 0 && row < Number(sheet.rowCount) && col < Number(sheet.columnCount), '位置须为网格内零起始行列');
20
+ const cell = sheet.cells.find((c) => Number(c.row) === row && Number(c.col) === col);
21
+ assert(!cell?.style?.cellType?.comId && !cell?.value, '目标单元格已有控件或文字,不覆盖');
22
+ assert(!(page.comps || []).some((c) => c.config?.excel?.parent === 'ROOT' && Number(c.config.excel.row) === row && Number(c.config.excel.col) === col), '目标位置已有组件');
23
+ assert(!(sheet.spans || []).some((s) => row >= Number(s.row) && row < Number(s.row) + Number(s.rowCount) && col >= Number(s.col) && col < Number(s.col) + Number(s.colCount) && (row !== Number(s.row) || col !== Number(s.col))), '只能插入合并单元格左上角');
24
+ const componentId = randomUUID().replaceAll('-', '');
25
+ const comp = { id: componentId, type: DRAFT_TYPE, category: '111', package: '@weapp/workflow', applyStyle: '', isCover: 0,
26
+ config: { ...config, title, name: title, type: DRAFT_TYPE, fieldId: String(config.widgetId), valueKey: String(config.widgetId),
27
+ switchFormItem: true, display: true, readOnly: false, required: false, disableEdit: false, singleRow: false,
28
+ layout: { hidden: false, wrapped: false }, excel: { row, col, parent: 'ROOT', nodeId: randomUUID().slice(0, 10), nodes: [], linkedNodes: {} } } };
29
+ page.comps.push(comp);
30
+ const nextCell = cell || { row: String(row), col: String(col) };
31
+ nextCell.style = { ...nextCell.style, cellType: { allowOverflow: false, comId: componentId, type: DRAFT_TYPE } };
32
+ if (!cell)
33
+ sheet.cells.push(nextCell);
34
+ return comp;
35
+ }
36
+ export async function ensureDraftLayout(client, base, w, layoutId, input) {
37
+ const recognition = classifyWorkflowDescription(input);
38
+ assert(recognition.kind === 'draft-opinion', '描述未明确声明拟签控件/拟签意见,拒绝创建拟签');
39
+ const context = await workflowLayoutContext(client, base, w, layoutId), snapshot = context.snapshot;
40
+ const originalHash = snapshotHash(snapshot), originalLayout = structuredClone(snapshot.formLayout);
41
+ assert(snapshot.formLayoutMultiple?.isDefault === false, '拟签控件须使用明确的独立布局,不能隐式复制默认布局');
42
+ const terminal = input.terminal || 'PC';
43
+ const pages = snapshot.formLayout.pageLayouts.filter((p) => p.terminalType === terminal);
44
+ assert(pages.length === 1, '未找到唯一终端页面');
45
+ const page = pages[0], all = flattenComponents(page.comps || []);
46
+ const matches = all.filter(c => c.type === DRAFT_TYPE && c.config?.title === input.title);
47
+ assert(matches.length <= 1, '同名拟签控件不唯一,请先处理歧义');
48
+ const svc = new OpinionSettings(client, base);
49
+ if (matches.length) {
50
+ const widgetId = String(matches[0].config.widgetId || matches[0].config.fieldId);
51
+ await svc.widget(w, widgetId);
52
+ return { created: false, verified: true, widgetId, component: describeWorkflowComponents(matches)[0] };
53
+ }
54
+ // Check coordinates before requesting IDs or any save.
55
+ insertDraftExcel(structuredClone(page), { widgetId: '1' }, input.title, input.row, input.col);
56
+ const widgetId = String(businessData(await client.get(`${base}/api/bs/workflow/pathdef/global/generateId`), '分配拟签ID'));
57
+ assert(/^[1-9]\d*$/.test(widgetId), '分配的拟签ID无效');
58
+ const defaults = await svc.get('/api/bs/workflow/pathdef/pathSet/draftopinion/getDraftOpinionWidgetConfig', { workflowId: w, widgetId, isDesign: true });
59
+ assert(defaults?.weaForm?.data && defaults?.weaForm?.items, '未读取到拟签程序默认配置');
60
+ // Hydrate all existing widgets: advanced settings may have changed since the layout was saved.
61
+ const existing = [];
62
+ for (const p of snapshot.formLayout.pageLayouts)
63
+ for (const c of flattenComponents(p.comps || []))
64
+ if (c.type === DRAFT_TYPE) {
65
+ const wid = String(c.config.widgetId || c.config.fieldId), form = await svc.widget(w, wid);
66
+ existing.push({ widgetId: wid, form });
67
+ c.config = { ...c.config, ...form.data, fieldId: wid, widgetId: wid, valueKey: wid, isDesign: true };
68
+ }
69
+ const comp = insertDraftExcel(page, { ...defaults.weaForm.data, widgetId, workflowid: w, formId: context.target.formId, isDesign: true }, input.title, input.row, input.col);
70
+ const fresh = await workflowLayoutContext(client, base, w, layoutId);
71
+ assert(snapshotHash(fresh.snapshot) === originalHash, '布局已被并发修改');
72
+ const body = layoutSaveBody(context.target, snapshot, false);
73
+ body.customParam = { workflowId: w };
74
+ businessData(await client.post(`${base}${layoutRoute(context.target, 'saveFormAndLayout')}`, body), '保存拟签布局', false);
75
+ const after = await workflowLayoutContext(client, base, w, layoutId);
76
+ assert(fieldsHash(context.fields) === fieldsHash(after.fields), '保存后普通物理字段列表发生变化');
77
+ const saved = after.snapshot.formLayout.pageLayouts.find((p) => p.terminalType === terminal)?.comps.find((c) => c.id === comp.id);
78
+ assert(saved?.type === DRAFT_TYPE && String(saved.config?.widgetId || saved.config?.fieldId) === widgetId, '布局未回读到新增拟签控件');
79
+ assert(Number(saved.config.excel?.row) === input.row && Number(saved.config.excel?.col) === input.col, '拟签位置回读不一致');
80
+ await svc.widget(w, widgetId);
81
+ for (const originalPage of originalLayout.pageLayouts) {
82
+ const back = after.snapshot.formLayout.pageLayouts.find((p) => p.pageId === originalPage.pageId);
83
+ assert(back, '原有页面缺失');
84
+ const backComps = flattenComponents(back.comps || []);
85
+ for (const old of flattenComponents(originalPage.comps || [])) {
86
+ const current = backComps.find(c => c.id === old.id);
87
+ assert(current && current.type === old.type, `原有控件 ${old.id} 缺失或类型变化`);
88
+ if (old.type !== DRAFT_TYPE)
89
+ assert(isDeepStrictEqual(old.config, current.config), `原有控件 ${old.id} 配置发生变化`);
90
+ }
91
+ }
92
+ for (const old of existing) {
93
+ const form = await svc.widget(w, old.widgetId);
94
+ assert(isDeepStrictEqual(old.form.data, form.data), `既有拟签 ${old.widgetId} 配置回读变化,请核查`);
95
+ }
96
+ return { created: true, verified: true, widgetId, component: describeWorkflowComponents([saved])[0], physicalFieldsUnchanged: true };
97
+ }
98
+ //# sourceMappingURL=workflow-layout-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-layout-draft.js","sourceRoot":"","sources":["../../src/services/workflow-layout-draft.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * `workflow node batch` 的 spec:解析、校验、节点解析与纯规划。
3
+ *
4
+ * 这一层不发任何请求,所有规则都先在内存里算完;
5
+ * 编排层只负责「读当前 → 用这里的函数算目标 → 写 → 回读」。
6
+ */
7
+ import { type RejectSetParams } from '../commands/workflow-node-reject.js';
8
+ import type { WorkflowNodeRef } from './workflow-assign-flow.js';
9
+ export type BatchSection = 'field-permission' | 'reject' | 'sign';
10
+ export declare const BATCH_SECTIONS: BatchSection[];
11
+ /** 字段可见性的三态;`required` 是「可编辑 + 必填」的简写。 */
12
+ export type FieldAccess = 'hidden' | 'readonly' | 'editable' | 'required';
13
+ export interface FieldRuleObject {
14
+ access?: 'hidden' | 'readonly' | 'editable';
15
+ required?: boolean;
16
+ disableEdit?: boolean;
17
+ /** 逃生口:与 access 互斥,直接给平台三个布尔。 */
18
+ display?: boolean;
19
+ show?: boolean;
20
+ readOnly?: boolean;
21
+ }
22
+ export type FieldRule = FieldAccess | FieldRuleObject;
23
+ export interface RejectRule {
24
+ rejectType?: string;
25
+ rejectRemind?: string;
26
+ submitType?: string;
27
+ defaultNode?: string;
28
+ remindNodeIds?: string[];
29
+ rangeNodeIds?: string[];
30
+ defaultNodeId?: string;
31
+ toCreateNode?: boolean;
32
+ custom?: boolean;
33
+ }
34
+ export interface SignRule {
35
+ allRequired?: boolean;
36
+ noneRequired?: boolean;
37
+ select?: string[];
38
+ /** 与 `node sign --data` 同形,键必须是 signFields 之一。 */
39
+ data?: Record<string, unknown>;
40
+ }
41
+ export interface BatchNodeEntry {
42
+ nodes: string | string[];
43
+ 'enable-modify-form'?: boolean;
44
+ 'field-permission'?: Record<string, FieldRule>;
45
+ reject?: RejectRule;
46
+ sign?: SignRule;
47
+ }
48
+ export interface BatchSpec {
49
+ version?: number;
50
+ nodes: BatchNodeEntry[];
51
+ }
52
+ export declare function parseBatchSpec(raw: unknown): BatchSpec;
53
+ /** `--only` 解析与 spec 过滤;返回实际请求但整份 spec 里不存在的段(只告警)。 */
54
+ export declare function parseOnly(values: string[] | undefined): BatchSection[];
55
+ export declare function filterSpec(spec: BatchSpec, only: BatchSection[]): {
56
+ spec: BatchSpec;
57
+ absent: BatchSection[];
58
+ };
59
+ export declare function resolveNodeRef(ref: string, nodes: WorkflowNodeRef[]): WorkflowNodeRef;
60
+ export interface ResolvedBatchNode {
61
+ entry: BatchNodeEntry;
62
+ entryIndex: number;
63
+ node: WorkflowNodeRef;
64
+ }
65
+ /** 展开每条 entry 的节点引用;同一节点重复出现是致命错误。 */
66
+ export declare function resolveBatchTargets(entries: BatchNodeEntry[], nodes: WorkflowNodeRef[]): ResolvedBatchNode[];
67
+ export declare function fieldAccessOf(c: any): string;
68
+ export interface FieldRuleResult {
69
+ config: Record<string, any>;
70
+ warnings: string[];
71
+ }
72
+ /** 把一条规则落到配置副本上;只改规则点名的键。 */
73
+ export declare function applyFieldRule(current: Record<string, any>, rule: FieldRule): FieldRuleResult;
74
+ export interface FieldChange {
75
+ field: string;
76
+ fieldId: string;
77
+ from: string;
78
+ to: string;
79
+ keys: Array<{
80
+ key: string;
81
+ from: unknown;
82
+ to: unknown;
83
+ }>;
84
+ }
85
+ export declare function diffFieldConfig(current: Record<string, any>, target: Record<string, any>): FieldChange;
86
+ export interface RejectCurrent {
87
+ enableCustom: boolean;
88
+ rejectType: string;
89
+ rejectSubmitType: string;
90
+ rejectCheckedNode: string;
91
+ rejectRemind: string;
92
+ rejectToCreateNode: number;
93
+ rejectRangeNodes: string[];
94
+ rejectRemindNodeIds: string[];
95
+ rejectCheckNodeId: string;
96
+ }
97
+ export declare function readRejectCurrent(raw: any): RejectCurrent;
98
+ export interface RejectPlan {
99
+ current: RejectCurrent;
100
+ desired: RejectCurrent;
101
+ changes: Array<{
102
+ key: string;
103
+ from: unknown;
104
+ to: unknown;
105
+ }>;
106
+ params: RejectSetParams;
107
+ warnings: string[];
108
+ }
109
+ /** spec 里的键名 → 读回快照里的键名(回读比对用)。 */
110
+ export declare const REJECT_CURRENT_KEY: Record<string, keyof RejectCurrent>;
111
+ export declare function planReject(raw: any, rule: RejectRule, nodes: WorkflowNodeRef[]): RejectPlan;
112
+ /** 快捷项展开成 `node sign --data` 同形的 patch。 */
113
+ export declare function expandSignRule(rule: SignRule): Record<string, any>;
114
+ /** 与 verifySettings 一致的比较口径(对象按 id、布尔转 0/1)。 */
115
+ export declare function comparable(v: any): any;
116
+ export interface SignChange {
117
+ key: string;
118
+ from: unknown;
119
+ to: unknown;
120
+ }
121
+ export declare function diffSign(before: Record<string, any>, next: Record<string, any>, keys: string[]): SignChange[];
122
+ //# sourceMappingURL=workflow-node-batch-spec.d.ts.map