weaver-e10-builder 1.0.11-beta → 1.1.0

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 (358) hide show
  1. package/dist/commands/actionflow.d.ts.map +1 -1
  2. package/dist/commands/actionflow.js +17 -3
  3. package/dist/commands/actionflow.js.map +1 -1
  4. package/dist/commands/auth.d.ts.map +1 -1
  5. package/dist/commands/auth.js +16 -0
  6. package/dist/commands/auth.js.map +1 -1
  7. package/dist/commands/form-association-manage.d.ts +3 -0
  8. package/dist/commands/form-association-manage.d.ts.map +1 -0
  9. package/dist/commands/form-association-manage.js +76 -0
  10. package/dist/commands/form-association-manage.js.map +1 -0
  11. package/dist/commands/form-association.d.ts.map +1 -1
  12. package/dist/commands/form-association.js +29 -25
  13. package/dist/commands/form-association.js.map +1 -1
  14. package/dist/commands/form-button.d.ts.map +1 -1
  15. package/dist/commands/form-button.js +71 -159
  16. package/dist/commands/form-button.js.map +1 -1
  17. package/dist/commands/form-field-linkage.d.ts +3 -0
  18. package/dist/commands/form-field-linkage.d.ts.map +1 -0
  19. package/dist/commands/form-field-linkage.js +300 -0
  20. package/dist/commands/form-field-linkage.js.map +1 -0
  21. package/dist/commands/form-list-columns.d.ts +3 -0
  22. package/dist/commands/form-list-columns.d.ts.map +1 -0
  23. package/dist/commands/form-list-columns.js +50 -0
  24. package/dist/commands/form-list-columns.js.map +1 -0
  25. package/dist/commands/form-list-permission.d.ts.map +1 -1
  26. package/dist/commands/form-list-permission.js +130 -15
  27. package/dist/commands/form-list-permission.js.map +1 -1
  28. package/dist/commands/form-list-stats.d.ts +0 -8
  29. package/dist/commands/form-list-stats.d.ts.map +1 -1
  30. package/dist/commands/form-list-stats.js +41 -133
  31. package/dist/commands/form-list-stats.js.map +1 -1
  32. package/dist/commands/form-list.d.ts.map +1 -1
  33. package/dist/commands/form-list.js +2 -126
  34. package/dist/commands/form-list.js.map +1 -1
  35. package/dist/commands/form-nlist.d.ts +22 -0
  36. package/dist/commands/form-nlist.d.ts.map +1 -0
  37. package/dist/commands/form-nlist.js +179 -0
  38. package/dist/commands/form-nlist.js.map +1 -0
  39. package/dist/commands/form-serial-mark.d.ts +0 -15
  40. package/dist/commands/form-serial-mark.d.ts.map +1 -1
  41. package/dist/commands/form-serial-mark.js +604 -137
  42. package/dist/commands/form-serial-mark.js.map +1 -1
  43. package/dist/commands/form.d.ts.map +1 -1
  44. package/dist/commands/form.js +207 -2
  45. package/dist/commands/form.js.map +1 -1
  46. package/dist/commands/interface.d.ts +3 -0
  47. package/dist/commands/interface.d.ts.map +1 -0
  48. package/dist/commands/interface.js +51 -0
  49. package/dist/commands/interface.js.map +1 -0
  50. package/dist/commands/menu-permission.d.ts.map +1 -1
  51. package/dist/commands/menu-permission.js +133 -82
  52. package/dist/commands/menu-permission.js.map +1 -1
  53. package/dist/commands/skill.d.ts +3 -0
  54. package/dist/commands/skill.d.ts.map +1 -0
  55. package/dist/commands/skill.js +112 -0
  56. package/dist/commands/skill.js.map +1 -0
  57. package/dist/commands/update.d.ts +13 -0
  58. package/dist/commands/update.d.ts.map +1 -0
  59. package/dist/commands/update.js +101 -0
  60. package/dist/commands/update.js.map +1 -0
  61. package/dist/commands/workflow-condition.d.ts.map +1 -1
  62. package/dist/commands/workflow-condition.js +3 -1
  63. package/dist/commands/workflow-condition.js.map +1 -1
  64. package/dist/commands/workflow-node-empty-handle.d.ts +13 -0
  65. package/dist/commands/workflow-node-empty-handle.d.ts.map +1 -0
  66. package/dist/commands/workflow-node-empty-handle.js +137 -0
  67. package/dist/commands/workflow-node-empty-handle.js.map +1 -0
  68. package/dist/commands/workflow.d.ts.map +1 -1
  69. package/dist/commands/workflow.js +101 -25
  70. package/dist/commands/workflow.js.map +1 -1
  71. package/dist/index.js +12 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/postinstall.d.ts +2 -0
  74. package/dist/postinstall.d.ts.map +1 -0
  75. package/dist/postinstall.js +17 -0
  76. package/dist/postinstall.js.map +1 -0
  77. package/dist/services/actionflow/command_output.d.ts +4 -0
  78. package/dist/services/actionflow/command_output.d.ts.map +1 -1
  79. package/dist/services/actionflow/command_output.js +44 -0
  80. package/dist/services/actionflow/command_output.js.map +1 -1
  81. package/dist/services/actionflow/component_registry.d.ts.map +1 -1
  82. package/dist/services/actionflow/component_registry.js +5 -1
  83. package/dist/services/actionflow/component_registry.js.map +1 -1
  84. package/dist/services/actionflow/components/action_eb_add.js +1 -1
  85. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  86. package/dist/services/actionflow/components/approve_trigger.d.ts +5 -0
  87. package/dist/services/actionflow/components/approve_trigger.d.ts.map +1 -1
  88. package/dist/services/actionflow/components/approve_trigger.js +22 -1
  89. package/dist/services/actionflow/components/approve_trigger.js.map +1 -1
  90. package/dist/services/actionflow/components/approve_trigger_compiler.js +2 -2
  91. package/dist/services/actionflow/components/approve_trigger_compiler.js.map +1 -1
  92. package/dist/services/actionflow/components/custom_trigger.d.ts +9 -0
  93. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -0
  94. package/dist/services/actionflow/components/custom_trigger.js +47 -0
  95. package/dist/services/actionflow/components/custom_trigger.js.map +1 -0
  96. package/dist/services/actionflow/components/enquiry_form.d.ts.map +1 -1
  97. package/dist/services/actionflow/components/enquiry_form.js +29 -3
  98. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  99. package/dist/services/actionflow/components/event_button.d.ts +3 -0
  100. package/dist/services/actionflow/components/event_button.d.ts.map +1 -0
  101. package/dist/services/actionflow/components/event_button.js +32 -0
  102. package/dist/services/actionflow/components/event_button.js.map +1 -0
  103. package/dist/services/actionflow/components/index.d.ts.map +1 -1
  104. package/dist/services/actionflow/components/index.js +10 -0
  105. package/dist/services/actionflow/components/index.js.map +1 -1
  106. package/dist/services/actionflow/components/inner_mq_listener.d.ts +3 -0
  107. package/dist/services/actionflow/components/inner_mq_listener.d.ts.map +1 -0
  108. package/dist/services/actionflow/components/inner_mq_listener.js +40 -0
  109. package/dist/services/actionflow/components/inner_mq_listener.js.map +1 -0
  110. package/dist/services/actionflow/components/inner_mq_send.d.ts +5 -0
  111. package/dist/services/actionflow/components/inner_mq_send.d.ts.map +1 -0
  112. package/dist/services/actionflow/components/inner_mq_send.js +72 -0
  113. package/dist/services/actionflow/components/inner_mq_send.js.map +1 -0
  114. package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
  115. package/dist/services/actionflow/components/send_message.js +7 -4
  116. package/dist/services/actionflow/components/send_message.js.map +1 -1
  117. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  118. package/dist/services/actionflow/context_preflight.js +7 -1
  119. package/dist/services/actionflow/context_preflight.js.map +1 -1
  120. package/dist/services/actionflow/design_client.d.ts +13 -2
  121. package/dist/services/actionflow/design_client.d.ts.map +1 -1
  122. package/dist/services/actionflow/design_client.js +56 -8
  123. package/dist/services/actionflow/design_client.js.map +1 -1
  124. package/dist/services/actionflow/enrich_approve_trigger.d.ts.map +1 -1
  125. package/dist/services/actionflow/enrich_approve_trigger.js +31 -0
  126. package/dist/services/actionflow/enrich_approve_trigger.js.map +1 -1
  127. package/dist/services/actionflow/form_source.d.ts +2 -0
  128. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  129. package/dist/services/actionflow/form_source.js +5 -0
  130. package/dist/services/actionflow/form_source.js.map +1 -1
  131. package/dist/services/actionflow/formula_service.d.ts +1 -1
  132. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  133. package/dist/services/actionflow/formula_service.js +118 -12
  134. package/dist/services/actionflow/formula_service.js.map +1 -1
  135. package/dist/services/actionflow/functions_catalog.d.ts +2 -1
  136. package/dist/services/actionflow/functions_catalog.d.ts.map +1 -1
  137. package/dist/services/actionflow/functions_catalog.js +2392 -180
  138. package/dist/services/actionflow/functions_catalog.js.map +1 -1
  139. package/dist/services/actionflow/functions_source.d.ts.map +1 -1
  140. package/dist/services/actionflow/functions_source.js +3 -0
  141. package/dist/services/actionflow/functions_source.js.map +1 -1
  142. package/dist/services/actionflow/generation_service.d.ts +11 -0
  143. package/dist/services/actionflow/generation_service.d.ts.map +1 -1
  144. package/dist/services/actionflow/generation_service.js +66 -23
  145. package/dist/services/actionflow/generation_service.js.map +1 -1
  146. package/dist/services/actionflow/plan_constraints.d.ts +5 -0
  147. package/dist/services/actionflow/plan_constraints.d.ts.map +1 -0
  148. package/dist/services/actionflow/plan_constraints.js +54 -0
  149. package/dist/services/actionflow/plan_constraints.js.map +1 -0
  150. package/dist/services/actionflow/preflight_service.d.ts +3 -0
  151. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  152. package/dist/services/actionflow/preflight_service.js +152 -8
  153. package/dist/services/actionflow/preflight_service.js.map +1 -1
  154. package/dist/services/actionflow/readback_verifier.d.ts.map +1 -1
  155. package/dist/services/actionflow/readback_verifier.js +63 -2
  156. package/dist/services/actionflow/readback_verifier.js.map +1 -1
  157. package/dist/services/actionflow/save_workflow_draft.d.ts.map +1 -1
  158. package/dist/services/actionflow/save_workflow_draft.js +43 -2
  159. package/dist/services/actionflow/save_workflow_draft.js.map +1 -1
  160. package/dist/services/actionflow/update_service.d.ts +41 -0
  161. package/dist/services/actionflow/update_service.d.ts.map +1 -0
  162. package/dist/services/actionflow/update_service.js +767 -0
  163. package/dist/services/actionflow/update_service.js.map +1 -0
  164. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  165. package/dist/services/actionflow/workflow_compiler.js +120 -12
  166. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  167. package/dist/services/condition-rules.d.ts.map +1 -1
  168. package/dist/services/condition-rules.js +3 -1
  169. package/dist/services/condition-rules.js.map +1 -1
  170. package/dist/services/esb-interface/document-parser.d.ts +6 -0
  171. package/dist/services/esb-interface/document-parser.d.ts.map +1 -0
  172. package/dist/services/esb-interface/document-parser.js +247 -0
  173. package/dist/services/esb-interface/document-parser.js.map +1 -0
  174. package/dist/services/esb-interface/importer.d.ts +9 -0
  175. package/dist/services/esb-interface/importer.d.ts.map +1 -0
  176. package/dist/services/esb-interface/importer.js +44 -0
  177. package/dist/services/esb-interface/importer.js.map +1 -0
  178. package/dist/services/esb-interface/postman-collection.d.ts +9 -0
  179. package/dist/services/esb-interface/postman-collection.d.ts.map +1 -0
  180. package/dist/services/esb-interface/postman-collection.js +125 -0
  181. package/dist/services/esb-interface/postman-collection.js.map +1 -0
  182. package/dist/services/esb-interface/types.d.ts +91 -0
  183. package/dist/services/esb-interface/types.d.ts.map +1 -0
  184. package/dist/services/esb-interface/types.js +2 -0
  185. package/dist/services/esb-interface/types.js.map +1 -0
  186. package/dist/services/form-association.d.ts +49 -0
  187. package/dist/services/form-association.d.ts.map +1 -0
  188. package/dist/services/form-association.js +279 -0
  189. package/dist/services/form-association.js.map +1 -0
  190. package/dist/services/form-button-position.d.ts +35 -0
  191. package/dist/services/form-button-position.d.ts.map +1 -0
  192. package/dist/services/form-button-position.js +109 -0
  193. package/dist/services/form-button-position.js.map +1 -0
  194. package/dist/services/form-create.d.ts.map +1 -1
  195. package/dist/services/form-create.js +4 -1
  196. package/dist/services/form-create.js.map +1 -1
  197. package/dist/services/form-list-columns.d.ts +54 -0
  198. package/dist/services/form-list-columns.d.ts.map +1 -0
  199. package/dist/services/form-list-columns.js +236 -0
  200. package/dist/services/form-list-columns.js.map +1 -0
  201. package/dist/services/form-list-stats.d.ts +44 -0
  202. package/dist/services/form-list-stats.d.ts.map +1 -0
  203. package/dist/services/form-list-stats.js +302 -0
  204. package/dist/services/form-list-stats.js.map +1 -0
  205. package/dist/services/form-nlist.d.ts +42 -0
  206. package/dist/services/form-nlist.d.ts.map +1 -0
  207. package/dist/services/form-nlist.js +332 -0
  208. package/dist/services/form-nlist.js.map +1 -0
  209. package/dist/services/skill-provision.d.ts +23 -0
  210. package/dist/services/skill-provision.d.ts.map +1 -0
  211. package/dist/services/skill-provision.js +96 -0
  212. package/dist/services/skill-provision.js.map +1 -0
  213. package/dist/services/update-check.d.ts +24 -0
  214. package/dist/services/update-check.d.ts.map +1 -0
  215. package/dist/services/update-check.js +108 -0
  216. package/dist/services/update-check.js.map +1 -0
  217. package/dist/services/workflow-initiator.js +3 -3
  218. package/dist/services/workflow-initiator.js.map +1 -1
  219. package/package.json +5 -2
  220. package/skill-docs/SKILL.md +263 -0
  221. package/skill-docs/actionflows/references/components/calendar/MeetingCreate.md +17 -0
  222. package/skill-docs/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  223. package/skill-docs/actionflows/references/components/document/AttachmentCopy.md +17 -0
  224. package/skill-docs/actionflows/references/components/document/AttachmentMove.md +17 -0
  225. package/skill-docs/actionflows/references/components/document/DocumentCopy.md +17 -0
  226. package/skill-docs/actionflows/references/components/document/DocumentDelete.md +17 -0
  227. package/skill-docs/actionflows/references/components/document/DocumentEdit.md +17 -0
  228. package/skill-docs/actionflows/references/components/document/DocumentMove.md +17 -0
  229. package/skill-docs/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  230. package/skill-docs/actionflows/references/components/document/DocumentRenewal.md +17 -0
  231. package/skill-docs/actionflows/references/components/document/DocumentRevert.md +17 -0
  232. package/skill-docs/actionflows/references/components/document/DocumentSave.md +17 -0
  233. package/skill-docs/actionflows/references/components/document/DocumentSubscription.md +17 -0
  234. package/skill-docs/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  235. package/skill-docs/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  236. package/skill-docs/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  237. package/skill-docs/actionflows/references/components/document/FileFolderSave.md +17 -0
  238. package/skill-docs/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  239. package/skill-docs/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  240. package/skill-docs/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  241. package/skill-docs/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  242. package/skill-docs/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  243. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +61 -0
  244. package/skill-docs/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
  245. package/skill-docs/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  246. package/skill-docs/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  247. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +23 -0
  248. package/skill-docs/actionflows/references/components/ebuilder/DateTrigger.md +17 -0
  249. package/skill-docs/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  250. package/skill-docs/actionflows/references/components/ebuilder/EnquiryForm.md +101 -0
  251. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -0
  252. package/skill-docs/actionflows/references/components/ebuilder/EventFormData.md +17 -0
  253. package/skill-docs/actionflows/references/components/ebuilder/TimeBatchTrigger.md +17 -0
  254. package/skill-docs/actionflows/references/components/logic/Condition.md +23 -0
  255. package/skill-docs/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  256. package/skill-docs/actionflows/references/components/logic/MultipleExecution.md +38 -0
  257. package/skill-docs/actionflows/references/components/logic/Output.md +17 -0
  258. package/skill-docs/actionflows/references/components/message/InnerMQSend.md +40 -0
  259. package/skill-docs/actionflows/references/components/message/SendMessage.md +17 -0
  260. package/skill-docs/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  261. package/skill-docs/actionflows/references/components/personnel/HrmEmployeeUpdate.md +32 -0
  262. package/skill-docs/actionflows/references/components/personnel/PersonnelOnboarding.md +34 -0
  263. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +45 -0
  264. package/skill-docs/actionflows/references/components/trigger/InnerMQListener.md +40 -0
  265. package/skill-docs/actionflows/references/components/trigger/SimpleScheduler.md +17 -0
  266. package/skill-docs/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  267. package/skill-docs/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  268. package/skill-docs/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  269. package/skill-docs/actionflows/references/components/workflow/ApproveCompletelyDelete.md +17 -0
  270. package/skill-docs/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  271. package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  272. package/skill-docs/actionflows/references/components/workflow/ApproveDelete.md +17 -0
  273. package/skill-docs/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  274. package/skill-docs/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  275. package/skill-docs/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  276. package/skill-docs/actionflows/references/components/workflow/ApproveEntrust.md +17 -0
  277. package/skill-docs/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  278. package/skill-docs/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  279. package/skill-docs/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  280. package/skill-docs/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  281. package/skill-docs/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  282. package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +17 -0
  283. package/skill-docs/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  284. package/skill-docs/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  285. package/skill-docs/actionflows/references/components/workflow/ApproveTrigger.md +84 -0
  286. package/skill-docs/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  287. package/skill-docs/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  288. package/skill-docs/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  289. package/skill-docs/actionflows/references/condition_rules.md +99 -0
  290. package/skill-docs/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
  291. package/skill-docs/actionflows/references/function_rules.md +13 -0
  292. package/skill-docs/actionflows/references/trigger_runtime_notes.md +53 -0
  293. package/skill-docs/assets/sample/.claude/settings.local.json +8 -0
  294. package/skill-docs/assets/sample/api/formApi.js +510 -0
  295. package/skill-docs/assets/sample/config/config.js +0 -0
  296. package/skill-docs/assets/sample/config/configLoad.js +0 -0
  297. package/skill-docs/assets/sample/config/configLoad_default.js +0 -0
  298. package/skill-docs/assets/sample/config/config_default.js +0 -0
  299. package/skill-docs/assets/sample/entry.js +22 -0
  300. package/skill-docs/assets/sample/eslint.config.cjs +48 -0
  301. package/skill-docs/assets/sample/memo.md +0 -0
  302. package/skill-docs/assets/sample/readme.js +8 -0
  303. package/skill-docs/references/auth/guide-auth.md +88 -0
  304. package/skill-docs/references/coding/guide-edit-backfill.md +189 -0
  305. package/skill-docs/references/coding/guide-form-crud.md +262 -0
  306. package/skill-docs/references/coding/guide-page-code.md +224 -0
  307. package/skill-docs/references/coding/guide-page-export.md +119 -0
  308. package/skill-docs/references/coding/ref-compile-rules.md +106 -0
  309. package/skill-docs/references/common/guide-plan-template.md +201 -0
  310. package/skill-docs/references/common/ref-cli-commands.md +320 -0
  311. package/skill-docs/references/components/@weapp-Button.md +104 -0
  312. package/skill-docs/references/components/base-Badge.md +100 -0
  313. package/skill-docs/references/components/base-Dialog.md +358 -0
  314. package/skill-docs/references/components/base-Empty.md +58 -0
  315. package/skill-docs/references/components/base-Tag.md +112 -0
  316. package/skill-docs/references/components/display-Alert.md +64 -0
  317. package/skill-docs/references/components/display-Avatar.md +150 -0
  318. package/skill-docs/references/components/display-Calendar.md +263 -0
  319. package/skill-docs/references/components/display-Carousel.md +115 -0
  320. package/skill-docs/references/components/display-Collapse.md +299 -0
  321. package/skill-docs/references/components/display-FilePreview.md +49 -0
  322. package/skill-docs/references/components/display-Icon.md +66 -0
  323. package/skill-docs/references/components/display-List.md +320 -0
  324. package/skill-docs/references/components/display-Pagination.md +41 -0
  325. package/skill-docs/references/components/display-Spin.md +34 -0
  326. package/skill-docs/references/components/display-Steps.md +89 -0
  327. package/skill-docs/references/components/display-Table.md +160 -0
  328. package/skill-docs/references/components/display-Title.md +117 -0
  329. package/skill-docs/references/components/form-Checkbox.md +161 -0
  330. package/skill-docs/references/components/form-DepartmentBrowser-api.md +52 -0
  331. package/skill-docs/references/components/form-EmployeeBrowser-api.md +51 -0
  332. package/skill-docs/references/components/form-EmployeeBrowser.md +51 -0
  333. package/skill-docs/references/components/form-Input.md +123 -0
  334. package/skill-docs/references/components/form-Radio.md +145 -0
  335. package/skill-docs/references/components/form-Select.md +191 -0
  336. package/skill-docs/references/components/form-Switch.md +46 -0
  337. package/skill-docs/references/components/form-Upload.md +53 -0
  338. package/skill-docs/references/components/generic-Echarts.md +102 -0
  339. package/skill-docs/references/form/guide-create-form.md +409 -0
  340. package/skill-docs/references/form/guide-ebuilder-filter.md +73 -0
  341. package/skill-docs/references/form/guide-ebuilder-scope.md +82 -0
  342. package/skill-docs/references/form/guide-field-linkage.md +121 -0
  343. package/skill-docs/references/form/guide-form-association.md +108 -0
  344. package/skill-docs/references/form/guide-form-button.md +54 -0
  345. package/skill-docs/references/form/guide-form-data.md +48 -0
  346. package/skill-docs/references/form/guide-form-formula-functions.md +297 -0
  347. package/skill-docs/references/form/guide-form-linkage.md +185 -0
  348. package/skill-docs/references/form/guide-form-view-permission.md +38 -0
  349. package/skill-docs/references/form/guide-form-view.md +284 -0
  350. package/skill-docs/references/form/guide-list-columns.md +52 -0
  351. package/skill-docs/references/form/guide-list-stats.md +83 -0
  352. package/skill-docs/references/form/style-templates.md +44 -0
  353. package/skill-docs/references/hrm/guide-matrix.md +103 -0
  354. package/skill-docs/references/menu/system-menus.md +63 -0
  355. package/skill-docs/references/workflow/guide-workflow-action.md +172 -0
  356. package/skill-docs/references/workflow/guide-workflow-condition.md +405 -0
  357. package/skill-docs/references/workflow/guide-workflow.md +402 -0
  358. package/skill-docs/references/workflow/operator-matrix.md +74 -0
@@ -0,0 +1,279 @@
1
+ import { randomInt } from 'node:crypto';
2
+ import { lzwCompress } from '../core/lzw.js';
3
+ export const ASSOCIATION_BASE = '/api/bs/ebuilder/form/association';
4
+ function data(response, operation) {
5
+ if (response?.code !== 200 || response?.status === false || response?.fail === true || response?.data == null)
6
+ throw new Error(`${operation}失败: ${response?.msg || '返回数据无效'}`);
7
+ return response.data;
8
+ }
9
+ export function associationLayouts(values) {
10
+ const map = { '显示': '0', show: '0', '0': '0', '编辑': '2', edit: '2', '2': '2' };
11
+ if (values.length === 1 && ['none', '无'].includes(values[0]))
12
+ return '';
13
+ if (!values.length)
14
+ throw new Error('请指定显示/编辑布局,或 none');
15
+ return [...new Set(values.map(v => {
16
+ if (!map[v])
17
+ throw new Error(`未知布局: ${v}(显示=0,编辑=2)`);
18
+ return map[v];
19
+ }))].sort().join(',');
20
+ }
21
+ export function associationTerminals(values) {
22
+ if (!values.length || values.some(v => !['PC', 'MOBILE'].includes(v)))
23
+ throw new Error('适用终端仅支持 PC / MOBILE,至少选择一个');
24
+ return [...new Set(values)];
25
+ }
26
+ /** 详情返回明文条件,所有写操作均需压缩;不能因只改布局而损坏原权限条件。 */
27
+ export function serializeAssociation(detail) {
28
+ const result = structuredClone(detail);
29
+ if (!Array.isArray(result.associationActions) || !Array.isArray(result.associationPermissions))
30
+ throw new Error('关联详情缺少动作或权限,停止保存');
31
+ result.associationPermissions = result.associationPermissions.map((permission) => {
32
+ const root = permission.condition?.rootdata || '';
33
+ if (root)
34
+ JSON.parse(root); // 不接受未识别或已压缩的数据,避免重复压缩。
35
+ return { ...permission, condition: { ...permission.condition, rootdata: root ? lzwCompress(root) : '' } };
36
+ });
37
+ return result;
38
+ }
39
+ export function withConditionLogic(tree, logic) {
40
+ if (!['and', 'or'].includes(logic))
41
+ throw new Error('--logic 必须为 and 或 or');
42
+ return JSON.stringify({ ...JSON.parse(tree), relationship: logic === 'or' ? '2' : '1' });
43
+ }
44
+ function chooseField(fields, selector, source) {
45
+ if (typeof selector !== 'string' || !selector.trim())
46
+ throw new Error('映射必须指定字符串 targetField 和 sourceField');
47
+ const idKey = source ? 'fieldId' : 'id';
48
+ const exact = fields.filter(f => String(f[idKey]) === selector);
49
+ const matches = exact.length ? exact : fields.filter(f => (source ? f.fieldShowName : f.text) === selector);
50
+ if (matches.length !== 1)
51
+ throw new Error(`${source ? '来源' : '目标'}字段 ${selector} ${matches.length ? '不唯一,请用 ID' : '不存在'}`);
52
+ if (matches[0].child || matches[0].mainField === false || matches[0].subTableId)
53
+ throw new Error('当前筛选映射仅支持主表字段,明细字段尚未验证');
54
+ return matches[0];
55
+ }
56
+ export function buildAssociationMappings(mappings, sourceFields, targetFields) {
57
+ if (!Array.isArray(mappings))
58
+ throw new Error('--mappings 必须为数组');
59
+ const seen = new Set();
60
+ return mappings.map(mapping => {
61
+ if (!mapping || typeof mapping !== 'object')
62
+ throw new Error('映射项必须是对象');
63
+ const source = chooseField(sourceFields, mapping.sourceField, true);
64
+ const target = chooseField(targetFields, mapping.targetField, false);
65
+ if (seen.has(String(target.id)))
66
+ throw new Error(`目标字段 ${target.id} 重复映射`);
67
+ seen.add(String(target.id));
68
+ return {
69
+ name: { id: String(target.id), content: target.text, showDetailName: '', compType: target.compType || target.type },
70
+ nameType: 'FORMFIELDS',
71
+ value: { id: String(source.fieldId), content: source.fieldShowName, name: source.fieldShowName,
72
+ compType: source.componentKey || source.fieldType, fieldId: String(source.fieldId), fieldName: source.fieldName, dataIndex: source.dataIndex },
73
+ type: 'FORMFIELDS',
74
+ };
75
+ });
76
+ }
77
+ export function selectAssociationAction(actions, actionId) {
78
+ const candidates = actions.map((action, index) => ({ action, index })).filter(({ action }) => {
79
+ if (action.actionType !== 'openpage')
80
+ return false;
81
+ if (actionId)
82
+ return String(action.id) === actionId;
83
+ try {
84
+ return JSON.parse(action.url).page?.pageType === 'VIEWPORT';
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ });
90
+ if (candidates.length !== 1)
91
+ throw new Error('无法唯一确定目标视图动作,请指定 --action <动作ID>');
92
+ return candidates[0].index;
93
+ }
94
+ function collectViews(nodes, parent, out = []) {
95
+ for (const node of nodes) {
96
+ if (node.type === 'VIEWPORT')
97
+ out.push({ id: String(node.id), name: node.name.replace(/^\[[^\]]+\]/, ''), viewType: node.viewType, objId: parent?.id, formName: parent?.name });
98
+ if (Array.isArray(node.menus))
99
+ collectViews(node.menus, node, out);
100
+ }
101
+ return out;
102
+ }
103
+ export class AssociationService {
104
+ client;
105
+ base;
106
+ appId;
107
+ objId;
108
+ constructor(client, base, appId, objId) {
109
+ this.client = client;
110
+ this.base = base;
111
+ this.appId = appId;
112
+ this.objId = objId;
113
+ }
114
+ headers() { return { ebBusinessId: this.appId }; }
115
+ query() { return new URLSearchParams({ apid: this.appId, tpaid: this.objId, objId: this.objId }).toString(); }
116
+ async list() {
117
+ const result = data(await this.client.get(`${this.base}${ASSOCIATION_BASE}/getListByObjId?${this.query()}&pageName=`, this.headers()), '读取关联列表');
118
+ if (!Array.isArray(result.datas))
119
+ throw new Error('关联列表结构无效');
120
+ if (Number(result.total) > result.datas.length)
121
+ throw new Error('关联列表返回不完整,停止匹配关联 ID');
122
+ return result.datas;
123
+ }
124
+ async get(id) {
125
+ const detail = data(await this.client.get(`${this.base}${ASSOCIATION_BASE}/getDataAssociationById/${encodeURIComponent(id)}?${this.query()}`, this.headers()), '读取关联详情');
126
+ if (String(detail.objId) !== this.objId)
127
+ throw new Error(`关联 ${id} 不属于表单 ${this.objId}`);
128
+ if (!Array.isArray(detail.associationActions) || !Array.isArray(detail.associationPermissions))
129
+ throw new Error('关联详情缺少动作或权限');
130
+ return { ...detail, id };
131
+ }
132
+ async views(targetApp = this.appId) {
133
+ const query = new URLSearchParams({ appId: targetApp, pageId: '', clientType: 'PC', module: 'EB_PAGE', entranceType: '0' });
134
+ const tree = data(await this.client.get(`${this.base}/api/bs/ebuilder/common/link/menu/tree?${query}`, { ebBusinessId: targetApp }), '读取目标视图');
135
+ if (!Array.isArray(tree))
136
+ throw new Error('目标视图树结构无效');
137
+ // 当前应用分支有明确归属;其他应用须通过 --target-app 单独查询。
138
+ return collectViews(tree.filter(node => node.id === 'currentApp'));
139
+ }
140
+ async resolveView(selector, targetApp = this.appId) {
141
+ const available = await this.views(targetApp);
142
+ const exact = available.filter(v => v.id === selector);
143
+ const matches = exact.length ? exact : available.filter(v => v.name === selector);
144
+ if (matches.length !== 1)
145
+ throw new Error(`目标视图 ${selector} ${matches.length ? '不唯一,请用 ID' : '不在指定应用可选视图中'}`);
146
+ const view = matches[0];
147
+ const info = data(await this.client.get(`${this.base}/api/bs/ebuilder/form/viewdesigner/getViewBaseInfoByPageId?pageId=${encodeURIComponent(view.id)}`, { ebBusinessId: targetApp }), '读取视图归属');
148
+ if (!info.isExist || String(info.objId) !== String(view.objId))
149
+ throw new Error('目标视图不存在或所属表单与菜单树不一致');
150
+ return { ...view, appId: targetApp };
151
+ }
152
+ async fields(view) {
153
+ const source = data(await this.client.get(`${this.base}${ASSOCIATION_BASE}/getObjFieldEntities/${this.objId}?${this.query()}`, this.headers()), '读取来源字段');
154
+ const query = new URLSearchParams({ sourceId: view.objId, sourceType: 'FORM', needChild: 'true', customParam: JSON.stringify({ terminal: '', appId: view.appId }) });
155
+ const groups = data(await this.client.get(`${this.base}/api/ebuilder/common/ds/fields?${query}`, { ebBusinessId: view.appId }), '读取目标字段');
156
+ if (!Array.isArray(source) || !Array.isArray(groups))
157
+ throw new Error('字段元数据结构无效');
158
+ const target = groups.filter(g => String(g.id) === String(view.objId)).flatMap(g => g.fields || []);
159
+ if (!target.length)
160
+ throw new Error('未读到目标主表字段');
161
+ return { source, target };
162
+ }
163
+ async mapped(mappings, view) {
164
+ if (!Array.isArray(mappings))
165
+ throw new Error('--mappings 必须为数组');
166
+ if (!mappings.length)
167
+ return [];
168
+ const fields = await this.fields(view);
169
+ return buildAssociationMappings(mappings, fields.source, fields.target);
170
+ }
171
+ async create(options) {
172
+ if (!options.name?.trim() || !options.view)
173
+ throw new Error('创建需指定页签名称和目标视图');
174
+ if (!Array.isArray(options.permissions) || !options.permissions.length || options.permissions.some(p => !p || !p.selectedType))
175
+ throw new Error('创建需显式指定非空 --permissions 数组(selectedType 等平台权限配置)');
176
+ const before = await this.list();
177
+ if (before.some(a => a.pageName === options.name))
178
+ throw new Error('同名页签已存在,请按 ID 修改,避免重复创建');
179
+ const view = await this.resolveView(options.view, options.targetApp);
180
+ const link = { openMode: '1', name: view.name, autoFillParams: true,
181
+ icon: { path: '#icon-eBuilder-o', style: { color: '#5d9cec', fillType: 'borderColor', borderColor: '#5d9cec' } },
182
+ page: { pageId: view.id, parentId: `Form_${view.objId}`, openMode: '1', pageName: view.name, pageType: 'VIEWPORT', appid: view.appId, pageViewType: view.viewType, dsDataset: {} },
183
+ params: await this.mapped(options.mappings || [], view) };
184
+ const draft = {
185
+ objId: this.objId, pageName: options.name, open: options.enabled ?? true, selected: false, confirm: 0,
186
+ showLayout: associationLayouts(options.layouts || ['显示']), applicable: associationTerminals(options.terminals || ['PC', 'MOBILE']),
187
+ associationPermissions: options.permissions, customTips: { tipsSql: '', tipsCustomApi: '' },
188
+ associationActions: [{ name: view.name, conditionTxt: '', id: `-${Date.now()}${randomInt(1000)}`, enable: 1,
189
+ actionType: 'openpage', buttonId: '', windowSize: 30, executeSelectedDatas: 0, url: JSON.stringify(link), openType: '1', index: 0,
190
+ interfacePath: '', desc: '', urlType: '0', urlFieldId: '', interfaceType: '', confirmTitle: '', ecode: '', littlecardName: '自定义小卡片', littlecardJson: '',
191
+ dataSource: '2', fieldAssignType: '[]', confirmContent: '', confirmTrue: '', confirmFalse: '' }],
192
+ };
193
+ const saved = data(await this.client.post(`${this.base}${ASSOCIATION_BASE}/saveOrUpdate?${this.query()}`, serializeAssociation(draft), this.headers()), '创建关联');
194
+ const beforeIds = new Set(before.map(a => String(a.id)));
195
+ const added = (await this.list()).filter(a => !beforeIds.has(String(a.id)) && a.pageName === options.name);
196
+ const ids = saved.id && !beforeIds.has(String(saved.id)) ? [String(saved.id)] : added.map(a => String(a.id));
197
+ const matches = [];
198
+ for (const id of ids) {
199
+ const detail = await this.get(id);
200
+ try {
201
+ verifyAssociation(draft, detail);
202
+ matches.push(detail);
203
+ }
204
+ catch { /* 并发创建同名页签时通过详情区分 */ }
205
+ }
206
+ if (matches.length !== 1)
207
+ throw new Error(`创建已提交,但无法唯一回读匹配页签(候选 ${ids.join(',')}),请查询 list,勿直接重试创建`);
208
+ return { success: true, verified: true, associationId: matches[0].id, detail: matches[0] };
209
+ }
210
+ async update(id, options) {
211
+ const draft = structuredClone(await this.get(id));
212
+ if (options.name !== undefined) {
213
+ if (!options.name.trim())
214
+ throw new Error('页签名称不能为空');
215
+ draft.pageName = options.name;
216
+ }
217
+ if (options.layouts)
218
+ draft.showLayout = associationLayouts(options.layouts);
219
+ if (options.terminals)
220
+ draft.applicable = associationTerminals(options.terminals);
221
+ if (options.enabled !== undefined)
222
+ draft.open = options.enabled;
223
+ if (options.targetApp && !options.view)
224
+ throw new Error('--target-app 必须同时指定 --view');
225
+ if (options.view || options.mappings !== undefined) {
226
+ const index = selectAssociationAction(draft.associationActions, options.action);
227
+ const action = draft.associationActions[index];
228
+ const link = JSON.parse(action.url);
229
+ if (link.page?.pageType !== 'VIEWPORT')
230
+ throw new Error('当前命令只支持绑定 VIEWPORT 视图的动作');
231
+ const view = await this.resolveView(options.view || link.page.pageId, options.targetApp || link.page.appid || this.appId);
232
+ if (view.id !== String(link.page.pageId) && (link.params || []).length && options.mappings === undefined)
233
+ throw new Error('切换目标视图时必须显式提供 --mappings([] 表示清空),避免沿用旧字段');
234
+ link.page = { ...link.page, pageId: view.id, parentId: `Form_${view.objId}`, pageName: view.name, pageType: 'VIEWPORT', appid: view.appId, pageViewType: view.viewType };
235
+ link.name = view.name;
236
+ if (options.mappings !== undefined) {
237
+ link.params = await this.mapped(options.mappings, view);
238
+ link.autoFillParams = true;
239
+ }
240
+ draft.associationActions[index] = { ...action, name: view.name, url: JSON.stringify(link) };
241
+ }
242
+ data(await this.client.post(`${this.base}${ASSOCIATION_BASE}/saveOrUpdate?${this.query()}`, serializeAssociation(draft), this.headers()), '更新关联');
243
+ const after = await this.get(id);
244
+ verifyAssociation(draft, after);
245
+ return { success: true, verified: true, associationId: id, detail: after };
246
+ }
247
+ }
248
+ /** 校验业务语义,允许服务端补充时间戳、条件 moduleId、动作正式 ID 等。 */
249
+ export function verifyAssociation(expected, actual) {
250
+ const canonical = (value) => JSON.stringify(value, (_key, v) => v && typeof v === 'object' && !Array.isArray(v) ? Object.fromEntries(Object.keys(v).sort().map(k => [k, v[k]])) : v);
251
+ const equal = (a, b, label) => { if (canonical(a) !== canonical(b))
252
+ throw new Error(`已保存,但 ${label} 回读不一致`); };
253
+ for (const key of ['objId', 'pageName', 'open', 'selected', 'confirm'])
254
+ equal(expected[key], actual[key], key);
255
+ equal(String(expected.showLayout || '').split(',').sort(), String(actual.showLayout || '').split(',').sort(), '布局');
256
+ equal([...(expected.applicable || [])].sort(), [...(actual.applicable || [])].sort(), '适用终端');
257
+ equal(expected.associationActions.length, actual.associationActions?.length, '动作数量');
258
+ expected.associationActions.forEach((action, i) => {
259
+ const after = actual.associationActions[i];
260
+ if (expected.id)
261
+ equal(String(action.id), String(after.id), '原动作 ID');
262
+ // 页签创建传 windowSize=30,但平台详情会规范化为 0;已有动作则必须保持原值。
263
+ for (const key of ['actionType', 'enable', 'openType', ...(expected.id ? ['windowSize'] : [])])
264
+ equal(action[key], after[key], `动作 ${key}`);
265
+ equal(action.url ? JSON.parse(action.url) : null, after.url ? JSON.parse(after.url) : null, '目标视图与数据筛选');
266
+ });
267
+ equal(expected.associationPermissions.length, actual.associationPermissions?.length, '权限数量');
268
+ expected.associationPermissions.forEach((permission, i) => {
269
+ const after = actual.associationPermissions[i];
270
+ for (const key of ['selectedType', 'dataid'])
271
+ equal(permission[key], after[key], `权限 ${key}`);
272
+ const root = (p) => p.condition?.rootdata ? JSON.parse(p.condition.rootdata) : null;
273
+ equal(root(permission), root(after), '原权限条件');
274
+ });
275
+ for (const key of ['tipsSql', 'tipsCustomApi'])
276
+ if (expected.customTips?.[key] !== undefined)
277
+ equal(expected.customTips[key], actual.customTips?.[key], key);
278
+ }
279
+ //# sourceMappingURL=form-association.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-association.js","sourceRoot":"","sources":["../../src/services/form-association.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ApiClient } from '../core/client.js';
2
+ type Client = Pick<ApiClient, 'get' | 'post'>;
3
+ export type Positions = Record<string, string[]>;
4
+ export interface ButtonViews {
5
+ table?: Array<{
6
+ id: string;
7
+ name: string;
8
+ }>;
9
+ form?: Array<{
10
+ id: string;
11
+ name: string;
12
+ }>;
13
+ }
14
+ export declare function parsePositions(value: unknown): Positions;
15
+ export declare function resolveButtonView(view: string, catalog: ButtonViews): string;
16
+ export declare function buildButtonPosition(existing: unknown, patch: Positions, catalog: ButtonViews, replace?: boolean): {
17
+ showPosition: string;
18
+ showPositionSpan: any;
19
+ };
20
+ export declare function readButton(client: Client, base: string, appId: string, objId: string, buttonId: string): Promise<any>;
21
+ export declare function readButtonContext(client: Client, base: string, appId: string, objId: string, buttonId: string): Promise<{
22
+ button: any;
23
+ details: any;
24
+ views: ButtonViews;
25
+ }>;
26
+ export declare function samePositions(a: unknown, b: unknown): boolean;
27
+ export declare function saveButtonPosition(client: Client, base: string, appId: string, objId: string, context: Awaited<ReturnType<typeof readButtonContext>>, config: ReturnType<typeof buildButtonPosition>): Promise<{
28
+ showPosition: string;
29
+ showPositionSpan: any;
30
+ success: boolean;
31
+ verified: boolean;
32
+ buttonId: any;
33
+ }>;
34
+ export {};
35
+ //# sourceMappingURL=form-button-position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-button-position.d.ts","sourceRoot":"","sources":["../../src/services/form-button-position.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,KAAK,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC;AAC9C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACjD,MAAM,WAAW,WAAW;IAAG,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE;AAQxH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAaxD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,CAS5E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,UAAQ;;;EAmB7G;AAOD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAW5G;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;GAQnH;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAG7D;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC;;;;;;GAY1M"}
@@ -0,0 +1,109 @@
1
+ const aliases = {
2
+ '右上': 'rightTop', '右上角': 'rightTop', righttop: 'rightTop',
3
+ '右上下拉': 'rightTopDropDown', righttopdropdown: 'rightTopDropDown',
4
+ '行上': 'lineEnd', '行内': 'lineEnd', lineend: 'lineEnd',
5
+ '行末下拉': 'LineEndDropDown', lineenddropdown: 'LineEndDropDown',
6
+ };
7
+ export function parsePositions(value) {
8
+ const parsed = typeof value === 'string' ? JSON.parse(value) : value;
9
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed))
10
+ throw new Error('showPosition 必须为视图到位置数组的对象');
11
+ const result = {};
12
+ for (const [key, positions] of Object.entries(parsed)) {
13
+ if (!Array.isArray(positions) || !positions.length)
14
+ throw new Error(`${key} 必须指定非空位置数组`);
15
+ result[key] = [...new Set(positions.map(p => {
16
+ const mapped = typeof p === 'string' ? aliases[p.toLowerCase()] : undefined;
17
+ if (!mapped)
18
+ throw new Error(`未知按钮位置: ${p}`);
19
+ return mapped;
20
+ }))];
21
+ }
22
+ return result;
23
+ }
24
+ export function resolveButtonView(view, catalog) {
25
+ const form = { '新建': 'add', '编辑': 'edit', '显示': 'show' };
26
+ const normalized = form[view] || view.replace(/_form$/, '');
27
+ if ((catalog.form || []).some(v => v.id === normalized))
28
+ return `${normalized}_form`;
29
+ const tables = catalog.table || [];
30
+ const candidates = ['台账', 'table', 'list'].includes(view)
31
+ ? tables : tables.filter(v => v.id === view.replace(/_table$/, '') || v.name === view);
32
+ if (candidates.length !== 1)
33
+ throw new Error(`视图“${view}”${candidates.length ? '不唯一,请指定 ID' : '不在此按钮可选视图中'}`);
34
+ return `${candidates[0].id}_table`;
35
+ }
36
+ export function buildButtonPosition(existing, patch, catalog, replace = false) {
37
+ const normalized = {};
38
+ for (const [view, positions] of Object.entries(parsePositions(patch))) {
39
+ const key = resolveButtonView(view, catalog);
40
+ if (key.endsWith('_form') && positions.some(p => p === 'lineEnd' || p === 'LineEndDropDown'))
41
+ throw new Error('行上/行末下拉仅适用于台账视图');
42
+ normalized[key] = positions;
43
+ }
44
+ const merged = { ...(replace ? {} : parsePositions(existing || '{}')), ...normalized };
45
+ const span = { str: {}, obj: {} };
46
+ for (const key of Object.keys(merged)) {
47
+ const group = key.endsWith('_table') ? 'table' : 'form';
48
+ const id = key.replace(/_(table|form)$/, '');
49
+ const item = (catalog[group] || []).find(v => v.id === id);
50
+ if (!item)
51
+ throw new Error(`已有视图 ${key} 不在可选视图中,请核实或显式 --replace`);
52
+ const content = group === 'form' ? id : item.name;
53
+ (span.str[group] ||= []).push(content);
54
+ (span.obj[group] ||= []).push({ id, content });
55
+ }
56
+ return { showPosition: JSON.stringify(merged), showPositionSpan: span };
57
+ }
58
+ function checked(result, operation) {
59
+ if (result?.code !== 200 || result?.status === false || result?.data == null)
60
+ throw new Error(`${operation}失败: ${result?.msg || '返回结构无效'}`);
61
+ return result.data;
62
+ }
63
+ export async function readButton(client, base, appId, objId, buttonId) {
64
+ for (let current = 1;; current++) {
65
+ const data = checked(await client.post(`${base}/api/bs/ebuilder/form/button/getButtonList?apid=${appId}&objId=${objId}`, { objId, searchVal: '', current, pageSize: 50, searchParamData: {} }, { ebBusinessId: appId }), '读取按钮');
66
+ if (!Array.isArray(data.datas))
67
+ throw new Error('按钮列表返回结构无效');
68
+ const button = data.datas.find((b) => String(b.id) === buttonId);
69
+ if (button)
70
+ return button;
71
+ if (!data.datas.length || current * 50 >= Number(data.total))
72
+ break;
73
+ if (current >= 1000)
74
+ throw new Error('按钮分页超出上限');
75
+ }
76
+ throw new Error(`按钮 ${buttonId} 不存在`);
77
+ }
78
+ export async function readButtonContext(client, base, appId, objId, buttonId) {
79
+ const button = await readButton(client, base, appId, objId, buttonId);
80
+ const query = new URLSearchParams({ apid: appId, objId, tpaid: objId, buttonId, buttonKey: button.buttonKey, buttonType: button.buttonType, thirdPartyFlag: String(button.thirdPartyFlag || 0) });
81
+ const headers = { ebBusinessId: appId };
82
+ const details = checked(await client.get(`${base}/api/bs/ebuilder/form/button/getActionAndPermission?${query}`, headers), '读取动作权限');
83
+ if (!Array.isArray(details.actions) || !Array.isArray(details.permissions))
84
+ throw new Error('动作/权限返回不完整,停止保存');
85
+ const views = checked(await client.get(`${base}/api/bs/ebuilder/form/button/getViewDatas?${query}`, headers), '读取可选视图');
86
+ return { button, details, views };
87
+ }
88
+ export function samePositions(a, b) {
89
+ const canonical = (v) => JSON.stringify(Object.entries(parsePositions(v)).sort(([a], [b]) => a.localeCompare(b)).map(([k, p]) => [k, [...p].sort()]));
90
+ return canonical(a) === canonical(b);
91
+ }
92
+ export async function saveButtonPosition(client, base, appId, objId, context, config) {
93
+ const { button, details } = context;
94
+ const payload = { button: { ...button, ...config }, actionDatas: details.actions, permissionDatas: details.permissions };
95
+ for (const key of ['logMessage', 'customTips'])
96
+ if (details[key] != null)
97
+ payload[key] = details[key];
98
+ checked(await client.post(`${base}/api/bs/ebuilder/form/button/saveOrUpdate?apid=${appId}&objId=${objId}`, payload, { ebBusinessId: appId }), '保存按钮');
99
+ const after = await readButtonContext(client, base, appId, objId, String(button.id));
100
+ if (!samePositions(after.button.showPosition, config.showPosition))
101
+ throw new Error('已保存,但按钮位置回读不一致');
102
+ for (const key of ['actions', 'permissions']) {
103
+ const ids = (items) => items.map(i => String(i.id)).sort().join(',');
104
+ if (ids(details[key]) !== ids(after.details[key]))
105
+ throw new Error(`已保存,但 ${key} 回读 ID 不一致`);
106
+ }
107
+ return { success: true, verified: true, buttonId: button.id, ...config };
108
+ }
109
+ //# sourceMappingURL=form-button-position.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-button-position.js","sourceRoot":"","sources":["../../src/services/form-button-position.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-create.d.ts","sourceRoot":"","sources":["../../src/services/form-create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form-create.d.ts","sourceRoot":"","sources":["../../src/services/form-create.ts"],"names":[],"mappings":"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"}
@@ -575,7 +575,10 @@ export async function addInitialFieldsToCustomPhysicalForm(client, baseUrl, appI
575
575
  }
576
576
  else {
577
577
  // Text/TextArea/others
578
- sfObj.maxLen = sf.componentKey === 'TextArea' ? 1000 : 100;
578
+ // 文本最大长度:fields.json maxLen 覆盖,缺省 TextArea=1000、Text=100(与主表字段一致)。
579
+ // 之前硬编码不读 sf.maxLen → 明细子字段长度不可自定义,需事后 saveFormFieldNew 补。
580
+ const sfDefaultMaxLen = sf.componentKey === 'TextArea' ? 1000 : 100;
581
+ sfObj.maxLen = Number(sf.maxLen) > 0 ? Number(sf.maxLen) : sfDefaultMaxLen;
579
582
  sfObj.unique = false;
580
583
  sfObj.scan = false;
581
584
  sfObj.readonlyTransLink = false;