weaver-e10-builder 1.5.13 → 1.5.15

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 (340) 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-setters.d.ts.map +1 -1
  5. package/dist/commands/designer-setters.js +148 -47
  6. package/dist/commands/designer-setters.js.map +1 -1
  7. package/dist/commands/form-add-detail-table.d.ts.map +1 -1
  8. package/dist/commands/form-add-detail-table.js +53 -7
  9. package/dist/commands/form-add-detail-table.js.map +1 -1
  10. package/dist/commands/form-browser-definition.d.ts +14 -0
  11. package/dist/commands/form-browser-definition.d.ts.map +1 -0
  12. package/dist/commands/form-browser-definition.js +493 -0
  13. package/dist/commands/form-browser-definition.js.map +1 -0
  14. package/dist/commands/form-code.d.ts +5 -0
  15. package/dist/commands/form-code.d.ts.map +1 -0
  16. package/dist/commands/form-code.js +276 -0
  17. package/dist/commands/form-code.js.map +1 -0
  18. package/dist/commands/form-engine-linkage.d.ts +3 -0
  19. package/dist/commands/form-engine-linkage.d.ts.map +1 -0
  20. package/dist/commands/form-engine-linkage.js +199 -0
  21. package/dist/commands/form-engine-linkage.js.map +1 -0
  22. package/dist/commands/form-formula.d.ts.map +1 -1
  23. package/dist/commands/form-formula.js +7 -19
  24. package/dist/commands/form-formula.js.map +1 -1
  25. package/dist/commands/form-layout-template-advanced.d.ts +3 -0
  26. package/dist/commands/form-layout-template-advanced.d.ts.map +1 -0
  27. package/dist/commands/form-layout-template-advanced.js +115 -0
  28. package/dist/commands/form-layout-template-advanced.js.map +1 -0
  29. package/dist/commands/form-layout-template-easy.d.ts +3 -0
  30. package/dist/commands/form-layout-template-easy.d.ts.map +1 -0
  31. package/dist/commands/form-layout-template-easy.js +59 -0
  32. package/dist/commands/form-layout-template-easy.js.map +1 -0
  33. package/dist/commands/form-layout.d.ts.map +1 -1
  34. package/dist/commands/form-layout.js +77 -0
  35. package/dist/commands/form-layout.js.map +1 -1
  36. package/dist/commands/form-list-filter.js +1 -1
  37. package/dist/commands/form-list-filter.js.map +1 -1
  38. package/dist/commands/form-list-utils.d.ts +5 -0
  39. package/dist/commands/form-list-utils.d.ts.map +1 -1
  40. package/dist/commands/form-list-utils.js +23 -3
  41. package/dist/commands/form-list-utils.js.map +1 -1
  42. package/dist/commands/form-permission.d.ts.map +1 -1
  43. package/dist/commands/form-permission.js +55 -19
  44. package/dist/commands/form-permission.js.map +1 -1
  45. package/dist/commands/form-physical-table.d.ts.map +1 -1
  46. package/dist/commands/form-physical-table.js +8 -2
  47. package/dist/commands/form-physical-table.js.map +1 -1
  48. package/dist/commands/form.d.ts.map +1 -1
  49. package/dist/commands/form.js +143 -5
  50. package/dist/commands/form.js.map +1 -1
  51. package/dist/commands/menu.d.ts +68 -2
  52. package/dist/commands/menu.d.ts.map +1 -1
  53. package/dist/commands/menu.js +186 -41
  54. package/dist/commands/menu.js.map +1 -1
  55. package/dist/commands/page.d.ts.map +1 -1
  56. package/dist/commands/page.js +29 -6
  57. package/dist/commands/page.js.map +1 -1
  58. package/dist/commands/special.d.ts.map +1 -1
  59. package/dist/commands/special.js +3 -2
  60. package/dist/commands/special.js.map +1 -1
  61. package/dist/commands/wf-form.d.ts.map +1 -1
  62. package/dist/commands/wf-form.js +76 -31
  63. package/dist/commands/wf-form.js.map +1 -1
  64. package/dist/commands/workflow-auth-resp.js +2 -2
  65. package/dist/commands/workflow-auth-resp.js.map +1 -1
  66. package/dist/commands/workflow-base-command.d.ts +4 -0
  67. package/dist/commands/workflow-base-command.d.ts.map +1 -0
  68. package/dist/commands/workflow-base-command.js +6 -0
  69. package/dist/commands/workflow-base-command.js.map +1 -0
  70. package/dist/commands/workflow-base-settings.d.ts +3 -0
  71. package/dist/commands/workflow-base-settings.d.ts.map +1 -0
  72. package/dist/commands/workflow-base-settings.js +76 -0
  73. package/dist/commands/workflow-base-settings.js.map +1 -0
  74. package/dist/commands/workflow-condition.d.ts.map +1 -1
  75. package/dist/commands/workflow-condition.js +59 -450
  76. package/dist/commands/workflow-condition.js.map +1 -1
  77. package/dist/commands/workflow-export.d.ts +9 -0
  78. package/dist/commands/workflow-export.d.ts.map +1 -0
  79. package/dist/commands/workflow-export.js +121 -0
  80. package/dist/commands/workflow-export.js.map +1 -0
  81. package/dist/commands/workflow-function-settings.d.ts +3 -0
  82. package/dist/commands/workflow-function-settings.d.ts.map +1 -0
  83. package/dist/commands/workflow-function-settings.js +47 -0
  84. package/dist/commands/workflow-function-settings.js.map +1 -0
  85. package/dist/commands/workflow-node.d.ts.map +1 -1
  86. package/dist/commands/workflow-node.js +28 -53
  87. package/dist/commands/workflow-node.js.map +1 -1
  88. package/dist/commands/workflow-operator-batch.d.ts +3 -0
  89. package/dist/commands/workflow-operator-batch.d.ts.map +1 -0
  90. package/dist/commands/workflow-operator-batch.js +35 -0
  91. package/dist/commands/workflow-operator-batch.js.map +1 -0
  92. package/dist/commands/workflow-setting.d.ts.map +1 -1
  93. package/dist/commands/workflow-setting.js +137 -406
  94. package/dist/commands/workflow-setting.js.map +1 -1
  95. package/dist/commands/workflow-subprocess.d.ts.map +1 -1
  96. package/dist/commands/workflow-subprocess.js +21 -33
  97. package/dist/commands/workflow-subprocess.js.map +1 -1
  98. package/dist/commands/workflow.d.ts.map +1 -1
  99. package/dist/commands/workflow.js +18 -33
  100. package/dist/commands/workflow.js.map +1 -1
  101. package/dist/index.js +18 -1
  102. package/dist/index.js.map +1 -1
  103. package/dist/services/actionflow/browser_source.d.ts +9 -0
  104. package/dist/services/actionflow/browser_source.d.ts.map +1 -0
  105. package/dist/services/actionflow/browser_source.js +12 -0
  106. package/dist/services/actionflow/browser_source.js.map +1 -0
  107. package/dist/services/actionflow/components/date_trigger.js +1 -1
  108. package/dist/services/actionflow/components/date_trigger.js.map +1 -1
  109. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
  110. package/dist/services/actionflow/components/document_actions.js +178 -25
  111. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  112. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  113. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  114. package/dist/services/actionflow/components/logic_flow_set.d.ts.map +1 -1
  115. package/dist/services/actionflow/components/logic_flow_set.js +80 -8
  116. package/dist/services/actionflow/components/logic_flow_set.js.map +1 -1
  117. package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -1
  118. package/dist/services/actionflow/components/meeting_create.js +1 -0
  119. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  120. package/dist/services/actionflow/components/schedule_create.d.ts.map +1 -1
  121. package/dist/services/actionflow/components/schedule_create.js +2 -0
  122. package/dist/services/actionflow/components/schedule_create.js.map +1 -1
  123. package/dist/services/actionflow/components/time_batch_trigger.js +1 -1
  124. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
  125. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  126. package/dist/services/actionflow/components/workflow_actions.js +6 -2
  127. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  128. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  129. package/dist/services/actionflow/context_preflight.js +103 -6
  130. package/dist/services/actionflow/context_preflight.js.map +1 -1
  131. package/dist/services/actionflow/form_source.d.ts +2 -0
  132. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  133. package/dist/services/actionflow/form_source.js +8 -0
  134. package/dist/services/actionflow/form_source.js.map +1 -1
  135. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  136. package/dist/services/actionflow/formula_service.js +35 -19
  137. package/dist/services/actionflow/formula_service.js.map +1 -1
  138. package/dist/services/actionflow/logicflow_source.d.ts +5 -0
  139. package/dist/services/actionflow/logicflow_source.d.ts.map +1 -0
  140. package/dist/services/actionflow/logicflow_source.js +15 -0
  141. package/dist/services/actionflow/logicflow_source.js.map +1 -0
  142. package/dist/services/actionflow/preflight_service.d.ts +15 -0
  143. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  144. package/dist/services/actionflow/preflight_service.js +558 -26
  145. package/dist/services/actionflow/preflight_service.js.map +1 -1
  146. package/dist/services/actionflow/runtime_metadata.d.ts +8 -0
  147. package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -1
  148. package/dist/services/actionflow/runtime_metadata.js +25 -0
  149. package/dist/services/actionflow/runtime_metadata.js.map +1 -1
  150. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  151. package/dist/services/actionflow/workflow_compiler.js +50 -10
  152. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  153. package/dist/services/actionflow/workflow_source.d.ts +2 -0
  154. package/dist/services/actionflow/workflow_source.d.ts.map +1 -1
  155. package/dist/services/actionflow/workflow_source.js +7 -0
  156. package/dist/services/actionflow/workflow_source.js.map +1 -1
  157. package/dist/services/auth-resp-condition.d.ts +7 -3
  158. package/dist/services/auth-resp-condition.d.ts.map +1 -1
  159. package/dist/services/auth-resp-condition.js +58 -63
  160. package/dist/services/auth-resp-condition.js.map +1 -1
  161. package/dist/services/browser.d.ts +5 -0
  162. package/dist/services/browser.d.ts.map +1 -1
  163. package/dist/services/browser.js +16 -4
  164. package/dist/services/browser.js.map +1 -1
  165. package/dist/services/condition-rules.d.ts +2 -30
  166. package/dist/services/condition-rules.d.ts.map +1 -1
  167. package/dist/services/condition-rules.js +3 -219
  168. package/dist/services/condition-rules.js.map +1 -1
  169. package/dist/services/designer-dataset.d.ts +45 -0
  170. package/dist/services/designer-dataset.d.ts.map +1 -0
  171. package/dist/services/designer-dataset.js +156 -0
  172. package/dist/services/designer-dataset.js.map +1 -0
  173. package/dist/services/form-association.d.ts +7 -0
  174. package/dist/services/form-association.d.ts.map +1 -1
  175. package/dist/services/form-association.js +22 -1
  176. package/dist/services/form-association.js.map +1 -1
  177. package/dist/services/form-code.d.ts +53 -0
  178. package/dist/services/form-code.d.ts.map +1 -0
  179. package/dist/services/form-code.js +370 -0
  180. package/dist/services/form-code.js.map +1 -0
  181. package/dist/services/form-create.d.ts +20 -0
  182. package/dist/services/form-create.d.ts.map +1 -1
  183. package/dist/services/form-create.js +73 -1
  184. package/dist/services/form-create.js.map +1 -1
  185. package/dist/services/form-field-build.d.ts +1 -1
  186. package/dist/services/form-field-build.d.ts.map +1 -1
  187. package/dist/services/form-field-build.js +20 -1
  188. package/dist/services/form-field-build.js.map +1 -1
  189. package/dist/services/form-field-drop.d.ts +2 -0
  190. package/dist/services/form-field-drop.d.ts.map +1 -1
  191. package/dist/services/form-field-drop.js +2 -0
  192. package/dist/services/form-field-drop.js.map +1 -1
  193. package/dist/services/form-layout-detail-insert.d.ts +58 -0
  194. package/dist/services/form-layout-detail-insert.d.ts.map +1 -0
  195. package/dist/services/form-layout-detail-insert.js +293 -0
  196. package/dist/services/form-layout-detail-insert.js.map +1 -0
  197. package/dist/services/form-layout-insert.d.ts.map +1 -1
  198. package/dist/services/form-layout-insert.js +34 -2
  199. package/dist/services/form-layout-insert.js.map +1 -1
  200. package/dist/services/form-layout-source/compile.d.ts.map +1 -1
  201. package/dist/services/form-layout-source/compile.js +11 -4
  202. package/dist/services/form-layout-source/compile.js.map +1 -1
  203. package/dist/services/form-layout-template-advanced.d.ts +330 -0
  204. package/dist/services/form-layout-template-advanced.d.ts.map +1 -0
  205. package/dist/services/form-layout-template-advanced.js +1437 -0
  206. package/dist/services/form-layout-template-advanced.js.map +1 -0
  207. package/dist/services/form-layout-template-easy.d.ts +34 -0
  208. package/dist/services/form-layout-template-easy.d.ts.map +1 -0
  209. package/dist/services/form-layout-template-easy.js +159 -0
  210. package/dist/services/form-layout-template-easy.js.map +1 -0
  211. package/dist/services/form-layout-template-flow.d.ts +23 -0
  212. package/dist/services/form-layout-template-flow.d.ts.map +1 -0
  213. package/dist/services/form-layout-template-flow.js +99 -0
  214. package/dist/services/form-layout-template-flow.js.map +1 -0
  215. package/dist/services/form-permission-archive.d.ts +23 -1
  216. package/dist/services/form-permission-archive.d.ts.map +1 -1
  217. package/dist/services/form-permission-archive.js +54 -2
  218. package/dist/services/form-permission-archive.js.map +1 -1
  219. package/dist/services/form-physical-table.d.ts +10 -0
  220. package/dist/services/form-physical-table.d.ts.map +1 -1
  221. package/dist/services/form-physical-table.js +20 -0
  222. package/dist/services/form-physical-table.js.map +1 -1
  223. package/dist/services/form-view-linkage-functions.d.ts +19 -0
  224. package/dist/services/form-view-linkage-functions.d.ts.map +1 -0
  225. package/dist/services/form-view-linkage-functions.js +90 -0
  226. package/dist/services/form-view-linkage-functions.js.map +1 -0
  227. package/dist/services/matrix-condition.d.ts +32 -1
  228. package/dist/services/matrix-condition.d.ts.map +1 -1
  229. package/dist/services/matrix-condition.js +169 -6
  230. package/dist/services/matrix-condition.js.map +1 -1
  231. package/dist/services/menu-catalog.d.ts +24 -1
  232. package/dist/services/menu-catalog.d.ts.map +1 -1
  233. package/dist/services/menu-catalog.js +49 -2
  234. package/dist/services/menu-catalog.js.map +1 -1
  235. package/dist/services/workflow-base-settings.d.ts +117 -0
  236. package/dist/services/workflow-base-settings.d.ts.map +1 -0
  237. package/dist/services/workflow-base-settings.js +504 -0
  238. package/dist/services/workflow-base-settings.js.map +1 -0
  239. package/dist/services/workflow-condition-core.d.ts +48 -0
  240. package/dist/services/workflow-condition-core.d.ts.map +1 -0
  241. package/dist/services/workflow-condition-core.js +316 -0
  242. package/dist/services/workflow-condition-core.js.map +1 -0
  243. package/dist/services/workflow-context.d.ts +10 -0
  244. package/dist/services/workflow-context.d.ts.map +1 -0
  245. package/dist/services/workflow-context.js +15 -0
  246. package/dist/services/workflow-context.js.map +1 -0
  247. package/dist/services/workflow-export.d.ts +80 -0
  248. package/dist/services/workflow-export.d.ts.map +1 -0
  249. package/dist/services/workflow-export.js +150 -0
  250. package/dist/services/workflow-export.js.map +1 -0
  251. package/dist/services/workflow-field-permission-route.d.ts +75 -0
  252. package/dist/services/workflow-field-permission-route.d.ts.map +1 -0
  253. package/dist/services/workflow-field-permission-route.js +52 -0
  254. package/dist/services/workflow-field-permission-route.js.map +1 -0
  255. package/dist/services/workflow-field-permission.d.ts +18 -0
  256. package/dist/services/workflow-field-permission.d.ts.map +1 -0
  257. package/dist/services/workflow-field-permission.js +40 -0
  258. package/dist/services/workflow-field-permission.js.map +1 -0
  259. package/dist/services/workflow-function-settings.d.ts +31 -0
  260. package/dist/services/workflow-function-settings.d.ts.map +1 -0
  261. package/dist/services/workflow-function-settings.js +191 -0
  262. package/dist/services/workflow-function-settings.js.map +1 -0
  263. package/dist/services/workflow-node-layout.d.ts +11 -10
  264. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  265. package/dist/services/workflow-node-layout.js +24 -62
  266. package/dist/services/workflow-node-layout.js.map +1 -1
  267. package/dist/services/workflow-operator-batch-condition.d.ts +23 -0
  268. package/dist/services/workflow-operator-batch-condition.d.ts.map +1 -0
  269. package/dist/services/workflow-operator-batch-condition.js +56 -0
  270. package/dist/services/workflow-operator-batch-condition.js.map +1 -0
  271. package/dist/services/workflow-sign-file-settings.d.ts +16 -0
  272. package/dist/services/workflow-sign-file-settings.d.ts.map +1 -0
  273. package/dist/services/workflow-sign-file-settings.js +80 -0
  274. package/dist/services/workflow-sign-file-settings.js.map +1 -0
  275. package/dist/services/workflow-submit-confirm.d.ts +14 -0
  276. package/dist/services/workflow-submit-confirm.d.ts.map +1 -0
  277. package/dist/services/workflow-submit-confirm.js +29 -0
  278. package/dist/services/workflow-submit-confirm.js.map +1 -0
  279. package/dist/services/workflow-tab-config.d.ts +3 -3
  280. package/dist/services/workflow-tab-config.d.ts.map +1 -1
  281. package/dist/services/workflow-tab-config.js +14 -12
  282. package/dist/services/workflow-tab-config.js.map +1 -1
  283. package/dist/services/workflow-tabs-editor.d.ts +28 -0
  284. package/dist/services/workflow-tabs-editor.d.ts.map +1 -0
  285. package/dist/services/workflow-tabs-editor.js +130 -0
  286. package/dist/services/workflow-tabs-editor.js.map +1 -0
  287. package/package.json +1 -1
  288. package/skill-docs/SKILL.md +155 -154
  289. package/skill-docs/_catalog.md +106 -97
  290. package/skill-docs/actionflows/references/components/document/GetDocumentInfo.md +17 -17
  291. package/skill-docs/actionflows/references/components/logic/LogicFlowSet.md +23 -17
  292. package/skill-docs/assets/form-template/style-templates-advanced-base-example.json +1420 -0
  293. package/skill-docs/assets/form-template/style-templates-advanced-base.css +33 -0
  294. package/skill-docs/assets/form-template/style-templates-advanced-blue-crystal-example.json +1094 -0
  295. package/skill-docs/assets/form-template/style-templates-advanced-document-example.json +1251 -0
  296. package/skill-docs/assets/form-template/style-templates-advanced-grid-example.json +39 -0
  297. package/skill-docs/assets/form-template/style-templates-advanced-page-example.json +38 -0
  298. package/skill-docs/assets/form-template/style-templates-advanced-placements-example.json +30 -0
  299. package/skill-docs/assets/form-template/style-templates-advanced-standard-example.json +53 -0
  300. package/skill-docs/assets/form-template/style-templates-advanced-structure-example.json +25 -0
  301. package/skill-docs/assets/form-template/style-templates-advanced-table-example.json +1420 -0
  302. package/skill-docs/references/code-block/guide-code-block.md +141 -0
  303. package/skill-docs/references/code-block/guide-layout-css.md +107 -0
  304. package/skill-docs/references/code-block/ref-controls.md +60 -0
  305. package/skill-docs/references/code-block/ref-coverage.md +32 -0
  306. package/skill-docs/references/code-block/ref-details.md +57 -0
  307. package/skill-docs/references/code-block/ref-events-validation.md +42 -0
  308. package/skill-docs/references/code-block/ref-foundations-fields.md +56 -0
  309. package/skill-docs/references/code-block/ref-recipes.md +164 -0
  310. package/skill-docs/references/code-block/ref-troubleshooting.md +49 -0
  311. package/skill-docs/references/code-block/ref-ui-global.md +47 -0
  312. package/skill-docs/references/common/guide-plan-template.md +168 -167
  313. package/skill-docs/references/common/map.md +2 -1
  314. package/skill-docs/references/common/ref-cli-commands.md +67 -22
  315. package/skill-docs/references/ebuilder-designer/guide-designer-factory.md +8 -4
  316. package/skill-docs/references/form/form-template/style-templates-advanced-css-guide.md +167 -0
  317. package/skill-docs/references/form/form-template/style-templates-advanced.md +315 -0
  318. package/skill-docs/references/form/form-template/style-templates-easy.md +55 -0
  319. package/skill-docs/references/form/form-template/style-templates-flow.md +27 -0
  320. package/skill-docs/references/form/form-template/style-templates.md +29 -0
  321. package/skill-docs/references/form/guide-browser-definition.md +148 -0
  322. package/skill-docs/references/form/guide-create-form.md +258 -250
  323. package/skill-docs/references/form/guide-form-archive-permission.md +29 -6
  324. package/skill-docs/references/form/guide-form-formula-functions.md +354 -354
  325. package/skill-docs/references/form/guide-form-layout-incremental.md +28 -0
  326. package/skill-docs/references/form/guide-form-layout-planning.md +11 -0
  327. package/skill-docs/references/form/guide-form-layout-source.md +4 -0
  328. package/skill-docs/references/form/guide-form-linkage.md +295 -259
  329. package/skill-docs/references/form/guide-form-physical-table.md +2 -0
  330. package/skill-docs/references/form/guide-form-view.md +3 -0
  331. package/skill-docs/references/form/ref-form-fields.md +301 -293
  332. package/skill-docs/references/form/ref-list-filter-date-params.md +83 -0
  333. package/skill-docs/references/menu/system-menus.md +12 -0
  334. package/skill-docs/references/workflow/condition-core-contract.md +63 -0
  335. package/skill-docs/references/workflow/guide-base-auth-share-remind.md +126 -0
  336. package/skill-docs/references/workflow/guide-function-settings.md +55 -0
  337. package/skill-docs/references/workflow/guide-workflow-condition.md +476 -447
  338. package/skill-docs/references/workflow/guide-workflow-node-layout.md +6 -0
  339. package/skill-docs/references/workflow/guide-workflow.md +630 -527
  340. package/skill-docs/references/form/style-templates.md +0 -97
@@ -0,0 +1,493 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { AuthSession } from '../core/auth.js';
3
+ import { ApiClient, losslessParse } from '../core/client.js';
4
+ const ROUTES = {
5
+ ebuilderform: '/api/ebuilder/form', workflow: '/api/ebuilder/flow', biaoge: '/api/formdatareport',
6
+ };
7
+ const FLAGS = { search: 'advanceSearchConfig', scope: 'dataRangeConfig', tabs: 'showTabConfig' };
8
+ export function sourceOf(field) {
9
+ const module = String(field.browserSourceModule || '');
10
+ const type = String(field.browserSourceType || '');
11
+ if (module === 'ebuilder/form' && type === 'ebuilder')
12
+ return {
13
+ browserType: 'ebuilder/form_ebuilder', targetModule: 'ebuilder/form',
14
+ searchLayout: '/api/ebuilder/form/common/browser/getAdvancedSearchLayout/ebuilder',
15
+ tabLayout: '/api/ebuilder/form/common/browser/getTabLayout/ebuilder', scopeAdapter: 'ebuilder',
16
+ };
17
+ if (module === 'hrm' && type === 'resource')
18
+ return {
19
+ browserType: 'hrm_resource', targetModule: 'hrm',
20
+ searchLayout: '/api/hrm/common/browser/getAdvancedSearchLayout/resource',
21
+ tabLayout: '/api/hrm/common/browser/getTabLayout/resource', scopeAdapter: 'hrm',
22
+ };
23
+ if (module === 'hrm' && (type === 'department' || type === 'subcompany'))
24
+ return {
25
+ browserType: `hrm_${type}`, targetModule: 'hrm',
26
+ searchLayout: `/api/hrm/common/browser/getAdvancedSearchLayout/${type}`,
27
+ tabLayout: `/api/hrm/common/browser/getTabLayout/${type}`, scopeAdapter: type,
28
+ };
29
+ if (module === 'bcw' && type === 'city')
30
+ return {
31
+ browserType: 'bcw_city', targetModule: 'bcw',
32
+ tabLayout: '/api/bcw/common/browser/getTabLayout/city', scopeAdapter: 'city',
33
+ };
34
+ if (module === 'bcw' && /^customBrowser_[A-Za-z0-9_-]+$/.test(type))
35
+ return {
36
+ browserType: `bcw_${type}`, targetModule: 'bcw',
37
+ searchLayout: `/api/bcw/common/browser/getAdvancedSearchLayout/${type}`,
38
+ scopeLayout: `/api/bcw/common/browserExt/getScopeConditionLayout/${type}`,
39
+ scopeAdapter: 'customBrowser',
40
+ };
41
+ return { browserType: `${module}_${type}`, targetModule: module };
42
+ }
43
+ export function validateCustomBrowserScope(records, layout) {
44
+ const fields = (Array.isArray(layout) ? layout : []).flatMap((group) => group.fields || []);
45
+ if (!fields.length)
46
+ throw new Error('自定义浏览框未返回可用范围字段');
47
+ const validate = (node) => {
48
+ if (Array.isArray(node?.datas)) {
49
+ node.datas.forEach(validate);
50
+ return;
51
+ }
52
+ if (!node?.conditions)
53
+ return;
54
+ const field = fields.find((item) => String(item.id) === String(node.id || node.fieldName));
55
+ if (!field)
56
+ throw new Error(`范围字段 ${node.id || node.fieldName} 不在当前浏览框候选项中`);
57
+ const operator = String(node.conditions.func || '');
58
+ const available = (field.conditionType || []).map((item) => String(item.id));
59
+ const lookup = operator === 'range' && Array.isArray(node.conditions.value) ? 'between' : operator;
60
+ if (!available.includes(lookup))
61
+ throw new Error(`字段 ${field.text || field.name} 不支持条件 ${operator};可用 ${available.join('/')}`);
62
+ if (operator === 'range' && node.conditions.value.length !== 2)
63
+ throw new Error('日期区间条件须包含起止两个值');
64
+ };
65
+ for (const record of records) {
66
+ if (record.scopeType !== 'scopeSql')
67
+ throw new Error('自定义浏览框范围须使用 scopeSql');
68
+ let tree;
69
+ try {
70
+ tree = typeof record.scopeInfoRender === 'string' ? losslessParse(record.scopeInfoRender) : record.scopeInfoRender;
71
+ }
72
+ catch {
73
+ throw new Error('scopeInfoRender 须为有效条件树 JSON');
74
+ }
75
+ if (!tree || typeof tree !== 'object' || !Array.isArray(tree.datas))
76
+ throw new Error('scopeInfoRender 须包含条件树 datas[]');
77
+ validate(tree);
78
+ }
79
+ }
80
+ function config(raw) {
81
+ const value = losslessParse(raw.startsWith('@') ? readFileSync(raw.slice(1), 'utf8') : raw);
82
+ if (!value || typeof value !== 'object' || Array.isArray(value))
83
+ throw new Error('--config 须为 JSON 对象');
84
+ return value;
85
+ }
86
+ function ok(res, label) {
87
+ if (res?.code !== 200 || !res?.status)
88
+ throw new Error(`${label}失败: ${res?.msg || '接口返回异常'}`);
89
+ return res.data;
90
+ }
91
+ function scopeRecordsFromRules(adapter, rules, candidates) {
92
+ const types = adapter === 'department'
93
+ ? ['targetDepartment', 'targetSubcompany', 'creator', 'operator', 'department']
94
+ : ['targetSubcompany', 'creator', 'operator', 'subCompany'];
95
+ return rules.map((rule) => {
96
+ if (!types.includes(rule.type))
97
+ throw new Error(`${adapter} 范围不支持 ${rule.type};可用 ${types.join('/')}`);
98
+ let scopeInfo = '';
99
+ let render;
100
+ if (rule.type.startsWith('target')) {
101
+ const target = rule.target;
102
+ if (!target?.id || !target?.name)
103
+ throw new Error(`${rule.type} 须提供 scope candidates 返回的 target 对象`);
104
+ const isDepartment = rule.type === 'targetDepartment';
105
+ const mode = String(rule.mode || (isDepartment ? 'ownDepartment' : 'ownOrSubcompany'));
106
+ const allowed = isDepartment ? ['ownDepartment'] : ['ownOrSubcompany'];
107
+ if (!allowed.includes(mode))
108
+ throw new Error(`${rule.type} 的 ${mode} 尚无核对过的报文;已确认 ${allowed.join('/')}`);
109
+ const name = isDepartment ? 'department' : 'subCompany';
110
+ render = { scopeInfoRender: { [name]: { datas: [target], ismain: true },
111
+ [isDepartment ? 'departmentAttr' : 'subCompanyAttr']: { datas: mode, ismain: false } }, type: 'normal' };
112
+ scopeInfo = `${target.id}:${mode}`;
113
+ }
114
+ else if (rule.type === 'creator' || rule.type === 'operator') {
115
+ const mode = String(rule.mode || (rule.type === 'creator' ? 'subcompanyAsCreator'
116
+ : adapter === 'department' ? 'subcompanyAsOperator' : 'OPERATOR_SUP_SUBCOMPANY'));
117
+ const known = rule.type === 'creator' ? 'subcompanyAsCreator'
118
+ : adapter === 'department' ? 'subcompanyAsOperator' : 'OPERATOR_SUP_SUBCOMPANY';
119
+ if (mode !== known)
120
+ throw new Error(`${rule.type} 的 ${mode} 尚无核对过的报文;已确认 ${known}`);
121
+ const virtualId = String(rule.virtualId || '1');
122
+ render = { scopeInfoRender: { [rule.type]: { datas: mode, ismain: true },
123
+ organizationalDimension: { datas: virtualId, ismain: false } }, type: 'normal' };
124
+ scopeInfo = `${mode}:${virtualId}`;
125
+ }
126
+ else {
127
+ const field = candidates.find((f) => String(f.id) === String(rule.field) || f.name === rule.field);
128
+ if (!field || field.browserSourceType !== (adapter === 'department' ? 'department' : 'subcompany')) {
129
+ throw new Error(`表单字段 ${rule.field} 不在本表可用的${adapter}候选列表中`);
130
+ }
131
+ const mode = String(rule.mode || (adapter === 'department' ? 'ownDepartment' : 'ownSubcompany'));
132
+ const known = adapter === 'department' ? 'ownDepartment' : 'ownSubcompany';
133
+ if (mode !== known)
134
+ throw new Error(`表单字段范围 ${mode} 尚无核对过的报文;已确认 ${known}`);
135
+ const name = adapter === 'department' ? 'department' : 'subCompany';
136
+ render = { scopeInfoRender: { [name]: { datas: [{ id: String(field.id), name: field.name,
137
+ content: field.name, location: field.location }], ismain: true },
138
+ [adapter === 'department' ? 'departmentAttr' : 'subCompanyAttr']: { datas: mode } }, type: 'form' };
139
+ scopeInfo = `${field.id}:${mode}`;
140
+ }
141
+ return { scopeType: rule.type, scopeInfo, scopeInfoRender: JSON.stringify(render) };
142
+ });
143
+ }
144
+ function personItemsFromRules(rules, candidates, groups) {
145
+ const groupNames = { '101': '指定人', '110': '所有人', '114': '数据创建人',
146
+ '121': '当前操作者', '201': '人员', '202': '部门', '203': '分部', '401': '矩阵对应' };
147
+ return rules.map((rule, index) => {
148
+ const kind = String(rule.kind || '');
149
+ const groupTypeId = { person: '101', everyone: '110', creator: '114', operator: '121',
150
+ field: String({ resource: '201', department: '202', subcompany: '203' }[rule.fieldType] || ''),
151
+ matrix: '401' }[kind];
152
+ if (!groupTypeId || !groups.some((g) => g.groupTypeId === groupTypeId)) {
153
+ throw new Error(`人员范围 ${kind} 不在当前布局开放的码表中`);
154
+ }
155
+ const item = { id: String(rule.id || `cli_${Date.now()}_${index}`), groupType: groupNames[groupTypeId],
156
+ groupTypeId, itemName: '', itemLevel: rule.itemLevel || '', customData: {} };
157
+ if (kind === 'person') {
158
+ const target = rule.target;
159
+ if (!target?.id || !target?.name)
160
+ throw new Error('指定人须提供 scope candidates 返回的 target 对象');
161
+ Object.assign(item, { hrmBrowserDataDtos: [target], hrmOperators: String(target.id),
162
+ hrmOperatorsCN: target.name, itemName: target.name });
163
+ }
164
+ else if (kind === 'everyone') {
165
+ Object.assign(item, { itemLevel: '-999-999' });
166
+ }
167
+ else if (kind === 'creator' || kind === 'operator') {
168
+ const choices = groups.find((g) => g.groupTypeId === groupTypeId)?.options || [];
169
+ const code = String(rule.includeType || '12');
170
+ const choice = choices.find((o) => String(o.id) === code);
171
+ if (!choice)
172
+ throw new Error(`${kind} 范围 ${code} 不在当前表单布局候选项中`);
173
+ Object.assign(item, { includeType: code, includeTypeCN: choice.content,
174
+ virtualId: String(rule.virtualId || '1'), virtualIdCN: rule.virtualName || '行政组织',
175
+ objLevelType: '1', objLevelTypeCN: '全部机构', itemName: choice.content });
176
+ if (kind === 'creator')
177
+ Object.assign(item, { objectId: '1', objectIdCN: '直接上级' });
178
+ }
179
+ else if (kind === 'field') {
180
+ const field = candidates.find((f) => String(f.id) === String(rule.field) || f.name === rule.field);
181
+ if (!field || field.browserSourceType !== rule.fieldType)
182
+ throw new Error(`范围来源字段 ${rule.field} 未在可选列表中或类型不符`);
183
+ const choices = groups.find((g) => g.groupTypeId === groupTypeId)?.options || [];
184
+ const code = String(rule.includeType || (rule.fieldType === 'resource' ? '12' : rule.fieldType === 'department' ? '1' : '4'));
185
+ const choice = choices.find((o) => String(o.id) === code);
186
+ if (!choice)
187
+ throw new Error(`字段范围 ${code} 不在 ${groupTypeId} 的候选项中`);
188
+ Object.assign(item, { objectIdDataDtos: [{ id: String(field.id), name: field.name,
189
+ content: field.name, location: field.location }], objectId: String(field.id),
190
+ objectIdCN: `${field.location || '主表'}.${field.name}`, includeType: code,
191
+ includeTypeCN: choice.content, itemName: `${field.location || '主表'}.${field.name}(${choice.content})` });
192
+ if (rule.fieldType === 'resource')
193
+ Object.assign(item, { virtualId: String(rule.virtualId || '1'),
194
+ virtualIdCN: rule.virtualName || '行政组织', objLevelType: '1', objLevelTypeCN: '全部机构' });
195
+ }
196
+ else if (kind === 'matrix') {
197
+ for (const key of ['sourceId', 'sourceIdCN', 'sourceIdType', 'targetId', 'targetIdCN', 'matrixRules']) {
198
+ if (rule[key] === undefined)
199
+ throw new Error(`矩阵规则缺少 ${key};先用 scope get/describe 读取矩阵选项`);
200
+ }
201
+ Object.assign(item, { ...rule, groupType: `矩阵对应(${rule.sourceIdCN})`, itemName: rule.targetIdCN,
202
+ matrixRuleCondition: rule.matrixRuleCondition || '', condition: '矩阵对应:' });
203
+ delete item.kind;
204
+ }
205
+ return item;
206
+ });
207
+ }
208
+ export function registerFormBrowserDefinitionCommands(program) {
209
+ // Form-engine may already be registered by another command group.
210
+ const engine = program.commands.find((c) => c.name() === 'form-engine') || program.command('form-engine').description('表单引擎配置');
211
+ const cmd = engine.command('browser-definition').description('浏览数据定义:发现字段能力、查询配置、按可用能力设置');
212
+ async function ctx(moduleName, appId, workflowId) {
213
+ if (!(moduleName in ROUTES))
214
+ throw new Error('--module 仅支持 ebuilderform/workflow/biaoge');
215
+ const module = moduleName;
216
+ if (module === 'ebuilderform' && !appId)
217
+ throw new Error('EB 表单须指定 --app-id');
218
+ const auth = await AuthSession.fromOptions(program.opts());
219
+ if (!auth)
220
+ throw new Error('无法加载认证');
221
+ return { module, wireModule: module === 'workflow' ? 'ebuildercard' : module,
222
+ route: ROUTES[module], appId, workflowId, client: new ApiClient(auth), base: auth.getBaseUrl() };
223
+ }
224
+ function businessId(c, formId) {
225
+ if (c.module === 'workflow' && !c.workflowId)
226
+ throw new Error('工作流程高级设置须提供 --workflow-id;表单 ID 用于定位字段');
227
+ return c.module === 'workflow' ? String(c.workflowId) : formId;
228
+ }
229
+ function apid(c) { return c.appId ? `?apid=${encodeURIComponent(c.appId)}` : ''; }
230
+ function custom(c) { return c.appId ? { customParam: { appId: c.appId } } : {}; }
231
+ async function allFields(c, formId) {
232
+ const out = [];
233
+ for (let pageNo = 1; pageNo <= 100; pageNo++) {
234
+ const data = ok(await c.client.post(`${c.base}${c.route}/form/browserConfig/queryBrowserFieldList${apid(c)}`, {
235
+ pageNo, pageSize: 100, module: c.wireModule, targetId: businessId(c, formId), keywords: '', ...custom(c),
236
+ }), '查询浏览字段');
237
+ if (!Array.isArray(data?.result))
238
+ throw new Error('浏览字段列表格式未知');
239
+ out.push(...data.result);
240
+ if (!data.hasNext)
241
+ return out;
242
+ }
243
+ throw new Error('浏览字段超过 100 页,请缩小表单范围');
244
+ }
245
+ async function field(c, formId, key) {
246
+ const matches = (await allFields(c, formId)).filter((f) => String(f.id) === key || f.name === key);
247
+ if (matches.length !== 1)
248
+ throw new Error(`浏览字段 ${key} ${matches.length ? '名称重复,请使用字段 ID' : '未在可配置列表中找到'}`);
249
+ return matches[0];
250
+ }
251
+ function support(f, feature) { return f[FLAGS[feature]]?.support === true; }
252
+ function adapt(f, feature) {
253
+ const source = sourceOf(f);
254
+ return feature === 'search' ? !!source.searchLayout : feature === 'tabs' ? !!source.tabLayout : !!source.scopeAdapter;
255
+ }
256
+ async function resolved(c, formId, fieldKey, feature) {
257
+ const f = await field(c, formId, fieldKey);
258
+ if (!support(f, feature))
259
+ throw new Error(`字段 ${f.name} 的${feature}未由数据源开放`);
260
+ if (!adapt(f, feature))
261
+ throw new Error(`字段 ${f.name} 的${feature}平台已开放,但 CLI 尚未适配 ${f.browserSourceModule}/${f.browserSourceType}`);
262
+ return { f, source: sourceOf(f), controlId: String(f.id) };
263
+ }
264
+ async function searchRead(c, formId, controlId, source) {
265
+ const layout = ok(await c.client.post(`${c.base}${source.searchLayout}`, {
266
+ businessId: businessId(c, formId), controlId, fromModule: c.wireModule,
267
+ }), '查询高级搜索可用条件');
268
+ const query = new URLSearchParams({ fromModule: c.wireModule, businessId: businessId(c, formId), controlId, targetModule: source.targetModule });
269
+ const res = await c.client.get(`${c.base}/api/bcw/common/browser/searchConfig/getAdvanceSearchConfig?${query}`);
270
+ const saved = ok(res, '读取高级搜索');
271
+ return { layout, saved: saved || null };
272
+ }
273
+ async function tabsRead(c, formId, controlId, source) {
274
+ const data = ok(await c.client.post(`${c.base}${source.tabLayout}`, {
275
+ businessId: businessId(c, formId), controlId, browserType: source.browserType,
276
+ }), '读取浏览 Tab');
277
+ if (!Array.isArray(data))
278
+ throw new Error('Tab 列表格式未知');
279
+ return data;
280
+ }
281
+ async function scopeRead(c, formId, controlId, source) {
282
+ if (source.scopeAdapter === 'hrm') {
283
+ const layout = ok(await c.client.post(`${c.base}/api/bs/bcw/hrmBrowserScope/getLayoutConfigInfo`, {
284
+ formId, module: c.wireModule, businessId: businessId(c, formId), controlId,
285
+ }), '查询人员范围选项');
286
+ const params = new URLSearchParams({ businessId: businessId(c, formId), businessModule: c.wireModule, controlId,
287
+ browserType: source.browserType, formId, module: c.wireModule });
288
+ const saved = ok(await c.client.get(`${c.base}/api/bs/bcw/hrmBrowserScope/getOperatorItemList?${params}`), '读取人员范围');
289
+ const groups = Object.entries(layout?.forminfo || {}).filter(([, value]) => Array.isArray(value?.items))
290
+ .map(([groupTypeId, value]) => ({ groupTypeId, options: value.items.flatMap((item) => item.options || []) }));
291
+ let matrixOptions;
292
+ if (groups.some((g) => g.groupTypeId === '401')) {
293
+ try {
294
+ matrixOptions = ok(await c.client.post(`${c.base}/api/bs/bcw/hrmBrowserScope/getMaTrixItems`, {
295
+ formId, module: c.wireModule, businessId: businessId(c, formId), controlId,
296
+ }), '查询矩阵范围选项');
297
+ }
298
+ catch (e) {
299
+ matrixOptions = { error: e.message };
300
+ }
301
+ }
302
+ return { groups, formFieldCandidates: (await allFields(c, formId)).filter((f) => f.browserSourceModule === 'hrm' && ['resource', 'department', 'subcompany'].includes(f.browserSourceType)),
303
+ matrixOptions, layout, saved };
304
+ }
305
+ const saved = ok(await c.client.post(`${c.base}/api/bcw/browserDataScope/selectPage`, {
306
+ businessId: businessId(c, formId), businessModule: c.wireModule, controlId,
307
+ browserType: source.browserType, formId, module: c.wireModule,
308
+ }), '读取数据范围');
309
+ if (source.scopeAdapter === 'customBrowser') {
310
+ const conditionLayout = ok(await c.client.post(`${c.base}${source.scopeLayout}`, {
311
+ formParam: { formId, module: c.wireModule, controlId, apiModule: c.route.replace(/^\/api\//, '') },
312
+ }), '读取自定义浏览框范围条件');
313
+ return { conditionLayout, saved };
314
+ }
315
+ const catalog = source.scopeAdapter === 'department' ? {
316
+ targetDepartment: ['ownDepartment'], targetSubcompany: ['ownOrSubcompany'],
317
+ creator: ['subcompanyAsCreator'], operator: ['subcompanyAsOperator'], department: ['ownDepartment'],
318
+ } : source.scopeAdapter === 'subcompany' ? {
319
+ targetSubcompany: ['ownOrSubcompany'],
320
+ creator: ['subcompanyAsCreator'], operator: ['OPERATOR_SUP_SUBCOMPANY'], subCompany: ['ownSubcompany'],
321
+ } : {};
322
+ return { catalog, formFieldCandidates: (await allFields(c, formId)).filter((f) => f.browserSourceModule === 'hrm' && ['resource', 'department', 'subcompany'].includes(f.browserSourceType)), saved };
323
+ }
324
+ function output(value) { console.log(JSON.stringify(value, null, 2)); }
325
+ function run(work) { void work().catch((e) => { console.error(`浏览数据定义失败: ${e.message}`); process.exitCode = 1; }); }
326
+ const common = (c) => c.requiredOption('--module <name>', 'ebuilderform / workflow / biaoge')
327
+ .option('--app-id <id>', 'EB 表单应用 ID')
328
+ .option('--workflow-id <id>', '流程高级设置所属工作流程 ID(workflow 模块的 businessId)');
329
+ common(cmd.command('inspect').description('列出表单的浏览字段及每项配置的开放/适配状态').argument('<formId>'))
330
+ .action((formId, o) => run(async () => {
331
+ const c = await ctx(o.module, o.appId, o.workflowId);
332
+ output((await allFields(c, formId)).map((f) => ({ id: String(f.id), name: f.name, location: f.location,
333
+ type: f.typeDescribe, source: `${f.browserSourceModule}/${f.browserSourceType}`,
334
+ features: Object.fromEntries(['search', 'scope', 'tabs'].map((feature) => [feature, {
335
+ platform: support(f, feature), cli: support(f, feature) && adapt(f, feature), configured: !!f[FLAGS[feature]]?.openConfig,
336
+ }])),
337
+ })));
338
+ }));
339
+ common(cmd.command('describe').description('读取字段可用能力、当前配置和候选布局/选项').argument('<formId>').argument('<fieldId>'))
340
+ .action((formId, fieldId, o) => run(async () => {
341
+ const c = await ctx(o.module, o.appId, o.workflowId);
342
+ const f = await field(c, formId, fieldId);
343
+ const source = sourceOf(f);
344
+ const result = { field: f, adapter: source, features: {} };
345
+ for (const feature of ['search', 'scope', 'tabs']) {
346
+ if (!support(f, feature)) {
347
+ result.features[feature] = { supported: false };
348
+ continue;
349
+ }
350
+ if (!adapt(f, feature)) {
351
+ result.features[feature] = { supported: true, cli: false };
352
+ continue;
353
+ }
354
+ try {
355
+ const data = feature === 'search' ? await searchRead(c, formId, String(f.id), source)
356
+ : feature === 'tabs' ? await tabsRead(c, formId, String(f.id), source)
357
+ : await scopeRead(c, formId, String(f.id), source);
358
+ result.features[feature] = { supported: true, cli: true, data };
359
+ }
360
+ catch (e) {
361
+ result.features[feature] = { supported: true, cli: true, error: e.message };
362
+ }
363
+ }
364
+ output(result);
365
+ }));
366
+ const search = cmd.command('search').description('高级搜索默认条件');
367
+ common(search.command('get').argument('<formId>').argument('<fieldId>'))
368
+ .action((formId, fieldId, o) => run(async () => { const c = await ctx(o.module, o.appId, o.workflowId); const r = await resolved(c, formId, fieldId, 'search'); output(await searchRead(c, formId, r.controlId, r.source)); }));
369
+ common(search.command('set').argument('<formId>').argument('<fieldId>').requiredOption('--config <json>', '完整搜索配置 JSON 或 @文件'))
370
+ .action((formId, fieldId, o) => run(async () => {
371
+ const c = await ctx(o.module, o.appId, o.workflowId);
372
+ const r = await resolved(c, formId, fieldId, 'search');
373
+ const before = await searchRead(c, formId, r.controlId, r.source);
374
+ const input = config(o.config);
375
+ for (const key of ['lines', 'cells', 'commonLines', 'commonCells', 'searchValue']) {
376
+ if (!(key in input))
377
+ throw new Error(`搜索配置缺少 ${key};先用 describe 查看布局及现有配置`);
378
+ }
379
+ const payload = { ...before.saved, ...input, browserType: r.f.browserSourceType,
380
+ fromModule: c.wireModule, businessId: businessId(c, formId), controlId: r.controlId, targetModule: r.source.targetModule };
381
+ ok(await c.client.post(`${c.base}/api/bcw/common/browser/searchConfig/saveAdvanceSearchConfig`, payload), '保存高级搜索');
382
+ output({ success: true, fieldId: r.controlId, saved: (await searchRead(c, formId, r.controlId, r.source)).saved });
383
+ }));
384
+ const scope = cmd.command('scope').description('浏览可选数据范围');
385
+ common(scope.command('candidates').description('查询人员/部门/分部候选对象').argument('<formId>').argument('<fieldId>')
386
+ .requiredOption('--kind <resource|department|subcompany>').option('--keyword <text>', '按名称搜索', ''))
387
+ .action((formId, fieldId, o) => run(async () => {
388
+ const c = await ctx(o.module, o.appId, o.workflowId);
389
+ await resolved(c, formId, fieldId, 'scope');
390
+ if (!['resource', 'department', 'subcompany'].includes(o.kind))
391
+ throw new Error('--kind 仅支持 resource/department/subcompany');
392
+ const data = ok(await c.client.post(`${c.base}/api/hrm/common/browser/complete/${o.kind}`, {
393
+ browserMultiple: false, newly: 1, searchValue: o.keyword || '',
394
+ }), '查询范围候选对象');
395
+ output(data?.data || data);
396
+ }));
397
+ common(scope.command('matrix-options').description('读取已选矩阵的来源、结果字段与映射候选').argument('<formId>').argument('<fieldId>')
398
+ .requiredOption('--matrix-id <id>').option('--matrix-type <code>', '矩阵类型码,默认 1', '1'))
399
+ .action((formId, fieldId, o) => run(async () => {
400
+ const c = await ctx(o.module, o.appId, o.workflowId);
401
+ const r = await resolved(c, formId, fieldId, 'scope');
402
+ if (r.source.scopeAdapter !== 'hrm')
403
+ throw new Error('矩阵对应当前仅适用于人员浏览范围');
404
+ output(ok(await c.client.post(`${c.base}/api/bs/bcw/hrmBrowserScope/getMaTrixItems`, {
405
+ formId, module: c.wireModule, businessId: businessId(c, formId), controlId: r.controlId,
406
+ matrixId: o.matrixId, matrixType: Number(o.matrixType),
407
+ }), '查询矩阵映射候选'));
408
+ }));
409
+ common(scope.command('get').argument('<formId>').argument('<fieldId>'))
410
+ .action((formId, fieldId, o) => run(async () => { const c = await ctx(o.module, o.appId, o.workflowId); const r = await resolved(c, formId, fieldId, 'scope'); output(await scopeRead(c, formId, r.controlId, r.source)); }));
411
+ common(scope.command('set').argument('<formId>').argument('<fieldId>').requiredOption('--config <json>', '数据范围配置 JSON 或 @文件;以 describe 返回的选项构造'))
412
+ .action((formId, fieldId, o) => run(async () => {
413
+ const c = await ctx(o.module, o.appId, o.workflowId);
414
+ const r = await resolved(c, formId, fieldId, 'scope');
415
+ const input = config(o.config);
416
+ const before = await scopeRead(c, formId, r.controlId, r.source);
417
+ if (r.source.scopeAdapter === 'hrm') {
418
+ const oldItems = before.saved?.operatorSetList || [];
419
+ let itemDatas;
420
+ if (Array.isArray(input.rules)) {
421
+ const fresh = personItemsFromRules(input.rules, before.formFieldCandidates || [], before.groups || []);
422
+ const identity = (item) => `${item.groupTypeId}:${item.objectId || item.hrmOperators || item.sourceId || ''}`;
423
+ const byKey = new Map(fresh.map((item) => [identity(item), item]));
424
+ itemDatas = oldItems.map((old) => {
425
+ const key = identity(old);
426
+ const replacement = byKey.get(key);
427
+ if (!replacement)
428
+ return old;
429
+ byKey.delete(key);
430
+ return { ...old, ...replacement, id: old.id, operatorSetId: old.operatorSetId };
431
+ });
432
+ itemDatas.push(...byKey.values());
433
+ }
434
+ else if (Array.isArray(input.itemDatas))
435
+ itemDatas = input.itemDatas;
436
+ else
437
+ throw new Error('人员范围须提供 rules[](按码表转换)或完整 itemDatas[]');
438
+ ok(await c.client.post(`${c.base}/api/bs/bcw/hrmBrowserScope/saveOperatorItemList`, {
439
+ businessId: businessId(c, formId), businessModule: c.wireModule, controlId: r.controlId, browserType: r.source.browserType,
440
+ formId, module: c.wireModule, itemDatas,
441
+ oldItemDatas: oldItems, deleteDatas: input.deleteDatas || [], range: input.range || 'any',
442
+ }), '保存人员范围');
443
+ }
444
+ else {
445
+ const configured = Array.isArray(input.rules) && ['department', 'subcompany'].includes(String(r.source.scopeAdapter))
446
+ ? scopeRecordsFromRules(r.source.scopeAdapter, input.rules, before.formFieldCandidates || [])
447
+ : input.records;
448
+ if (!Array.isArray(configured) || !configured.length)
449
+ throw new Error('数据范围须提供非空 rules[](部门/分部)或 records[]');
450
+ if (r.source.scopeAdapter === 'customBrowser')
451
+ validateCustomBrowserScope(configured, before.conditionLayout);
452
+ const records = configured.map((record) => {
453
+ if (!record.scopeType || !record.scopeInfoRender ||
454
+ (r.source.scopeAdapter === 'city' && (record.scopeInfo === undefined || !record.type))) {
455
+ throw new Error('records[] 须含 scopeType/scopeInfoRender;城市范围另需 scopeInfo/type');
456
+ }
457
+ const existing = (before.saved?.records || []).find((item) => item.scopeType === record.scopeType);
458
+ return { ...record, ...(existing?.id && !record.id ? { id: existing.id } : {}),
459
+ businessId: businessId(c, formId), businessModule: c.wireModule, controlId: r.controlId,
460
+ browserType: r.source.browserType, formId, module: c.wireModule };
461
+ });
462
+ ok(await c.client.post(`${c.base}/api/bcw/browserDataScope/batchSave`, records), '保存数据范围');
463
+ }
464
+ output({ success: true, fieldId: r.controlId, saved: (await scopeRead(c, formId, r.controlId, r.source)).saved });
465
+ }));
466
+ const tabs = cmd.command('tabs').description('浏览弹窗 Tab');
467
+ common(tabs.command('get').argument('<formId>').argument('<fieldId>'))
468
+ .action((formId, fieldId, o) => run(async () => { const c = await ctx(o.module, o.appId, o.workflowId); const r = await resolved(c, formId, fieldId, 'tabs'); output(await tabsRead(c, formId, r.controlId, r.source)); }));
469
+ common(tabs.command('set').argument('<formId>').argument('<fieldId>')
470
+ .requiredOption('--show <ids>', '显示的 tabId,逗号分隔').option('--default <id|none>', '默认 tabId;none=不指定,未传则保留仍可见的原默认项')
471
+ .option('--order <ids>', '全部 tabId 顺序,逗号分隔;未给则保持现有顺序'))
472
+ .action((formId, fieldId, o) => run(async () => {
473
+ const c = await ctx(o.module, o.appId, o.workflowId);
474
+ const r = await resolved(c, formId, fieldId, 'tabs');
475
+ const old = await tabsRead(c, formId, r.controlId, r.source);
476
+ const show = o.show.split(',').map((s) => s.trim()).filter(Boolean);
477
+ const order = o.order ? o.order.split(',').map((s) => s.trim()) : old.map((t) => String(t.tabId));
478
+ const ids = old.map((t) => String(t.tabId));
479
+ const oldDefault = old.find((t) => Number(t.isDefault) === 1);
480
+ const chosenDefault = o.default === 'none' ? '' : o.default || (oldDefault && show.includes(String(oldDefault.tabId)) ? String(oldDefault.tabId) : '');
481
+ if (!show.length || (chosenDefault && !show.includes(String(chosenDefault))))
482
+ throw new Error('有默认 Tab 时必须包含在显示列表中');
483
+ if (show.some((id) => !ids.includes(id)) || order.length !== ids.length || new Set(order).size !== ids.length || order.some((id) => !ids.includes(id)))
484
+ throw new Error('Tab ID 必须来自 tabs get;--order 须包含全部 Tab 且不重复');
485
+ const rows = order.map((id, index) => ({ ...old.find((t) => String(t.tabId) === id), isShow: show.includes(id) ? 1 : 0, isDefault: id === String(chosenDefault) ? 1 : 0, sort: index + 1 }));
486
+ ok(await c.client.post(`${c.base}/api/bcw/browserTabConfig/batchSave`, rows), '保存 Tab');
487
+ const saved = await tabsRead(c, formId, r.controlId, r.source);
488
+ if (saved.some((t) => Number(t.isShow) !== (show.includes(String(t.tabId)) ? 1 : 0)))
489
+ throw new Error('Tab 保存后显示状态回读不一致');
490
+ output({ success: true, fieldId: r.controlId, tabs: saved });
491
+ }));
492
+ }
493
+ //# sourceMappingURL=form-browser-definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-browser-definition.js","sourceRoot":"","sources":["../../src/commands/form-browser-definition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Command } from 'commander';
2
+ type Target = 'ebuilderform' | 'workflow';
3
+ export declare function registerFormCodeCommands(parent: Command, program: Command, target: Target): void;
4
+ export {};
5
+ //# sourceMappingURL=form-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-code.d.ts","sourceRoot":"","sources":["../../src/commands/form-code.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,KAAK,MAAM,GAAG,cAAc,GAAG,UAAU,CAAC;AAgE1C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAsKhG"}