weaver-work-cli 0.1.23 → 0.1.25

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/README.md +33 -3
  2. package/dist/core/output.js +53 -1
  3. package/dist/internal/e10/auth/commands.js +210 -17
  4. package/dist/internal/e10/auth/crypto.js +52 -12
  5. package/dist/internal/e10/auth/xiaoe.js +117 -35
  6. package/dist/internal/e10/context.js +3 -3
  7. package/dist/internal/e10/request-runtime.js +46 -4
  8. package/dist/shortcuts/caizhilian/file-upload/metadata.js +124 -0
  9. package/dist/shortcuts/caizhilian/file-upload/multipart.js +47 -0
  10. package/dist/shortcuts/caizhilian/file-upload/protocol.js +116 -0
  11. package/dist/shortcuts/caizhilian/file-upload/receipt.js +37 -0
  12. package/dist/shortcuts/caizhilian/host.js +13 -5
  13. package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +72 -179
  14. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
  15. package/dist/shortcuts/caizhilian/operations/handlers/folder.js +701 -4
  16. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
  17. package/dist/shortcuts/caizhilian/operations/registry.js +5 -1
  18. package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
  19. package/dist/shortcuts/caizhilian/operations/specs.js +67 -0
  20. package/dist/shortcuts/workflow/continuation.js +14 -9
  21. package/dist/shortcuts/workflow/endpoints.js +11 -1
  22. package/dist/shortcuts/workflow/index.js +55 -1
  23. package/dist/shortcuts/workflow/operations/flow-status.js +63 -0
  24. package/dist/shortcuts/workflow/operations/form.js +1822 -547
  25. package/dist/shortcuts/workflow/operations/read.js +414 -13
  26. package/dist/shortcuts/workflow/operations/shared.js +28 -0
  27. package/dist/shortcuts/workflow/operations/write.js +5 -5
  28. package/dist/shortcuts/workflow/operations.js +8 -6
  29. package/dist/shortcuts/workflow/stdout-compact.js +33 -0
  30. package/docs/caizhilian.md +12 -5
  31. package/docs/e10-auth.md +25 -3
  32. package/node_modules/@napi-rs/keyring/LICENSE +21 -0
  33. package/node_modules/@napi-rs/keyring/README.md +19 -0
  34. package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
  35. package/node_modules/@napi-rs/keyring/index.js +514 -0
  36. package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
  37. package/node_modules/@napi-rs/keyring/keytar.js +26 -0
  38. package/node_modules/@napi-rs/keyring/package.json +125 -0
  39. package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
  40. package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
  41. package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
  42. package/node_modules/commander/LICENSE +22 -0
  43. package/node_modules/commander/Readme.md +1149 -0
  44. package/node_modules/commander/esm.mjs +16 -0
  45. package/node_modules/commander/index.js +24 -0
  46. package/node_modules/commander/lib/argument.js +149 -0
  47. package/node_modules/commander/lib/command.js +2662 -0
  48. package/node_modules/commander/lib/error.js +39 -0
  49. package/node_modules/commander/lib/help.js +709 -0
  50. package/node_modules/commander/lib/option.js +367 -0
  51. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  52. package/node_modules/commander/package-support.json +16 -0
  53. package/node_modules/commander/package.json +82 -0
  54. package/node_modules/commander/typings/esm.d.mts +3 -0
  55. package/node_modules/commander/typings/index.d.ts +1045 -0
  56. package/package.json +5 -1
  57. package/skills/weaver-e10-builder/SKILL.md +281 -0
  58. package/skills/weaver-e10-builder/_catalog.md +94 -0
  59. package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
  60. package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
  61. package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
  62. package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
  63. package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
  64. package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  65. package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
  66. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
  67. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
  68. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
  69. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
  70. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
  71. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
  72. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  73. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
  74. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
  75. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
  76. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
  77. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  78. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  79. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  80. package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
  81. package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  82. package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  83. package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  84. package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  85. package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  86. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
  87. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
  88. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  89. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  90. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
  91. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
  92. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  93. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
  94. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
  95. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
  96. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
  97. package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
  98. package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
  99. package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  100. package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
  101. package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
  102. package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
  103. package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
  104. package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  105. package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
  106. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
  107. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
  108. package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
  109. package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
  110. package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
  111. package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
  112. package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
  113. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  114. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  115. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  116. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  117. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  118. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
  119. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  120. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  121. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  122. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
  123. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  124. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  125. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  126. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  127. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  128. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
  129. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  130. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  131. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
  132. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  133. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  134. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  135. package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
  136. package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
  137. package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
  138. package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
  139. package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
  140. package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
  141. package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
  142. package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
  143. package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
  144. package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
  145. package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
  146. package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
  147. package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
  148. package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
  149. package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
  150. package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
  151. package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
  152. package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
  153. package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
  154. package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
  155. package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
  156. package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
  157. package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
  158. package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
  159. package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
  160. package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
  161. package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
  162. package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
  163. package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
  164. package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
  165. package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
  166. package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
  167. package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
  168. package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
  169. package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
  170. package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
  171. package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
  172. package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
  173. package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
  174. package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
  175. package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
  176. package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
  177. package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
  178. package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
  179. package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
  180. package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
  181. package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
  182. package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
  183. package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
  184. package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
  185. package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
  186. package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
  187. package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
  188. package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
  189. package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
  190. package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
  191. package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
  192. package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
  193. package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
  194. package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
  195. package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
  196. package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
  197. package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
  198. package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
  199. package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
  200. package/skills/weaver-e10-builder/assets/icons.db +0 -0
  201. package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
  202. package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
  203. package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
  204. package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
  205. package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
  206. package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
  207. package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
  208. package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
  209. package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
  210. package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
  211. package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
  212. package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
  213. package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
  214. package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
  215. package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
  216. package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
  217. package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
  218. package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
  219. package/skills/weaver-e10-builder/references/common/map.md +153 -0
  220. package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
  221. package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
  222. package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
  223. package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
  224. package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
  225. package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
  226. package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
  227. package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
  228. package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
  229. package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
  230. package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
  231. package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
  232. package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
  233. package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
  234. package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
  235. package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
  236. package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
  237. package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
  238. package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
  239. package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
  240. package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
  241. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
  242. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
  243. package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
  244. package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
  245. package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
  246. package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
  247. package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
  248. package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
  249. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
  250. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
  251. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
  252. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
  253. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
  254. package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
  255. package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
  256. package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
  257. package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
  258. package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
  259. package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
  260. package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
  261. package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
  262. package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
  263. package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
  264. package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
  265. package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
  266. package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
  267. package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
  268. package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
  269. package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
  270. package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
  271. package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
  272. package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
  273. package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
  274. package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
  275. package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
  276. package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
  277. package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
  278. package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
  279. package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
  280. package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
  281. package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
  282. package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
  283. package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
  284. package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
  285. package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
  286. package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
  287. package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
  288. package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
  289. package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
  290. package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
  291. package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
  292. package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
  293. package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
  294. package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
  295. package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  296. package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
  297. package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
  298. package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
  299. package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
  300. package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
  301. package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
  302. package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
  303. package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
  304. package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
  305. package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
  306. package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
  307. package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
  308. package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
  309. package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
  310. package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
  311. package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
  312. package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
  313. package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
  314. package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
  315. package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
  316. package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
  317. package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
  318. package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
  319. package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
  320. package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
  321. package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
  322. package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
  323. package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
  324. package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
  325. package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
  326. package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
  327. package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
  328. package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
  329. package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
  330. package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
  331. package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
  332. package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
  333. package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
  334. package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
  335. package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
  336. package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
  337. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
  338. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
  339. package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
  340. package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
  341. package/skills/weaver-e10-caizhilian/SKILL.md +14 -4
  342. package/skills/weaver-e10-caizhilian/references/file-upload.md +100 -295
  343. package/skills/weaver-e10-caizhilian/references/files.md +15 -0
  344. package/skills/weaver-e10-caizhilian/references/folder.md +31 -3
  345. package/skills/weaver-e10-caizhilian/references/setting-attach.md +48 -3
  346. package/skills/weaver-e10-caizhilian/references/source-manifest.json +634 -25
  347. package/skills/weaver-e10-jiuchuanhui/SKILL.md +9 -1
  348. package/skills/weaver-e10-shared/SKILL.md +19 -5
  349. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +25 -5
  350. package/skills/weaver-e10-workflow/SKILL.md +28 -47
  351. package/skills/weaver-e10-workflow/references/source-manifest.json +46 -36
  352. package/skills/weaver-e10-workflow/references/workflow-batch.md +2 -4
  353. package/skills/weaver-e10-workflow/references/workflow-create.md +261 -86
  354. package/skills/weaver-e10-workflow/references/workflow-edit.md +2 -1
  355. package/skills/weaver-e10-workflow/references/workflow-memory.md +3 -6
  356. package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -1
  357. package/skills/weaver-e10-workflow/references/workflow-query.md +11 -9
  358. package/skills/weaver-e10-workflow/references/workflow-share.md +2 -0
@@ -0,0 +1,510 @@
1
+ import { appInfo } from '@weapp/utils';
2
+ const { publicUrl } = appInfo('@weapp/ecodesdk');
3
+ const API_BASE = `${publicUrl}/api/ebuilder/form/dataset`;
4
+
5
+ /**
6
+ * Fetches data with a timeout and retry mechanism.
7
+ * @param {string} url - The URL to fetch.
8
+ * @param {RequestInit} options - Fetch options.
9
+ * @param {number} [timeoutMs=5000] - Timeout in milliseconds.
10
+ * @param {number} [retries=3] - Number of retries.
11
+ * @returns {Promise<Response>}
12
+ */
13
+ async function fetchWithRetry(url, options, timeoutMs = 5000, retries = 3) {
14
+ let lastError;
15
+
16
+ for (let i = 0; i <= retries; i++) {
17
+ const controller = new AbortController();
18
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
19
+
20
+ try {
21
+ const response = await fetch(url, {
22
+ ...options,
23
+ signal: controller.signal,
24
+ });
25
+
26
+ clearTimeout(timeoutId);
27
+ return response;
28
+ } catch (error) {
29
+ clearTimeout(timeoutId);
30
+ lastError = error;
31
+
32
+ // If it's the last attempt, throw the error
33
+ if (i === retries) {
34
+ throw new Error(`Request failed after ${retries + 1} attempts. Last error: ${lastError.message}`);
35
+ }
36
+
37
+ // Optional: Add exponential backoff or simple delay before retrying
38
+ await new Promise(resolve => setTimeout(resolve, 1000 * (i + 1)));
39
+ }
40
+ }
41
+
42
+ // This line should theoretically not be reached due to the throw above
43
+ throw lastError;
44
+ }
45
+
46
+ /**
47
+ * 获取字段定义
48
+ * @param {string} objId
49
+ * @param {string} userId
50
+ * @returns {Promise<Array>}
51
+ */
52
+ export async function getFields(objId, userId) {
53
+ const response = await fetchWithRetry(`${API_BASE}/v1/getFields`, {
54
+ method: 'POST',
55
+ headers: { 'Content-Type': 'application/json' },
56
+ body: JSON.stringify({
57
+ userid: userId,
58
+ objId: objId,
59
+ tenantKey: TENANTKEY,
60
+ }),
61
+ });
62
+
63
+ const result = await response.json();
64
+
65
+ if (result.message.code !== '0') {
66
+ throw new Error(`获取字段失败: ${result.message.msg}`);
67
+ }
68
+
69
+ // 按 number 排序,保持表单原始顺序
70
+ return result.data.mainFields.sort((a, b) => a.number - b.number);
71
+ }
72
+
73
+ /**
74
+ * 获取所有数据
75
+ * @param {string} objId
76
+ * @param {string} userId
77
+ * @returns {Promise<Array>}
78
+ */
79
+ const TENANTKEY = TEAMS.currentTenant.tenantKey
80
+ export async function getAllData(objId, userId) {
81
+ const response = await fetchWithRetry(`${API_BASE}/v2/getAllData?tenantkey=${TENANTKEY}`, {
82
+ method: 'POST',
83
+ headers: { 'Content-Type': 'application/json' },
84
+ body: JSON.stringify({
85
+ userid: userId,
86
+ datajson: {
87
+ header: { objId: objId },
88
+ },
89
+ }),
90
+ });
91
+
92
+ const result = await response.json();
93
+
94
+ if (result.message.code !== '0') {
95
+ throw new Error(`获取数据失败: ${result.message.msg}`);
96
+ }
97
+
98
+ return result.data.datajson.datas || [];
99
+ }
100
+
101
+ // ==================== 数据解析函数 ====================
102
+
103
+ /**
104
+ * 解析单个字段的值
105
+ * @param {any} value
106
+ * @param {Object} fieldDef
107
+ * @returns {Object} ParsedValue
108
+ */
109
+ export function parseFieldValue(value, fieldDef) {
110
+ // 处理 undefined 或 null 值
111
+ if (!value) {
112
+ return { displayValue: '', rawValue: value };
113
+ }
114
+
115
+ // 处理数组类型(Select, RadioBox, CheckBox 等多选/单选)
116
+ if (Array.isArray(value)) {
117
+ if (value.length === 0) {
118
+ return { displayValue: '', rawValue: [] };
119
+ }
120
+
121
+ // 提取选项名称列表
122
+ const optionNames = value
123
+ .map(v => v?.fieldOptionName || v?.fieldValue || '')
124
+ .filter(v => v);
125
+
126
+ const options = value.map(v => ({
127
+ id: v?.fieldOptionId || '',
128
+ name: v?.fieldOptionName || v?.fieldValue || '',
129
+ }));
130
+
131
+ return {
132
+ displayValue: optionNames.join(', '),
133
+ rawValue: value,
134
+ options: options,
135
+ };
136
+ }
137
+
138
+ // 处理普通对象
139
+ const fieldType = fieldDef.fieldType;
140
+
141
+ switch (fieldType) {
142
+ case 'Employee':
143
+ // 员工字段可能返回用户ID或姓名
144
+ return {
145
+ displayValue: value.fieldValue || '',
146
+ rawValue: value,
147
+ };
148
+ case 'Date':
149
+ // 日期格式化
150
+ const dateValue = value.fieldValue;
151
+ if (dateValue && dateValue.includes('-')) {
152
+ return { displayValue: dateValue, rawValue: value };
153
+ }
154
+ return { displayValue: dateValue || '', rawValue: value };
155
+ case 'Number':
156
+ return {
157
+ displayValue: value.fieldValue || '0',
158
+ rawValue: value,
159
+ };
160
+ case 'Select':
161
+ case 'RadioBox':
162
+ return {
163
+ displayValue: value.fieldOptionName || value.fieldValue || '',
164
+ rawValue: value,
165
+ };
166
+ default:
167
+ return {
168
+ displayValue: value.fieldValue || '',
169
+ rawValue: value,
170
+ };
171
+ }
172
+ }
173
+
174
+ // ==================== 数据格式转换函数 ====================
175
+
176
+ /**
177
+ * 将API返回的复杂数据结构转换为简单的键值对格式
178
+ * @param {Array} dataRows
179
+ * @param {Array} fields
180
+ * @returns {Array<SimpleDataItem>}
181
+ */
182
+ export function transformToSimpleFormat(dataRows, fields) {
183
+ if (!dataRows || !dataRows.length) return [];
184
+ // Create a map for quick lookup: fieldId -> FieldDefinition
185
+ const fieldMap = new Map();
186
+ fields.forEach(field => {
187
+ fieldMap.set(field.fieldId, field);
188
+ });
189
+
190
+ return dataRows.map(row => {
191
+ const simpleItem = {};
192
+
193
+ // Copy row-level id (data ID) to simple item
194
+ if (row.id) {
195
+ simpleItem.id = row.id;
196
+ }
197
+
198
+ // Process mainTable
199
+ if (row.mainTable) {
200
+ Object.entries(row.mainTable).forEach(([key, value]) => {
201
+ // Handle the special 'id' field in mainTable
202
+ if (key === 'id' && value && typeof value === 'object') {
203
+ simpleItem.id = value.fieldValue || value.fieldOptionName || '';
204
+ return;
205
+ }
206
+
207
+ let actualFieldId;
208
+ let parsedValue;
209
+
210
+ // Case 1: Value is an object/array containing fieldId (Standard dynamic form structure)
211
+ if (value && typeof value === 'object') {
212
+ if (Array.isArray(value)) {
213
+ // For arrays (like RadioBox/Select), the fieldId is usually in the first item
214
+ actualFieldId = value[0]?.fieldId;
215
+ } else {
216
+ // For objects (like TextArea, Number), the fieldId is directly on the object
217
+ actualFieldId = value.fieldId;
218
+ }
219
+ }
220
+ // Case 2: Value is a primitive (fallback)
221
+ else {
222
+ actualFieldId = key;
223
+ }
224
+
225
+ // Find the field definition using the extracted actualFieldId
226
+ const fieldDef = actualFieldId ? fieldMap.get(actualFieldId) : undefined;
227
+
228
+ // Determine the key: Use fieldId if available, otherwise fallback to original key
229
+ const resultKey = fieldDef ? fieldDef.fieldId : key;
230
+
231
+ // Parse the value using the correct field definition
232
+ // Fallback definition if fieldDef is missing
233
+ const fallbackDef = {
234
+ id: 0,
235
+ fieldId: actualFieldId || key,
236
+ fieldName: resultKey,
237
+ fieldType: 'String',
238
+ fieldKey: 'Text',
239
+ number: 0,
240
+ multiSelect: false,
241
+ objId: 0
242
+ };
243
+
244
+ parsedValue = parseFieldValue(value, fieldDef || fallbackDef);
245
+
246
+ // Assign to result using the fieldId as the key
247
+ let finalValue = parsedValue.displayValue;
248
+
249
+ // 特殊类型统一返回 fieldOptionId(写入和组件回显需要的 ID)
250
+ // Select/RadioBox/CheckBox → 选项ID, Employee → 人员ID, Department → 部门ID, FileComponent → 文件ID
251
+ // 如需显示名称,配合 getFieldOptions 或从 uploadedFiles/selectedPerson 状态中获取
252
+ const fieldType = fieldDef?.fieldType;
253
+ const isIdType = fieldType === 'Select' || fieldType === 'RadioBox' || fieldType === 'CheckBox'
254
+ || fieldType === 'Employee' || fieldType === 'Department' || fieldType === 'FileComponent';
255
+
256
+ if (isIdType) {
257
+ if (Array.isArray(value)) {
258
+ const ids = value
259
+ .map((v) => v?.fieldOptionId)
260
+ .filter((id) => id !== undefined && id !== null && id !== '');
261
+
262
+ finalValue = ids.length > 0 ? ids.join(',') : '';
263
+ } else if (value && typeof value === 'object') {
264
+ finalValue = value.fieldOptionId ? String(value.fieldOptionId) : '';
265
+ }
266
+ }
267
+
268
+ simpleItem[actualFieldId] = finalValue;
269
+ });
270
+ }
271
+
272
+ return simpleItem;
273
+ });
274
+ }
275
+
276
+ /**
277
+ * 获取转换后的简单格式数据
278
+ * @param {string} objId
279
+ * @param {string} userId
280
+ * @returns {Promise<Array<SimpleDataItem>>}
281
+ */
282
+ export async function getSimpleData(objId, userId) {
283
+ const [fields, dataRows] = await Promise.all([
284
+ getFields(objId, userId),
285
+ getAllData(objId, userId)
286
+ ]);
287
+ const result = transformToSimpleFormat(dataRows, fields);
288
+ return result;
289
+ }
290
+
291
+ // ==================== ID → 名称映射(用于表格展示) ====================
292
+
293
+ /**
294
+ * 将 simpleData 中 Select/Employee/Department 等字段的 ID 替换为显示名称。
295
+ * getSimpleData 返回的是 ID(用于写入),表格展示需要名称,用此函数转换。
296
+ *
297
+ * @param {Array<Object>} simpleData — getSimpleData 的返回值
298
+ * @param {Object} optionsMap — { fieldId: [{valueKey, name}, ...] },valueKey→name 的映射表
299
+ * @returns {Array<Object>} 字段值为显示名称的新数组
300
+ *
301
+ * 用法:
302
+ * var [data, setData] = useState([]);
303
+ * useEffect(function () {
304
+ * Promise.all([
305
+ * getSimpleData(OBJ_ID, USER_ID),
306
+ * getFieldOptions(F.status, FORM_ID),
307
+ * ]).then(function ([rows, statusOpts]) {
308
+ * setData(withDisplayNames(rows, { [F.status]: statusOpts }));
309
+ * });
310
+ * }, []);
311
+ */
312
+ export function withDisplayNames(simpleData, optionsMap) {
313
+ return simpleData.map(function (row) {
314
+ var displayRow = {};
315
+ Object.keys(row).forEach(function (key) {
316
+ var options = optionsMap[key];
317
+ if (options && options.length) {
318
+ var ids = (row[key] || '').split(',');
319
+ displayRow[key] = ids.map(function (id) {
320
+ var opt = options.find(function (o) { return o.valueKey === id; });
321
+ return opt ? opt.name : id;
322
+ }).join(', ');
323
+ } else {
324
+ displayRow[key] = row[key];
325
+ }
326
+ });
327
+ return displayRow;
328
+ });
329
+ }
330
+
331
+ // ==================== 保存表单数据 ====================
332
+
333
+ /**
334
+ * 保存表单数据
335
+ * @param {string} objId
336
+ * @param {Object} formData
337
+ * @param {string} userId
338
+ * @returns {Promise<Object>}
339
+ */
340
+ export async function saveFormData(objId, formData, userId) {
341
+ const requestData = {
342
+ userid: userId,
343
+ datajson: {
344
+ datas: {
345
+ mainTable: formData,
346
+ operationinfo: {
347
+ doAction: 'n', // 新增操作
348
+ optionNoFindIgnore: 'false'
349
+ }
350
+ },
351
+ header: {
352
+ objId: objId,
353
+ tenantKey: TENANTKEY
354
+ }
355
+ }
356
+ };
357
+
358
+ const response = await fetchWithRetry(`${API_BASE}/v1/saveFormData`, {
359
+ method: 'POST',
360
+ headers: {
361
+ 'Content-Type': 'application/json'
362
+ },
363
+ body: JSON.stringify(requestData),
364
+ });
365
+
366
+ const result = await response.json();
367
+ if (result.data && result.data.isSuccess === false) {
368
+ throw new Error('保存失败: ' + (result.data.msg || JSON.stringify(result.data)));
369
+ }
370
+ if (result.message && result.message.code !== '0') {
371
+ throw new Error('保存失败: ' + (result.message.msg || JSON.stringify(result.message)));
372
+ }
373
+ return result;
374
+ }
375
+
376
+ // ==================== 更新表单数据 ====================
377
+
378
+ /**
379
+ * 更新表单数据
380
+ * @param {string} objId
381
+ * @param {Object} formData
382
+ * @param {string} dataId - 数据ID
383
+ * @param {string} userId
384
+ * @returns {Promise<Object>}
385
+ */
386
+ export async function updateFormData(objId, formData, dataId, userId) {
387
+ const requestData = {
388
+ userid: userId,
389
+ datajson: {
390
+ datas: {
391
+ mainTable: Object.assign({ id: dataId }, formData),
392
+ operationinfo: {
393
+ doAction: 'u',
394
+ optionNoFindIgnore: 'false'
395
+ }
396
+ },
397
+ header: {
398
+ objId: objId,
399
+ tenantKey: TENANTKEY
400
+ }
401
+ }
402
+ };
403
+
404
+ const response = await fetchWithRetry(`${API_BASE}/v1/saveFormData`, {
405
+ method: 'POST',
406
+ headers: {
407
+ 'Content-Type': 'application/json'
408
+ },
409
+ body: JSON.stringify(requestData),
410
+ });
411
+
412
+ const result = await response.json();
413
+ if (result.data && result.data.isSuccess === false) {
414
+ throw new Error('更新失败: ' + (result.data.msg || JSON.stringify(result.data)));
415
+ }
416
+ if (result.message && result.message.code !== '0') {
417
+ throw new Error('更新失败: ' + (result.message.msg || JSON.stringify(result.message)));
418
+ }
419
+ return result;
420
+ }
421
+
422
+ // ==================== 删除表单数据 ====================
423
+
424
+ /**
425
+ * 删除表单数据
426
+ * @param {string} objId - 表单ID (objId)
427
+ * @param {string|number} dataId - 数据ID
428
+ * @param {string} userId - User ID
429
+ * @returns {Promise<Object>}
430
+ */
431
+ export async function deleteFormData(objId, dataId, userId) {
432
+ const requestData = {
433
+ userid: userId,
434
+ datajson: {
435
+ header: {
436
+ objId: objId
437
+ },
438
+ mainTable: {
439
+ id: dataId
440
+ },
441
+ operationinfo: {
442
+ fieldNoFindIgnore: 'false'
443
+ }
444
+ }
445
+ };
446
+
447
+ const response = await fetchWithRetry(`${API_BASE}/v2/deleteData`, {
448
+ method: 'POST',
449
+ headers: {
450
+ 'Content-Type': 'application/json'
451
+ },
452
+ body: JSON.stringify(requestData),
453
+ });
454
+
455
+ const result = await response.json();
456
+
457
+ if (result.message.code !== '0') {
458
+ throw new Error(`删除数据失败: ${result.message.msg}`);
459
+ }
460
+
461
+ return result;
462
+ }
463
+
464
+ // ==================== 获取选项字段的具体选项值 ====================
465
+ export async function getFieldOptions(fieldId, objId) {
466
+ // 注意:第二个参数是 objId(表单对象 ID),与 getSimpleData/saveFormData 用的是同一个值
467
+ const infoUrl = `${publicUrl}/api/ebuilder/form/obj/getInfo/${objId}`;
468
+ const infoResponse = await fetchWithRetry(infoUrl, {
469
+ method: 'GET',
470
+ headers: { 'Content-Type': 'application/json' },
471
+ });
472
+ const infoResult = await infoResponse.json();
473
+ if (infoResult.code !== 200 || !infoResult.status) {
474
+ throw new Error(`获取表单信息失败: ${infoResult.msg || 'Unknown error'}`);
475
+ }
476
+ const formIdNew = infoResult.data?.formId;
477
+
478
+ if (!formIdNew) {
479
+ throw new Error('未能从表单信息中获取有效的 formId');
480
+ }
481
+
482
+ const url = `${publicUrl}/api/ebuilder/form/form/field/manage/getFormField`;
483
+ const requestBody = {
484
+ module: "ebuilderform",
485
+ formTableField: {
486
+ formField: {
487
+ id: fieldId,
488
+ form: {
489
+ id: formIdNew // Use the dynamically fetched formId
490
+ }
491
+ }
492
+ }
493
+ };
494
+ const response = await fetchWithRetry(url, {
495
+ method: 'POST',
496
+ headers: { 'Content-Type': 'application/json' },
497
+ body: JSON.stringify(requestBody),
498
+ });
499
+
500
+ const result = await response.json();
501
+ if (result.code !== 200 || !result.status) {
502
+ throw new Error(`获取字段选项失败: ${result.msg || 'Unknown error'}`);
503
+ }
504
+
505
+ const options = result.data?.options || [];
506
+ return options.map(option => ({
507
+ valueKey: option.valueKey,
508
+ name: option.name
509
+ }));
510
+ }
@@ -0,0 +1,22 @@
1
+ import React, { useState, useEffect, Suspense } from 'react';
2
+ import { Route } from 'react-router-dom';
3
+ import { regOvProps, appInfo, regReactChildren } from '@weapp/utils';
4
+ import { getSimpleData } from './api/formApi.js';
5
+ import { asyncImport } from '@weapp/ecodesdk';
6
+
7
+ // 初始的空白模板项目
8
+ const { publicUrl } = appInfo('@weapp/ecodesdk');
9
+ const extract = (
10
+ <Route path={`${publicUrl}/sp/custom/123123`}>
11
+ <React.Suspense fallback={<div>Loading...</div>}>
12
+ <>
13
+ HELLO WORLD
14
+ </>
15
+ </React.Suspense>
16
+ </Route>
17
+ );
18
+
19
+ regOvProps('weappEcodesdk', 'Switch', (props) => {
20
+ regReactChildren(props, extract);
21
+ return props;
22
+ }, 0);
@@ -0,0 +1,48 @@
1
+ module.exports = [
2
+ {
3
+ files: ["**/*.js"],
4
+ languageOptions: {
5
+ ecmaVersion: 2022,
6
+ sourceType: "module",
7
+ parserOptions: {
8
+ ecmaFeatures: { jsx: true }
9
+ },
10
+ globals: {
11
+ React: "readonly",
12
+ TEAMS: "readonly",
13
+ TENANTKEY: "readonly",
14
+ Route: "readonly",
15
+ console: "readonly",
16
+ alert: "readonly",
17
+ confirm: "readonly",
18
+ Promise: "readonly",
19
+ AbortController: "readonly",
20
+ fetch: "readonly",
21
+ setTimeout: "readonly",
22
+ clearTimeout: "readonly",
23
+ JSON: "readonly",
24
+ Object: "readonly",
25
+ Array: "readonly",
26
+ Date: "readonly",
27
+ String: "readonly",
28
+ parseInt: "readonly",
29
+ encodeURIComponent: "readonly",
30
+ Error: "readonly",
31
+ URLSearchParams: "readonly",
32
+ Map: "readonly",
33
+ document: "readonly",
34
+ window: "readonly",
35
+ FormData: "readonly",
36
+ Event: "readonly",
37
+ }
38
+ },
39
+ rules: {
40
+ "no-undef": "error",
41
+ "no-unused-vars": "warn",
42
+ "no-redeclare": "error",
43
+ "no-dupe-keys": "error",
44
+ "no-const-assign": "error",
45
+ "no-empty": "warn",
46
+ }
47
+ }
48
+ ];
@@ -0,0 +1,8 @@
1
+ const routes = [
2
+ {
3
+ fileName: "xxx.js",
4
+ className: "xxx",
5
+ }
6
+ ];
7
+
8
+ export default routes;
@@ -0,0 +1,92 @@
1
+ # 应用发布:启用 → 发布到前台 → 改发布信息 → 取消发布
2
+
3
+ 应用建出来只是「壳」。要让成员真正在前台用上,还要走**启用**和**发布到前台**两步;
4
+ 应用名还可以按语言给不同显示。
5
+
6
+ ## 一、四个动作与先后关系
7
+
8
+ | 命令 | 作用 | 前置 |
9
+ |---|---|---|
10
+ | `app enable <appId>` | 启用应用 | — |
11
+ | `app publish <appId>` | 发布到前台(应用中心里出现入口) | 先 `enable` |
12
+ | `app publish-info <appId>` | 改前台的显示名 / 简介 / 分类 | 先 `publish` |
13
+ | `app unpublish <appId>` | 取消发布(收回前台入口) | 先 `publish` |
14
+
15
+ `app read <appId>` 里的 `publishEnabled`:`1` 已启用、`2` 已停用、`0` 从未启用。
16
+
17
+ > ⚠️ **停用会连带收回已发布状态。** 前台那句「应用暂未启用,启用后才可以发布给成员使用」
18
+ > 说的就是这个 —— 别把 `app disable` 当成「临时关一下、发布态还在」。
19
+
20
+ ## 二、发布
21
+
22
+ ```bash
23
+ e10-cli app enable <appId>
24
+ e10-cli app publish <appId> --name "会议室管理" --description "预约与审批" --category 综合办公
25
+ ```
26
+
27
+ - `--name` 不给就用应用名;`--description` 不给就用应用描述。
28
+ - `--category` 是**应用中心里的分类**:汇报 / 协作 / HRM / 审批 / 数据协作 / 综合办公 / CRM / 自定义。
29
+ 不指定则落**自定义**。
30
+ - 发布后前台入口的地址形如 `/ebdapp/view/<appId>`。
31
+
32
+ > ⚠️ **每次发布都会生成一个新的前台 id**,取消后重新发布**不会**沿用旧号。
33
+ > 别把这个 id 当稳定标识存下来,要用的时候现查(`app publish-info` 会报出来)。
34
+
35
+ ## 三、改发布信息
36
+
37
+ `app publish-info` 改的是**前台那份配置**(显示名 / 简介 / 分类),
38
+ **不动应用本身的名称与描述** —— 后者用 `app edit`。
39
+
40
+ ```bash
41
+ e10-cli app publish-info <appId> --name "新的前台名"
42
+ e10-cli app publish-info <appId> --description "改后的简介"
43
+ e10-cli app publish-info <appId> --category CRM
44
+ ```
45
+
46
+ 三个参数至少给一个;不给分类就**沿用现有的**,不会被打回「自定义」。
47
+
48
+ ## 四、取消发布
49
+
50
+ ```bash
51
+ e10-cli app unpublish <appId>
52
+ ```
53
+
54
+ > ⚠️ **不可逆**,也没有回收站。移除后前台入口消失,成员看不到;
55
+ > 重新发布会是一个**新入口**。命令会回读确认入口确实没了才报成功,
56
+ > 重复执行只会提示「未发布到前台,无需取消」。
57
+
58
+ ## 五、应用名多语言
59
+
60
+ 应用名可以按语言给不同显示。
61
+
62
+ ```bash
63
+ e10-cli app lang get <appId> # 看各语言当前值
64
+ e10-cli app lang set <appId> --en "Meeting Room"
65
+ e10-cli app lang set <appId> --zh "会议室管理" --en "Meeting Room"
66
+ ```
67
+
68
+ - **简体中文那档就是应用名本身。** 只给 `--en` 时,命令会先把现有各语言读回来再整份写回,
69
+ **不会**出现「只改英文、中文被清空」。
70
+ - 简体中文缺省沿用应用当前名称,可以用 `--zh` 显式覆盖。
71
+ - 已经建过多语言标签时是**原地更新**,不会堆积一堆标签。
72
+ - 单独改应用名(`app edit --name`)**不动**多语言配置,两者互不干扰。
73
+
74
+ ## 六、命令一览
75
+
76
+ | 命令 | 说明 |
77
+ |---|---|
78
+ | `e10-cli app enable <appId>` | 启用应用 |
79
+ | `e10-cli app disable <appId>` | 停用应用(**会收回已发布状态**) |
80
+ | `e10-cli app publish <appId> [--name] [--description] [--category]` | 发布到前台 |
81
+ | `e10-cli app publish-info <appId> [--name] [--description] [--category]` | 改发布信息 |
82
+ | `e10-cli app unpublish <appId>` | 取消发布 |
83
+ | `e10-cli app lang get <appId>` | 查看应用名多语言 |
84
+ | `e10-cli app lang set <appId> [--zh] [--en]` | 设置应用名多语言 |
85
+
86
+ 以上命令都支持全局 `--json`。
87
+
88
+ ## 关联
89
+
90
+ - 应用本身的增删改查(`create` / `list` / `folder` / `read` / `edit` / `delete`):
91
+ [`ref-cli-commands.md`](../common/ref-cli-commands.md) 的 app 段
92
+ - 前台入口的可见范围(谁能看到这个应用):`menu` / `menu-permission` 那套