weaver-e10-builder 1.1.8 → 1.2.2

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 (431) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/actionflow.d.ts.map +1 -1
  3. package/dist/commands/actionflow.js +32 -0
  4. package/dist/commands/actionflow.js.map +1 -1
  5. package/dist/commands/app.d.ts.map +1 -1
  6. package/dist/commands/app.js +17 -5
  7. package/dist/commands/app.js.map +1 -1
  8. package/dist/commands/auth.d.ts.map +1 -1
  9. package/dist/commands/auth.js +9 -2
  10. package/dist/commands/auth.js.map +1 -1
  11. package/dist/commands/designer.d.ts.map +1 -1
  12. package/dist/commands/designer.js +22 -1
  13. package/dist/commands/designer.js.map +1 -1
  14. package/dist/commands/form-field-props.d.ts +3 -0
  15. package/dist/commands/form-field-props.d.ts.map +1 -0
  16. package/dist/commands/form-field-props.js +242 -0
  17. package/dist/commands/form-field-props.js.map +1 -0
  18. package/dist/commands/form-layout-init.d.ts +0 -7
  19. package/dist/commands/form-layout-init.d.ts.map +1 -1
  20. package/dist/commands/form-layout-init.js +23 -39
  21. package/dist/commands/form-layout-init.js.map +1 -1
  22. package/dist/commands/form-serial-mark.d.ts.map +1 -1
  23. package/dist/commands/form-serial-mark.js +134 -42
  24. package/dist/commands/form-serial-mark.js.map +1 -1
  25. package/dist/commands/form-virtual.d.ts +3 -0
  26. package/dist/commands/form-virtual.d.ts.map +1 -0
  27. package/dist/commands/form-virtual.js +197 -0
  28. package/dist/commands/form-virtual.js.map +1 -0
  29. package/dist/commands/form.d.ts +3 -0
  30. package/dist/commands/form.d.ts.map +1 -1
  31. package/dist/commands/form.js +263 -57
  32. package/dist/commands/form.js.map +1 -1
  33. package/dist/commands/interface.js +1 -1
  34. package/dist/commands/interface.js.map +1 -1
  35. package/dist/commands/report-admin.d.ts +5 -0
  36. package/dist/commands/report-admin.d.ts.map +1 -0
  37. package/dist/commands/report-admin.js +420 -0
  38. package/dist/commands/report-admin.js.map +1 -0
  39. package/dist/commands/report-query.d.ts +3 -0
  40. package/dist/commands/report-query.d.ts.map +1 -0
  41. package/dist/commands/report-query.js +314 -0
  42. package/dist/commands/report-query.js.map +1 -0
  43. package/dist/commands/report-validate.d.ts +3 -0
  44. package/dist/commands/report-validate.d.ts.map +1 -0
  45. package/dist/commands/report-validate.js +719 -0
  46. package/dist/commands/report-validate.js.map +1 -0
  47. package/dist/commands/report.d.ts +12 -0
  48. package/dist/commands/report.d.ts.map +1 -0
  49. package/dist/commands/report.js +666 -0
  50. package/dist/commands/report.js.map +1 -0
  51. package/dist/commands/wf-form.d.ts +34 -0
  52. package/dist/commands/wf-form.d.ts.map +1 -1
  53. package/dist/commands/wf-form.js +303 -127
  54. package/dist/commands/wf-form.js.map +1 -1
  55. package/dist/commands/workflow-advanced.d.ts.map +1 -1
  56. package/dist/commands/workflow-advanced.js +109 -90
  57. package/dist/commands/workflow-advanced.js.map +1 -1
  58. package/dist/commands/workflow-auth-resp.d.ts +8 -0
  59. package/dist/commands/workflow-auth-resp.d.ts.map +1 -0
  60. package/dist/commands/workflow-auth-resp.js +568 -0
  61. package/dist/commands/workflow-auth-resp.js.map +1 -0
  62. package/dist/commands/workflow-condition.d.ts.map +1 -1
  63. package/dist/commands/workflow-condition.js +3 -1
  64. package/dist/commands/workflow-condition.js.map +1 -1
  65. package/dist/commands/workflow-create-auth-resp.d.ts +4 -0
  66. package/dist/commands/workflow-create-auth-resp.d.ts.map +1 -0
  67. package/dist/commands/workflow-create-auth-resp.js +204 -0
  68. package/dist/commands/workflow-create-auth-resp.js.map +1 -0
  69. package/dist/commands/workflow-node-overtime.d.ts.map +1 -1
  70. package/dist/commands/workflow-node-overtime.js +125 -92
  71. package/dist/commands/workflow-node-overtime.js.map +1 -1
  72. package/dist/commands/workflow-node-reject.d.ts +52 -0
  73. package/dist/commands/workflow-node-reject.d.ts.map +1 -1
  74. package/dist/commands/workflow-node-reject.js +134 -63
  75. package/dist/commands/workflow-node-reject.js.map +1 -1
  76. package/dist/commands/workflow-node-sign.d.ts.map +1 -1
  77. package/dist/commands/workflow-node-sign.js +14 -7
  78. package/dist/commands/workflow-node-sign.js.map +1 -1
  79. package/dist/commands/workflow-node-validate.d.ts +6 -0
  80. package/dist/commands/workflow-node-validate.d.ts.map +1 -1
  81. package/dist/commands/workflow-node-validate.js +143 -21
  82. package/dist/commands/workflow-node-validate.js.map +1 -1
  83. package/dist/commands/workflow-node.d.ts.map +1 -1
  84. package/dist/commands/workflow-node.js +359 -116
  85. package/dist/commands/workflow-node.js.map +1 -1
  86. package/dist/commands/workflow-numbering.d.ts.map +1 -1
  87. package/dist/commands/workflow-numbering.js +73 -34
  88. package/dist/commands/workflow-numbering.js.map +1 -1
  89. package/dist/commands/workflow-operator-sign.d.ts +10 -0
  90. package/dist/commands/workflow-operator-sign.d.ts.map +1 -1
  91. package/dist/commands/workflow-operator-sign.js +40 -53
  92. package/dist/commands/workflow-operator-sign.js.map +1 -1
  93. package/dist/commands/workflow-plan-range.d.ts +10 -0
  94. package/dist/commands/workflow-plan-range.d.ts.map +1 -1
  95. package/dist/commands/workflow-plan-range.js +15 -54
  96. package/dist/commands/workflow-plan-range.js.map +1 -1
  97. package/dist/commands/workflow-segment.d.ts.map +1 -1
  98. package/dist/commands/workflow-segment.js +22 -14
  99. package/dist/commands/workflow-segment.js.map +1 -1
  100. package/dist/commands/workflow.d.ts.map +1 -1
  101. package/dist/commands/workflow.js +13 -69
  102. package/dist/commands/workflow.js.map +1 -1
  103. package/dist/index.js +15 -0
  104. package/dist/index.js.map +1 -1
  105. package/dist/services/actionflow/build_workflow_draft.d.ts +6 -0
  106. package/dist/services/actionflow/build_workflow_draft.d.ts.map +1 -1
  107. package/dist/services/actionflow/build_workflow_draft.js +63 -4
  108. package/dist/services/actionflow/build_workflow_draft.js.map +1 -1
  109. package/dist/services/actionflow/calendar_mapper.d.ts +2 -2
  110. package/dist/services/actionflow/calendar_mapper.d.ts.map +1 -1
  111. package/dist/services/actionflow/calendar_mapper.js +33 -13
  112. package/dist/services/actionflow/calendar_mapper.js.map +1 -1
  113. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  114. package/dist/services/actionflow/components/action_eb_add.js +13 -1
  115. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  116. package/dist/services/actionflow/components/action_eb_delete.js +2 -2
  117. package/dist/services/actionflow/components/action_eb_delete.js.map +1 -1
  118. package/dist/services/actionflow/components/action_eb_recover.js +2 -2
  119. package/dist/services/actionflow/components/action_eb_recover.js.map +1 -1
  120. package/dist/services/actionflow/components/action_eb_save_version.js +2 -2
  121. package/dist/services/actionflow/components/action_eb_save_version.js.map +1 -1
  122. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  123. package/dist/services/actionflow/components/action_eb_update.js +15 -3
  124. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  125. package/dist/services/actionflow/components/action_eb_update_compiler.js +5 -5
  126. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  127. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
  128. package/dist/services/actionflow/components/approve_create.js +5 -2
  129. package/dist/services/actionflow/components/approve_create.js.map +1 -1
  130. package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -1
  131. package/dist/services/actionflow/components/approve_trigger.js +5 -0
  132. package/dist/services/actionflow/components/approve_trigger.js.map +1 -1
  133. package/dist/services/actionflow/components/date_trigger.d.ts.map +1 -1
  134. package/dist/services/actionflow/components/date_trigger.js +14 -1
  135. package/dist/services/actionflow/components/date_trigger.js.map +1 -1
  136. package/dist/services/actionflow/components/dml_execute.d.ts.map +1 -1
  137. package/dist/services/actionflow/components/dml_execute.js +18 -10
  138. package/dist/services/actionflow/components/dml_execute.js.map +1 -1
  139. package/dist/services/actionflow/components/document_actions.js +5 -5
  140. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  141. package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
  142. package/dist/services/actionflow/components/eb_get_data_by_id.js +8 -6
  143. package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
  144. package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
  145. package/dist/services/actionflow/components/enquiry_form.js +28 -9
  146. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  147. package/dist/services/actionflow/components/hrm_actions.d.ts.map +1 -1
  148. package/dist/services/actionflow/components/hrm_actions.js +34 -13
  149. package/dist/services/actionflow/components/hrm_actions.js.map +1 -1
  150. package/dist/services/actionflow/components/index.js +3 -3
  151. package/dist/services/actionflow/components/index.js.map +1 -1
  152. package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -1
  153. package/dist/services/actionflow/components/inner_mq_send.js +43 -4
  154. package/dist/services/actionflow/components/inner_mq_send.js.map +1 -1
  155. package/dist/services/actionflow/components/meeting_create.js +9 -9
  156. package/dist/services/actionflow/components/meeting_create.js.map +1 -1
  157. package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
  158. package/dist/services/actionflow/components/multiple_execution.js +83 -4
  159. package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
  160. package/dist/services/actionflow/components/output.d.ts +3 -2
  161. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  162. package/dist/services/actionflow/components/output.js +33 -0
  163. package/dist/services/actionflow/components/output.js.map +1 -1
  164. package/dist/services/actionflow/components/schedule_create.js +10 -10
  165. package/dist/services/actionflow/components/schedule_create.js.map +1 -1
  166. package/dist/services/actionflow/components/send_message.js +1 -1
  167. package/dist/services/actionflow/components/send_message.js.map +1 -1
  168. package/dist/services/actionflow/components/simple_scheduler.d.ts.map +1 -1
  169. package/dist/services/actionflow/components/simple_scheduler.js +42 -9
  170. package/dist/services/actionflow/components/simple_scheduler.js.map +1 -1
  171. package/dist/services/actionflow/components/time_batch_trigger.d.ts.map +1 -1
  172. package/dist/services/actionflow/components/time_batch_trigger.js +43 -13
  173. package/dist/services/actionflow/components/time_batch_trigger.js.map +1 -1
  174. package/dist/services/actionflow/components/workflow_actions.d.ts +0 -1
  175. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  176. package/dist/services/actionflow/components/workflow_actions.js +21 -27
  177. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  178. package/dist/services/actionflow/context_preflight.d.ts +31 -2
  179. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  180. package/dist/services/actionflow/context_preflight.js +179 -4
  181. package/dist/services/actionflow/context_preflight.js.map +1 -1
  182. package/dist/services/actionflow/design_client.d.ts +4 -0
  183. package/dist/services/actionflow/design_client.d.ts.map +1 -1
  184. package/dist/services/actionflow/design_client.js +10 -0
  185. package/dist/services/actionflow/design_client.js.map +1 -1
  186. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  187. package/dist/services/actionflow/dynamic_resources.js +10 -3
  188. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  189. package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -1
  190. package/dist/services/actionflow/enrich_approve_trigger.js +18 -3
  191. package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -1
  192. package/dist/services/actionflow/formula_service.d.ts +1 -1
  193. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  194. package/dist/services/actionflow/formula_service.js +135 -12
  195. package/dist/services/actionflow/formula_service.js.map +1 -1
  196. package/dist/services/actionflow/generation_service.d.ts.map +1 -1
  197. package/dist/services/actionflow/generation_service.js +18 -2
  198. package/dist/services/actionflow/generation_service.js.map +1 -1
  199. package/dist/services/actionflow/preflight_service.d.ts +1 -1
  200. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  201. package/dist/services/actionflow/preflight_service.js +194 -6
  202. package/dist/services/actionflow/preflight_service.js.map +1 -1
  203. package/dist/services/actionflow/save_workflow_draft.d.ts +8 -0
  204. package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
  205. package/dist/services/actionflow/save_workflow_draft.js +6 -2
  206. package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
  207. package/dist/services/actionflow/update_service.d.ts +6 -0
  208. package/dist/services/actionflow/update_service.d.ts.map +1 -1
  209. package/dist/services/actionflow/update_service.js +125 -7
  210. package/dist/services/actionflow/update_service.js.map +1 -1
  211. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  212. package/dist/services/actionflow/workflow_compiler.js +17 -9
  213. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  214. package/dist/services/browser.d.ts +34 -0
  215. package/dist/services/browser.d.ts.map +1 -0
  216. package/dist/services/browser.js +57 -0
  217. package/dist/services/browser.js.map +1 -0
  218. package/dist/services/esb-interface/document-parser.d.ts +5 -0
  219. package/dist/services/esb-interface/document-parser.d.ts.map +1 -1
  220. package/dist/services/esb-interface/document-parser.js +117 -1
  221. package/dist/services/esb-interface/document-parser.js.map +1 -1
  222. package/dist/services/esb-interface/importer.d.ts.map +1 -1
  223. package/dist/services/esb-interface/importer.js +7 -2
  224. package/dist/services/esb-interface/importer.js.map +1 -1
  225. package/dist/services/field-props-data.d.ts +56 -0
  226. package/dist/services/field-props-data.d.ts.map +1 -0
  227. package/dist/services/field-props-data.js +732 -0
  228. package/dist/services/field-props-data.js.map +1 -0
  229. package/dist/services/form-edit-base.d.ts +45 -0
  230. package/dist/services/form-edit-base.d.ts.map +1 -0
  231. package/dist/services/form-edit-base.js +76 -0
  232. package/dist/services/form-edit-base.js.map +1 -0
  233. package/dist/services/form-field-drop.d.ts +41 -0
  234. package/dist/services/form-field-drop.d.ts.map +1 -0
  235. package/dist/services/form-field-drop.js +58 -0
  236. package/dist/services/form-field-drop.js.map +1 -0
  237. package/dist/services/form-style-template.d.ts +17 -0
  238. package/dist/services/form-style-template.d.ts.map +1 -0
  239. package/dist/services/form-style-template.js +102 -0
  240. package/dist/services/form-style-template.js.map +1 -0
  241. package/dist/services/form-virtual.d.ts +60 -0
  242. package/dist/services/form-virtual.d.ts.map +1 -0
  243. package/dist/services/form-virtual.js +331 -0
  244. package/dist/services/form-virtual.js.map +1 -0
  245. package/dist/services/report/analyze.d.ts +67 -0
  246. package/dist/services/report/analyze.d.ts.map +1 -0
  247. package/dist/services/report/analyze.js +173 -0
  248. package/dist/services/report/analyze.js.map +1 -0
  249. package/dist/services/report/build.d.ts +166 -0
  250. package/dist/services/report/build.d.ts.map +1 -0
  251. package/dist/services/report/build.js +520 -0
  252. package/dist/services/report/build.js.map +1 -0
  253. package/dist/services/report/constants.d.ts +145 -0
  254. package/dist/services/report/constants.d.ts.map +1 -0
  255. package/dist/services/report/constants.js +250 -0
  256. package/dist/services/report/constants.js.map +1 -0
  257. package/dist/services/report/dataset.d.ts +73 -0
  258. package/dist/services/report/dataset.d.ts.map +1 -0
  259. package/dist/services/report/dataset.js +185 -0
  260. package/dist/services/report/dataset.js.map +1 -0
  261. package/dist/services/report/fields.d.ts +80 -0
  262. package/dist/services/report/fields.d.ts.map +1 -0
  263. package/dist/services/report/fields.js +245 -0
  264. package/dist/services/report/fields.js.map +1 -0
  265. package/dist/services/report/forms.d.ts +70 -0
  266. package/dist/services/report/forms.d.ts.map +1 -0
  267. package/dist/services/report/forms.js +237 -0
  268. package/dist/services/report/forms.js.map +1 -0
  269. package/dist/services/report/guard.d.ts +73 -0
  270. package/dist/services/report/guard.d.ts.map +1 -0
  271. package/dist/services/report/guard.js +262 -0
  272. package/dist/services/report/guard.js.map +1 -0
  273. package/dist/services/report/http.d.ts +118 -0
  274. package/dist/services/report/http.d.ts.map +1 -0
  275. package/dist/services/report/http.js +159 -0
  276. package/dist/services/report/http.js.map +1 -0
  277. package/dist/services/report/lifecycle.d.ts +107 -0
  278. package/dist/services/report/lifecycle.d.ts.map +1 -0
  279. package/dist/services/report/lifecycle.js +323 -0
  280. package/dist/services/report/lifecycle.js.map +1 -0
  281. package/dist/services/report/permission.d.ts +59 -0
  282. package/dist/services/report/permission.d.ts.map +1 -0
  283. package/dist/services/report/permission.js +286 -0
  284. package/dist/services/report/permission.js.map +1 -0
  285. package/dist/services/report/query-checks.d.ts +124 -0
  286. package/dist/services/report/query-checks.d.ts.map +1 -0
  287. package/dist/services/report/query-checks.js +374 -0
  288. package/dist/services/report/query-checks.js.map +1 -0
  289. package/dist/services/report/query.d.ts +106 -0
  290. package/dist/services/report/query.d.ts.map +1 -0
  291. package/dist/services/report/query.js +278 -0
  292. package/dist/services/report/query.js.map +1 -0
  293. package/dist/services/report/render.d.ts +52 -0
  294. package/dist/services/report/render.d.ts.map +1 -0
  295. package/dist/services/report/render.js +138 -0
  296. package/dist/services/report/render.js.map +1 -0
  297. package/dist/services/report/reports.d.ts +110 -0
  298. package/dist/services/report/reports.d.ts.map +1 -0
  299. package/dist/services/report/reports.js +179 -0
  300. package/dist/services/report/reports.js.map +1 -0
  301. package/dist/services/report/safe-save.d.ts +57 -0
  302. package/dist/services/report/safe-save.d.ts.map +1 -0
  303. package/dist/services/report/safe-save.js +325 -0
  304. package/dist/services/report/safe-save.js.map +1 -0
  305. package/dist/services/report/sources.d.ts +48 -0
  306. package/dist/services/report/sources.d.ts.map +1 -0
  307. package/dist/services/report/sources.js +147 -0
  308. package/dist/services/report/sources.js.map +1 -0
  309. package/dist/services/report/types.d.ts +312 -0
  310. package/dist/services/report/types.d.ts.map +1 -0
  311. package/dist/services/report/types.js +2 -0
  312. package/dist/services/report/types.js.map +1 -0
  313. package/dist/services/report/validate.d.ts +169 -0
  314. package/dist/services/report/validate.d.ts.map +1 -0
  315. package/dist/services/report/validate.js +685 -0
  316. package/dist/services/report/validate.js.map +1 -0
  317. package/dist/services/report/verify.d.ts +72 -0
  318. package/dist/services/report/verify.d.ts.map +1 -0
  319. package/dist/services/report/verify.js +441 -0
  320. package/dist/services/report/verify.js.map +1 -0
  321. package/dist/services/report/workbook.d.ts +108 -0
  322. package/dist/services/report/workbook.d.ts.map +1 -0
  323. package/dist/services/report/workbook.js +471 -0
  324. package/dist/services/report/workbook.js.map +1 -0
  325. package/dist/services/rich-types.d.ts +39 -0
  326. package/dist/services/rich-types.d.ts.map +1 -1
  327. package/dist/services/rich-types.js +78 -30
  328. package/dist/services/rich-types.js.map +1 -1
  329. package/dist/services/workflow-node-layout.d.ts +214 -0
  330. package/dist/services/workflow-node-layout.d.ts.map +1 -0
  331. package/dist/services/workflow-node-layout.js +338 -0
  332. package/dist/services/workflow-node-layout.js.map +1 -0
  333. package/dist/services/workflow-operator.d.ts +47 -2
  334. package/dist/services/workflow-operator.d.ts.map +1 -1
  335. package/dist/services/workflow-operator.js +102 -5
  336. package/dist/services/workflow-operator.js.map +1 -1
  337. package/dist/services/workflow-overtime.d.ts +95 -0
  338. package/dist/services/workflow-overtime.d.ts.map +1 -0
  339. package/dist/services/workflow-overtime.js +207 -0
  340. package/dist/services/workflow-overtime.js.map +1 -0
  341. package/dist/services/workflow-plan-range.d.ts +18 -0
  342. package/dist/services/workflow-plan-range.d.ts.map +1 -0
  343. package/dist/services/workflow-plan-range.js +72 -0
  344. package/dist/services/workflow-plan-range.js.map +1 -0
  345. package/package.json +3 -2
  346. package/skill-docs/SKILL.md +277 -261
  347. package/skill-docs/_catalog.md +77 -66
  348. package/skill-docs/actionflows/SKILL.md +22 -14
  349. package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +17 -17
  350. package/skill-docs/actionflows/references/components/calendar/ScheduleCreate.md +17 -17
  351. package/skill-docs/actionflows/references/components/database/DMLExecute.md +3 -3
  352. package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +32 -17
  353. package/skill-docs/actionflows/references/components/ebuilder/EbGetDataById.md +17 -17
  354. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +6 -0
  355. package/skill-docs/actionflows/references/components/ebuilder/EventFormData.md +2 -0
  356. package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -17
  357. package/skill-docs/actionflows/references/components/logic/Output.md +28 -17
  358. package/skill-docs/actionflows/references/components/message/InnerMQSend.md +6 -2
  359. package/skill-docs/actionflows/references/components/personnel/AlterPersonStatus.md +30 -30
  360. package/skill-docs/actionflows/references/components/personnel/HrmEmployeeUpdate.md +32 -32
  361. package/skill-docs/actionflows/references/components/trigger/InnerMQListener.md +41 -40
  362. package/skill-docs/actionflows/references/components/trigger/SimpleScheduler.md +19 -17
  363. package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +17 -17
  364. package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +19 -17
  365. package/skill-docs/actionflows/references/components/workflow/ApproveEntrust.md +19 -17
  366. package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +17 -17
  367. package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +99 -84
  368. package/skill-docs/actionflows/references/dynamic_capability_matrix.md +39 -0
  369. package/skill-docs/references/common/guide-plan-template.md +251 -233
  370. package/skill-docs/references/common/ref-cli-commands.md +519 -373
  371. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +1 -1
  372. package/skill-docs/references/ebuilder-designer/guide-designer-factory.md +460 -460
  373. package/skill-docs/references/ebuilder-designer/guide-designer.md +4 -4
  374. package/skill-docs/references/form/guide-create-form.md +232 -214
  375. package/skill-docs/references/form/guide-form-association.md +1 -1
  376. package/skill-docs/references/form/guide-form-view.md +318 -318
  377. package/skill-docs/references/form/guide-virtual-form.md +156 -0
  378. package/skill-docs/references/form/ref-form-fields.md +239 -99
  379. package/skill-docs/references/form/style-templates.md +80 -27
  380. package/skill-docs/references/report/add-dataset-registration-guide.md +139 -0
  381. package/skill-docs/references/report/ai-report-workflow.md +412 -0
  382. package/skill-docs/references/report/api-report-build-fast-path.md +275 -0
  383. package/skill-docs/references/report/app-datasource-lookup-guide.md +230 -0
  384. package/skill-docs/references/report/cell-config-echo-guide.md +163 -0
  385. package/skill-docs/references/report/cell-transform-guide.md +147 -0
  386. package/skill-docs/references/report/condition-format-guide.md +140 -0
  387. package/skill-docs/references/report/cross-dataset-filter-guide.md +304 -0
  388. package/skill-docs/references/report/dataset-query-filter-guide.md +235 -0
  389. package/skill-docs/references/report/dataset-sidebar-ops-guide.md +280 -0
  390. package/skill-docs/references/report/dataset-table-field-contract-guide.md +339 -0
  391. package/skill-docs/references/report/datasource-metadata-guide.md +365 -0
  392. package/skill-docs/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  393. package/skill-docs/references/report/date-range-query-reference.md +102 -0
  394. package/skill-docs/references/report/default-header-style-guide.md +70 -0
  395. package/skill-docs/references/report/designer-blank-prevention-guide.md +111 -0
  396. package/skill-docs/references/report/event-hreflink-guide.md +184 -0
  397. package/skill-docs/references/report/field-bind-exact-match-guide.md +208 -0
  398. package/skill-docs/references/report/formula-cell-api-guide.md +258 -0
  399. package/skill-docs/references/report/guide-report-build.md +131 -0
  400. package/skill-docs/references/report/guide-report-modify.md +100 -0
  401. package/skill-docs/references/report/guide-report-multisource.md +143 -0
  402. package/skill-docs/references/report/guide-report-query.md +98 -0
  403. package/skill-docs/references/report/hidden-row-and-header-merge-guide.md +100 -0
  404. package/skill-docs/references/report/layout-showlocation-freeze-guide.md +167 -0
  405. package/skill-docs/references/report/preaggregate-auto-disable-guide.md +107 -0
  406. package/skill-docs/references/report/query-condition-api-guide.md +890 -0
  407. package/skill-docs/references/report/ref-report-commands.md +122 -0
  408. package/skill-docs/references/report/ref-report-pitfalls.md +226 -0
  409. package/skill-docs/references/report/report-baseinfo-defaults-guide.md +117 -0
  410. package/skill-docs/references/report/report-building-guide.md +511 -0
  411. package/skill-docs/references/report/report-config-schema.md +445 -0
  412. package/skill-docs/references/report/report-create-modes-guide.md +182 -0
  413. package/skill-docs/references/report/report-data-model.md +447 -0
  414. package/skill-docs/references/report/report-delivery-contract.md +101 -0
  415. package/skill-docs/references/report/report-designer-feature-map.md +500 -0
  416. package/skill-docs/references/report/report-internal-error-guide.md +78 -0
  417. package/skill-docs/references/report/report-knowledge-base.md +389 -0
  418. package/skill-docs/references/report/report-lifecycle-api-guide.md +392 -0
  419. package/skill-docs/references/report/report-list-page-ops-guide.md +191 -0
  420. package/skill-docs/references/report/report-permission-guide.md +365 -0
  421. package/skill-docs/references/report/report-requirement-analysis-template.md +202 -0
  422. package/skill-docs/references/report/report-self-check-guide.md +164 -0
  423. package/skill-docs/references/report/safe-partial-save-guide.md +151 -0
  424. package/skill-docs/references/report/snowflake-id-precision-guide.md +84 -0
  425. package/skill-docs/references/report/spec-build-schema.md +291 -0
  426. package/skill-docs/references/report/targeted-fix-guide.md +97 -0
  427. package/skill-docs/references/report/user-request-scope-only-guide.md +82 -0
  428. package/skill-docs/references/workflow/guide-workflow-auth-resp.md +190 -0
  429. package/skill-docs/references/workflow/guide-workflow-node-layout.md +181 -0
  430. package/skill-docs/references/workflow/guide-workflow.md +7 -3
  431. package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +0 -17
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-virtual.js","sourceRoot":"","sources":["../../src/commands/form-virtual.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  import { Command } from 'commander';
2
+ /** 可用的字段类型 = 基础组件(CK_CANON 的值)∪ 富组件(RICH_TYPE_MAP 的键)∪ 上述补充。
3
+ * 导出仅为让测试能盯住"平台支持的合法类型不许漏登记"(漏了会被 assertFieldType 误杀)。 */
4
+ export declare const FIELD_TYPE_CHOICES: string[];
2
5
  export declare function registerFormCommands(program: Command): Command;
3
6
  //# sourceMappingURL=form.d.ts.map
@@ -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;AAuEpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA6nG9D"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/commands/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CpC;0DAC0D;AAC1D,eAAO,MAAM,kBAAkB,EAAE,MAAM,EAI7B,CAAC;AAwHX,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA4vG9D"}
@@ -4,7 +4,9 @@ import { ApiClient } from '../core/client.js';
4
4
  import { toColumnName, toTableName } from '../utils/column-name.js';
5
5
  import { createCustomPhysicalForm, addInitialFieldsToCustomPhysicalForm, placeholderFromFormat, reapplyGroupLayout } from '../services/form-create.js';
6
6
  import { FormSubDetailService } from '../services/form-sub-detail.js';
7
- import { getRichType, richIdUnits } from '../services/rich-types.js';
7
+ import { RICH_TYPE_MAP, getRichType, richIdUnits, BROWSER_KINDS } from '../services/rich-types.js';
8
+ import { dropFieldComponents, prepareLayoutForSave } from '../services/form-field-drop.js';
9
+ import { describeEditBaseFailure, resolveEditBase as resolveEditBasePure } from '../services/form-edit-base.js';
8
10
  import { registerOptionTemplateCommand } from './form-option-template.js';
9
11
  /**
10
12
  * componentKey 大小写归一:用户/示例常写 "Textarea"/"Ebuilder" 等小写变体,但代码各处
@@ -23,6 +25,62 @@ const CK_CANON = {
23
25
  function canonComponentKey(ck) {
24
26
  return CK_CANON[String(ck).toLowerCase()] || ck;
25
27
  }
28
+ /**
29
+ * 代码里另有分支/别名、不在 CK_CANON 与 RICH_TYPE_MAP 两处的字段类型。
30
+ * **宁宽勿窄**:多列一个只是照旧送服务器,漏一个会把合法类型误杀,所以这里尽量收全。
31
+ * 新增字段类型时记得同步。
32
+ */
33
+ const EXTRA_FIELD_TYPES = [
34
+ 'Flow', 'SelectMultiple', 'DateInterval', 'ColorPicker', 'DataTable',
35
+ 'DocFolder', 'DocFloder', 'Fold', 'Placeholder', 'Sharer', 'FileComponent',
36
+ 'EbuilderAppTag', 'Attachment', 'Image', 'Signature', 'RichText', 'RelateBrowser',
37
+ // EInvoice 电子发票:下方 add-field 有专属构建分支(isSingle/invoiceType),此前漏登记 →
38
+ // 被 assertFieldType 挡成死代码。AudioRecord/VideoRecord 语音视频:极简 jsonObj,平台原样透传
39
+ // (见 rich-types.ts 的说明),无需富组件模板。
40
+ 'EInvoice', 'AudioRecord', 'VideoRecord',
41
+ ];
42
+ /** 可用的字段类型 = 基础组件(CK_CANON 的值)∪ 富组件(RICH_TYPE_MAP 的键)∪ 上述补充。
43
+ * 导出仅为让测试能盯住"平台支持的合法类型不许漏登记"(漏了会被 assertFieldType 误杀)。 */
44
+ export const FIELD_TYPE_CHOICES = [...new Set([
45
+ ...Object.values(CK_CANON),
46
+ ...Object.keys(RICH_TYPE_MAP),
47
+ ...EXTRA_FIELD_TYPES,
48
+ ])].sort();
49
+ /**
50
+ * 校验字段类型名。不校验的话错类型会**直送服务器**,换回一段
51
+ * `Cannot invoke "ComponentType.name()" because ... getComponentKey() is null`——
52
+ * 既看不出哪错了,也看不出该填什么。这里先拦下来并列出可选值。
53
+ */
54
+ function assertFieldType(fieldType, where = '') {
55
+ if (FIELD_TYPE_CHOICES.includes(fieldType))
56
+ return;
57
+ console.error(`${where}不支持的字段类型: ${fieldType}`);
58
+ console.error(` 可选: ${FIELD_TYPE_CHOICES.join(' / ')}`);
59
+ process.exit(1);
60
+ }
61
+ /**
62
+ * 校验选项定义。**键名必须是 `name` / `valueKey`**——写成 `{value,label}` 这类
63
+ * 不会被拦下,而是静默存成「没有名字的选项」(平台侧 fieldOptionName 为空),
64
+ * 之后 `form data add` 按选项名写数据会直接失效,且读回也看不出哪里错了。
65
+ */
66
+ function assertFieldOptions(fieldName, options) {
67
+ options.forEach((o, i) => {
68
+ if (typeof o === 'string')
69
+ return; // 字符串简写,归一化时会补成 {name}
70
+ const where = `字段「${fieldName}」第 ${i + 1} 个选项`;
71
+ if (typeof o?.name !== 'string' || !o.name.trim()) {
72
+ const got = o && typeof o === 'object' ? Object.keys(o).join(' / ') : String(o);
73
+ console.error(`${where}缺少 name(收到键:${got || '(无)'})`);
74
+ console.error(' 正确写法: {"name":"待入职","valueKey":"1"}(valueKey 省略则由平台生成)');
75
+ process.exit(1);
76
+ }
77
+ const vk = o.valueKey;
78
+ if (vk !== undefined && vk !== null && String(vk) !== '' && !/^\d+$/.test(String(vk))) {
79
+ console.error(`${where}的 valueKey「${vk}」必须是数字(平台规范,下游按数字引用)`);
80
+ process.exit(1);
81
+ }
82
+ });
83
+ }
26
84
  const SYSTEM_FIELD_IDS = new Set([
27
85
  'name', 'creator', 'create_time', 'update_time', 'id',
28
86
  'updater', 'data_status', 'flow_status', 'current_step',
@@ -61,6 +119,38 @@ function defaultEBuilderDataTitle(fields) {
61
119
  const byName = biz.find((f) => String(f.fieldName ?? f.title ?? '').includes('名称'));
62
120
  return byName?.fieldId || biz[0]?.fieldId || 'name';
63
121
  }
122
+ /**
123
+ * 只读地看一眼 `getFields` 眼里这个字段长什么样 —— **仅用于把错误信息说清楚,绝不作为写回基底**。
124
+ *
125
+ * `getFields` 的 `fieldKey` 是粗粒度的:CLI 不认识的字段类型(如「文档赋权对象」)一律报 `Text`,
126
+ * 拿它当 `type` 回写就会把真实类型改掉。
127
+ */
128
+ async function peekViaGetFields(client, baseUrl, objId, fieldId, auth) {
129
+ try {
130
+ const res = await client.post(`${baseUrl}/api/ebuilder/form/dataset/v1/getFields`, {
131
+ objId, userid: auth.userId, tenantKey: auth.tenantKey,
132
+ });
133
+ const all = [...(res?.data?.mainFields || []), ...(res?.data?.subFields || [])];
134
+ return all.find((f) => String(f.fieldId) === String(fieldId)) || null;
135
+ }
136
+ catch {
137
+ return null;
138
+ }
139
+ }
140
+ /**
141
+ * 读 `getFormFieldPage` 的字段记录(扁平形态)。
142
+ *
143
+ * 单独抽出来是为了让「读不到 → 中止」这条路清晰:**失败要能被调用方看见**,
144
+ * 不能吞掉之后改走别的接口重建一个定义。
145
+ */
146
+ async function fetchFieldPageRecords(client, baseUrl, appId, formId) {
147
+ const r = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/getFormFieldPage?apid=${appId}`, {
148
+ pageNo: 1, pageSize: 500, module: 'ebuilderform',
149
+ customParam: { appId },
150
+ formFieldSearchEntity: { isDelete: 0, status: 'enable', formId },
151
+ }, { ebbusinessid: formId });
152
+ return r?.data?.pageDatas?.result || r?.data?.data?.records || r?.data?.data || [];
153
+ }
64
154
  export function registerFormCommands(program) {
65
155
  const form = program.command('form').description('表单管理');
66
156
  registerOptionTemplateCommand(form, program);
@@ -255,7 +345,10 @@ export function registerFormCommands(program) {
255
345
  .description('创建表单')
256
346
  .argument('<appId>', '应用 ID')
257
347
  .argument('<name>', '表单名称')
258
- .requiredOption('--fields <json>', '字段定义 JSON 文件路径(如 @fields.json),格式:[{"componentKey":"Text","fieldName":"姓名"}]')
348
+ .requiredOption('--fields <json>', '字段定义 JSON 文件路径(**必须 @ 开头**,如 @fields.json)。格式:'
349
+ + '[{"componentKey":"Text","fieldName":"姓名"}];Select 的选项写 '
350
+ + 'options 或 fieldOptions:[{"name":"待入职","valueKey":"1"}](键名必须是 name / valueKey,'
351
+ + 'valueKey 须为数字、省略则平台生成)')
259
352
  .option('--menu', '建表后添加台账菜单(默认不加;漏加可用 `e10-cli menu add-table` 补)')
260
353
  .option('--layout <type>', '表单布局类型:FLOW(流式)/EXCEL(表格,缺省)。布局类型建表后不可切换', 'EXCEL')
261
354
  .action(async (appId, name, cmdOpts) => {
@@ -295,27 +388,28 @@ export function registerFormCommands(program) {
295
388
  // componentKey 大小写归一(canonComponentKey):用户/示例常写 "Textarea"/"Ebuilder" 等,
296
389
  // 但 storageFieldType 与各 `=== 'TextArea'` 分支按 canonical 大小写匹配,不归一会导致 type 存成
297
390
  // 小写 "Textarea"(FLOW 渲染异常)、TextArea 分支(content/maxLen)漏跑。
298
- fieldDefs = fieldDefs.map((f) => {
299
- const out = { ...f };
391
+ // 归一化 + 就地校验(类型名/选项键名)。顶层与明细子字段共用,避免两边校验不一致。
392
+ const normalizeFieldDef = (raw) => {
393
+ const out = { ...raw };
300
394
  if (!out.componentKey && out.fieldType)
301
395
  out.componentKey = out.fieldType;
302
396
  if (out.componentKey)
303
397
  out.componentKey = canonComponentKey(out.componentKey);
398
+ const label = out.fieldName || out.title || '(未命名)';
399
+ assertFieldType(out.componentKey || '', `字段「${label}」`);
304
400
  if (Array.isArray(out.options) && !out.fieldOptions) {
305
401
  out.fieldOptions = out.options.map((o) => typeof o === 'string' ? { name: o } : o);
306
402
  }
307
- // DetailTable 子字段的 options 同样归一化:之前只转顶层,子表 Select 用 options 简写时
403
+ if (Array.isArray(out.fieldOptions))
404
+ assertFieldOptions(label, out.fieldOptions);
405
+ return out;
406
+ };
407
+ fieldDefs = fieldDefs.map((f) => {
408
+ const out = normalizeFieldDef(f);
409
+ // DetailTable 子字段同样归一化:之前只转顶层,子表 Select 用 options 简写时
308
410
  // Step 7b 找不到 fieldOptions,子表选项配不上(布局 + 选项配置两处都依赖 fieldOptions)
309
411
  if (out.componentKey === 'DetailTable' && Array.isArray(out.formFields)) {
310
- out.formFields = out.formFields.map((sf) => {
311
- const so = { ...sf };
312
- if (so.componentKey)
313
- so.componentKey = canonComponentKey(so.componentKey);
314
- if (Array.isArray(so.options) && !so.fieldOptions) {
315
- so.fieldOptions = so.options.map((o) => typeof o === 'string' ? { name: o } : o);
316
- }
317
- return so;
318
- });
412
+ out.formFields = out.formFields.map((sf) => normalizeFieldDef(sf));
319
413
  }
320
414
  return out;
321
415
  });
@@ -2043,7 +2137,7 @@ export function registerFormCommands(program) {
2043
2137
  .option('--sform-id <id>', '关联的目标表单 objId(仅 EBuilder 类型)')
2044
2138
  .option('--data-title <field>', '目标表单的显示字段名(仅 EBuilder;缺省 name=目标表含"名称"的字段,无则第一个业务字段)')
2045
2139
  .option('--form-name <name>', '目标表单名称(仅 EBuilder 类型,可选)')
2046
- .option('--browser-type <type>', '通用浏览类型:workflow、hrcontract、form、role、archive')
2140
+ .option('--browser-type <type>', `通用浏览类型:${BROWSER_KINDS.join('、')}`)
2047
2141
  .option('--browser-form-source <source>', '表单浏览数据源:business 或 ebuilder(仅 --browser-type form)')
2048
2142
  .option('--format <fmt>', '日期精度格式(Date/DateTime/DateRange),如 yyyy-MM-dd、yyyy-MM-dd HH:mm')
2049
2143
  .option('--min-field <field>', 'Date/DateTime 日期限制:最早不得早于该字段(字段名,min.dateField)')
@@ -2062,6 +2156,9 @@ export function registerFormCommands(program) {
2062
2156
  // fieldType 大小写归一(与建表一致):用户常传 "Textarea"/"Ebuilder",不归一则 type 存小写
2063
2157
  // "Textarea"(FLOW 渲染异常)、TextArea 分支漏跑。
2064
2158
  fieldType = canonComponentKey(fieldType);
2159
+ // 先本地拦错类型:否则会直送服务器,换回一段 Java 异常(ComponentType.name() ... null),
2160
+ // 既看不出哪错了也看不出该填什么。
2161
+ assertFieldType(fieldType, 'add-field ');
2065
2162
  const opts = program.opts();
2066
2163
  const auth = await AuthSession.fromOptions(opts);
2067
2164
  if (!auth)
@@ -2564,6 +2661,8 @@ export function registerFormCommands(program) {
2564
2661
  .argument('<appId>', '应用 ID')
2565
2662
  .argument('<fieldId>', '字段 ID')
2566
2663
  .option('--title <title>', '修改字段标题')
2664
+ .option('--type <type>', '修改字段类型(如 Text/Number/Date/Select/Department;取值同 form add-field 的 <fieldType>)。'
2665
+ + '⚠ 字段已有数据时平台会拒绝')
2567
2666
  .option('--required', '设为必填')
2568
2667
  .option('--no-required', '取消必填')
2569
2668
  .option('--sform-id <id>', 'EBuilder 关联的目标表单 objId(更新关联)')
@@ -2609,48 +2708,35 @@ export function registerFormCommands(program) {
2609
2708
  }
2610
2709
  // Get formTableId for the payload
2611
2710
  const formTableId = formInfo?.formTableId || '';
2612
- // Try to get current field config, but if it fails (e.g. workflow sub-table),
2613
- // construct a minimal jsonObj from known parameters
2614
- let jsonObj = null;
2615
- try {
2616
- const fieldDetailRes = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/getFormFieldPage?apid=${appId}`, {
2617
- pageNo: 1, pageSize: 200, module: 'ebuilderform',
2618
- customParam: { appId },
2619
- formFieldSearchEntity: { isDelete: 0, status: 'enable', formId },
2620
- }, { ebbusinessid: formId });
2621
- const records = fieldDetailRes?.data?.pageDatas?.result || fieldDetailRes?.data?.data?.records || fieldDetailRes?.data?.data || [];
2622
- const fieldDetail = records.find((r) => String(r.fieldId) === String(fieldId));
2623
- if (fieldDetail?.jsonObj) {
2624
- jsonObj = typeof fieldDetail.jsonObj === 'string'
2625
- ? JSON.parse(fieldDetail.jsonObj)
2626
- : fieldDetail.jsonObj;
2627
- if (fieldDetail.formId)
2628
- formId = fieldDetail.formId;
2629
- }
2630
- }
2631
- catch { /* fall through to minimal jsonObj */ }
2632
- if (!jsonObj) {
2633
- // Couldn't get field via getFormFieldPage — try getFields
2634
- const fieldsRes = await client.post(`${baseUrl}/api/ebuilder/form/dataset/v1/getFields`, {
2635
- objId: resolvedObjId, userid: auth.userId, tenantKey: auth.tenantKey,
2636
- });
2637
- const allFields = [...(fieldsRes?.data?.mainFields || []), ...(fieldsRes?.data?.subFields || [])];
2638
- const gf = allFields.find((f) => String(f.fieldId) === String(fieldId));
2639
- let colName = gf?.columnName || gf?.dataKey || '';
2640
- if (!colName || /[^\x00-\x7F]/.test(colName)) {
2641
- // 中文/空 columnName(getFields 对 EBuilder 不返回 columnName):用拼音首字母,
2642
- // 不用 fld_<id>(否则物理列变 fld_xxx,破坏"数据库字段名=首字母拼音"约定)
2643
- colName = toColumnName(String(gf?.fieldName || '')) || 'fld_' + fieldId.slice(-8);
2644
- }
2645
- jsonObj = {
2646
- type: gf?.fieldKey || gf?.fieldType || 'Text',
2647
- title: gf?.fieldName || '',
2648
- fieldId, formId, groupId: '-1',
2649
- formTableId: gf?.formTableId || formTableId,
2650
- showOrder: '0.00',
2651
- dataKey: colName, columnName: colName,
2652
- optionSerials: [],
2653
- };
2711
+ // 读当前字段配置,作为**写回基底**。
2712
+ // `saveFormFieldNew` 是全量覆盖:没带上的键会被服务端按默认值重置,所以基底必须尽量完整。
2713
+ // `getFormFieldPage` 返回的是**扁平记录**(属性直接铺平,没有嵌套 jsonObj),
2714
+ // 它本身就是该字段的属性集 —— 判定逻辑见 services/form-edit-base.ts。
2715
+ // **读不到就中止**,绝不用 getFields 拼一个最小定义顶上(那会把真实类型改成 Text)。
2716
+ const pageRecords = await fetchFieldPageRecords(client, baseUrl, appId, formId).catch(() => null);
2717
+ const baseResult = resolveEditBasePure(pageRecords, fieldId);
2718
+ if (!baseResult.ok) {
2719
+ const seen = await peekViaGetFields(client, baseUrl, resolvedObjId, fieldId, auth);
2720
+ console.error(`${describeEditBaseFailure(baseResult, fieldId)},已中止,未做任何改动。`);
2721
+ if (seen) {
2722
+ console.error(` getFields 里它被报成 type=${seen.fieldKey || seen.fieldType || '?'}` +
2723
+ `${seen.fieldName ? `(${seen.fieldName})` : ''} —— 这是粗粒度信息,` +
2724
+ '拿它回写会把真实类型改掉,所以 CLI 不这么做。');
2725
+ }
2726
+ console.error(' 该字段的类型可能是 CLI 暂不支持的(如「文档赋权对象」),请在表单设计器里维护。');
2727
+ process.exit(1);
2728
+ }
2729
+ const jsonObj = baseResult.base;
2730
+ if (pageRecords) {
2731
+ const rec = pageRecords.find((r) => String(r?.fieldId) === String(fieldId));
2732
+ if (rec?.formId)
2733
+ formId = rec.formId;
2734
+ }
2735
+ // 写回前的最后一道闸:没有 type 就绝不落库。
2736
+ // saveFormFieldNew 是全量覆盖,缺 type 会被服务端按默认类型(Text)补上。
2737
+ if (!jsonObj.type && !editOpts.type) {
2738
+ console.error(`读到的字段定义里没有 type(fieldId=${fieldId}),拒绝写回 —— 全量覆盖会把它改成默认类型。`);
2739
+ process.exit(1);
2654
2740
  }
2655
2741
  // 兜底补 componentKey:saveFormFieldNew 要求(getComponentKey() 为 null 会 NPE)。
2656
2742
  // getFields 兜底路径建不出 componentKey,这里按类型映射补上。
@@ -2667,6 +2753,54 @@ export function registerFormCommands(program) {
2667
2753
  if (editOpts.title) {
2668
2754
  jsonObj.title = editOpts.title;
2669
2755
  }
2756
+ // Apply type change(改字段类型)。
2757
+ // 平台走的就是这个接口:读回字段 jsonObj → 改 `type` → 原样回写,不需要删字段重建。
2758
+ // `type` 取值与 add-field 一致(CLI 规范名;富组件换成 platformType + componentKey),
2759
+ // 回读时对应显示为 `form read` 的 fieldKey(如 Number→NumberComponent)。
2760
+ // ⚠ 字段**已存在数据**时平台会拒绝改结构(报「此列已存在数据不可修改数据库字段名称」)。
2761
+ if (editOpts.type) {
2762
+ const targetType = canonComponentKey(editOpts.type);
2763
+ assertFieldType(targetType, 'edit-field ');
2764
+ // 关联类字段必须同时给目标表单,否则切出来的是个指不到东西的残缺字段
2765
+ if (['EBuilder', 'Flow'].includes(targetType) && !editOpts.sformId && targetType !== String(jsonObj.type)) {
2766
+ console.error(`改成 ${targetType} 需要同时指定 --sform-id <目标表 objId>(Flow 用流程绑定的表单 objId)`);
2767
+ process.exit(1);
2768
+ }
2769
+ if (targetType !== String(jsonObj.type)) {
2770
+ const richTarget = getRichType(targetType);
2771
+ jsonObj.type = richTarget ? richTarget.platformType : targetType;
2772
+ if (richTarget)
2773
+ jsonObj.componentKey = richTarget.platformComponentKey;
2774
+ // 旧类型残留的组件键会在回读时盖过新类型,清掉让平台按新 type 推导
2775
+ else
2776
+ delete jsonObj.componentKey;
2777
+ // 富组件还要补**附加配置**,否则改出来的字段是残缺的:
2778
+ // add-field 走的是同一张表的 build(),两边不一致会导致「新建的对、改类型的错」
2779
+ // (实测 Time:改出来缺 minuteStep/timePanelStyle/defaultExtend,earlyDate/lateDate
2780
+ // 还被平台兜底成 false,等于把时间选择器的可选范围锁死)。
2781
+ if (richTarget?.build) {
2782
+ const extra = richIdUnits(targetType, {}) - 1;
2783
+ let extraIds = [];
2784
+ if (extra > 0) {
2785
+ const extraRes = await client.post(`${baseUrl}/api/form/local/generatorIds?size=${extra}&apid=${appId}`, {});
2786
+ extraIds = (extraRes?.data?.generatorIds || []).map(String);
2787
+ }
2788
+ const extraCfg = await richTarget.build({
2789
+ // edit-field 没有 --format / --browser-* 选项:能带的只有 multiple,
2790
+ // 其余交给富组件模板的默认值(与 add-field 缺省时同一套默认)。
2791
+ def: { multiple: editOpts.multiple },
2792
+ fieldId,
2793
+ formId,
2794
+ formTableId,
2795
+ dataKey: String(jsonObj.dataKey || jsonObj.columnName || ''),
2796
+ columnName: String(jsonObj.columnName || jsonObj.dataKey || ''),
2797
+ showOrder: String(jsonObj.showOrder ?? '0.00'),
2798
+ extraIds,
2799
+ });
2800
+ Object.assign(jsonObj, extraCfg);
2801
+ }
2802
+ }
2803
+ }
2670
2804
  // Apply required
2671
2805
  if (editOpts.required) {
2672
2806
  jsonObj.required = true;
@@ -2818,6 +2952,8 @@ export function registerFormCommands(program) {
2818
2952
  const changes = [];
2819
2953
  if (editOpts.title)
2820
2954
  changes.push(`title="${editOpts.title}"`);
2955
+ if (editOpts.type)
2956
+ changes.push(`type=${editOpts.type}`);
2821
2957
  if (editOpts.required)
2822
2958
  changes.push('required');
2823
2959
  if (editOpts.noRequired)
@@ -2859,6 +2995,76 @@ export function registerFormCommands(program) {
2859
2995
  process.exit(1);
2860
2996
  }
2861
2997
  });
2998
+ form.command('delete-field')
2999
+ .description('删除表单字段(可批量)。**仍被表单布局引用的字段删不掉**,需先从布局移除')
3000
+ .argument('<objId>', '表单 objId')
3001
+ .argument('<appId>', '应用 ID')
3002
+ .argument('<fieldIds...>', '字段 ID(可多个,一次批量删)')
3003
+ .option('--force', '字段仍被布局引用时,先从布局移除再删(写操作,失败会中止)')
3004
+ .action(async (objId, appId, fieldIds, cmdOpts) => {
3005
+ const opts = program.opts();
3006
+ const auth = await AuthSession.fromOptions(opts);
3007
+ if (!auth)
3008
+ process.exit(1);
3009
+ const client = new ApiClient(auth);
3010
+ const baseUrl = auth.getBaseUrl();
3011
+ const formList = await client.get(`${baseUrl}/api/bs/ebuilder/form/obj/getList/${appId}?apid=${appId}`, { ebbusinessid: appId });
3012
+ const formInfo = (formList?.data || []).find((f) => String(f.id) === String(objId));
3013
+ const formId = formInfo?.formId || '';
3014
+ if (!formId) {
3015
+ console.error('无法获取 formId,请确认 objId 和 appId 正确');
3016
+ process.exit(1);
3017
+ }
3018
+ const del = async (ids) => client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/batchDeleteFormField?apid=${appId}`, { module: 'ebuilderform', formId, ids, customParam: { appId, objId } }, { ebbusinessid: formId });
3019
+ let res = await del(fieldIds);
3020
+ // 被布局引用的字段平台拒删。--force 时先从布局摘掉这些组件再重试。
3021
+ // 布局的读/存沿用 form-layout.ts 那套已验证的端点(getFormLayout + saveFormAndLayout),不另造。
3022
+ if (cmdOpts.force && (res?.code !== 200 || !res?.status)) {
3023
+ const layoutRes = await client.post(`${baseUrl}/api/ebuilder/form/builder/getFormLayout`, {
3024
+ formId, module: 'ebuilderform', customParam: {}, formTableIdList: [],
3025
+ designerParam: { onlyLayout: false, convert: false }, form: { id: formId },
3026
+ }, { ebbusinessid: formId });
3027
+ if (layoutRes?.code !== 200 || !layoutRes?.status) {
3028
+ console.error(`读取布局失败,未继续删除: ${layoutRes?.msg || '未知错误'}`);
3029
+ process.exit(1);
3030
+ }
3031
+ const snapshot = layoutRes.data || {};
3032
+ const pageLayouts = snapshot.formLayout?.pageLayouts;
3033
+ if (!Array.isArray(pageLayouts)) {
3034
+ console.error('布局数据格式异常(无 formLayout.pageLayouts),未继续删除');
3035
+ process.exit(1);
3036
+ }
3037
+ // 摘组件(含「一个字段 = 本体 + 标题标签,靠 associatedId 配对」的坑)见
3038
+ // services/form-field-drop.ts,与流程表单侧共用。
3039
+ const removed = dropFieldComponents(pageLayouts, fieldIds);
3040
+ if (!removed) {
3041
+ console.error('布局里没找到这些字段的组件,无法自动移除;请到设计器里手动删除');
3042
+ process.exit(1);
3043
+ }
3044
+ const formLayout = prepareLayoutForSave(snapshot.formLayout, formId);
3045
+ const saveRes = await client.post(`${baseUrl}/api/ebuilder/form/builder/saveFormAndLayout`, {
3046
+ module: 'ebuilderform', customParam: {},
3047
+ designerParam: { onlyLayout: false, convert: false },
3048
+ form: JSON.parse(JSON.stringify(snapshot.form || {})), formLayout,
3049
+ }, { ebbusinessid: formId });
3050
+ if (saveRes?.code !== 200 || !saveRes?.status) {
3051
+ console.error(`从布局移除失败,未继续删除: ${saveRes?.msg || '未知错误'}`);
3052
+ process.exit(1);
3053
+ }
3054
+ console.error(` 已从布局移除 ${removed} 个组件`);
3055
+ res = await del(fieldIds);
3056
+ }
3057
+ if (res?.code === 200 && res?.status) {
3058
+ console.log(opts.json
3059
+ ? JSON.stringify({ success: true, deleted: fieldIds })
3060
+ : `字段已删除: ${fieldIds.join(', ')}`);
3061
+ }
3062
+ else {
3063
+ console.error(`删除失败: ${res?.msg || '未知错误'}`);
3064
+ console.error(' 提示: 仍被表单布局引用的字段平台不允许删除,请先从布局移除(或加 --force 让 CLI 代做)');
3065
+ process.exit(1);
3066
+ }
3067
+ });
2862
3068
  form.command('list-view')
2863
3069
  .description('查看表单的台账/数据列表')
2864
3070
  .argument('<objId>', '表单 objId')