weaver-e10-builder 1.5.12 → 1.5.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/dist/commands/actionflow.d.ts.map +1 -1
  2. package/dist/commands/actionflow.js +1 -0
  3. package/dist/commands/actionflow.js.map +1 -1
  4. package/dist/commands/designer-common.d.ts.map +1 -1
  5. package/dist/commands/designer-common.js +91 -0
  6. package/dist/commands/designer-common.js.map +1 -1
  7. package/dist/commands/designer-setters.d.ts.map +1 -1
  8. package/dist/commands/designer-setters.js +148 -47
  9. package/dist/commands/designer-setters.js.map +1 -1
  10. package/dist/commands/form-add-detail-table.d.ts.map +1 -1
  11. package/dist/commands/form-add-detail-table.js +150 -8
  12. package/dist/commands/form-add-detail-table.js.map +1 -1
  13. package/dist/commands/form-browser-definition.d.ts +14 -0
  14. package/dist/commands/form-browser-definition.d.ts.map +1 -0
  15. package/dist/commands/form-browser-definition.js +493 -0
  16. package/dist/commands/form-browser-definition.js.map +1 -0
  17. package/dist/commands/form-code.d.ts +5 -0
  18. package/dist/commands/form-code.d.ts.map +1 -0
  19. package/dist/commands/form-code.js +276 -0
  20. package/dist/commands/form-code.js.map +1 -0
  21. package/dist/commands/form-engine-linkage.d.ts +3 -0
  22. package/dist/commands/form-engine-linkage.d.ts.map +1 -0
  23. package/dist/commands/form-engine-linkage.js +199 -0
  24. package/dist/commands/form-engine-linkage.js.map +1 -0
  25. package/dist/commands/form-formula.d.ts.map +1 -1
  26. package/dist/commands/form-formula.js +11 -6
  27. package/dist/commands/form-formula.js.map +1 -1
  28. package/dist/commands/form-layout-template-advanced.d.ts +3 -0
  29. package/dist/commands/form-layout-template-advanced.d.ts.map +1 -0
  30. package/dist/commands/form-layout-template-advanced.js +115 -0
  31. package/dist/commands/form-layout-template-advanced.js.map +1 -0
  32. package/dist/commands/form-layout-template-easy.d.ts +3 -0
  33. package/dist/commands/form-layout-template-easy.d.ts.map +1 -0
  34. package/dist/commands/form-layout-template-easy.js +59 -0
  35. package/dist/commands/form-layout-template-easy.js.map +1 -0
  36. package/dist/commands/form-layout.d.ts.map +1 -1
  37. package/dist/commands/form-layout.js +77 -0
  38. package/dist/commands/form-layout.js.map +1 -1
  39. package/dist/commands/form-list-filter.js +1 -1
  40. package/dist/commands/form-list-filter.js.map +1 -1
  41. package/dist/commands/form-list-utils.d.ts +5 -0
  42. package/dist/commands/form-list-utils.d.ts.map +1 -1
  43. package/dist/commands/form-list-utils.js +23 -3
  44. package/dist/commands/form-list-utils.js.map +1 -1
  45. package/dist/commands/form-permission.d.ts.map +1 -1
  46. package/dist/commands/form-permission.js +55 -19
  47. package/dist/commands/form-permission.js.map +1 -1
  48. package/dist/commands/form-physical-table.d.ts.map +1 -1
  49. package/dist/commands/form-physical-table.js +8 -2
  50. package/dist/commands/form-physical-table.js.map +1 -1
  51. package/dist/commands/form.d.ts.map +1 -1
  52. package/dist/commands/form.js +476 -30
  53. package/dist/commands/form.js.map +1 -1
  54. package/dist/commands/menu.d.ts +68 -2
  55. package/dist/commands/menu.d.ts.map +1 -1
  56. package/dist/commands/menu.js +186 -41
  57. package/dist/commands/menu.js.map +1 -1
  58. package/dist/commands/page.d.ts.map +1 -1
  59. package/dist/commands/page.js +29 -6
  60. package/dist/commands/page.js.map +1 -1
  61. package/dist/commands/special.d.ts.map +1 -1
  62. package/dist/commands/special.js +3 -2
  63. package/dist/commands/special.js.map +1 -1
  64. package/dist/commands/wf-form.d.ts.map +1 -1
  65. package/dist/commands/wf-form.js +76 -31
  66. package/dist/commands/wf-form.js.map +1 -1
  67. package/dist/commands/workflow-auth-resp.js +2 -2
  68. package/dist/commands/workflow-auth-resp.js.map +1 -1
  69. package/dist/commands/workflow-base-settings.d.ts +3 -0
  70. package/dist/commands/workflow-base-settings.d.ts.map +1 -0
  71. package/dist/commands/workflow-base-settings.js +73 -0
  72. package/dist/commands/workflow-base-settings.js.map +1 -0
  73. package/dist/commands/workflow-condition.d.ts.map +1 -1
  74. package/dist/commands/workflow-condition.js +59 -450
  75. package/dist/commands/workflow-condition.js.map +1 -1
  76. package/dist/commands/workflow-export.d.ts +9 -0
  77. package/dist/commands/workflow-export.d.ts.map +1 -0
  78. package/dist/commands/workflow-export.js +121 -0
  79. package/dist/commands/workflow-export.js.map +1 -0
  80. package/dist/commands/workflow-node.d.ts.map +1 -1
  81. package/dist/commands/workflow-node.js +28 -53
  82. package/dist/commands/workflow-node.js.map +1 -1
  83. package/dist/commands/workflow-operator-batch.d.ts +3 -0
  84. package/dist/commands/workflow-operator-batch.d.ts.map +1 -0
  85. package/dist/commands/workflow-operator-batch.js +35 -0
  86. package/dist/commands/workflow-operator-batch.js.map +1 -0
  87. package/dist/commands/workflow-subprocess.d.ts.map +1 -1
  88. package/dist/commands/workflow-subprocess.js +21 -33
  89. package/dist/commands/workflow-subprocess.js.map +1 -1
  90. package/dist/commands/workflow.d.ts.map +1 -1
  91. package/dist/commands/workflow.js +36 -37
  92. package/dist/commands/workflow.js.map +1 -1
  93. package/dist/index.js +18 -1
  94. package/dist/index.js.map +1 -1
  95. package/dist/services/actionflow/browser_source.d.ts +9 -0
  96. package/dist/services/actionflow/browser_source.d.ts.map +1 -0
  97. package/dist/services/actionflow/browser_source.js +12 -0
  98. package/dist/services/actionflow/browser_source.js.map +1 -0
  99. package/dist/services/actionflow/components/date_trigger.js +1 -1
  100. package/dist/services/actionflow/components/date_trigger.js.map +1 -1
  101. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
  102. package/dist/services/actionflow/components/document_actions.js +178 -25
  103. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  104. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  105. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  106. package/dist/services/actionflow/components/logic_flow_set.d.ts.map +1 -1
  107. package/dist/services/actionflow/components/logic_flow_set.js +80 -8
  108. package/dist/services/actionflow/components/logic_flow_set.js.map +1 -1
  109. package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -1
  110. package/dist/services/actionflow/components/meeting_create.js +1 -0
  111. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  112. package/dist/services/actionflow/components/schedule_create.d.ts.map +1 -1
  113. package/dist/services/actionflow/components/schedule_create.js +2 -0
  114. package/dist/services/actionflow/components/schedule_create.js.map +1 -1
  115. package/dist/services/actionflow/components/time_batch_trigger.js +1 -1
  116. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
  117. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  118. package/dist/services/actionflow/components/workflow_actions.js +6 -2
  119. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  120. package/dist/services/actionflow/context_preflight.d.ts +5 -0
  121. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  122. package/dist/services/actionflow/context_preflight.js +186 -35
  123. package/dist/services/actionflow/context_preflight.js.map +1 -1
  124. package/dist/services/actionflow/filter_rules.d.ts.map +1 -1
  125. package/dist/services/actionflow/filter_rules.js +9 -8
  126. package/dist/services/actionflow/filter_rules.js.map +1 -1
  127. package/dist/services/actionflow/form_source.d.ts +2 -0
  128. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  129. package/dist/services/actionflow/form_source.js +8 -0
  130. package/dist/services/actionflow/form_source.js.map +1 -1
  131. package/dist/services/actionflow/formula_service.d.ts +2 -1
  132. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  133. package/dist/services/actionflow/formula_service.js +69 -34
  134. package/dist/services/actionflow/formula_service.js.map +1 -1
  135. package/dist/services/actionflow/logicflow_source.d.ts +5 -0
  136. package/dist/services/actionflow/logicflow_source.d.ts.map +1 -0
  137. package/dist/services/actionflow/logicflow_source.js +15 -0
  138. package/dist/services/actionflow/logicflow_source.js.map +1 -0
  139. package/dist/services/actionflow/preflight_service.d.ts +15 -0
  140. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  141. package/dist/services/actionflow/preflight_service.js +561 -29
  142. package/dist/services/actionflow/preflight_service.js.map +1 -1
  143. package/dist/services/actionflow/runtime_metadata.d.ts +8 -0
  144. package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -1
  145. package/dist/services/actionflow/runtime_metadata.js +25 -0
  146. package/dist/services/actionflow/runtime_metadata.js.map +1 -1
  147. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  148. package/dist/services/actionflow/workflow_compiler.js +75 -23
  149. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  150. package/dist/services/actionflow/workflow_source.d.ts +2 -0
  151. package/dist/services/actionflow/workflow_source.d.ts.map +1 -1
  152. package/dist/services/actionflow/workflow_source.js +7 -0
  153. package/dist/services/actionflow/workflow_source.js.map +1 -1
  154. package/dist/services/auth-resp-condition.d.ts +7 -3
  155. package/dist/services/auth-resp-condition.d.ts.map +1 -1
  156. package/dist/services/auth-resp-condition.js +58 -63
  157. package/dist/services/auth-resp-condition.js.map +1 -1
  158. package/dist/services/browser.d.ts +5 -0
  159. package/dist/services/browser.d.ts.map +1 -1
  160. package/dist/services/browser.js +16 -4
  161. package/dist/services/browser.js.map +1 -1
  162. package/dist/services/condition-rules.d.ts +2 -30
  163. package/dist/services/condition-rules.d.ts.map +1 -1
  164. package/dist/services/condition-rules.js +3 -219
  165. package/dist/services/condition-rules.js.map +1 -1
  166. package/dist/services/designer-dataset.d.ts +45 -0
  167. package/dist/services/designer-dataset.d.ts.map +1 -0
  168. package/dist/services/designer-dataset.js +156 -0
  169. package/dist/services/designer-dataset.js.map +1 -0
  170. package/dist/services/form-association.d.ts +7 -0
  171. package/dist/services/form-association.d.ts.map +1 -1
  172. package/dist/services/form-association.js +22 -1
  173. package/dist/services/form-association.js.map +1 -1
  174. package/dist/services/form-code.d.ts +53 -0
  175. package/dist/services/form-code.d.ts.map +1 -0
  176. package/dist/services/form-code.js +370 -0
  177. package/dist/services/form-code.js.map +1 -0
  178. package/dist/services/form-create.d.ts +20 -0
  179. package/dist/services/form-create.d.ts.map +1 -1
  180. package/dist/services/form-create.js +73 -1
  181. package/dist/services/form-create.js.map +1 -1
  182. package/dist/services/form-field-build.d.ts +1 -1
  183. package/dist/services/form-field-build.d.ts.map +1 -1
  184. package/dist/services/form-field-build.js +20 -1
  185. package/dist/services/form-field-build.js.map +1 -1
  186. package/dist/services/form-field-drop.d.ts +2 -0
  187. package/dist/services/form-field-drop.d.ts.map +1 -1
  188. package/dist/services/form-field-drop.js +2 -0
  189. package/dist/services/form-field-drop.js.map +1 -1
  190. package/dist/services/form-layout-detail-insert.d.ts +58 -0
  191. package/dist/services/form-layout-detail-insert.d.ts.map +1 -0
  192. package/dist/services/form-layout-detail-insert.js +293 -0
  193. package/dist/services/form-layout-detail-insert.js.map +1 -0
  194. package/dist/services/form-layout-insert.d.ts.map +1 -1
  195. package/dist/services/form-layout-insert.js +34 -2
  196. package/dist/services/form-layout-insert.js.map +1 -1
  197. package/dist/services/form-layout-source/compile.d.ts.map +1 -1
  198. package/dist/services/form-layout-source/compile.js +11 -4
  199. package/dist/services/form-layout-source/compile.js.map +1 -1
  200. package/dist/services/form-layout-template-advanced.d.ts +330 -0
  201. package/dist/services/form-layout-template-advanced.d.ts.map +1 -0
  202. package/dist/services/form-layout-template-advanced.js +1437 -0
  203. package/dist/services/form-layout-template-advanced.js.map +1 -0
  204. package/dist/services/form-layout-template-easy.d.ts +34 -0
  205. package/dist/services/form-layout-template-easy.d.ts.map +1 -0
  206. package/dist/services/form-layout-template-easy.js +159 -0
  207. package/dist/services/form-layout-template-easy.js.map +1 -0
  208. package/dist/services/form-layout-template-flow.d.ts +23 -0
  209. package/dist/services/form-layout-template-flow.d.ts.map +1 -0
  210. package/dist/services/form-layout-template-flow.js +99 -0
  211. package/dist/services/form-layout-template-flow.js.map +1 -0
  212. package/dist/services/form-linkage-condition.d.ts +15 -0
  213. package/dist/services/form-linkage-condition.d.ts.map +1 -1
  214. package/dist/services/form-linkage-condition.js +19 -10
  215. package/dist/services/form-linkage-condition.js.map +1 -1
  216. package/dist/services/form-permission-archive.d.ts +23 -1
  217. package/dist/services/form-permission-archive.d.ts.map +1 -1
  218. package/dist/services/form-permission-archive.js +54 -2
  219. package/dist/services/form-permission-archive.js.map +1 -1
  220. package/dist/services/form-physical-table.d.ts +10 -0
  221. package/dist/services/form-physical-table.d.ts.map +1 -1
  222. package/dist/services/form-physical-table.js +20 -0
  223. package/dist/services/form-physical-table.js.map +1 -1
  224. package/dist/services/form-sub-detail.d.ts +25 -0
  225. package/dist/services/form-sub-detail.d.ts.map +1 -1
  226. package/dist/services/form-sub-detail.js +64 -0
  227. package/dist/services/form-sub-detail.js.map +1 -1
  228. package/dist/services/form-view-linkage-functions.d.ts +19 -0
  229. package/dist/services/form-view-linkage-functions.d.ts.map +1 -0
  230. package/dist/services/form-view-linkage-functions.js +90 -0
  231. package/dist/services/form-view-linkage-functions.js.map +1 -0
  232. package/dist/services/matrix-condition.d.ts +32 -1
  233. package/dist/services/matrix-condition.d.ts.map +1 -1
  234. package/dist/services/matrix-condition.js +169 -6
  235. package/dist/services/matrix-condition.js.map +1 -1
  236. package/dist/services/menu-catalog.d.ts +24 -1
  237. package/dist/services/menu-catalog.d.ts.map +1 -1
  238. package/dist/services/menu-catalog.js +49 -2
  239. package/dist/services/menu-catalog.js.map +1 -1
  240. package/dist/services/workflow-base-settings.d.ts +117 -0
  241. package/dist/services/workflow-base-settings.d.ts.map +1 -0
  242. package/dist/services/workflow-base-settings.js +504 -0
  243. package/dist/services/workflow-base-settings.js.map +1 -0
  244. package/dist/services/workflow-condition-core.d.ts +48 -0
  245. package/dist/services/workflow-condition-core.d.ts.map +1 -0
  246. package/dist/services/workflow-condition-core.js +316 -0
  247. package/dist/services/workflow-condition-core.js.map +1 -0
  248. package/dist/services/workflow-context.d.ts +10 -0
  249. package/dist/services/workflow-context.d.ts.map +1 -0
  250. package/dist/services/workflow-context.js +15 -0
  251. package/dist/services/workflow-context.js.map +1 -0
  252. package/dist/services/workflow-export.d.ts +80 -0
  253. package/dist/services/workflow-export.d.ts.map +1 -0
  254. package/dist/services/workflow-export.js +150 -0
  255. package/dist/services/workflow-export.js.map +1 -0
  256. package/dist/services/workflow-field-permission-route.d.ts +75 -0
  257. package/dist/services/workflow-field-permission-route.d.ts.map +1 -0
  258. package/dist/services/workflow-field-permission-route.js +52 -0
  259. package/dist/services/workflow-field-permission-route.js.map +1 -0
  260. package/dist/services/workflow-field-permission.d.ts +18 -0
  261. package/dist/services/workflow-field-permission.d.ts.map +1 -0
  262. package/dist/services/workflow-field-permission.js +40 -0
  263. package/dist/services/workflow-field-permission.js.map +1 -0
  264. package/dist/services/workflow-node-layout.d.ts +11 -10
  265. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  266. package/dist/services/workflow-node-layout.js +24 -62
  267. package/dist/services/workflow-node-layout.js.map +1 -1
  268. package/dist/services/workflow-operator-batch-condition.d.ts +23 -0
  269. package/dist/services/workflow-operator-batch-condition.d.ts.map +1 -0
  270. package/dist/services/workflow-operator-batch-condition.js +56 -0
  271. package/dist/services/workflow-operator-batch-condition.js.map +1 -0
  272. package/dist/services/workflow-operator.d.ts +12 -5
  273. package/dist/services/workflow-operator.d.ts.map +1 -1
  274. package/dist/services/workflow-operator.js +41 -16
  275. package/dist/services/workflow-operator.js.map +1 -1
  276. package/package.json +1 -1
  277. package/skill-docs/SKILL.md +155 -290
  278. package/skill-docs/_catalog.md +12 -3
  279. package/skill-docs/actionflows/references/components/document/GetDocumentInfo.md +17 -17
  280. package/skill-docs/actionflows/references/components/logic/LogicFlowSet.md +23 -17
  281. package/skill-docs/assets/form-template/style-templates-advanced-base-example.json +1420 -0
  282. package/skill-docs/assets/form-template/style-templates-advanced-base.css +33 -0
  283. package/skill-docs/assets/form-template/style-templates-advanced-blue-crystal-example.json +1094 -0
  284. package/skill-docs/assets/form-template/style-templates-advanced-document-example.json +1251 -0
  285. package/skill-docs/assets/form-template/style-templates-advanced-grid-example.json +39 -0
  286. package/skill-docs/assets/form-template/style-templates-advanced-page-example.json +38 -0
  287. package/skill-docs/assets/form-template/style-templates-advanced-placements-example.json +30 -0
  288. package/skill-docs/assets/form-template/style-templates-advanced-standard-example.json +53 -0
  289. package/skill-docs/assets/form-template/style-templates-advanced-structure-example.json +25 -0
  290. package/skill-docs/assets/form-template/style-templates-advanced-table-example.json +1420 -0
  291. package/skill-docs/references/code-block/guide-code-block.md +141 -0
  292. package/skill-docs/references/code-block/guide-layout-css.md +107 -0
  293. package/skill-docs/references/code-block/ref-controls.md +60 -0
  294. package/skill-docs/references/code-block/ref-coverage.md +32 -0
  295. package/skill-docs/references/code-block/ref-details.md +57 -0
  296. package/skill-docs/references/code-block/ref-events-validation.md +42 -0
  297. package/skill-docs/references/code-block/ref-foundations-fields.md +56 -0
  298. package/skill-docs/references/code-block/ref-recipes.md +164 -0
  299. package/skill-docs/references/code-block/ref-troubleshooting.md +49 -0
  300. package/skill-docs/references/code-block/ref-ui-global.md +47 -0
  301. package/skill-docs/references/coding/guide-page-code.md +2 -0
  302. package/skill-docs/references/coding/ref-compile-rules.md +2 -0
  303. package/skill-docs/references/common/capability-boundaries.md +15 -0
  304. package/skill-docs/references/common/guide-install.md +44 -0
  305. package/skill-docs/references/common/guide-plan-template.md +2 -1
  306. package/skill-docs/references/common/map.md +11 -1
  307. package/skill-docs/references/common/ref-cli-commands.md +689 -648
  308. package/skill-docs/references/ebuilder-designer/guide-designer-factory.md +8 -4
  309. package/skill-docs/references/form/form-template/style-templates-advanced-css-guide.md +167 -0
  310. package/skill-docs/references/form/form-template/style-templates-advanced.md +315 -0
  311. package/skill-docs/references/form/form-template/style-templates-easy.md +55 -0
  312. package/skill-docs/references/form/form-template/style-templates-flow.md +27 -0
  313. package/skill-docs/references/form/form-template/style-templates.md +29 -0
  314. package/skill-docs/references/form/guide-browser-definition.md +148 -0
  315. package/skill-docs/references/form/guide-create-form.md +258 -250
  316. package/skill-docs/references/form/guide-field-linkage.md +56 -14
  317. package/skill-docs/references/form/guide-form-archive-permission.md +29 -6
  318. package/skill-docs/references/form/guide-form-formula-functions.md +11 -0
  319. package/skill-docs/references/form/guide-form-layout-incremental.md +28 -0
  320. package/skill-docs/references/form/guide-form-layout-planning.md +11 -0
  321. package/skill-docs/references/form/guide-form-layout-source.md +4 -0
  322. package/skill-docs/references/form/guide-form-linkage.md +295 -269
  323. package/skill-docs/references/form/guide-form-physical-table.md +2 -0
  324. package/skill-docs/references/form/guide-form-view.md +3 -0
  325. package/skill-docs/references/form/ref-form-fields.md +301 -293
  326. package/skill-docs/references/form/ref-list-filter-date-params.md +83 -0
  327. package/skill-docs/references/menu/system-menus.md +12 -0
  328. package/skill-docs/references/workflow/condition-core-contract.md +63 -0
  329. package/skill-docs/references/workflow/guide-base-auth-share-remind.md +126 -0
  330. package/skill-docs/references/workflow/guide-workflow-condition.md +476 -447
  331. package/skill-docs/references/workflow/guide-workflow-node-layout.md +6 -0
  332. package/skill-docs/references/workflow/guide-workflow.md +29 -3
  333. package/skill-docs/references/form/style-templates.md +0 -97
@@ -0,0 +1,504 @@
1
+ import { resolveFieldPermissionRoute } from './workflow-field-permission-route.js';
2
+ import { compileWorkflowCondition, persistWorkflowCondition } from './workflow-condition-core.js';
3
+ import { isDeepStrictEqual } from 'node:util';
4
+ import { id } from './workflow-function-management.js';
5
+ import { OpinionSettings, booleanValue } from './workflow-opinion-settings.js';
6
+ export const P = '/api/bs/workflow/pathdef';
7
+ export const fields = {
8
+ authset: ['maintenance', 'statistics', 'statisticsExport', 'containSubDept'],
9
+ shareset: ['defSharerCanViewComment', 'allowAddNoDefShare', 'sendRemindTiming'],
10
+ remind: ['remindType', 'isCustomContent', 'forceEndReceiver', 'errRemindCustom', 'errReminder'],
11
+ sharing: ['defaultShareType', 'commonTiming', 'commonMultiNode', 'shareUsers'],
12
+ sysRemind: ['sysRemindScope', 'sysArchiveNoRemind', 'sysCcNoRemind', 'messageSenderCustom', 'messageSenderType'],
13
+ emailAndSmsRemind: ['remindScope', 'defaultRemindType', 'archiveNoRemind', 'ccNoRemind', 'chooseReminder', 'alterNodesType', 'alterNodesBrowser'],
14
+ };
15
+ const routes = { authset: ['authSet/getEditForm', 'authSet/editForm'], shareset: ['ShareConfig/getForm', 'ShareConfig/saveConfig'], remind: ['baseSet/getRemindConfigForm', 'baseSet/saveRemindConfigForm'] };
16
+ export function keys(p, allowed) {
17
+ if (!p || typeof p !== 'object' || Array.isArray(p))
18
+ throw Error('设置必须为 JSON 对象');
19
+ for (const k of Object.keys(p))
20
+ if (!allowed.includes(k))
21
+ throw Error(`未知设置项 ${k};允许:${allowed.join(', ')}`);
22
+ }
23
+ export function formOf(v) { if (!v?.data || !v?.items)
24
+ throw Error('服务端没有返回配置表单/默认值,停止写入'); return v; }
25
+ export function channel(v) { if (v !== 'sysRemind' && v !== 'emailAndSmsRemind')
26
+ throw Error('渠道必须为 sysRemind 或 emailAndSmsRemind'); return v; }
27
+ const scalar = (v) => String(Array.isArray(v) ? v[0] ?? '' : v ?? '');
28
+ export function enumeration(v, item, k) {
29
+ if (Array.isArray(v) || v === null || typeof v === 'object')
30
+ throw Error(`${k} 必须为单个选项`);
31
+ const opts = item.options ?? item.data;
32
+ if (!Array.isArray(opts) || !opts.length)
33
+ throw Error(`${k} 缺少服务端选项`);
34
+ const found = opts.filter(o => !o.disabled && (String(o.id) === String(v) || o.content === v));
35
+ if (found.length !== 1)
36
+ throw Error(`${k} 无效;允许:${opts.filter(o => !o.disabled).map(o => `${o.id}=${o.content}`).join(', ')}`);
37
+ return String(found[0].id);
38
+ }
39
+ /** Compare editable semantics without dropping typed organization identities or nested values. */
40
+ function comparable(v) {
41
+ if (Array.isArray(v))
42
+ return v.map(comparable).sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b)));
43
+ if (v && typeof v === 'object') {
44
+ if (v._entityType)
45
+ return { type: v._entityType, id: String(v.bizId ?? v.id), ...(v.virtualType !== undefined ? { virtualType: v.virtualType } : {}) };
46
+ if (v.id !== undefined && (v.content !== undefined || v.name !== undefined))
47
+ return String(v.id);
48
+ return Object.fromEntries(Object.keys(v).sort().map(k => [k, comparable(v[k])]));
49
+ }
50
+ if (typeof v === 'boolean')
51
+ return v ? '1' : '0';
52
+ return v == null ? v : String(v);
53
+ }
54
+ export function verify(expected, actual, ks) {
55
+ const bad = ks.filter(k => k in expected && !isDeepStrictEqual(comparable(expected[k]), comparable(actual[k])));
56
+ if (bad.length)
57
+ throw Error(`保存已发出,回读不一致:${bad.join(', ')};请查询当前状态,勿直接重试`);
58
+ }
59
+ export function normalized(f) {
60
+ const d = structuredClone(f.data);
61
+ for (const [k, i] of Object.entries(f.items))
62
+ if (k in d) {
63
+ if (i.itemType === 'SWITCH')
64
+ d[k] = booleanValue(d[k]);
65
+ else if (['SELECT', 'RADIO'].includes(i.itemType) && !i.multiple)
66
+ d[k] = scalar(d[k]);
67
+ }
68
+ return d;
69
+ }
70
+ export function wire(f, d) {
71
+ const out = structuredClone(d);
72
+ for (const [k, i] of Object.entries(f.items))
73
+ if (k in out && i.itemType === 'SWITCH')
74
+ out[k] = booleanValue(out[k]) ? 1 : 0;
75
+ return out;
76
+ }
77
+ export class BaseSettings extends OpinionSettings {
78
+ constructor(client, base) { super(client, base); }
79
+ async post(path, payload) { const d = await super.post(path, payload); if (d?.success === false || d?.hasAuth === false || d?.result === false)
80
+ throw Error(`${path} 业务失败`); return d; }
81
+ async form(kind, w) {
82
+ const f = formOf(await this.get(`${P}/${routes[kind][0]}`, { workflowId: id(w), ...(kind === 'authset' ? { src: 'baseSet' } : kind === 'shareset' ? { belongType: 1 } : {}) }));
83
+ if (kind === 'authset') {
84
+ if (f.customParameters?.containSubDept === undefined)
85
+ throw Error('缺少包含下级部门配置');
86
+ f.data.containSubDept = f.customParameters.containSubDept;
87
+ f.items.containSubDept = { itemType: 'SWITCH' };
88
+ }
89
+ if (kind === 'remind' && 'isCustomContent' in f.data)
90
+ f.items.isCustomContent = { itemType: 'SWITCH' };
91
+ return f;
92
+ }
93
+ async orgValues(item, input, k) {
94
+ if (!Array.isArray(input))
95
+ throw Error(`${k} 必须为组织对象数组;清空用 []`);
96
+ const bean = item.typesBrowserBean ?? item.commonParams;
97
+ if (bean?.type !== 'multiOrgTypesBrowser')
98
+ throw Error(`${k} 不支持的组织浏览器`);
99
+ const allowed = bean.combinationParams?.fromRemindSet ? ['user', 'role', 'employeeManager'] : ['user', 'dept', 'subcompany', 'group', 'role', 'all'];
100
+ const seen = new Set(), out = [];
101
+ for (const v of input) {
102
+ if (!v || typeof v !== 'object' || !allowed.includes(v._entityType))
103
+ throw Error(`${k} 每项需有 _entityType 和字符串 id;类型:${allowed.join(', ')}`);
104
+ const type = v._entityType, key = type === 'all' ? '0' : id(v.bizId ?? v.id);
105
+ if (seen.has(`${type}:${key}`))
106
+ throw Error(`${k} 组织对象重复`);
107
+ seen.add(`${type}:${key}`);
108
+ if (type === 'all') {
109
+ out.push({ id: '0', bizId: '0', name: '所有人', _entityType: 'all' });
110
+ continue;
111
+ }
112
+ const browserType = { user: 'resource', dept: 'department', subcompany: 'subcompany', group: 'channel', role: 'role', employeeManager: 'employeeManager' };
113
+ const mod = type === 'employeeManager' ? 'auth' : 'workflow/pathdef';
114
+ const d = await this.post(`/api/${mod}/common/browser/destData/${browserType[type]}`, { ...bean.combinationParams, selectIds: key, browserMultiple: true });
115
+ const rows = Array.isArray(d) ? d : d?.data;
116
+ const matches = Array.isArray(rows) ? rows.filter(r => String(r.id ?? r.bizId) === key && !r.isDelete) : [];
117
+ if (matches.length !== 1)
118
+ throw Error(`${k} 无法验证组织对象 ${type}:${key}`);
119
+ out.push({ ...matches[0], ...v, id: key, bizId: key, _entityType: type, name: matches[0].name ?? matches[0].content });
120
+ }
121
+ return out;
122
+ }
123
+ async patch(f, p, allowed) {
124
+ keys(p, allowed);
125
+ const next = normalized(f);
126
+ for (const [k, v] of Object.entries(p)) {
127
+ const item = f.items[k];
128
+ if (!item || item.disable || item.disabled || item.readOnly)
129
+ throw Error(`${k} 当前环境不可编辑`);
130
+ if (item.itemType === 'SWITCH')
131
+ next[k] = booleanValue(v);
132
+ else if (item.itemType === 'BROWSER')
133
+ next[k] = await this.browserValues(f, k, v);
134
+ else if (item.itemType === 'TYPESBROWSER')
135
+ next[k] = await this.orgValues(item, v, k);
136
+ else if (item.itemType === 'CHECKBOX' || (['SELECT', 'RADIO'].includes(item.itemType) && item.multiple)) {
137
+ if (!Array.isArray(v))
138
+ throw Error(`${k} 必须为数组`);
139
+ next[k] = v.map(x => enumeration(x, item, k));
140
+ if (new Set(next[k]).size !== next[k].length)
141
+ throw Error(`${k} 选项重复`);
142
+ }
143
+ else if (['SELECT', 'RADIO'].includes(item.itemType))
144
+ next[k] = enumeration(v, item, k);
145
+ else
146
+ throw Error(`${k} 请使用对应子配置命令`);
147
+ }
148
+ return next;
149
+ }
150
+ async save(kind, w, p) {
151
+ keys(p, fields[kind]);
152
+ const f = await this.form(kind, w), before = normalized(f), next = await this.patch(f, p, fields[kind]);
153
+ const payload = { ...wire(f, next), workflowId: w, ...(kind === 'authset' ? { src: 'baseSet' } : {}) };
154
+ if (kind === 'remind') {
155
+ payload.errRemindType = scalar(next.errRemindType);
156
+ payload.isCustomContent = booleanValue(next.isCustomContent);
157
+ payload.errRemindCustom = booleanValue(next.errRemindCustom);
158
+ }
159
+ await this.post(`${P}/${routes[kind][1]}`, payload);
160
+ const after = normalized(await this.form(kind, w));
161
+ verify(next, after, fields[kind]);
162
+ return { workflowId: w, before, after, verified: true };
163
+ }
164
+ async sharing(w) {
165
+ const d = await this.get(`${P}/ShareConfig/getConditionForm`, { workflowId: id(w), belongType: 1 });
166
+ formOf(d?.form);
167
+ if (!Array.isArray(d.shareConditionTable?.data))
168
+ throw Error('条件共享列表结构异常');
169
+ if (d.shareConditionTable.total !== undefined && Number(d.shareConditionTable.total) > d.shareConditionTable.data.length)
170
+ throw Error('条件共享列表不完整,停止整表保存');
171
+ return d;
172
+ }
173
+ async saveSharing(w, p) {
174
+ keys(p, fields.sharing);
175
+ const before = await this.sharing(w), next = await this.patch(before.form, p, fields.sharing);
176
+ if (next.defaultShareType === '0' && next.commonTiming !== '0' && !next.commonMultiNode?.length)
177
+ throw Error('到达/离开节点共享须指定 commonMultiNode');
178
+ await this.post(`${P}/ShareConfig/saveConfigCondition`, { ...wire(before.form, next), workflowId: w, conditions: before.shareConditionTable.data, deleteRows: [] });
179
+ const after = await this.sharing(w);
180
+ verify(next, normalized(after.form), fields.sharing);
181
+ verify({ rows: before.shareConditionTable.data }, { rows: after.shareConditionTable.data }, ['rows']);
182
+ return { workflowId: w, before: normalized(before.form), after: normalized(after.form), verified: true };
183
+ }
184
+ async saveShareRow(w, p, rowId) {
185
+ const allowed = ['condition', 'shareCondition', 'shareConditionUsers', 'shareTiming', 'shareMultiNode', 'isEnable'];
186
+ keys(p, allowed);
187
+ const before = await this.sharing(w), rows = before.shareConditionTable.data, items = before.shareConditionTable.formItemProps;
188
+ if (String(before.form.data.defaultShareType) !== '1')
189
+ throw Error('请先显式设置 defaultShareType:"1",再编辑条件共享行');
190
+ const old = rowId ? rows.find(r => String(r.id) === id(rowId)) : undefined;
191
+ if (rowId && !old)
192
+ throw Error('共享规则不属于此流程');
193
+ // Empty controls follow the frontend add-row model; scalar defaults come from the live column schema.
194
+ // pathset-base-shareset/store.ts:newAddTableList supplies isEnable=true when the server omits it.
195
+ const initial = { id: '-1', shareCondition: {}, shareConditionUsers: [], shareMultiNode: [], isEnable: true };
196
+ for (const [k, i] of Object.entries(items))
197
+ if (i.defaultValue !== undefined)
198
+ initial[k] = i.defaultValue?.id ?? i.defaultValue;
199
+ const { shareCondition, condition, ...rest } = p;
200
+ if (condition !== undefined && shareCondition !== undefined)
201
+ throw Error('condition 与 shareCondition 不能同时传入');
202
+ const next = await this.patch({ data: old ?? initial, items }, rest, allowed);
203
+ if (shareCondition !== undefined) {
204
+ keys(shareCondition, ['conditionKey', 'conditionCn', 'source']);
205
+ if (Object.keys(shareCondition).length) {
206
+ const key = id(shareCondition.conditionKey);
207
+ if (!rows.some(r => String(r.shareCondition?.conditionKey) === key))
208
+ throw Error('只能复用本流程已有共享条件;新表达式请使用 condition.rules');
209
+ next.shareCondition = { ...shareCondition, conditionKey: key, source: 24 };
210
+ }
211
+ else
212
+ next.shareCondition = {};
213
+ }
214
+ if (!next.shareConditionUsers?.length || !next.shareMultiNode?.length)
215
+ throw Error('条件共享必须指定共享人和节点');
216
+ if (condition !== undefined)
217
+ next.shareCondition = await this.createShareCondition(w, condition, before.workflowName);
218
+ const updated = rowId ? rows.map(r => String(r.id) === rowId ? next : r) : [...rows, next];
219
+ await this.post(`${P}/ShareConfig/saveConfigCondition`, { ...before.form.data, workflowId: w, conditions: updated, deleteRows: [] });
220
+ const after = await this.sharing(w), list = after.shareConditionTable.data;
221
+ const added = rowId ? list.filter(r => String(r.id) === rowId) : list.filter(r => !rows.some(o => String(o.id) === String(r.id)));
222
+ if (added.length !== 1)
223
+ throw Error('保存后无法唯一定位共享行,请查询,勿重复新增');
224
+ verify(next, added[0], allowed.filter(k => k !== 'condition' && k !== 'shareCondition'));
225
+ if (String(next.shareCondition?.conditionKey ?? '0') !== String(added[0].shareCondition?.conditionKey ?? '0'))
226
+ throw Error('共享条件引用回读不一致');
227
+ verify(normalized(before.form), normalized(after.form), fields.sharing);
228
+ for (const r of rows)
229
+ if (String(r.id) !== rowId) {
230
+ const a = list.find(x => String(x.id) === String(r.id));
231
+ if (!a)
232
+ throw Error('原共享行丢失');
233
+ verify(r, a, allowed);
234
+ }
235
+ return { workflowId: w, ruleId: String(added[0].id), before: old, after: added[0], verified: true };
236
+ }
237
+ async shareCondition(w, rowId) {
238
+ const d = await this.sharing(w), row = d.shareConditionTable.data.find((r) => String(r.id) === id(rowId));
239
+ if (!row)
240
+ throw Error('共享行不属于此流程');
241
+ if (!row.shareCondition?.conditionKey)
242
+ return { condition: null, rules: [] };
243
+ const context = await this.post('/api/workflow/pathdef/rule/condition/getConditionSet', { ...row.shareCondition, source: 24, workflowId: w, needFormfield: true, readOnly: true });
244
+ const list = await this.post('/api/workflow/pathdef/rule/condition/getConditionList', { ...context, source: 24, workflowId: w, needFormfield: true, readOnly: true, current: 1, pageSize: 1000 });
245
+ if (!Array.isArray(list?.data) || Number(list.total ?? list.data.length) > list.data.length)
246
+ throw Error('条件列表不完整');
247
+ return { context, rules: list.data };
248
+ }
249
+ async createShareCondition(w, p, name) {
250
+ keys(p, ['rules', 'relation']);
251
+ const compiled = await compileWorkflowCondition(this.client, this.base, { workflowId: w, source: 24, sourceId: '-1' }, p.rules, p.relation ?? 'AND');
252
+ const saved = await persistWorkflowCondition(this.client, this.base, { workflowId: w, source: 24, conditionName: `默认共享条件 (${name})`, inheritRelation: p.relation === undefined }, compiled);
253
+ return { conditionKey: saved.conditionKey, conditionCn: saved.conditionCn, source: 24 };
254
+ }
255
+ async shareFields(w) {
256
+ const info = await this.get(`${P}/ShareConfig/getFieldPermissionInfo`, { workflowId: id(w) });
257
+ const route = await resolveFieldPermissionRoute(this.client, this.base, w, String(info.formId));
258
+ const endpoint = route.kind === 'ebuilder' ? '/api/ebuilder/flow/core/bridgeform/getFieldPermissionViewDataById' : '/api/workflow/core/bridgeform/getFieldPermissionViewDataById';
259
+ const d = await this.get(endpoint, { workflowId: w, formId: id(info.formId), permissionId: info.permissionId, nodeFormRelateId: '-1' });
260
+ if (!Array.isArray(d?.allFieldIds) || !Array.isArray(d?.fieldList))
261
+ throw Error('Incomplete legacy permission defaults/details');
262
+ let details = d.initPermissionDetails;
263
+ if (!Array.isArray(details)) {
264
+ if (!Array.isArray(d.readFieldIds) || !Array.isArray(d.writeFieldIds))
265
+ throw Error('Incomplete legacy read/write permissions');
266
+ const read = new Set(d.readFieldIds.map(String)), write = new Set(d.writeFieldIds.map(String));
267
+ details = [];
268
+ // Match the legacy WeaFieldPermission component's getPermissionDataCommon.
269
+ for (const field of d.fieldList) {
270
+ const fieldRead = read.has(String(field.id));
271
+ const fieldWrite = !['Paragraph', 'SubTableControl'].includes(field.componentKey) && write.has(String(field.id));
272
+ details.push({ fieldId: field.id, fieldRead, fieldWrite, delete: false });
273
+ if (['ComboSelect', 'DateInterval', 'MatrixComponent'].includes(field.componentKey) && Array.isArray(field.fields)) {
274
+ for (const child of field.fields)
275
+ details.push({ fieldId: child.id, fieldRead, fieldWrite, delete: false });
276
+ }
277
+ }
278
+ }
279
+ const configs = details.map((r) => ({ ...r, id: String(r.fieldId), name: d.fieldList.find((f) => String(f.id) === String(r.fieldId))?.title, display: r.fieldRead }));
280
+ if (d.allFieldIds.some((key) => !configs.some((r) => r.id === String(key))))
281
+ throw Error('Incomplete field permission details');
282
+ return { payload: { formId: String(info.formId), permissionId: String(info.permissionId) }, configs, renderer: 'legacy', route };
283
+ }
284
+ async saveShareFields(w, p) {
285
+ keys(p, ['fields']);
286
+ if (!Array.isArray(p.fields) || !p.fields.length)
287
+ throw Error('fields 必须为非空数组,每项为 {id或name,display}');
288
+ const before = await this.shareFields(w), configs = structuredClone(before.configs), flat = [];
289
+ const walk = (a) => { for (const r of a) {
290
+ flat.push(r);
291
+ if (r.children)
292
+ walk(r.children);
293
+ } };
294
+ walk(configs);
295
+ const seen = new Set();
296
+ for (const v of p.fields) {
297
+ keys(v, ['id', 'name', 'display']);
298
+ if (v.display === undefined)
299
+ throw Error('必须明确指定 display');
300
+ const matches = flat.filter(r => v.id !== undefined ? String(r.id) === String(v.id) : r.name === v.name);
301
+ if (matches.length !== 1 || matches[0].isDelete || matches[0].disabled?.display)
302
+ throw Error('字段不存在、名称不唯一或不可修改');
303
+ const row = matches[0];
304
+ if (seen.has(String(row.id)))
305
+ throw Error('重复字段');
306
+ seen.add(String(row.id));
307
+ row.display = booleanValue(v.display);
308
+ }
309
+ const permissionDetails = configs.map((r) => { const { display, id, name, ...rest } = r; return { ...rest, fieldRead: display }; });
310
+ await this.post('/api/workflow/core/form/formFieldPermission/saveNodeExtSet', { formId: before.payload.formId, share: true, nodeFormRelate: { workflowId: w }, fieldPermission: { id: before.payload.permissionId, formId: before.payload.formId, module: 'newworkflow', permissionDetails } });
311
+ const after = await this.shareFields(w), afterFlat = [];
312
+ const flatten = (a) => { for (const r of a) {
313
+ afterFlat.push(r);
314
+ if (r.children)
315
+ flatten(r.children);
316
+ } };
317
+ flatten(after.configs);
318
+ for (const r of flat) {
319
+ const a = afterFlat.find(x => String(x.id) === String(r.id));
320
+ if (!a)
321
+ throw Error('保存后缺少字段');
322
+ verify(r, a, ['display', 'readOnly', 'fieldWrite', 'required', 'disableEdit', 'singleRow']);
323
+ }
324
+ return { workflowId: w, permissionId: after.payload.permissionId, before: before.configs, after: after.configs, verified: true };
325
+ }
326
+ async shareSystemFields(w) {
327
+ const d = await this.get(`${P}/sysfield/getSysFieldPermission`, { workflowId: id(w), targetId: '-1', scene: 1, requestId: '-1' });
328
+ if (!Array.isArray(d?.data))
329
+ throw Error('系统字段权限列表格式异常');
330
+ return d;
331
+ }
332
+ async saveShareSystemFields(w, p) {
333
+ keys(p, ['fields']);
334
+ if (!Array.isArray(p.fields) || !p.fields.length)
335
+ throw Error('fields 必须为非空数组');
336
+ const before = await this.shareSystemFields(w), rows = structuredClone(before.data), seen = new Set();
337
+ for (const v of p.fields) {
338
+ keys(v, ['fieldType', 'isview']);
339
+ if (v.fieldType === undefined || v.isview === undefined)
340
+ throw Error('请指定 fieldType 与 isview');
341
+ const matches = rows.filter((r) => String(r.fieldType) === String(v.fieldType));
342
+ if (matches.length !== 1 || seen.has(String(v.fieldType)))
343
+ throw Error('系统字段不存在或重复');
344
+ seen.add(String(v.fieldType));
345
+ matches[0].isview = booleanValue(v.isview) ? 1 : 0;
346
+ }
347
+ await this.post(`${P}/sysfield/saveSysFieldPermission`, { workflowId: w, targetId: '-1', scene: 1, isSync: false, data: JSON.stringify(rows) });
348
+ const after = await this.shareSystemFields(w);
349
+ for (const r of rows) {
350
+ const a = after.data.find((x) => String(x.fieldType) === String(r.fieldType));
351
+ if (!a)
352
+ throw Error('系统字段丢失');
353
+ verify(r, a, ['isview', 'isedit', 'ismandatory']);
354
+ }
355
+ return { workflowId: w, before: before.data, after: after.data, verified: true };
356
+ }
357
+ async detail(w, src) { channel(src); const f = await this.form('remind', w); return formOf(f.customParameters?.[src === 'sysRemind' ? 'sysRemindForm' : 'emailAndSmsRemindForm']); }
358
+ async saveDetail(w, src, p) {
359
+ channel(src);
360
+ keys(p, fields[src]);
361
+ const main = await this.form('remind', w), custom = main.customParameters;
362
+ const f = formOf(custom[src === 'sysRemind' ? 'sysRemindForm' : 'emailAndSmsRemindForm']), next = await this.patch(f, p, fields[src]);
363
+ if ((next.sysRemindScope ?? next.remindScope) === '1' && !(await this.remindNodes(w, src)).length)
364
+ throw Error('指定节点模式须先新增节点提醒规则');
365
+ if (src === 'emailAndSmsRemind' && next.defaultRemindType?.some((x) => !main.data.remindType.includes(x)))
366
+ throw Error('默认提醒渠道超出已启用渠道');
367
+ const payload = { workflowId: w };
368
+ // The server can initialize both details together. Preserve the companion group explicitly.
369
+ for (const [key, val] of Object.entries(custom))
370
+ if (['sysRemindForm', 'emailAndSmsRemindForm'].includes(key))
371
+ payload[key] = wire(val, normalized(val));
372
+ payload[src === 'sysRemind' ? 'sysRemindForm' : 'emailAndSmsRemindForm'] = wire(f, next);
373
+ await this.post(`${P}/baseSet/saveRemindSetDetail`, payload);
374
+ const afterMain = await this.form('remind', w);
375
+ verify(normalized(main), normalized(afterMain), fields.remind);
376
+ for (const ch of ['sysRemind', 'emailAndSmsRemind']) {
377
+ const key = ch === 'sysRemind' ? 'sysRemindForm' : 'emailAndSmsRemindForm';
378
+ verify(ch === src ? next : normalized(custom[key]), normalized(afterMain.customParameters[key]), fields[ch]);
379
+ }
380
+ return { workflowId: w, src, before: normalized(f), after: normalized(afterMain.customParameters[src === 'sysRemind' ? 'sysRemindForm' : 'emailAndSmsRemindForm']), verified: true };
381
+ }
382
+ async remindNodes(w, src) {
383
+ channel(src);
384
+ const d = await this.get(`${P}/baseSet/remindNodeSet/getRemindNodeSetConfig`, { workflowId: id(w), src });
385
+ if (!Array.isArray(d?.datas))
386
+ throw Error('节点提醒列表结构异常');
387
+ return d.datas;
388
+ }
389
+ async nodeDefaults(w, src) {
390
+ const main = await this.form('remind', w);
391
+ channel(src);
392
+ return formOf(await this.get(`${P}/baseSet/remindNodeSet/getAddRemindNodeSetForm`, { workflowId: w, src, remindType: main.data.remindType.join(',') }));
393
+ }
394
+ async saveRemindNode(w, src, p, rowId) {
395
+ channel(src);
396
+ keys(p, rowId ? ['reminders', 'ccNoRemind', 'remindContentType'] : ['alterNodesBrowser', 'remindType', 'ccNoRemind']);
397
+ const before = await this.remindNodes(w, src);
398
+ let next, wanted;
399
+ if (rowId) {
400
+ const old = before.find(r => String(r.id) === id(rowId));
401
+ if (!old)
402
+ throw Error('节点提醒规则不属于当前流程/渠道');
403
+ next = structuredClone(old);
404
+ wanted = [String(old.nodeId)];
405
+ if ('reminders' in p) {
406
+ if (!Array.isArray(p.reminders) || p.reminders.some((x) => !(src === 'sysRemind' ? ['2'] : ['0', '1']).includes(x)))
407
+ throw Error('reminders 渠道无效');
408
+ next.reminders = p.reminders;
409
+ }
410
+ if ('ccNoRemind' in p)
411
+ next.ccNoRemind = booleanValue(p.ccNoRemind) ? 1 : 0;
412
+ if ('remindContentType' in p) {
413
+ if (!['0', '1'].includes(String(p.remindContentType)))
414
+ throw Error('remindContentType 必须为 0默认/1自定义');
415
+ next.remindContentType = String(p.remindContentType);
416
+ }
417
+ await this.post(`${P}/baseSet/remindNodeSet/updateRemindNodeSetConfig`, { workflowId: w, src, wfpRemindNodeSetEntityList: [next] });
418
+ }
419
+ else {
420
+ const f = await this.nodeDefaults(w, src);
421
+ next = await this.patch(f, p, ['alterNodesBrowser', 'remindType', 'ccNoRemind']);
422
+ wanted = next.alterNodesBrowser.map((r) => String(r.id));
423
+ if (!wanted.length)
424
+ throw Error('须指定 alterNodesBrowser 节点');
425
+ if (before.some(r => wanted.includes(String(r.nodeId))))
426
+ throw Error('节点提醒已存在,请按规则ID更新');
427
+ await this.post(`${P}/baseSet/remindNodeSet/batchAddRemindNodeSet`, { ...wire(f, next), workflowId: w, src, nodeId: wanted.join(','), remindType: next.remindType.join(',') });
428
+ }
429
+ const after = await this.remindNodes(w, src);
430
+ const targets = after.filter(r => wanted.includes(String(r.nodeId)));
431
+ if (targets.length !== wanted.length)
432
+ throw Error('节点提醒保存后数量不一致');
433
+ for (const r of targets)
434
+ verify(rowId ? next : { reminders: next.remindType, ccNoRemind: next.ccNoRemind }, r, ['reminders', 'ccNoRemind', 'remindContentType']);
435
+ for (const r of before)
436
+ if (String(r.id) !== rowId) {
437
+ const a = after.find(x => String(x.id) === String(r.id));
438
+ if (!a)
439
+ throw Error('原节点提醒丢失');
440
+ verify(r, a, ['nodeId', 'reminders', 'ccNoRemind', 'remindContentType']);
441
+ }
442
+ return { workflowId: w, src, before, after, verified: true };
443
+ }
444
+ async smsTemplateAudit() {
445
+ const r = await this.client.get(this.base + `${P}/applyRemindset/needCheckSmsTemplate`);
446
+ // false is a valid capability response, unlike false from configuration save endpoints.
447
+ if (r?.code !== 200 || r.status === false || typeof r.data !== 'boolean')
448
+ throw Error('无法读取短信模板审核能力');
449
+ return r.data;
450
+ }
451
+ async templates(w, type, nodeId) {
452
+ id(w);
453
+ if (!['0', '1', '2'].includes(type))
454
+ throw Error('contentType 必须为 0短信/1邮件/2系统');
455
+ if (nodeId && !(await this.remindNodes(w, type === '2' ? 'sysRemind' : 'emailAndSmsRemind')).some(r => String(r.nodeId) === id(nodeId)))
456
+ throw Error('节点没有此渠道的提醒规则');
457
+ if (type === '0' && await this.smsTemplateAudit())
458
+ return { editable: false, effectiveScope: 'application', reason: '当前短信通道需审核,产品不支持工作流/节点自定义短信内容;请到应用设置-提醒内容设置-提醒内容默认设置配置全局模板', tableData: [], fields: [] };
459
+ const d = await this.post(`${P}/baseSet/getNodesRemindConfig`, { workflowId: w, contentType: type, scence: nodeId ? '1' : '0', nodeId: nodeId ?? '-1' });
460
+ if (!Array.isArray(d?.tableData) || !Array.isArray(d?.fields))
461
+ throw Error('模板响应结构异常');
462
+ return d;
463
+ }
464
+ async saveTemplate(w, type, event, p, nodeId) {
465
+ const allowed = type === '1' ? ['title', 'content', 'isFormData', 'isSignData', 'isAttachmentData'] : ['content'];
466
+ keys(p, allowed);
467
+ if (type === '0' && await this.smsTemplateAudit())
468
+ throw Error('当前租户使用需审核的短信服务;产品仅支持全局默认短信模板,不支持工作流或节点自定义');
469
+ const main = await this.form('remind', w);
470
+ if (!nodeId && !booleanValue(main.data.isCustomContent))
471
+ throw Error('保存流程模板会自动开启自定义内容,请先显式设置 remind update --data \'{"isCustomContent":true}\'');
472
+ const before = await this.templates(w, type, nodeId), rows = structuredClone(before.tableData), matches = rows.filter(r => String(r.remindType) === event);
473
+ if (matches.length !== 1)
474
+ throw Error('提醒事件不存在或不唯一,请 templates get 获取 remindType');
475
+ const row = matches[0];
476
+ for (const [k, v] of Object.entries(p)) {
477
+ if (k.startsWith('is')) {
478
+ if (!before['show' + k[0].toUpperCase() + k.slice(1)])
479
+ throw Error(`${k} 当前环境不可用`);
480
+ row[k] = booleanValue(v) ? 1 : 0;
481
+ }
482
+ else {
483
+ if (typeof v !== 'string')
484
+ throw Error(`${k} 必须为字符串`);
485
+ const codes = new Set(before.fields.map((f) => String(f.code)));
486
+ for (const m of v.matchAll(/\[(-?\d+)\]/g))
487
+ if (!codes.has(m[1]) || (before.hideSysFields?.[event] ?? []).includes(m[1]))
488
+ throw Error(`${k} 包含当前事件不允许的字段 ${m[1]}`);
489
+ row[k] = v;
490
+ }
491
+ }
492
+ await this.post(`${P}/baseSet/updateDefRemindConfig`, { workflowId: w, contentType: type, scence: nodeId ? '1' : '0', nodeId: nodeId ?? '-1', wfpRemindContents: rows, wfpRemindContentLog: before.tableData });
493
+ const after = await this.templates(w, type, nodeId);
494
+ for (const r of rows) {
495
+ const a = after.tableData.find((x) => String(x.remindType) === String(r.remindType));
496
+ if (!a)
497
+ throw Error('模板回读缺少事件');
498
+ verify(r, a, allowed);
499
+ }
500
+ verify(normalized(main), normalized(await this.form('remind', w)), fields.remind);
501
+ return { workflowId: w, contentType: type, nodeId, before: before.tableData, after: after.tableData, verified: true };
502
+ }
503
+ }
504
+ //# sourceMappingURL=workflow-base-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-base-settings.js","sourceRoot":"","sources":["../../src/services/workflow-base-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export type ConditionClient = {
2
+ post(url: string, body: any): Promise<any>;
3
+ };
4
+ export type ConditionContext = {
5
+ workflowId: string;
6
+ source: number;
7
+ sourceId: string;
8
+ fields?: any[];
9
+ fieldParams?: Record<string, any>;
10
+ };
11
+ export type ConditionLeaf = {
12
+ source: 'form' | 'system' | 'variable';
13
+ field: string;
14
+ op: string;
15
+ value?: any;
16
+ upper?: any;
17
+ detail?: '任一' | '所有';
18
+ };
19
+ export type ConditionTree = ConditionLeaf | {
20
+ relation: 'AND' | 'OR';
21
+ rules: ConditionTree[];
22
+ };
23
+ export declare function conditionFamily(f: any): string;
24
+ export declare function parseConditionInput(input: any, relation?: string): ConditionTree;
25
+ export declare function compileWorkflowCondition(client: ConditionClient, base: string, ctx: ConditionContext, input: any, relation?: string): Promise<{
26
+ relation: any;
27
+ childrens: any;
28
+ }>;
29
+ /** Allocate a fresh condition set, then persist. Business adapters bind only after success.
30
+ * Never delete the previously bound condition before the replacement has been saved.
31
+ * sourceId=-1 is the platform's new/unbound context; discovery still uses the real business ID.
32
+ */
33
+ export declare function persistWorkflowCondition(client: ConditionClient, base: string, ctx: {
34
+ workflowId: string;
35
+ source: number;
36
+ conditionName: string;
37
+ extra?: Record<string, any>;
38
+ inheritRelation?: boolean;
39
+ }, compiled: {
40
+ relation: number;
41
+ childrens: any[];
42
+ }): Promise<{
43
+ conditionKey: string;
44
+ conditionCn: any;
45
+ conditionId: any;
46
+ mapId: any;
47
+ }>;
48
+ //# sourceMappingURL=workflow-condition-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-condition-core.d.ts","sourceRoot":"","sources":["../../src/services/workflow-condition-core.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAC9C,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACrC,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IACxB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG;IACxC,QAAQ,EAAE,KAAK,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;CAC1B,CAAC;AASF,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAa9C;AAyBD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,SAAQ,GAAG,aAAa,CAqC/E;AACD,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,SAAQ;;;GA6LxI;AACD;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IACvF,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B,EAAE,QAAQ,EAAE;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,EAAE,CAAC;CACpB;;;;;GAWA"}