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,409 @@
1
+ # 新建 Ebuilder 表单
2
+
3
+ 通过 `e10-cli form create` 创建表单。
4
+
5
+ 建表自带默认台账;方案要求同一表单的普通列表时,查询 `form list-view <objId> <appId>` 并复用,名称略有差异也不另建。默认保留名称,记录实际 listId,详见[视图指南](guide-form-view.md)。
6
+
7
+ > **重要**:字段定义一次性写全(含选项、默认值等)。不要先建空表再逐个 `add-field` —— add-field 只用于罕见补救。
8
+
9
+ ## 基本用法
10
+
11
+ ```bash
12
+ e10-cli form create {应用ID} "表单名" --fields @fields.json
13
+ # 默认不加菜单;要入口传 --menu(台账菜单 VIEWPORT,指向数据列表页)。漏加可用 `e10-cli menu add-table <appId> <objId>` 补
14
+ ```
15
+
16
+ 不传 `--fields` 时使用默认字段:名称(Text)、数量(Number)、日期(Date)、状态(Select)。
17
+
18
+ ### 布局类型(流式/表格式)
19
+
20
+ ```bash
21
+ e10-cli form create {应用ID} "表单名" --fields @fields.json --layout FLOW # 流式
22
+ e10-cli form create {应用ID} "表单名" --fields @fields.json --layout EXCEL # 表格(缺省)
23
+ ```
24
+
25
+ | 要点 | 说明 |
26
+ |------|------|
27
+ | **布局类型建表时定死** | 平台建表后不可切换(流式↔表格式),只能创建时选。`--layout` 写在建表请求里(`layoutType` + `isAdvance:false`) |
28
+ | **流式模板** | FLOW 用特殊模板 `820000000000000001`(非通用版本 id,跨环境一致);CLI 自动配 |
29
+ | 缺省 | 不传 `--layout` 时缺省 `EXCEL`(表格,行为不变) |
30
+
31
+ ## 自定义字段
32
+
33
+ ```bash
34
+ e10-cli form create {应用ID} "表单名" --fields @fields.json
35
+ ```
36
+
37
+ 字段 JSON 格式(保存在 `fields.json` 中):
38
+
39
+ ```json
40
+ [
41
+ {"componentKey": "Text", "fieldName": "客户名称"},
42
+ {"componentKey": "Phone", "fieldName": "联系电话"},
43
+ {"componentKey": "Mobile", "fieldName": "手机号码"},
44
+ {"componentKey": "IDCard", "fieldName": "身份证号"},
45
+ {"componentKey": "Employee", "fieldName": "负责人"},
46
+ {"componentKey": "Department", "fieldName": "所属部门"},
47
+ {"componentKey": "Date", "fieldName": "签订日期"},
48
+ {"componentKey": "Money", "fieldName": "合同金额"},
49
+ {"componentKey": "Select", "fieldName": "客户等级", "fieldOptions": [{"name":"A级"},{"name":"B级"}]}
50
+ ]
51
+ ```
52
+
53
+ > **明细表(DetailTable)放最下面**:主表字段在前、明细表放数组末尾。布局/铺列按数组顺序处理,明细在前会打乱主表字段排布。
54
+ > ```json
55
+ > [
56
+ > {"componentKey":"Text","fieldName":"合同名称"},
57
+ > {"componentKey":"Money","fieldName":"合同金额"},
58
+ > {"componentKey":"DetailTable","fieldName":"付款明细","formFields":[
59
+ > {"componentKey":"Text","fieldName":"付款条件"},
60
+ > {"componentKey":"Number","fieldName":"付款金额","precision":2}
61
+ > ]}
62
+ > ]
63
+ > ```
64
+
65
+ > **`valueKey` 可选**:Select/RadioBox/CheckBox 的 `fieldOptions` 只需写 `name`,`valueKey` 由 CLI 自动生成。也可以手动指定短码如 `"valueKey":"a"`。
66
+
67
+ **字段读写属性**:`required` 必填 / `readOnly` 只读 / `hidden` 隐藏(字段不展示但保留参与计算,如运算/派生字段):
68
+ ```json
69
+ {"componentKey":"Number","fieldName":"请假时长(小时)","readOnly":true,"hidden":true},
70
+ {"componentKey":"FileComponent","fieldName":"证明材料","required":true}
71
+ ```
72
+ > `hidden:true` → 布局属性"显示"取消(show:false);`readOnly` → 布局"禁止手工编辑";`required` → 布局"必填"。这些是**布局属性**(优先级:字段在布局中的设置 > 字段管理中字段设置 > 模块默认),建表时一次配好,勿依赖平台默认值。
73
+
74
+ **独占一行**:字段写 `"singleRow":true` → 该字段整行显示(对齐平台布局 singleRow 属性),其余字段仍两列:
75
+ ```json
76
+ {"componentKey":"Text","fieldName":"项目名称","singleRow":true},
77
+ {"componentKey":"TextArea","fieldName":"项目描述","singleRow":true},
78
+ {"componentKey":"Text","fieldName":"负责人"}
79
+ ```
80
+ > 不加 `singleRow` 的普通字段两列排布。明细表 / 落单字段(奇数最后一个)本来就独占一行。add-field 加字段可用 `--single-row`。
81
+ >
82
+ > **规划阶段就该判断,勿默认全两列**:长文本/备注/项目描述/地址/富文本/长说明 → 默认 `singleRow:true`(两列挤一起难看);标题类(项目名称、合同名称)也常独占。AI 常漏标 singleRow,建表前过一遍字段语义。
83
+
84
+ **字段分组**(按表单结构判断,**勿默认全平铺**):6+ 字段、或字段有明显逻辑分段(基本信息/合同信息/系统设置/付款信息…)→ 按 `group` 名分组,建表时自动生成折叠容器,字段收进对应分组。用户没明确要求时,按字段语义自然分组(别每张表都加,也别 3 字段小表加)。建表时 fields.json 一并写 `group`,勿留到建后用 `form group` 补(那是对齐补救手段)。
85
+ ```json
86
+ [
87
+ {"componentKey":"Text","fieldName":"客户名称","group":"基本信息"},
88
+ {"componentKey":"Phone","fieldName":"联系电话","group":"基本信息"},
89
+ {"componentKey":"Select","fieldName":"客户状态","group":"基本信息","fieldOptions":[{"name":"潜在"},{"name":"正式"}]},
90
+ {"componentKey":"Date","fieldName":"签订日期"},
91
+ {"componentKey":"TextArea","fieldName":"备注"}
92
+ ]
93
+ ```
94
+ > 不写 `group` 的字段归「未分组」平铺在分组之后。分组内字段**默认两列**(一行两个),要独占一行写 `"singleRow":true`。明细表不参与分组(独立区块)。EXCEL/FLOW 布局都按 singleRow 控制两列/整行(对齐浏览器 initLayout payload)。
95
+
96
+
97
+ **Number/Money 精度**:用 `precision` 指定小数位数(缺省 Number=0 整数、Money=2):
98
+ ```json
99
+ {"componentKey":"Number","fieldName":"单价","precision":2},
100
+ {"componentKey":"Money","fieldName":"金额"}
101
+ ```
102
+ > 不设 precision 时 Number 建出来是整数(pointSize=0)、Money 是 2 位小数。主表/明细子字段都支持。
103
+ > **Number 与 Money 是两种类型**:Number=纯数字(默认无千分位/大写),Money=金额(千分位默认开)。字段名叫"金额"不代表必须用 Money 类型——类型由方案数据语义定,名称只是展示文本。
104
+
105
+ **Number/Money 千分位与大写**(按需开启,**由字段类型决定默认,与字段名无关**):
106
+ `"delimiter":true` 开千分位(**Number 默认关、Money 默认开**,`"delimiter":false` 关 Money 的);`"capital":true` 开大写金额显示(`isCapital` + `capitalFormat onlyUpperCase`):
107
+ ```json
108
+ {"componentKey":"Number","fieldName":"费用金额","precision":2},
109
+ {"componentKey":"Money","fieldName":"费用金额"}
110
+ ```
111
+ > - **类型决定默认,不是字段名**:上面两个字段**同名**"费用金额",但前者是 Number(千分位/大写关)、后者是 Money(千分位默认开)。判断看 `componentKey`,不看字段名。
112
+ > - **千分位/大写是 opt-in**:只在方案文档**明确要求**"显示千分位/金额大写"时才加 `delimiter`/`capital`,不要因字段名含"金额/费用/收款"就自动套用。
113
+ > - **Number 类型的金额语义字段缺省就是裸数字**:`{"componentKey":"Number","fieldName":"项目费用","precision":2}` —— 不带 delimiter/capital,这是正确写法。
114
+ > - add-field 用 `--delimiter` / `--no-delimiter` / `--capital`。
115
+
116
+ **Number 百分比显示**:`"percent":true` → `numberType=percentage`(缺省 pointSize=1,可再配 `precision`):
117
+ ```json
118
+ {"componentKey":"Number","fieldName":"付款比例","percent":true,"precision":1}
119
+ ```
120
+ > ⚠️ **百分比字段的公式要 ×100**:平台百分比字段是「数值直接拼 %」(不自动 ×100)。如 付款比例=付款金额/项目金额,10000/20000=0.5,会显示「**0.5%**」而非 50%。公式必须 ×100:
121
+ > ```json
122
+ > {"componentKey":"Number","fieldName":"付款比例","percent":true,"precision":1,"formula":"{付款信息.付款金额}/{主表.项目金额}*100"}
123
+ > ```
124
+ > 这样 0.5×100=50 → 显示「50%」。累加校验「比例累加=100%」也基于百分比数(50+50=100),不是比值。
125
+
126
+ **Number/Money 默认值**:`"defaultValue":1000` → 存 `content` + `isDefault:true`(如 工时单价默认 1000 元):
127
+ ```json
128
+ {"componentKey":"Number","fieldName":"工时单价","defaultValue":1000}
129
+ ```
130
+ > 平台机制:设默认值必须连 `isDelimiter/stepMode/step/isCapital` 一起发,否则默认值不落库(CLI 已处理)。
131
+ > 单位没有独立字段属性 —— 显示单位直接写在字段名里,如 `"fieldName":"工时数量(天)"`。
132
+ > **台账列单位显示**(绕法):平台字段无单位属性,但台账列可配显示后缀,用 `form list-unit <objId> <appId> <listId> <fieldId> "(元)"` 设置(走列表列配置 `showTrans.ruleConfig.suffix`,极简结构平台即接受)。
133
+
134
+ ## 支持的字段类型
135
+
136
+ | componentKey | 说明 |
137
+ |---|---|
138
+ | Text | 文本 |
139
+ | TextArea | 多行文本 |
140
+ | Email | 邮箱 |
141
+ | Phone | 电话 |
142
+ | Mobile | 手机 |
143
+ | IDCard | 身份证号 |
144
+ | Number | 数字(千分位/大写默认关,按需开;precision 缺省 0 整数) |
145
+ | Money | 金额(千分位默认开,大写按需开;precision 缺省 2) |
146
+ | Date | 日期(默认精度**年月日**,format `yyyy-MM-dd`;要带时间用 `"format"` 覆盖) |
147
+ | DateTime | 日期-时间(`Date` 的别名,默认带 时:分,format `yyyy-MM-dd HH:mm` 不含秒) |
148
+ | Employee | 人员选择 |
149
+ | Department | 部门选择 |
150
+ | FileComponent | 附件上传(**注意是 FileComponent 不是 File**) |
151
+ | Select | 下拉选择 |
152
+ | RadioBox | 单选按钮 |
153
+ | CheckBox | 多选按钮 |
154
+ | EInvoice | 电子发票(创建后无需额外配置,平台自动处理) |
155
+ | AudioRecord | 语音(极简字段,无特殊配置。注意不是 FileComponent 附件) |
156
+ | VideoRecord | 视频(极简字段,无特殊配置) |
157
+ | DetailTable | 明细表 |
158
+ | DateRange | 日期区间 |
159
+ | Time | 时间 |
160
+ | EBuilder | 关联 EB 表单(见下节) |
161
+ | Flow | **浏览-流程**(关联流程,如"数据来源"来自项目立项流程;`--sform-id` 为目标流程绑定的表单 objId,点击自动跳流程)。**form create 的 fields.json 直接写 `"sformId":"<流程表单objId>"` 即可**(建表后 CLI 自动绑 sformId/relateExt,与 EBuilder 同机制);add-field 用 `--sform-id`。⚠ sformId 必须是**流程绑定的表单 objId**(不是 workflowId),即"仅允许关联某流程"=Flow 字段 + sformId 指向该流程的表单 |
162
+
163
+ 正常情况下,人相关的 都是用Employee
164
+ Time 的格式固定为 HH:mm:ss 如 17:00:00
165
+ > **人员/部门默认值**:默认**不配默认值**(没写就没有)。要默认当前用户/部门写 `"defaultValue": true`(建表时自动配 `defaultExtend`)。
166
+ > **Date/DateTime 精度与默认值**:默认**不填默认值**。要带时间用 `"format"` 覆盖精度(如 `"format":"yyyy-MM-dd HH:mm"`、`yyyy-MM-dd HH:mm:ss`);要配动态当天默认值写 `"defaultValue": true`(建表时自动配 `defaultExtend`)。add-field 加字段用 `--format` 覆盖精度。
167
+ > ```json
168
+ > {"componentKey":"Date","fieldName":"签订日期"},
169
+ > {"componentKey":"Date","fieldName":"精确到秒","format":"yyyy-MM-dd HH:mm:ss"},
170
+ > {"componentKey":"Date","fieldName":"默认今天","defaultValue":true}
171
+ > ```
172
+ >
173
+ > **日期限制**:A 字段**最早不得早于** B 字段写 `"minField":"B字段名"`,**最晚不得晚于**写 `"maxField":"B字段名"`(对齐平台 `min/max.dateField`,自动解析 B 的 fieldId)。**子表字段同样支持**,可指向主表字段或同子表字段。add-field 用 `--min-field` / `--max-field`。
174
+ > ```json
175
+ > {"componentKey":"Date","fieldName":"计划开始日期"},
176
+ > {"componentKey":"Date","fieldName":"计划结束日期","minField":"计划开始日期"},
177
+ > {"componentKey":"Date","fieldName":"完成日期","maxField":"计划结束日期"},
178
+ > {"componentKey":"DetailTable","fieldName":"行程明细","formFields":[
179
+ > {"componentKey":"Date","fieldName":"明细开始日期","minField":"计划开始日期"},
180
+ > {"componentKey":"Date","fieldName":"明细结束日期","minField":"明细开始日期"}
181
+ > ]}
182
+ > ```
183
+
184
+ **多选**:人员(Employee)/部门(Department)/关联ebuilder(EBuilder)/浏览(Browser)/下拉(Select) 默认单选,要选多个加 `"multiple": true`:
185
+ ```json
186
+ {"componentKey":"Employee","fieldName":"参与人员","multiple":true},
187
+ {"componentKey":"Department","fieldName":"会签部门","multiple":true},
188
+ {"componentKey":"EBuilder","fieldName":"关联客户","sformId":"<目标表单objId>","dataTitle":"name","multiple":true},
189
+ {"componentKey":"Select","fieldName":"标签","multiple":true,"fieldOptions":[{"name":"A"},{"name":"B"}]}
190
+ ```
191
+ > 不写 `multiple` 即单选。多选 EBuilder 选中多条记录,字段存数组值。**下拉 Select 多选 = 独立类型 `SelectMultiple`**(CLI 自动转,非 Select+开关)。
192
+
193
+ **文本最大长度**:Text 缺省 100、TextArea 缺省 4000,用 `"maxLen"` 覆盖(主表 + 明细子字段都支持):
194
+ ```json
195
+ {"componentKey":"Text","fieldName":"备注","maxLen":500},
196
+ {"componentKey":"TextArea","fieldName":"详情","maxLen":8000}
197
+ ```
198
+ > add-field 用 `--max-len <n>`。
199
+
200
+ ## EBuilder 关联字段
201
+
202
+ 关联其他表单记录(下拉选择/搜索),选中后展示目标表单的某个字段值。
203
+
204
+ ```json
205
+ {
206
+ "componentKey": "EBuilder",
207
+ "fieldName": "关联客户",
208
+ "sformId": "1296220571782152199",
209
+ "dataTitle": "客户名称"
210
+ }
211
+ ```
212
+
213
+ | 字段 | 必填 | 说明 |
214
+ |------|------|------|
215
+ | `sformId` | 是 | **目标表单的 objId**(不是 appId/formId) |
216
+ | `dataTitle` | 是 | 目标表单中用于显示的字段名,选中记录后展示该字段值。传 `"name"`(或不写)默认取目标表**字段名含"名称"**的字段(如 客户名称/类型名称),无则取第一个业务字段 |
217
+ | `displayColumns` | 否 | **关联浏览弹窗显示列**(字段名列表)。缺省自动用目标表业务字段**最多 5 个**(去系统字段),建好即生效;要指定用这个 |
218
+
219
+ > **关联浏览弹窗显示列默认自动配好**:`form create` 建表和 `form add-field` 加 EBuilder 字段时都自动写入 `ffDisplayColumns` = 目标表**业务字段前 5 个**(排除创建者/创建时间/数据ID等系统字段),浏览弹窗直接生效。`fields.json` 里显式写 `displayColumns` 指定列不受 5 个限制。事后想改可用 `e10-cli form ebuilder-columns <objId> <appId> <fieldId> <列...>` 或 `--clear` 清空。
220
+
221
+ ### EBuilder + 值带出(relateFrom)
222
+
223
+ 选关联记录后自动带出其他字段值(如选客户→带出联系人/地址):
224
+
225
+ ```json
226
+ {
227
+ "componentKey": "Text",
228
+ "fieldName": "联系人",
229
+ "relateFrom": { "ebuilderField": "关联客户", "sourceFieldId": "1296220571782152194" }
230
+ }
231
+ ```
232
+
233
+ - `ebuilderField`:本表单中的 EBuilder 字段名
234
+ - `sourceFieldId`:目标表单中要复制值的字段 **fieldId(数字 ID)**。⚠️ **不能传字段名**,用 `form read --app-id` 获取
235
+
236
+ 创建后补配值带出:`e10-cli form edit-field ... --relate-from <EBuilder字段名> --relate-from-source <源字段fieldId>`
237
+ > ⚠️ `--relate-from-source` 必须传字段的**数字 fieldId**,不能传字段名。
238
+
239
+ ## Select/RadioBox/CheckBox 带选项
240
+
241
+ ```json
242
+ {
243
+ "componentKey": "Select",
244
+ "fieldName": "客户等级",
245
+ "fieldOptions": [
246
+ {"name": "A级"},
247
+ {"name": "B级"},
248
+ {"name": "C级"}
249
+ ]
250
+ }
251
+ ```
252
+
253
+ ## 明细表 DetailTable
254
+
255
+ 明细表包含嵌套子字段,子字段写在其 `formFields` 数组内:
256
+
257
+ ```json
258
+ {
259
+ "componentKey": "DetailTable",
260
+ "fieldName": "订单明细",
261
+ "formFields": [
262
+ {"componentKey": "Text", "fieldName": "商品名称"},
263
+ {"componentKey": "Number", "fieldName": "数量"},
264
+ {"componentKey": "Number", "fieldName": "单价"},
265
+ {"componentKey": "Date", "fieldName": "交付日期"}
266
+ ]
267
+ }
268
+ ```
269
+
270
+ 子字段也支持带选项的类型。
271
+
272
+ ## 复杂编号(年份编号):serial-mark
273
+
274
+ 编号(如 `XM-2026-001`、`YF-2026-0001`)走**复杂编号**机制:在任意文本字段上配编码段,`form serial-mark set --segments` 用 JSON 数组组合任意规则,**数组顺序即编号拼接顺序**,一条命令配完(含代字),重跑全量替换不累积。
275
+
276
+ ### 配置:`set --segments`
277
+
278
+ ```bash
279
+ e10-cli form serial-mark set <objId> <appId> <字段ID> --segments @segments.json
280
+ # 也支持内联 JSON:--segments '[{"type":"fixed","value":"XM-"},{"type":"serial","digits":4}]'
281
+ ```
282
+
283
+ segments.json 示例(生成如 `YF-2026-0001`,按年单独流水):
284
+ ```json
285
+ [
286
+ {"type":"field","fieldId":"<选择框字段ID>","shortName":{"研发":"YF","实施":"SS","运维":"YW","咨询":"ZX"}},
287
+ {"type":"fixed","value":"-"},
288
+ {"type":"year","format":"four","alone":true},
289
+ {"type":"serial","digits":4,"zero":true}
290
+ ]
291
+ ```
292
+
293
+ ### 段类型参考(任意组合,数组顺序决定拼接顺序)
294
+
295
+ | type | 含义 | 属性 | 平台 markFieldType |
296
+ |------|------|------|-------------------|
297
+ | `fixed` | 固定内容 | `value`(文本,如 `"XM-"`/`"-"`) | FIX_CONTEXT |
298
+ | `year` | 年份 | `format`:`four`(四位 2026,缺省)/`two`(两位 26);`alone`:true 按年单独流水(缺省 true) | DATE_YEAR |
299
+ | `serial` | 流水号 | `digits`(位数,如 4→0001);`zero`:true 补零(缺省)/false 不补零;`alone`:true 机构单独流水 | SERIAL_NUMBER |
300
+ | `field` | 表单字段值 | `fieldId`(取值字段);`alone`:true 机构单独流水;`shortName`:inline 代字映射(选项名→简称,见下) | FORM_FIELD |
301
+ | `system` | 系统字段 | `systemField`:`creator`(创建人)/`creator-dept`(创建人所属部门,自动部门代字);`alone` | SYSTEM_FIELD |
302
+ | `date` | 日期 | `format`:`yyyy`/`yyyyMM`/`yyyyMMdd`;`source`:`current`(当前)/`<字段ID>`;`alone` | DATE |
303
+
304
+ > - **任意规则直接组合**:把规则拆成段,按拼接顺序写入数组即可。如 `项目类型-年份-4位流水` = field + fixed("-") + year + serial
305
+ > - **代字自动**:field 段 markExtend=103(选项值取简称)、system creator-dept markExtend=101(部门取代字),无需手填
306
+ > - **inline 代字**:field 段带 `shortName` 自动配置代字映射,无需再跑 short-name
307
+ > - **按年单独流水**:year 段 `alone:true`(DATE_YEAR seqAlone,流水号每年重新计数)
308
+ > - **全量替换**:重跑时旧段进 delDefIds 清除,markDefId 复用,绑定/代字不丢失
309
+ > - 段对象来自 `getMarkFieldAddData` 预生成;markDefId 来自 `saveSingleMarkDef`;已有绑定时复用持久化 markDef(getMarkContext 优先用绑定记录的 targetId)
310
+
311
+ ### 增量调整(可选)
312
+
313
+ `set` 是全量重建;需在已有编号上追加/微调单段用 `add-segment`,单独查/改代字用 `short-name`:
314
+
315
+ ```bash
316
+ e10-cli form serial-mark add-segment <objId> <appId> <绑定字段ID> --type field --field-id <取值字段ID> [--position 0]
317
+ e10-cli form serial-mark add-segment <objId> <appId> <绑定字段ID> --type system --system-field creator-dept
318
+ e10-cli form serial-mark short-name list <objId> <appId> <选择框字段ID>
319
+ e10-cli form serial-mark short-name set <objId> <appId> <选择框字段ID> --map '{"研发":"YF","实施":"SS"}'
320
+ ```
321
+ add-segment 段类型与 set 一致(fixed/year/serial/field/system/date),`--position` 插入位置(缺省追加末尾)。
322
+
323
+ ### 查询与解除
324
+
325
+ ```bash
326
+ e10-cli form serial-mark read <objId> <appId> # 查看编号配置(绑定字段+组成段+代字)
327
+ e10-cli form serial-mark fields <objId> <appId> # 查可作为编号目标的字段
328
+ e10-cli form serial-mark clear <objId> <appId> <字段ID> # 解除编号绑定
329
+ ```
330
+
331
+ **注意**:
332
+ - 被编码字段平台自动设为只读(编号自动生成,不可手工改)
333
+ - 流水号按 `前缀+年份+流水` 组合查重累进
334
+ - 机制:markField 复杂编号(getEbMarkTargetId → getMarkSetForm → saveSingleMarkDef → saveOrUpdate → saveMarkField);段对象必须来自 getMarkFieldAddData 预生成;已有绑定时复用持久化 markDef,段/代字不丢失
335
+
336
+ ## 日期区间 DateRange
337
+
338
+ 日期区间字段**必须**指定精度格式,通过 `format` 配置:
339
+
340
+ ```json
341
+ {
342
+ "componentKey": "DateRange",
343
+ "fieldName": "出差时间",
344
+ "format": "yyyy-MM-dd HH:mm"
345
+ }
346
+ ```
347
+
348
+ | 字段 | 必填 | 说明 |
349
+ |------|------|------|
350
+ | `format` | 否 | 区间精度。缺省 `yyyy-MM-dd`(年-月-日);到分钟写 `yyyy-MM-dd HH:mm`;到秒 `yyyy-MM-dd HH:mm:ss` |
351
+ | `startPlaceholder` / `endPlaceholder` | 否 | 开始/结束控件占位符。缺省按 format 自动生成中文(如 `年-月-日 时:分`) |
352
+
353
+ > **CLI 自动展开**:创建时无需手写 `start`/`end`/`rangeInterval`——CLI 会把该字段展开为平台要求的 3 字段结构(主字段 + 「(开始时间)」「(结束时间)」两个 DateComponent,各带独立 fieldId),这是之前报 `DateIntervalFieldDto.getEnd()==null` 的根因(缺了 end 组件)。
354
+ >
355
+ > **事后补加**:`e10-cli form add-field <objId> <appId> "回程时间" DateRange --format "yyyy-MM-dd HH:mm"`
356
+
357
+ ## 字段公式(fields.json 的 formula 属性)
358
+
359
+ 创建表单时直接给字段绑定计算公式,CLI 自动完成「创建公式 + 绑定字段」两步(字段配置会带上 `ffExpress`):
360
+
361
+ ```json
362
+ {
363
+ "componentKey": "Number",
364
+ "fieldName": "出差天数",
365
+ "formula": "DAYS({主表.出差时间(开始时间)},{主表.出差时间(结束时间)})"
366
+ }
367
+ ```
368
+
369
+ 或对象形式指定返回类型:
370
+
371
+ ```json
372
+ "formula": { "expression": "DAYS({主表.出差时间(开始时间)},{主表.出差时间(结束时间)})", "returnType": "Number" }
373
+ ```
374
+
375
+ | 要点 | 说明 |
376
+ |------|------|
377
+ | 表达式语法 | 与 `form formula set --expression` 一致,用 `{主表.字段名}` 引用主表字段、`{明细表名.字段名}` 引用**明细表**字段(如 `DAYS({行程明细.行程开始时间},{行程明细.行程结束时间})`)。**fields.json create 与 formula set 两条路径都支持明细引用** |
378
+ | **明细列求和** | **`SUM({明细表名.字段})`** 可对明细表某列跨行求和(如 `SUM({付款信息.付款金额})`),生效。可配合 `workflow node validate` 做"明细累加=主表字段"校验 |
379
+ | **日期差** | 两个日期相减**不直接支持**,要用平台函数 **`DAYS({主表.开始},{主表.结束})`** |
380
+ | 返回类型 | 缺省 `Number`;文本/日期类用对象形式指定 |
381
+ | 事后补加 | `e10-cli form formula set <objId> <appId> --expression "..." --target <fieldId>` |
382
+
383
+ > **明细表子字段选项**:`DetailTable` 的 `formFields` 里的 `Select/RadioBox/CheckBox` 也支持 `fieldOptions`,CLI 会自动给子字段配置选项(创建时无需额外操作)。
384
+
385
+ ## 完整示例
386
+
387
+ ```bash
388
+ e10-cli form create 1283840156707348480 "采购合同" --fields @fields.json
389
+ ```
390
+
391
+ `fields.json` 内容:
392
+
393
+ ```json
394
+ [
395
+ {"componentKey":"Text","fieldName":"合同编号"},
396
+ {"componentKey":"Text","fieldName":"供应商名称"},
397
+ {"componentKey":"Employee","fieldName":"采购负责人"},
398
+ {"componentKey":"Date","fieldName":"签订日期"},
399
+ {"componentKey":"Money","fieldName":"总金额"},
400
+ {"componentKey":"Select","fieldName":"合同状态","fieldOptions":[{"name":"待审批"},{"name":"已审批"},{"name":"已完成"}]},
401
+ {"componentKey":"DetailTable","fieldName":"采购明细","formFields":[{"componentKey":"Text","fieldName":"物品名称"},{"componentKey":"Number","fieldName":"数量"},{"componentKey":"Number","fieldName":"单价"}]}
402
+ ]
403
+ ```
404
+
405
+ ## 创建成功后
406
+
407
+ - 返回表单 ID
408
+ - 用 `e10-cli form read <objId> --app-id <appId> --out fields.json` 导出字段信息(机器可读 JSON)
409
+ - 在代码中通过 `formApi.js` 读写该表单数据
@@ -0,0 +1,73 @@
1
+ # EBuilder 关联字段数据过滤
2
+
3
+ 用于配置表单中 EBuilder 关联字段的“数据过滤设置”。它决定关联弹窗里哪些目标表单数据可被选择,不是表格视图的常用搜索。
4
+
5
+ ## 命令
6
+
7
+ ```bash
8
+ # 读取并解析当前规则
9
+ e10-cli form ebuilder-filter get <源objId> <appId> <EBuilder字段fieldId>
10
+
11
+ # 设置规则;rules 支持 JSON 字符串或 @文件
12
+ e10-cli form ebuilder-filter set <源objId> <appId> <EBuilder字段fieldId> \
13
+ --rules @filter-rules.json \
14
+ --logic and
15
+
16
+ # 清空规则
17
+ e10-cli form ebuilder-filter clear <源objId> <appId> <EBuilder字段fieldId>
18
+ ```
19
+
20
+ `--logic and|or` 表示满足全部或任一规则;`--fill-null 0|1` 控制关联值为空时是否填充。未传时保留原设置。
21
+
22
+ ## 规则格式
23
+
24
+ 每条规则统一使用目标字段的准确名称或 `fieldId`,不要手写 `filterParams`:
25
+
26
+ ```json
27
+ [
28
+ {
29
+ "field": "合同名称",
30
+ "operator": "like",
31
+ "value": "测试合同"
32
+ },
33
+ {
34
+ "field": "合同金额",
35
+ "operator": "like",
36
+ "value": { "min": 100, "max": 500 }
37
+ },
38
+ {
39
+ "field": "合同状态",
40
+ "operator": "eq",
41
+ "value": ["已退回"]
42
+ }
43
+ ]
44
+ ```
45
+
46
+ 字段名重复时必须改用 `fieldId`。Select/RadioBox/CheckBox 的 `value` 可以写选项名称或 `valueKey`,CLI 会查询选项并转换;浏览类字段应写对象 ID。
47
+
48
+ ## 字段与条件
49
+
50
+ | 目标字段 | operator | value |
51
+ |---|---|---|
52
+ | 固定标题 `name` | `like`、`eq`、`neq` | 单值 |
53
+ | 固定创建者 `creator` | `eq`、`neq` | ID 或 ID 数组 |
54
+ | 固定创建时间 `create_time` | `like` | `{"start":"...","end":"..."}` |
55
+ | Text/TextArea/Email/Phone/Mobile | `like`、`eq`、`neq`、`null`、`notnull` | 单值;空值条件不传 value |
56
+ | Money/Number | `like`、`null`、`notnull` | `like` 使用 `{"min":...,"max":...}` |
57
+ | Date/DateComponent | `like`、`beq`、`seq`、`null`、`notnull` | 范围或单值 |
58
+ | Select/RadioBox/CheckBox | `eq`、`neq`、`null`、`notnull` | 名称/valueKey 数组 |
59
+ | Employee/Department 等浏览类 | `eq`、`neq`、`null`、`notnull` | ID 或 ID 数组 |
60
+
61
+ 条件来自当前设计器契约。未知组件或不支持的条件必须在写入前失败,禁止猜测。
62
+
63
+ ## 保存与验证
64
+
65
+ CLI 会:
66
+
67
+ 1. 验证源字段确为已绑定目标表单的 EBuilder 字段。
68
+ 2. 从目标表单读取字段类型和选项,不按名称猜类型。
69
+ 3. 同时生成运行时 `filterParams` 和设计器回显 `filterQueryParams`。
70
+ 4. 通过字段布局接口保存,并保留其他字段布局设置。
71
+ 5. 从 `getFormLayout.fieldLayout` 独立回读;两份配置不一致即报错。
72
+
73
+ 当前只支持常量过滤。变量来源、未确认的新控件和无法取得选项契约的跨应用字段,不应强行写入。
@@ -0,0 +1,82 @@
1
+ # 关联浏览数据范围设置(浏览数据定义 → 数据范围)
2
+
3
+ 配置表单中 EBuilder 关联字段的**数据范围设置**——决定关联浏览弹窗里**哪些被关联数据可选**(如关联客户时只选"客户状态=启用"的客户)。对应设计器「浏览数据定义 → 数据范围设置」面板。
4
+
5
+ 走平台 `browserDataScope` 接口(selectPage 读 / batchSave 写+清),设计器能识别、浏览时生效。
6
+
7
+ ## 命令
8
+
9
+ ```bash
10
+ # 读取已设数据范围
11
+ e10-cli form ebuilder-scope get <源objId> <appId> <EBuilder字段fieldId>
12
+
13
+ # 设置数据范围:被关联数据须满足条件才可选
14
+ e10-cli form ebuilder-scope set <源objId> <appId> <EBuilder字段fieldId> \
15
+ --rules @scope-rules.json --logic and
16
+
17
+ # 清空
18
+ e10-cli form ebuilder-scope clear <源objId> <appId> <EBuilder字段fieldId>
19
+ ```
20
+
21
+ - `<源objId>`:含关联浏览字段的表单 objId
22
+ - `<appId>`:应用 ID
23
+ - `<EBuilder字段fieldId>`:关联浏览字段的 fieldId(`form read` 获取,类型为 Ebuilder)
24
+ - `--logic and|or`:多规则关系(默认 `and`)
25
+ - `--fill-null`:关联字段为空时是否填充(默认关闭)
26
+
27
+ ## 规则格式
28
+
29
+ ```json
30
+ [
31
+ {"field":"客户状态","operator":"eq","value":"启用"},
32
+ {"field":"客户名称","operator":"like","value":"上海"}
33
+ ]
34
+ ```
35
+
36
+ | 字段 | 说明 |
37
+ |------|------|
38
+ | `field` | 目标表单字段名或 fieldId(CLI 自动解析) |
39
+ | `operator` | `eq`(等于)/`neq`(不等于)/`like`(包含)/`isnull`(为空)/`notnull`(不为空) |
40
+ | `value` | 选项类用**选项名**,CLI 自动解析 valueKey;文本/数字/日期用字面值。`isnull`/`notnull` 不需要 value |
41
+
42
+ > 选项类字段(Select/Radio/CheckBox):`value` 填选项名,CLI 自动反查目标表该字段的选项、解析出 valueKey,填 `selectValue`/`customBrowserValue`/`config.options`。选项名必须在目标表选项中存在,否则报错并列出可选值。
43
+
44
+ ## 示例
45
+
46
+ **关联客户只选启用状态**(典型场景:客户状态=启用才可选):
47
+
48
+ ```bash
49
+ e10-cli form ebuilder-scope set <源objId> <appId> <EBuilder字段fieldId> \
50
+ --rules '[{"field":"客户状态","operator":"eq","value":"启用"}]'
51
+ ```
52
+
53
+ **多条件**(启用且名称含上海):
54
+
55
+ ```bash
56
+ e10-cli form ebuilder-scope set <源objId> <appId> <EBuilder字段fieldId> \
57
+ --rules '[{"field":"客户状态","operator":"eq","value":"启用"},{"field":"客户名称","operator":"like","value":"上海"}]' \
58
+ --logic and
59
+ ```
60
+
61
+ **清空恢复全部可选**:
62
+
63
+ ```bash
64
+ e10-cli form ebuilder-scope clear <源objId> <appId> <EBuilder字段fieldId>
65
+ ```
66
+
67
+ ## 验证
68
+
69
+ - `set` 命令保存后自动回读校验规则数是否一致
70
+ - 设计器打开「数据范围设置」面板应显示所设条件
71
+ - 关联浏览时被关联数据应按条件过滤(不满足的不可选)
72
+
73
+ ## 与旧 `ebuilder-filter` 的区别
74
+
75
+ | | `ebuilder-scope`(推荐) | `ebuilder-filter`(已废弃,保留兼容) |
76
+ |---|---|---|
77
+ | 接口 | `browserDataScope`(数据范围专用) | 字段布局 `filterParams` |
78
+ | 设计器识别 | ✅ | ❌ |
79
+ | 浏览时生效 | ✅ | 不保证 |
80
+ | 用途 | 关联浏览筛选 | 旧机制,已被 scope 取代 |
81
+
82
+ > ⚠️ `ebuilder-filter` 的旧配置不保证被设计器识别;新建关联浏览筛选一律用 `ebuilder-scope`。