weaver-e10-builder 1.0.7-beta → 1.0.9-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/dist/commands/actionflow.d.ts +7 -0
  2. package/dist/commands/actionflow.d.ts.map +1 -0
  3. package/dist/commands/actionflow.js +105 -0
  4. package/dist/commands/actionflow.js.map +1 -0
  5. package/dist/commands/auth.js +1 -1
  6. package/dist/commands/auth.js.map +1 -1
  7. package/dist/commands/form-list.d.ts.map +1 -1
  8. package/dist/commands/form-list.js +18 -9
  9. package/dist/commands/form-list.js.map +1 -1
  10. package/dist/commands/form-native.d.ts +0 -14
  11. package/dist/commands/form-native.d.ts.map +1 -1
  12. package/dist/commands/form-native.js +398 -72
  13. package/dist/commands/form-native.js.map +1 -1
  14. package/dist/commands/form.d.ts.map +1 -1
  15. package/dist/commands/form.js +5 -2
  16. package/dist/commands/form.js.map +1 -1
  17. package/dist/commands/wf-form.d.ts.map +1 -1
  18. package/dist/commands/wf-form.js +872 -42
  19. package/dist/commands/wf-form.js.map +1 -1
  20. package/dist/commands/workflow-action.d.ts +11 -0
  21. package/dist/commands/workflow-action.d.ts.map +1 -1
  22. package/dist/commands/workflow-action.js +13 -1586
  23. package/dist/commands/workflow-action.js.map +1 -1
  24. package/dist/commands/workflow-create-workflow.d.ts.map +1 -1
  25. package/dist/commands/workflow-create-workflow.js +111 -30
  26. package/dist/commands/workflow-create-workflow.js.map +1 -1
  27. package/dist/commands/workflow-node-robot.js +1 -1
  28. package/dist/commands/workflow-node-robot.js.map +1 -1
  29. package/dist/commands/workflow-node-validate.d.ts.map +1 -1
  30. package/dist/commands/workflow-node-validate.js +56 -45
  31. package/dist/commands/workflow-node-validate.js.map +1 -1
  32. package/dist/commands/workflow-numbering.d.ts.map +1 -1
  33. package/dist/commands/workflow-numbering.js +98 -2
  34. package/dist/commands/workflow-numbering.js.map +1 -1
  35. package/dist/commands/workflow-operator-sign.d.ts +3 -0
  36. package/dist/commands/workflow-operator-sign.d.ts.map +1 -0
  37. package/dist/commands/workflow-operator-sign.js +118 -0
  38. package/dist/commands/workflow-operator-sign.js.map +1 -0
  39. package/dist/commands/workflow.d.ts.map +1 -1
  40. package/dist/commands/workflow.js +83 -6
  41. package/dist/commands/workflow.js.map +1 -1
  42. package/dist/core/client.d.ts +2 -0
  43. package/dist/core/client.d.ts.map +1 -1
  44. package/dist/core/client.js +2 -0
  45. package/dist/core/client.js.map +1 -1
  46. package/dist/index.js +4 -0
  47. package/dist/index.js.map +1 -1
  48. package/dist/services/actionflow/build_workflow_draft.d.ts +20 -0
  49. package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -0
  50. package/dist/services/actionflow/build_workflow_draft.js +222 -0
  51. package/dist/services/actionflow/build_workflow_draft.js.map +1 -0
  52. package/dist/services/actionflow/calendar_mapper.d.ts +3 -0
  53. package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -0
  54. package/dist/services/actionflow/calendar_mapper.js +152 -0
  55. package/dist/services/actionflow/calendar_mapper.js.map +1 -0
  56. package/dist/services/actionflow/component_registry.d.ts +13 -0
  57. package/dist/services/actionflow/component_registry.d.ts.map +1 -0
  58. package/dist/services/actionflow/component_registry.js +213 -0
  59. package/dist/services/actionflow/component_registry.js.map +1 -0
  60. package/dist/services/actionflow/components/action_eb_add.d.ts +3 -0
  61. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -0
  62. package/dist/services/actionflow/components/action_eb_add.js +127 -0
  63. package/dist/services/actionflow/components/action_eb_add.js.map +1 -0
  64. package/dist/services/actionflow/components/action_eb_add_compiler.d.ts +4 -0
  65. package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -0
  66. package/dist/services/actionflow/components/action_eb_add_compiler.js +13 -0
  67. package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -0
  68. package/dist/services/actionflow/components/action_eb_delete.d.ts +3 -0
  69. package/dist/services/actionflow/components/action_eb_delete.d.ts.map +1 -0
  70. package/dist/services/actionflow/components/action_eb_delete.js +69 -0
  71. package/dist/services/actionflow/components/action_eb_delete.js.map +1 -0
  72. package/dist/services/actionflow/components/action_eb_delete_compiler.d.ts +4 -0
  73. package/dist/services/actionflow/components/action_eb_delete_compiler.d.ts.map +1 -0
  74. package/dist/services/actionflow/components/action_eb_delete_compiler.js +7 -0
  75. package/dist/services/actionflow/components/action_eb_delete_compiler.js.map +1 -0
  76. package/dist/services/actionflow/components/action_eb_recover.d.ts +3 -0
  77. package/dist/services/actionflow/components/action_eb_recover.d.ts.map +1 -0
  78. package/dist/services/actionflow/components/action_eb_recover.js +28 -0
  79. package/dist/services/actionflow/components/action_eb_recover.js.map +1 -0
  80. package/dist/services/actionflow/components/action_eb_recover_compiler.d.ts +3 -0
  81. package/dist/services/actionflow/components/action_eb_recover_compiler.d.ts.map +1 -0
  82. package/dist/services/actionflow/components/action_eb_recover_compiler.js +16 -0
  83. package/dist/services/actionflow/components/action_eb_recover_compiler.js.map +1 -0
  84. package/dist/services/actionflow/components/action_eb_save_version.d.ts +3 -0
  85. package/dist/services/actionflow/components/action_eb_save_version.d.ts.map +1 -0
  86. package/dist/services/actionflow/components/action_eb_save_version.js +30 -0
  87. package/dist/services/actionflow/components/action_eb_save_version.js.map +1 -0
  88. package/dist/services/actionflow/components/action_eb_save_version_compiler.d.ts +3 -0
  89. package/dist/services/actionflow/components/action_eb_save_version_compiler.d.ts.map +1 -0
  90. package/dist/services/actionflow/components/action_eb_save_version_compiler.js +15 -0
  91. package/dist/services/actionflow/components/action_eb_save_version_compiler.js.map +1 -0
  92. package/dist/services/actionflow/components/action_eb_update.d.ts +3 -0
  93. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -0
  94. package/dist/services/actionflow/components/action_eb_update.js +154 -0
  95. package/dist/services/actionflow/components/action_eb_update.js.map +1 -0
  96. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts +16 -0
  97. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -0
  98. package/dist/services/actionflow/components/action_eb_update_compiler.js +94 -0
  99. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -0
  100. package/dist/services/actionflow/components/approve_create.d.ts +3 -0
  101. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -0
  102. package/dist/services/actionflow/components/approve_create.js +44 -0
  103. package/dist/services/actionflow/components/approve_create.js.map +1 -0
  104. package/dist/services/actionflow/components/approve_trigger.d.ts +5 -0
  105. package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -0
  106. package/dist/services/actionflow/components/approve_trigger.js +184 -0
  107. package/dist/services/actionflow/components/approve_trigger.js.map +1 -0
  108. package/dist/services/actionflow/components/approve_trigger_compiler.d.ts +4 -0
  109. package/dist/services/actionflow/components/approve_trigger_compiler.d.ts.map +1 -0
  110. package/dist/services/actionflow/components/approve_trigger_compiler.js +20 -0
  111. package/dist/services/actionflow/components/approve_trigger_compiler.js.map +1 -0
  112. package/dist/services/actionflow/components/condition.d.ts +3 -0
  113. package/dist/services/actionflow/components/condition.d.ts.map +1 -0
  114. package/dist/services/actionflow/components/condition.js +23 -0
  115. package/dist/services/actionflow/components/condition.js.map +1 -0
  116. package/dist/services/actionflow/components/date_trigger.d.ts +5 -0
  117. package/dist/services/actionflow/components/date_trigger.d.ts.map +1 -0
  118. package/dist/services/actionflow/components/date_trigger.js +129 -0
  119. package/dist/services/actionflow/components/date_trigger.js.map +1 -0
  120. package/dist/services/actionflow/components/document_actions.d.ts +28 -0
  121. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -0
  122. package/dist/services/actionflow/components/document_actions.js +266 -0
  123. package/dist/services/actionflow/components/document_actions.js.map +1 -0
  124. package/dist/services/actionflow/components/eb_get_data_by_id.d.ts +5 -0
  125. package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -0
  126. package/dist/services/actionflow/components/eb_get_data_by_id.js +44 -0
  127. package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -0
  128. package/dist/services/actionflow/components/enquiry_form.d.ts +5 -0
  129. package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -0
  130. package/dist/services/actionflow/components/enquiry_form.js +100 -0
  131. package/dist/services/actionflow/components/enquiry_form.js.map +1 -0
  132. package/dist/services/actionflow/components/event_form_data.d.ts +3 -0
  133. package/dist/services/actionflow/components/event_form_data.d.ts.map +1 -0
  134. package/dist/services/actionflow/components/event_form_data.js +29 -0
  135. package/dist/services/actionflow/components/event_form_data.js.map +1 -0
  136. package/dist/services/actionflow/components/hrm_actions.d.ts +7 -0
  137. package/dist/services/actionflow/components/hrm_actions.d.ts.map +1 -0
  138. package/dist/services/actionflow/components/hrm_actions.js +138 -0
  139. package/dist/services/actionflow/components/hrm_actions.js.map +1 -0
  140. package/dist/services/actionflow/components/index.d.ts +32 -0
  141. package/dist/services/actionflow/components/index.d.ts.map +1 -0
  142. package/dist/services/actionflow/components/index.js +132 -0
  143. package/dist/services/actionflow/components/index.js.map +1 -0
  144. package/dist/services/actionflow/components/logic_flow_set.d.ts +10 -0
  145. package/dist/services/actionflow/components/logic_flow_set.d.ts.map +1 -0
  146. package/dist/services/actionflow/components/logic_flow_set.js +79 -0
  147. package/dist/services/actionflow/components/logic_flow_set.js.map +1 -0
  148. package/dist/services/actionflow/components/meeting_create.d.ts +5 -0
  149. package/dist/services/actionflow/components/meeting_create.d.ts.map +1 -0
  150. package/dist/services/actionflow/components/meeting_create.js +37 -0
  151. package/dist/services/actionflow/components/meeting_create.js.map +1 -0
  152. package/dist/services/actionflow/components/multiple_execution.d.ts +5 -0
  153. package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -0
  154. package/dist/services/actionflow/components/multiple_execution.js +136 -0
  155. package/dist/services/actionflow/components/multiple_execution.js.map +1 -0
  156. package/dist/services/actionflow/components/output.d.ts +9 -0
  157. package/dist/services/actionflow/components/output.d.ts.map +1 -0
  158. package/dist/services/actionflow/components/output.js +81 -0
  159. package/dist/services/actionflow/components/output.js.map +1 -0
  160. package/dist/services/actionflow/components/schedule_create.d.ts +5 -0
  161. package/dist/services/actionflow/components/schedule_create.d.ts.map +1 -0
  162. package/dist/services/actionflow/components/schedule_create.js +42 -0
  163. package/dist/services/actionflow/components/schedule_create.js.map +1 -0
  164. package/dist/services/actionflow/components/send_message.d.ts +7 -0
  165. package/dist/services/actionflow/components/send_message.d.ts.map +1 -0
  166. package/dist/services/actionflow/components/send_message.js +200 -0
  167. package/dist/services/actionflow/components/send_message.js.map +1 -0
  168. package/dist/services/actionflow/components/simple_scheduler.d.ts +5 -0
  169. package/dist/services/actionflow/components/simple_scheduler.d.ts.map +1 -0
  170. package/dist/services/actionflow/components/simple_scheduler.js +22 -0
  171. package/dist/services/actionflow/components/simple_scheduler.js.map +1 -0
  172. package/dist/services/actionflow/components/time_batch_trigger.d.ts +5 -0
  173. package/dist/services/actionflow/components/time_batch_trigger.d.ts.map +1 -0
  174. package/dist/services/actionflow/components/time_batch_trigger.js +92 -0
  175. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -0
  176. package/dist/services/actionflow/components/workflow_actions.d.ts +26 -0
  177. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -0
  178. package/dist/services/actionflow/components/workflow_actions.js +403 -0
  179. package/dist/services/actionflow/components/workflow_actions.js.map +1 -0
  180. package/dist/services/actionflow/context_data_builder.d.ts +9 -0
  181. package/dist/services/actionflow/context_data_builder.d.ts.map +1 -0
  182. package/dist/services/actionflow/context_data_builder.js +31 -0
  183. package/dist/services/actionflow/context_data_builder.js.map +1 -0
  184. package/dist/services/actionflow/context_preflight.d.ts +6 -0
  185. package/dist/services/actionflow/context_preflight.d.ts.map +1 -0
  186. package/dist/services/actionflow/context_preflight.js +122 -0
  187. package/dist/services/actionflow/context_preflight.js.map +1 -0
  188. package/dist/services/actionflow/context_provider.d.ts +18 -0
  189. package/dist/services/actionflow/context_provider.d.ts.map +1 -0
  190. package/dist/services/actionflow/context_provider.js +102 -0
  191. package/dist/services/actionflow/context_provider.js.map +1 -0
  192. package/dist/services/actionflow/context_source.d.ts +7 -0
  193. package/dist/services/actionflow/context_source.d.ts.map +1 -0
  194. package/dist/services/actionflow/context_source.js +10 -0
  195. package/dist/services/actionflow/context_source.js.map +1 -0
  196. package/dist/services/actionflow/design_client.d.ts +48 -0
  197. package/dist/services/actionflow/design_client.d.ts.map +1 -0
  198. package/dist/services/actionflow/design_client.js +170 -0
  199. package/dist/services/actionflow/design_client.js.map +1 -0
  200. package/dist/services/actionflow/document_source.d.ts +5 -0
  201. package/dist/services/actionflow/document_source.d.ts.map +1 -0
  202. package/dist/services/actionflow/document_source.js +5 -0
  203. package/dist/services/actionflow/document_source.js.map +1 -0
  204. package/dist/services/actionflow/enrich_approve_trigger.d.ts +12 -0
  205. package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -0
  206. package/dist/services/actionflow/enrich_approve_trigger.js +107 -0
  207. package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -0
  208. package/dist/services/actionflow/filter_rules.d.ts +14 -0
  209. package/dist/services/actionflow/filter_rules.d.ts.map +1 -0
  210. package/dist/services/actionflow/filter_rules.js +259 -0
  211. package/dist/services/actionflow/filter_rules.js.map +1 -0
  212. package/dist/services/actionflow/form_source.d.ts +17 -0
  213. package/dist/services/actionflow/form_source.d.ts.map +1 -0
  214. package/dist/services/actionflow/form_source.js +42 -0
  215. package/dist/services/actionflow/form_source.js.map +1 -0
  216. package/dist/services/actionflow/formula_service.d.ts +51 -0
  217. package/dist/services/actionflow/formula_service.d.ts.map +1 -0
  218. package/dist/services/actionflow/formula_service.js +999 -0
  219. package/dist/services/actionflow/formula_service.js.map +1 -0
  220. package/dist/services/actionflow/generation_service.d.ts +28 -0
  221. package/dist/services/actionflow/generation_service.d.ts.map +1 -0
  222. package/dist/services/actionflow/generation_service.js +283 -0
  223. package/dist/services/actionflow/generation_service.js.map +1 -0
  224. package/dist/services/actionflow/hrm_source.d.ts +4 -0
  225. package/dist/services/actionflow/hrm_source.d.ts.map +1 -0
  226. package/dist/services/actionflow/hrm_source.js +8 -0
  227. package/dist/services/actionflow/hrm_source.js.map +1 -0
  228. package/dist/services/actionflow/id_generator.d.ts +13 -0
  229. package/dist/services/actionflow/id_generator.d.ts.map +1 -0
  230. package/dist/services/actionflow/id_generator.js +33 -0
  231. package/dist/services/actionflow/id_generator.js.map +1 -0
  232. package/dist/services/actionflow/person_source.d.ts +7 -0
  233. package/dist/services/actionflow/person_source.d.ts.map +1 -0
  234. package/dist/services/actionflow/person_source.js +34 -0
  235. package/dist/services/actionflow/person_source.js.map +1 -0
  236. package/dist/services/actionflow/preflight_service.d.ts +42 -0
  237. package/dist/services/actionflow/preflight_service.d.ts.map +1 -0
  238. package/dist/services/actionflow/preflight_service.js +1247 -0
  239. package/dist/services/actionflow/preflight_service.js.map +1 -0
  240. package/dist/services/actionflow/query_field_defaults.d.ts +3 -0
  241. package/dist/services/actionflow/query_field_defaults.d.ts.map +1 -0
  242. package/dist/services/actionflow/query_field_defaults.js +46 -0
  243. package/dist/services/actionflow/query_field_defaults.js.map +1 -0
  244. package/dist/services/actionflow/readback_verifier.d.ts +11 -0
  245. package/dist/services/actionflow/readback_verifier.d.ts.map +1 -0
  246. package/dist/services/actionflow/readback_verifier.js +252 -0
  247. package/dist/services/actionflow/readback_verifier.js.map +1 -0
  248. package/dist/services/actionflow/request.d.ts +13 -0
  249. package/dist/services/actionflow/request.d.ts.map +1 -0
  250. package/dist/services/actionflow/request.js +15 -0
  251. package/dist/services/actionflow/request.js.map +1 -0
  252. package/dist/services/actionflow/runtime_metadata.d.ts +27 -0
  253. package/dist/services/actionflow/runtime_metadata.d.ts.map +1 -0
  254. package/dist/services/actionflow/runtime_metadata.js +142 -0
  255. package/dist/services/actionflow/runtime_metadata.js.map +1 -0
  256. package/dist/services/actionflow/save_workflow_draft.d.ts +34 -0
  257. package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -0
  258. package/dist/services/actionflow/save_workflow_draft.js +449 -0
  259. package/dist/services/actionflow/save_workflow_draft.js.map +1 -0
  260. package/dist/services/actionflow/system_params.d.ts +5 -0
  261. package/dist/services/actionflow/system_params.d.ts.map +1 -0
  262. package/dist/services/actionflow/system_params.js +55 -0
  263. package/dist/services/actionflow/system_params.js.map +1 -0
  264. package/dist/services/actionflow/trigger_common.d.ts +6 -0
  265. package/dist/services/actionflow/trigger_common.d.ts.map +1 -0
  266. package/dist/services/actionflow/trigger_common.js +41 -0
  267. package/dist/services/actionflow/trigger_common.js.map +1 -0
  268. package/dist/services/actionflow/workflow_compiler.d.ts +27 -0
  269. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -0
  270. package/dist/services/actionflow/workflow_compiler.js +1804 -0
  271. package/dist/services/actionflow/workflow_compiler.js.map +1 -0
  272. package/dist/services/actionflow/workflow_source.d.ts +14 -0
  273. package/dist/services/actionflow/workflow_source.d.ts.map +1 -0
  274. package/dist/services/actionflow/workflow_source.js +86 -0
  275. package/dist/services/actionflow/workflow_source.js.map +1 -0
  276. package/dist/services/workflow-initiator.d.ts +15 -0
  277. package/dist/services/workflow-initiator.d.ts.map +1 -0
  278. package/dist/services/workflow-initiator.js +77 -0
  279. package/dist/services/workflow-initiator.js.map +1 -0
  280. package/package.json +1 -1
@@ -1,31 +1,130 @@
1
1
  import { AuthSession } from '../core/auth.js';
2
2
  import { ApiClient } from '../core/client.js';
3
+ import { genSfId } from '../services/actionflow/id_generator.js';
3
4
  /**
4
- * 原生表单引擎(非 Ebuilder)表单管理。
5
+ * 原生表单引擎(非 Ebuilder)表单管理 — formdatareport/biaoge 引擎。
5
6
  *
6
- * scaffold-apis 文档(form/references/form-manage/):
7
- * 建表/更新:POST /api/{module}/form/formmanage/saveForm {module, form:{name,orgId,status,ownership,physicalTable}, customParam}
8
- * 复制: POST /api/{module}/form/formmanage/copyForm {module, formId, formManageCopyConfig, form}
9
- * 列表: POST /api/{module}/form/formmanage/getFormPage {pageNo,pageSize,module,formSearchEntity:{isDelete,formIdList,orgId}}
10
- * 详情: POST /api/{module}/form/formmanage/getForm {module, form:{id,orgId}, customParam}
7
+ * 浏览器抓包实测(2026-08-27 mulinquan):
8
+ * 建表/更新:POST /api/formdatareport/form/formmanage/saveForm
9
+ * {module:"formdatareport", form:{associatedForm:"new", name, formCategory:null,
10
+ * layoutType:"advanced"(EXCEL表格)/"flow"(流式), tableName, orgId?, formManageCopyConfig:["fieldLink"],
11
+ * formType:"business", personalCategory:"other", isAdvance:true}, customParam:{personalCategory:null}}
12
+ * 加字段:POST /api/formdatareport/form/field/manage/saveFormFieldNew
13
+ * {formId, module:"biaoge", jsonObj:"<字段jsonObj字符串,含预生成fieldId>"}
14
+ * 字段 jsonObj 里 required 不落库(必填走布局 comp config,见 layout init)。
15
+ * 批量加字段:POST /api/formdatareport/form/field/manage/batch/save/formField
16
+ * {module:"biaoge", formId, forms:[], ids:[], delSubFormIds:[], delFormTableIdList:[],
17
+ * jsonObjList:[<字段jsonObj字符串>], replaceFieldIdMap:{}}
18
+ * 建明细子表:POST /api/formdatareport/form/field/manage/saveSubForm
19
+ * {physicalTable:false, order:0, subFormId:<预生成>, type:"DetailTable", module:"biaoge",
20
+ * dataKey:"<tableName>_mxb1", formTable:{id:<主formId>, form:{id:<subFormId>, name, order:"0.00"}}}
21
+ * 明细加字段:复用 saveFormFieldNew,jsonObj 多 subFormId + describeType:"popover" + describePosition:"titleRight"
22
+ * 读字段:POST /api/formdatareport/form/field/manage/getFormFieldPage
23
+ * {pageNo, pageSize, module:"biaoge", formFieldSearchEntity:{isDelete:0, status:"enable", formId, subFormId?}}
24
+ * 结果在 data.pageDatas.result[]
25
+ * 读布局:POST /api/formdatareport/form/view/relate/getConfig
26
+ * {formId, module:"biaoge", apiModule:"formdatareport", layoutId, customParam:{}, initMode:5,
27
+ * groupFieldIds:[], designerParam:{sourceModule:"biaoge"}}
28
+ * init布局:POST /api/formdatareport/form/view/relate/initLayout
29
+ * {formId, module:"biaoge", apiModule:"formdatareport", layoutId, generateCollapse,
30
+ * styleTemplateId:"700000000000000007"(EXCEL)/"820000000000000001"(FLOW), styleTemplateType:1,
31
+ * configs:[<comp>], addLayout:false, ecodeType:["js","css"], customParam:{},
32
+ * formLayoutMultiple:{isSys, id, name, terminalType:"PC", layoutType},
33
+ * designerParam:{onlyLayout:false}, initMode:"1"}
34
+ * comp = {id(=fieldId), name, componentKey, display, show, readOnly, required, disableEdit,
35
+ * singleRow, isDelete, showOrder, type, typeDescribe, dataKey, [config], [children]}
36
+ * DetailTable comp 带 config:{allowDelete,requiredRows,allowEdit,allowAdd,allowCopy,readOnly,
37
+ * componentKey:"DataTable",required:false} + children:[明细字段comp]
11
38
  *
12
- * 与 Ebuilder 表单的关键差异:
13
- * - 显式 module(URL+Body 一致,如 formdatareport);Ebuilder 走固定 ebuilder 前缀
14
- * - 只有 formId,无 objId;Ebuilder 双 ID(objId+formId)
15
- * - 字段/布局接口同名但前缀不同:原生 /api/{module}/form/...,Ebuilder /api/ebuilder/form/...
39
+ * 与 Ebuilder 表单/流程表单的关键差异:
40
+ * - URL 前缀 /api/formdatareport/form/...;formmanage body module="formdatareport",
41
+ * 字段/布局 body module="biaoge" + apiModule="formdatareport"。
42
+ * - 只有 formId,无 objId。
43
+ * - EXCEL 模板 id = 700000000000000007(workflow 引擎是 700000000000000008)。
44
+ * - fieldId/subFormId 客户端预生成(genSfId 雪花),平台对 id 区间宽松。
16
45
  */
46
+ const MOD_FORM = 'formdatareport'; // formmanage body module + URL 前缀
47
+ const MOD_FIELD = 'biaoge'; // 字段/布局 body module
48
+ const API_MOD = 'formdatareport'; // 布局 body apiModule
49
+ const TPL_EXCEL = '700000000000000007';
50
+ const TPL_FLOW = '820000000000000001';
51
+ function placeholderFromFormat(fmt) {
52
+ if (fmt.includes('HH:mm:ss'))
53
+ return '年-月-日 时:分:秒';
54
+ if (fmt.includes('HH:mm'))
55
+ return '年-月-日 时:分';
56
+ return '年-月-日';
57
+ }
58
+ /** 构建 saveFormFieldNew 的 field jsonObj(未带 fieldId,调用方 genSfId 填)。对齐抓包结构。 */
59
+ function buildFieldJsonObj(o) {
60
+ const { type: ck, title, dataKey, formId } = o;
61
+ const base = { type: ck, title, dataKey, formId, showOrder: '0.00', groupId: '-1' };
62
+ if (ck === 'Text')
63
+ Object.assign(base, { maxLen: 100, unique: false, scan: false, readonlyTransLink: false });
64
+ else if (ck === 'TextArea')
65
+ Object.assign(base, { height: 3, readonlyTransLink: false, maxLen: 4000 });
66
+ else if (ck === 'Number')
67
+ Object.assign(base, {
68
+ numberType: 'number', pointSize: '0', isDefault: false,
69
+ capitalPosition: 'outside', capitalSetting: 'system', capitalPrecision: 'yuan',
70
+ });
71
+ else if (ck === 'Money')
72
+ Object.assign(base, {
73
+ numberType: 'number', pointSize: '2', isDefault: false,
74
+ capitalPosition: 'outside', capitalSetting: 'system', capitalPrecision: 'yuan',
75
+ });
76
+ else if (ck === 'Date' || ck === 'DateTime') {
77
+ const fmt = o.format || (ck === 'DateTime' ? 'yyyy-MM-dd HH:mm' : 'yyyy-MM-dd');
78
+ Object.assign(base, {
79
+ type: 'Date', placeholder: placeholderFromFormat(fmt),
80
+ earlyDate: false, lateDate: false,
81
+ // date-only: earlyType/lateType + isSystemDate;datetime: minuteStep/secondStep/defaultExtend
82
+ ...(fmt.includes('HH') ? { minuteStep: 1, secondStep: 1, defaultExtend: { date: { type: 'custom' } } } : { earlyType: 'currentDay', lateType: 'currentDay', isSystemDate: false }),
83
+ format: fmt, timePanelStyle: { type: 'system' }, isDefault: false,
84
+ });
85
+ }
86
+ else if (ck === 'Select' || ck === 'SelectMultiple') {
87
+ Object.assign(base, {
88
+ optionBackgroundStyle: 'default', hideScore: true, templateId: '', detailDefaultId: '',
89
+ options: (o.options || []).map((op, i) => ({
90
+ componentKey: 'Option', name: op.name, order: i, selectionId: '', defOption: i === 0,
91
+ uid: crypto.randomUUID(), other: false, archive: false, isLimit: false,
92
+ optionNum: '1000000', score: '0', styleConfig: { OptionBackground: op.color || '#5DD4EF' },
93
+ valueKey: String(i), children: [],
94
+ })),
95
+ templateScore: {},
96
+ });
97
+ }
98
+ else if (ck === 'Employee' || ck === 'Department') {
99
+ Object.assign(base, {
100
+ isSingle: o.multiple ? false : false, allList: [], componentList: [], displayType: 'space',
101
+ defaultExtend: { type: 'custom', relation: 'current' },
102
+ viewDataDetail: true, showDimension: true,
103
+ pcDisplaySelectedCount: { type: 'default' }, mobileDisplaySelectedCount: { type: 'default' },
104
+ });
105
+ }
106
+ return base;
107
+ }
108
+ async function getLayoutMeta(client, baseUrl, formId) {
109
+ const res = await client.post(`${baseUrl}/api/${MOD_FORM}/form/builder/getFormLayout`, {
110
+ formId, module: MOD_FORM, customParam: {}, formTableIdList: [],
111
+ designerParam: { onlyLayout: false, convert: false }, form: { id: formId },
112
+ }, { ebbusinessid: formId });
113
+ if (res?.code !== 200 || !res?.status)
114
+ throw new Error(`getFormLayout 失败: ${res?.msg}`);
115
+ const fl = res.data?.formLayout || {}, flm = res.data?.formLayoutMultiple || {};
116
+ return { layoutId: fl.id || '', layoutMultiId: flm.id || '', layoutName: flm.name || '', layoutType: flm.layoutType || 'EXCEL' };
117
+ }
17
118
  export function registerFormNativeCommands(form, program) {
18
- const fn = form.command('native').description('原生表单引擎表单管理(非 Ebuilder,formId 体系)');
119
+ const fn = form.command('native').description('原生表单引擎表单管理(formdatareport/biaoge,非 Ebuilder,formId 体系)');
19
120
  // ─── CREATE ─────────────────────────────────────────────
20
121
  fn.command('create')
21
- .description('新建原生表单引擎表单(saveForm,返回 formId)')
122
+ .description('新建原生表单(saveForm,layoutType:advanced=EXCEL表格 / flow=流式)')
22
123
  .argument('<name>', '表单名称')
23
- .requiredOption('--module <m>', '模块来源(URL+Body 一致,如 formdatareport)')
24
- .requiredOption('--org-id <id>', '所属组织 ID')
25
- .option('--ownership <type>', '所有权类型(personal 等,按页面枚举)', 'personal')
26
- .option('--status <s>', '状态:enable(默认) / disable', 'enable')
27
- .option('--no-physical-table', '非物理表单(默认物理表 physicalTable=true)')
28
- .option('--category <id>', '表单分类 ID(formCategory.id)')
124
+ .option('--module <m>', '模块(默认 formdatareport)', 'formdatareport')
125
+ .option('--layout-type <t>', '布局:advanced=EXCEL表格(默认) / flow=流式', 'advanced')
126
+ .option('--table-name <n>', '物理表名(默认 ft_拼音_随机)')
127
+ .option('--org-id <id>', '所属组织 ID(分权租户需要)')
29
128
  .action(async (name, cmdOpts) => {
30
129
  const opts = program.opts();
31
130
  const auth = await AuthSession.fromOptions(opts);
@@ -33,104 +132,331 @@ export function registerFormNativeCommands(form, program) {
33
132
  process.exit(1);
34
133
  const client = new ApiClient(auth);
35
134
  const baseUrl = auth.getBaseUrl();
135
+ const tableName = cmdOpts.tableName || ('ft_' + name.replace(/[^\w]/g, '_').slice(0, 8).toLowerCase() + Math.floor(Math.random() * 9000 + 1000));
36
136
  const payload = {
37
137
  module: cmdOpts.module,
38
138
  form: {
39
- name,
40
- orgId: cmdOpts.orgId,
41
- status: cmdOpts.status,
42
- ownership: cmdOpts.ownership,
43
- isAdvance: false,
44
- physicalTable: cmdOpts.physicalTable,
45
- formCategory: cmdOpts.category ? { id: cmdOpts.category } : null,
139
+ associatedForm: 'new', name, formCategory: null,
140
+ layoutType: cmdOpts.layoutType, tableName,
141
+ formManageCopyConfig: ['fieldLink'], formType: 'business',
142
+ personalCategory: 'other', isAdvance: true,
46
143
  },
47
- customParam: {},
144
+ customParam: { personalCategory: null },
48
145
  };
146
+ if (cmdOpts.orgId)
147
+ payload.form.orgId = cmdOpts.orgId;
49
148
  const res = await client.post(`${baseUrl}/api/${cmdOpts.module}/form/formmanage/saveForm`, payload);
50
149
  if (res?.code !== 200 || !res?.status) {
51
150
  console.error(`新建失败: ${res?.msg || '未知错误'}`);
52
151
  process.exit(1);
53
152
  }
54
- const formId = res?.data?.id || res?.data?.form?.id || '';
153
+ const formId = res?.data?.id || '';
55
154
  if (!formId) {
56
155
  console.error(`返回成功但未拿到 formId: ${JSON.stringify(res?.data).slice(0, 200)}`);
57
156
  process.exit(1);
58
157
  }
59
- console.error(`表单已创建: ${name} formId=${formId}`);
60
- // 回读验收 getForm
61
- try {
62
- const getRes = await client.post(`${baseUrl}/api/${cmdOpts.module}/form/formmanage/getForm`, { module: cmdOpts.module, form: { id: formId, orgId: cmdOpts.orgId }, customParam: {} });
63
- const f = getRes?.data?.form || {};
64
- if (f.name)
65
- console.error(` 回读: name=${f.name} status=${f.status} ownership=${f.ownership} physicalTable=${f.physicalTable}`);
66
- }
67
- catch { /* 回读不阻塞 */ }
68
- if (opts.json) {
69
- console.log(JSON.stringify({ formId, name, module: cmdOpts.module, orgId: cmdOpts.orgId }));
70
- }
71
- else {
158
+ console.error(`表单已创建: ${name} formId=${formId} 布局=${cmdOpts.layoutType === 'advanced' ? 'EXCEL' : 'FLOW'} tableName=${tableName}`);
159
+ if (opts.json)
160
+ console.log(JSON.stringify({ formId, name, layoutType: cmdOpts.layoutType, tableName, module: cmdOpts.module }));
161
+ else
72
162
  console.log(`formId: ${formId}`);
73
- }
74
163
  });
75
- // ─── LIST ───────────────────────────────────────────────
76
- fn.command('list')
77
- .description('分页查询原生表单列表(getFormPage)')
78
- .requiredOption('--module <m>', '模块来源')
79
- .option('--org-id <id>', '所属组织 ID')
80
- .option('--page-size <n>', '每页条数', '20')
81
- .action(async (cmdOpts) => {
164
+ // ─── READ(字段列表)────────────────────────────────────
165
+ fn.command('read')
166
+ .description('读取原生表单字段(getFormFieldPage;--sub-form-id 查明细)')
167
+ .argument('<formId>', '表单 ID')
168
+ .option('--sub-form-id <id>', '查指定明细子表字段')
169
+ .option('--page-size <n>', '每页条数', '100')
170
+ .action(async (formId, cmdOpts) => {
82
171
  const opts = program.opts();
83
172
  const auth = await AuthSession.fromOptions(opts);
84
173
  if (!auth)
85
174
  process.exit(1);
86
175
  const client = new ApiClient(auth);
87
176
  const baseUrl = auth.getBaseUrl();
88
- const res = await client.post(`${baseUrl}/api/${cmdOpts.module}/form/formmanage/getFormPage`, {
89
- pageNo: 1, pageSize: Number(cmdOpts.pageSize), module: cmdOpts.module,
90
- formSearchEntity: { isDelete: 0, formIdList: [], orgId: cmdOpts.orgId || '' },
177
+ const searchEntity = { isDelete: 0, status: 'enable', formId };
178
+ if (cmdOpts.subFormId)
179
+ searchEntity.subFormId = cmdOpts.subFormId;
180
+ const res = await client.post(`${baseUrl}/api/${MOD_FORM}/form/field/manage/getFormFieldPage`, {
181
+ pageNo: 1, pageSize: Number(cmdOpts.pageSize), module: MOD_FIELD, formFieldSearchEntity: searchEntity,
91
182
  });
92
183
  if (res?.code !== 200 || !res?.status) {
93
184
  console.error(`查询失败: ${res?.msg || '未知错误'}`);
94
185
  process.exit(1);
95
186
  }
96
- const rows = res?.data?.pageDatas?.result || res?.data?.result || [];
187
+ const rows = res?.data?.pageDatas?.result || [];
97
188
  if (opts.json) {
98
189
  console.log(JSON.stringify(rows, null, 2));
99
190
  return;
100
191
  }
101
- if (!Array.isArray(rows) || rows.length === 0) {
102
- console.log('无表单');
103
- return;
104
- }
105
- console.log(`原生表单 (${rows.length}):`);
192
+ console.log(`原生表单 ${formId} ${cmdOpts.subFormId ? '明细 ' + cmdOpts.subFormId : '主表'} 字段 (${rows.length}):`);
106
193
  for (const r of rows)
107
- console.log(` [${r.id}] ${r.name} status=${r.status} ownership=${r.ownership}`);
194
+ console.log(` [${r.fieldId}] ${r.title || r.name} ${r.type} format=${r.format || '-'} required=${r.required ?? '-'} dataKey=${r.dataKey}`);
108
195
  });
109
- // ─── GET ────────────────────────────────────────────────
110
- fn.command('get')
111
- .description('查询表单详情(getForm,含完整 form 对象)')
196
+ // ─── ADD-FIELD ─────────────────────────────────────────
197
+ fn.command('add-field')
198
+ .description('给原生表单加字段(saveFormFieldNew + 预生成 fieldId)。类型见 --help')
112
199
  .argument('<formId>', '表单 ID')
113
- .requiredOption('--module <m>', '模块来源')
114
- .option('--org-id <id>', '所属组织 ID')
115
- .action(async (formId, cmdOpts) => {
200
+ .argument('<fieldName>', '字段名')
201
+ .argument('<fieldType>', '类型:Text/TextArea/Number/Money/Date/DateTime/Select/SelectMultiple/Employee/Department')
202
+ .option('--sub-form-id <id>', '明细子表 ID(加明细字段)')
203
+ .option('--format <fmt>', '日期格式(Date 默认 yyyy-MM-dd / DateTime 默认 yyyy-MM-dd HH:mm)')
204
+ .option('--multiple', '多选(Employee/Department)')
205
+ .option('--options <json>', 'Select 选项:[{"name":"x","color":"#xxx"}] 或 @文件')
206
+ .action(async (formId, fieldName, fieldType, cmdOpts) => {
116
207
  const opts = program.opts();
117
208
  const auth = await AuthSession.fromOptions(opts);
118
209
  if (!auth)
119
210
  process.exit(1);
120
211
  const client = new ApiClient(auth);
121
212
  const baseUrl = auth.getBaseUrl();
122
- const res = await client.post(`${baseUrl}/api/${cmdOpts.module}/form/formmanage/getForm`, { module: cmdOpts.module, form: { id: formId, orgId: cmdOpts.orgId || '' }, customParam: {} });
213
+ const dataKey = 'f' + Math.random().toString(36).slice(2, 9);
214
+ let parsedOptions;
215
+ if (cmdOpts.options) {
216
+ const raw = cmdOpts.options.startsWith('@') ? (await import('node:fs')).readFileSync(cmdOpts.options.slice(1), 'utf-8') : cmdOpts.options;
217
+ parsedOptions = JSON.parse(raw);
218
+ }
219
+ const jsonObj = buildFieldJsonObj({ type: fieldType, title: fieldName, dataKey, formId, format: cmdOpts.format, multiple: cmdOpts.multiple, options: parsedOptions });
220
+ jsonObj.fieldId = genSfId();
221
+ if (cmdOpts.subFormId) {
222
+ jsonObj.subFormId = cmdOpts.subFormId;
223
+ jsonObj.describeType = 'popover';
224
+ jsonObj.describePosition = 'titleRight';
225
+ }
226
+ const res = await client.post(`${baseUrl}/api/${MOD_FORM}/form/field/manage/saveFormFieldNew`, {
227
+ formId, module: MOD_FIELD, jsonObj: JSON.stringify(jsonObj),
228
+ });
123
229
  if (res?.code !== 200 || !res?.status) {
124
- console.error(`查询失败: ${res?.msg || '未知错误'}`);
230
+ console.error(`加字段失败: ${res?.msg || '未知错误'}`);
125
231
  process.exit(1);
126
232
  }
127
- const f = res?.data?.form || {};
128
- if (opts.json) {
129
- console.log(JSON.stringify(res?.data, null, 2));
130
- return;
233
+ console.error(`字段已加: ${fieldName} (${fieldType}) fieldId=${jsonObj.fieldId}${cmdOpts.subFormId ? ' (明细)' : ''}`);
234
+ if (opts.json)
235
+ console.log(JSON.stringify({ fieldId: jsonObj.fieldId, fieldName, fieldType, dataKey }));
236
+ else
237
+ console.log(`fieldId: ${jsonObj.fieldId}`);
238
+ });
239
+ // ─── ADD-DETAIL-TABLE ───────────────────────────────────
240
+ fn.command('add-detail-table')
241
+ .description('给原生表单加明细子表(saveSubForm + 预生成 subFormId + 可选首字段)')
242
+ .argument('<formId>', '表单 ID')
243
+ .argument('<name>', '明细表名')
244
+ .argument('[firstFieldName]', '首字段名(建议传,空子表 getConfig 读不到)')
245
+ .option('--first-field-type <t>', '首字段类型(默认 Text)', 'Text')
246
+ .option('--init', '建后跑 layout init 放入布局')
247
+ .action(async (formId, name, firstFieldName, cmdOpts) => {
248
+ const opts = program.opts();
249
+ const auth = await AuthSession.fromOptions(opts);
250
+ if (!auth)
251
+ process.exit(1);
252
+ const client = new ApiClient(auth);
253
+ const baseUrl = auth.getBaseUrl();
254
+ const subFormId = genSfId();
255
+ const tableName = 'tb' + Math.random().toString(36).slice(2, 8);
256
+ const dataKey = tableName + '_mxb1';
257
+ const res = await client.post(`${baseUrl}/api/${MOD_FORM}/form/field/manage/saveSubForm`, {
258
+ physicalTable: false, order: 0, subFormId, type: 'DetailTable', module: MOD_FIELD, dataKey,
259
+ formTable: { id: formId, form: { id: subFormId, name, order: '0.00' } },
260
+ });
261
+ if (res?.code !== 200 || !res?.status) {
262
+ console.error(`建明细失败: ${res?.msg || '未知错误'}`);
263
+ process.exit(1);
264
+ }
265
+ console.error(`子表已建: subFormId=${subFormId} name=${name} dataKey=${dataKey}`);
266
+ let firstFieldId = '';
267
+ if (firstFieldName) {
268
+ const dk = 'sf' + Math.random().toString(36).slice(2, 8);
269
+ const jsonObj = buildFieldJsonObj({ type: cmdOpts.firstFieldType, title: firstFieldName, dataKey: dk, formId });
270
+ jsonObj.fieldId = genSfId();
271
+ jsonObj.subFormId = subFormId;
272
+ jsonObj.describeType = 'popover';
273
+ jsonObj.describePosition = 'titleRight';
274
+ const fr = await client.post(`${baseUrl}/api/${MOD_FORM}/form/field/manage/saveFormFieldNew`, {
275
+ formId, module: MOD_FIELD, jsonObj: JSON.stringify(jsonObj),
276
+ });
277
+ if (fr?.code !== 200 || !fr?.status) {
278
+ console.error(`首字段失败: ${fr?.msg || '未知错误'}`);
279
+ }
280
+ else {
281
+ firstFieldId = jsonObj.fieldId;
282
+ console.error(`首字段已加: ${firstFieldName} (${cmdOpts.firstFieldType}) fieldId=${firstFieldId}`);
283
+ }
284
+ }
285
+ if (cmdOpts.init) {
286
+ try {
287
+ await initLayout(client, baseUrl, formId);
288
+ console.error('布局已 init');
289
+ }
290
+ catch (e) {
291
+ console.error(`布局 init 失败: ${e?.message || e}`);
292
+ }
293
+ }
294
+ if (opts.json)
295
+ console.log(JSON.stringify({ subFormId, name, dataKey, firstFieldId }));
296
+ else
297
+ console.log(`subFormId: ${subFormId}`);
298
+ });
299
+ // ─── LAYOUT INIT ────────────────────────────────────────
300
+ fn.command('init')
301
+ .description('初始化/重建原生表单布局(initLayout):设字段 readOnly/required/singleRow + 分组 + 显示/隐藏')
302
+ .argument('<formId>', '表单 ID')
303
+ .option('--read-only', '字段只读(默认保留)')
304
+ .option('--required', '字段必填(默认保留)')
305
+ .option('--single-row', '独占一行(默认保留)')
306
+ .option('--generate-collapse', '生成折叠分组')
307
+ .option('--hide <names>', '隐藏字段(display=false),逗号分隔字段名/fieldId,其余 display=true')
308
+ .action(async (formId, cmdOpts) => {
309
+ const opts = program.opts();
310
+ const auth = await AuthSession.fromOptions(opts);
311
+ if (!auth)
312
+ process.exit(1);
313
+ const client = new ApiClient(auth);
314
+ const baseUrl = auth.getBaseUrl();
315
+ try {
316
+ const hide = cmdOpts.hide ? new Set(cmdOpts.hide.split(',').map((s) => s.trim()).filter(Boolean)) : undefined;
317
+ const meta = await initLayout(client, baseUrl, formId, { ...cmdOpts, hide });
318
+ const hidden = hide ? ` 隐藏${hide.size}字段` : '';
319
+ console.error(`布局已初始化: 类型=${meta.layoutType} 模板=${meta.styleTemplateId} 组件=${meta.compCount}${hidden}`);
320
+ }
321
+ catch (e) {
322
+ console.error(`初始化失败: ${e?.message || e}`);
323
+ process.exit(1);
324
+ }
325
+ if (opts.json)
326
+ console.log(JSON.stringify({ formId, ok: true }));
327
+ });
328
+ // ─── FIELD-GROUP(字段分组)────────────────────────────
329
+ fn.command('field-group')
330
+ .description('字段分组(建组 saveFieldGroup → 分配 updateFormFieldGroup → re-init generateCollapse 渲染分组)')
331
+ .argument('<formId>', '表单 ID')
332
+ .requiredOption('--groups <json>', '分组 JSON:{"分组名":["字段名/fieldId",...],...} 或 @文件')
333
+ .option('--required', '同时设字段必填(re-init 时一起带上,防丢)')
334
+ .action(async (formId, cmdOpts) => {
335
+ const opts = program.opts();
336
+ const auth = await AuthSession.fromOptions(opts);
337
+ if (!auth)
338
+ process.exit(1);
339
+ const client = new ApiClient(auth);
340
+ const baseUrl = auth.getBaseUrl();
341
+ const ebb = { ebbusinessid: formId };
342
+ try {
343
+ const raw = cmdOpts.groups.startsWith('@') ? (await import('node:fs')).readFileSync(cmdOpts.groups.slice(1), 'utf-8') : cmdOpts.groups;
344
+ const groupsMap = JSON.parse(raw);
345
+ const entries = Object.entries(groupsMap);
346
+ if (!entries.length)
347
+ throw new Error('--groups 为空');
348
+ // getConfig 解析字段名→id
349
+ const meta = await getLayoutMeta(client, baseUrl, formId);
350
+ const cfgRes = await client.post(`${baseUrl}/api/${MOD_FORM}/form/view/relate/getConfig`, {
351
+ formId, module: MOD_FIELD, apiModule: API_MOD, layoutId: meta.layoutId,
352
+ customParam: {}, initMode: 5, groupFieldIds: [], designerParam: { sourceModule: MOD_FIELD },
353
+ }, ebb);
354
+ if (cfgRes?.code !== 200 || !cfgRes?.status)
355
+ throw new Error(`getConfig 失败: ${cfgRes?.msg}`);
356
+ const allConfigs = cfgRes?.data?.configs || [];
357
+ const byName = new Map();
358
+ const walk = (arr) => { for (const c of arr) {
359
+ if (c.name)
360
+ byName.set(String(c.name), c);
361
+ if (c.id)
362
+ byName.set(String(c.id), c);
363
+ if (c.children?.length)
364
+ walk(c.children);
365
+ } };
366
+ walk(allConfigs);
367
+ // ① 建组 + ② 分配字段
368
+ const created = [];
369
+ for (const [gname, refs] of entries) {
370
+ const sr = await client.post(`${baseUrl}/api/${MOD_FORM}/form/field/manage/saveFieldGroup`, { module: MOD_FIELD, formFieldGroup: { groupName: gname, formId } }, ebb);
371
+ if (sr?.code !== 200 || !sr?.status)
372
+ throw new Error(`建分组「${gname}」失败: ${sr?.msg || '未知错误'}`);
373
+ const g = sr?.data?.group || {};
374
+ const fieldIds = [];
375
+ const missing = [];
376
+ for (const ref of refs || []) {
377
+ const f = byName.get(String(ref));
378
+ if (f)
379
+ fieldIds.push(String(f.id));
380
+ else
381
+ missing.push(String(ref));
382
+ }
383
+ if (missing.length)
384
+ console.error(` ⚠ 分组「${gname}」未找到字段: ${missing.join(', ')}`);
385
+ created.push({ name: gname, groupId: String(g.id || ''), refFieldId: String(g.refFieldId || ''), fieldIds });
386
+ console.error(` 分组已建: ${gname} groupId=${g.id} refFieldId=${g.refFieldId}${fieldIds.length ? ` 字段×${fieldIds.length}` : '(空分组)'}`);
387
+ if (fieldIds.length) {
388
+ const ur = await client.post(`${baseUrl}/api/${MOD_FORM}/form/field/manage/updateFormFieldGroup`, { module: MOD_FIELD, formFieldGroup: { id: created[created.length - 1].groupId }, form: { id: formId }, fieldList: fieldIds.map((id) => ({ id })) }, ebb);
389
+ if (ur?.code !== 200 || !ur?.status)
390
+ console.error(` ⚠ 分组「${gname}」分配失败: ${ur?.msg || '未知错误'}`);
391
+ else
392
+ console.error(` 已分配: ${gname} ← ${fieldIds.length} 字段`);
393
+ }
394
+ }
395
+ // ③ re-init:generateCollapse:true 让平台从 saveFieldGroup 记录自动渲染 Collapse 分组。
396
+ // 复用 initLayout helper(normalize 保 DetailTable + 设 required + generateCollapse),对齐抓包正确 initLayout。
397
+ const meta2 = await initLayout(client, baseUrl, formId, { required: cmdOpts.required === true ? true : undefined, generateCollapse: true });
398
+ console.log(opts.json
399
+ ? JSON.stringify({ success: true, formId, groups: created.map((g) => ({ name: g.name, groupId: g.groupId, refFieldId: g.refFieldId, fieldCount: g.fieldIds.length })), layoutType: meta2.layoutType })
400
+ : `字段分组完成: ${created.length} 个分组(generateCollapse 自动渲染,组件=${meta2.compCount})`);
401
+ }
402
+ catch (e) {
403
+ console.error(`字段分组失败: ${e.message}`);
404
+ process.exitCode = 1;
131
405
  }
132
- console.log(`表单: ${f.name || '(未命名)'} formId=${f.id}`);
133
- console.log(` status=${f.status} ownership=${f.ownership} orgId=${f.orgId} physicalTable=${f.physicalTable}`);
134
406
  });
135
407
  }
408
+ /** getConfig 读 configs → 按选项设 readOnly/required/singleRow/hide → initLayout 写回。 */
409
+ async function initLayout(client, baseUrl, formId, flags = {}) {
410
+ const meta = await getLayoutMeta(client, baseUrl, formId);
411
+ const cfgRes = await client.post(`${baseUrl}/api/${MOD_FORM}/form/view/relate/getConfig`, {
412
+ formId, module: MOD_FIELD, apiModule: API_MOD, layoutId: meta.layoutId,
413
+ customParam: {}, initMode: 5, groupFieldIds: [], designerParam: { sourceModule: MOD_FIELD },
414
+ }, { ebbusinessid: formId });
415
+ if (cfgRes?.code !== 200 || !cfgRes?.status)
416
+ throw new Error(`getConfig 失败: ${cfgRes?.msg}`);
417
+ const configs = cfgRes?.data?.configs || [];
418
+ // normalize(对齐抓包正确 initLayout):
419
+ // - display/show=true 对所有字段(含 DetailTable 容器,正确包 DetailTable display=true;不设会藏掉明细表)。
420
+ // --hide 指定的字段 display=false(隐藏)。
421
+ // - readOnly/disableEdit=false 只对主表业务字段;容器(DetailTable) + 明细 children 保持 readOnly=true。
422
+ // - --required 只设主表业务字段(正确包 DetailTable + 明细日期 required=false)。
423
+ const isContainer = (c) => c.type === 'DetailTable' || c.componentKey === 'DataTable' || c.type === 'Collapse' || c.componentKey === 'Fold';
424
+ const isHidden = (c) => !!(flags.hide && (flags.hide.has(String(c.id)) || (c.name && flags.hide.has(String(c.name)))));
425
+ const apply = (c, isDetailChild = false) => {
426
+ if (c.isDelete)
427
+ return;
428
+ c.display = !isHidden(c);
429
+ c.show = !isHidden(c);
430
+ // readOnly/disableEdit=false 对所有业务字段(主表 + 明细 children),明细字段也要可编辑;
431
+ // 容器(DetailTable) 保持 readOnly=true(top-level,其 config.readOnly=false 控制表可编辑)。
432
+ if (!isContainer(c)) {
433
+ c.readOnly = false;
434
+ c.disableEdit = false;
435
+ }
436
+ if (flags.readOnly !== undefined && !isContainer(c))
437
+ c.readOnly = flags.readOnly;
438
+ // --required 只设主表业务字段(正确包 DetailTable + 明细日期 required=false)
439
+ if (flags.required !== undefined && !isContainer(c) && !isDetailChild)
440
+ c.required = flags.required;
441
+ if (flags.singleRow !== undefined && !isContainer(c) && !isDetailChild)
442
+ c.singleRow = flags.singleRow;
443
+ };
444
+ for (const c of configs) {
445
+ apply(c, false);
446
+ if (c.children?.length)
447
+ for (const ch of c.children)
448
+ apply(ch, true);
449
+ }
450
+ const styleTemplateId = meta.layoutType === 'EXCEL' ? TPL_EXCEL : TPL_FLOW;
451
+ const initRes = await client.post(`${baseUrl}/api/${MOD_FORM}/form/view/relate/initLayout`, {
452
+ formId, module: MOD_FIELD, apiModule: API_MOD, layoutId: meta.layoutId,
453
+ generateCollapse: flags.generateCollapse === true, styleTemplateId, styleTemplateType: 1,
454
+ configs, addLayout: false, ecodeType: ['js', 'css'], customParam: {},
455
+ formLayoutMultiple: { isSys: false, id: meta.layoutMultiId, name: meta.layoutName, terminalType: 'PC', layoutType: meta.layoutType },
456
+ designerParam: { onlyLayout: false }, initMode: '1',
457
+ }, { ebbusinessid: formId });
458
+ if (initRes?.code !== 200 || !initRes?.status)
459
+ throw new Error(`initLayout 失败: ${initRes?.msg}`);
460
+ return { layoutType: meta.layoutType, styleTemplateId, compCount: configs.length };
461
+ }
136
462
  //# sourceMappingURL=form-native.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-native.js","sourceRoot":"","sources":["../../src/commands/form-native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-native.js","sourceRoot":"","sources":["../../src/commands/form-native.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/commands/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2CpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA4jF9D"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/commands/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2CpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA+jF9D"}
@@ -930,12 +930,15 @@ export function registerFormCommands(program) {
930
930
  type: 'Date', title: df.fieldName,
931
931
  placeholder: placeholderFromFormat(dtFmt),
932
932
  earlyDate: false, lateDate: false,
933
- earlyType: 'currentDay', lateType: 'currentDay',
934
933
  format: dtFmt,
934
+ hasDisplayFormat: true,
935
+ minuteStep: 1,
935
936
  isSystemDate: false,
936
937
  timePanelStyle: { type: 'system' },
937
938
  isDefault: dtHasDefault,
938
- ...(dtHasDefault ? { defaultExtend: { date: { type: 'current' }, time: { customValue: '00:00', type: 'custom' } } } : {}),
939
+ ...(dtHasDefault
940
+ ? { defaultExtend: { date: { type: 'current' }, time: { customValue: '00:00', type: 'custom' } } }
941
+ : { defaultExtend: { date: { type: 'custom' } } }),
939
942
  ...(dtMinTargetId ? { min: { type: 'dateField', checkValue: String(dtMinTargetId) }, earlyDate: true } : {}),
940
943
  ...(dtMaxTargetId ? { max: { type: 'dateField', checkValue: String(dtMaxTargetId) }, lateDate: true } : {}),
941
944
  formTableId: dtDetail?.formTableId || '',