weaver-work-cli 0.1.24 → 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 (337) hide show
  1. package/README.md +10 -1
  2. package/dist/core/output.js +53 -1
  3. package/dist/internal/e10/auth/commands.js +17 -2
  4. package/dist/internal/e10/auth/crypto.js +52 -12
  5. package/dist/internal/e10/auth/xiaoe.js +112 -39
  6. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
  7. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
  8. package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
  9. package/dist/shortcuts/caizhilian/operations/specs.js +15 -0
  10. package/dist/shortcuts/workflow/index.js +55 -1
  11. package/dist/shortcuts/workflow/operations/form.js +1252 -109
  12. package/dist/shortcuts/workflow/operations/read.js +75 -35
  13. package/dist/shortcuts/workflow/operations/shared.js +25 -0
  14. package/dist/shortcuts/workflow/stdout-compact.js +33 -0
  15. package/docs/caizhilian.md +4 -3
  16. package/docs/e10-auth.md +8 -1
  17. package/node_modules/@napi-rs/keyring/LICENSE +21 -0
  18. package/node_modules/@napi-rs/keyring/README.md +19 -0
  19. package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
  20. package/node_modules/@napi-rs/keyring/index.js +514 -0
  21. package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
  22. package/node_modules/@napi-rs/keyring/keytar.js +26 -0
  23. package/node_modules/@napi-rs/keyring/package.json +125 -0
  24. package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
  25. package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
  26. package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
  27. package/node_modules/commander/LICENSE +22 -0
  28. package/node_modules/commander/Readme.md +1149 -0
  29. package/node_modules/commander/esm.mjs +16 -0
  30. package/node_modules/commander/index.js +24 -0
  31. package/node_modules/commander/lib/argument.js +149 -0
  32. package/node_modules/commander/lib/command.js +2662 -0
  33. package/node_modules/commander/lib/error.js +39 -0
  34. package/node_modules/commander/lib/help.js +709 -0
  35. package/node_modules/commander/lib/option.js +367 -0
  36. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  37. package/node_modules/commander/package-support.json +16 -0
  38. package/node_modules/commander/package.json +82 -0
  39. package/node_modules/commander/typings/esm.d.mts +3 -0
  40. package/node_modules/commander/typings/index.d.ts +1045 -0
  41. package/package.json +5 -1
  42. package/skills/weaver-e10-builder/SKILL.md +281 -0
  43. package/skills/weaver-e10-builder/_catalog.md +94 -0
  44. package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
  45. package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
  46. package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
  47. package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
  48. package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
  49. package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  50. package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
  51. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
  52. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
  53. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
  54. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
  55. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
  56. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
  57. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  58. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
  59. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
  60. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
  61. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
  62. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  63. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  64. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  65. package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
  66. package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  67. package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  68. package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  69. package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  70. package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  71. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
  72. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
  73. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  74. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  75. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
  76. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
  77. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  78. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
  79. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
  80. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
  81. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
  82. package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
  83. package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
  84. package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  85. package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
  86. package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
  87. package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
  88. package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
  89. package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  90. package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
  91. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
  92. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
  93. package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
  94. package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
  95. package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
  96. package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
  97. package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
  98. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  99. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  100. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  101. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  102. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  103. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
  104. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  105. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  106. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  107. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
  108. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  109. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  110. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  111. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  112. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  113. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
  114. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  115. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  116. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
  117. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  118. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  119. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  120. package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
  121. package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
  122. package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
  123. package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
  124. package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
  125. package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
  126. package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
  127. package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
  128. package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
  129. package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
  130. package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
  131. package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
  132. package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
  133. package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
  134. package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
  135. package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
  136. package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
  137. package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
  138. package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
  139. package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
  140. package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
  141. package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
  142. package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
  143. package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
  144. package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
  145. package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
  146. package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
  147. package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
  148. package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
  149. package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
  150. package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
  151. package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
  152. package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
  153. package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
  154. package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
  155. package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
  156. package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
  157. package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
  158. package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
  159. package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
  160. package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
  161. package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
  162. package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
  163. package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
  164. package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
  165. package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
  166. package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
  167. package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
  168. package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
  169. package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
  170. package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
  171. package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
  172. package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
  173. package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
  174. package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
  175. package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
  176. package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
  177. package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
  178. package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
  179. package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
  180. package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
  181. package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
  182. package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
  183. package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
  184. package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
  185. package/skills/weaver-e10-builder/assets/icons.db +0 -0
  186. package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
  187. package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
  188. package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
  189. package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
  190. package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
  191. package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
  192. package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
  193. package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
  194. package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
  195. package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
  196. package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
  197. package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
  198. package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
  199. package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
  200. package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
  201. package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
  202. package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
  203. package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
  204. package/skills/weaver-e10-builder/references/common/map.md +153 -0
  205. package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
  206. package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
  207. package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
  208. package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
  209. package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
  210. package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
  211. package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
  212. package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
  213. package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
  214. package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
  215. package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
  216. package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
  217. package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
  218. package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
  219. package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
  220. package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
  221. package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
  222. package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
  223. package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
  224. package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
  225. package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
  226. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
  227. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
  228. package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
  229. package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
  230. package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
  231. package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
  232. package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
  233. package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
  234. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
  235. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
  236. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
  237. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
  238. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
  239. package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
  240. package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
  241. package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
  242. package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
  243. package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
  244. package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
  245. package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
  246. package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
  247. package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
  248. package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
  249. package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
  250. package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
  251. package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
  252. package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
  253. package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
  254. package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
  255. package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
  256. package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
  257. package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
  258. package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
  259. package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
  260. package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
  261. package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
  262. package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
  263. package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
  264. package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
  265. package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
  266. package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
  267. package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
  268. package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
  269. package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
  270. package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
  271. package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
  272. package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
  273. package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
  274. package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
  275. package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
  276. package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
  277. package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
  278. package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
  279. package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
  280. package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  281. package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
  282. package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
  283. package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
  284. package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
  285. package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
  286. package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
  287. package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
  288. package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
  289. package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
  290. package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
  291. package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
  292. package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
  293. package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
  294. package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
  295. package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
  296. package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
  297. package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
  298. package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
  299. package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
  300. package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
  301. package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
  302. package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
  303. package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
  304. package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
  305. package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
  306. package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
  307. package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
  308. package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
  309. package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
  310. package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
  311. package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
  312. package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
  313. package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
  314. package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
  315. package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
  316. package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
  317. package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
  318. package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
  319. package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
  320. package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
  321. package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
  322. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
  323. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
  324. package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
  325. package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
  326. package/skills/weaver-e10-caizhilian/SKILL.md +7 -2
  327. package/skills/weaver-e10-caizhilian/references/files.md +15 -0
  328. package/skills/weaver-e10-caizhilian/references/setting-attach.md +48 -3
  329. package/skills/weaver-e10-caizhilian/references/source-manifest.json +99 -1
  330. package/skills/weaver-e10-shared/SKILL.md +8 -4
  331. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +7 -5
  332. package/skills/weaver-e10-workflow/SKILL.md +23 -44
  333. package/skills/weaver-e10-workflow/references/source-manifest.json +27 -22
  334. package/skills/weaver-e10-workflow/references/workflow-create.md +238 -85
  335. package/skills/weaver-e10-workflow/references/workflow-edit.md +1 -1
  336. package/skills/weaver-e10-workflow/references/workflow-memory.md +1 -4
  337. package/skills/weaver-e10-workflow/references/workflow-query.md +2 -2
@@ -0,0 +1,412 @@
1
+ # AI 报表生成工作流程
2
+
3
+ > **冷启动禁止通读**:见 `cold-start-scan-guide.md`。纯搭表走 `api-report-build-fast-path.md`,勿开场读本文。
4
+
5
+ ## 一、整体流程概览
6
+
7
+ ```
8
+ 用户输入(文本描述 / 图片效果 / 需求文件)
9
+ |
10
+ v
11
+ 1. 需求解析:理解报表类型、数据维度、指标、样式需求
12
+ |
13
+ v
14
+ 2. 字段分类:将需求中的字段映射为三类
15
+ - groupFields(分组/维度字段)
16
+ - listFields(列表/展示字段)
17
+ - targetFields(指标/度量字段)
18
+ |
19
+ v
20
+ 3. 报表类型判定:根据字段组合判断报表类型
21
+ - 简单列表(LIST)
22
+ - 分组表(GROUP)
23
+ - 交叉表/统计表(COUNT)
24
+ |
25
+ v
26
+ 4. 布局规划:确定单元格位置、扩展方向、父格关系
27
+ |
28
+ v
29
+ 5. 样式配置:主题选择、条件格式、字体样式
30
+ |
31
+ v
32
+ 6. 高级配置:查询条件、分页、打印、解析优化
33
+ |
34
+ v
35
+ 7. 输出配置:生成完整的 ReportProps JSON 配置
36
+ ```
37
+
38
+ ## 二、需求解析规则
39
+
40
+ ### 2.1 从文本描述解析
41
+
42
+ 识别以下关键信息:
43
+ - **报表名称**:用户提到的报表名称,如"客户信息报表"、"销售统计表"
44
+ - **数据源**:用户提到的数据表/表单名称,如"客户信息表"、"销售合同表"
45
+ - **分组维度**:用户提到"按...分组"、"按...统计"中的字段
46
+ - **指标度量**:用户提到"统计...数量"、"求和...金额"中的字段和聚合方式
47
+ - **列表字段**:用户提到"显示...信息"、"展示...详情"中的字段
48
+ - **查询条件**:用户提到"按...筛选"、"按...查询"中的字段
49
+ - **排序要求**:用户提到"按...排序"中的字段和方向
50
+ - **样式要求**:用户提到的主题颜色、条件格式等
51
+
52
+ ### 2.2 从图片效果解析
53
+
54
+ 分析报表截图中的以下要素:
55
+ - **报表布局**:表头结构、数据排列方式(分组/交叉/列表)
56
+ - **字段位置**:行维度字段、列维度字段、指标字段的位置
57
+ - **样式特征**:背景色、字体样式、交替行颜色
58
+ - **条件格式**:数据条、图标集、高亮规则
59
+ - **功能区域**:查询条件区域、工具栏按钮
60
+
61
+ ### 2.3 从需求文件解析
62
+
63
+ 支持的需求文件格式:
64
+ - **Word/Excel**:提取表格结构、字段列表、统计要求
65
+ - **JSON/YAML**:直接映射为报表配置
66
+ - **Markdown**:提取结构化的报表需求描述
67
+ - **图片**:同图片效果解析流程
68
+
69
+ ## 三、字段分类规则
70
+
71
+ ### 3.1 groupFields(分组/维度字段)
72
+
73
+ 判定条件:
74
+ - 用户提到"按...分组"、"按...分类"、"按...维度"
75
+ - 日期类字段且用户提到时间粒度(年/月/日)
76
+ - 报表中需要横向或纵向展开的分类字段
77
+
78
+ 配置示例:
79
+ ```json
80
+ {
81
+ "fieldName": "创建日期",
82
+ "groupType": "yearmonth" // 按年月分组
83
+ }
84
+ ```
85
+
86
+ groupType 中文到系统值映射:
87
+ - "年份" → `year`
88
+ - "年月" → `yearmonth`
89
+ - "月份" → `month`
90
+ - "年月日" → `yearmonthday`
91
+ - 无时间分组 → `none`
92
+
93
+ ### 3.2 listFields(列表/展示字段)
94
+
95
+ 判定条件:
96
+ - 用户提到"显示...信息"、"展示...字段"
97
+ - 不需要分组、不需要聚合的普通展示字段
98
+ - 报表中的明细数据列
99
+
100
+ 配置示例:
101
+ ```json
102
+ {
103
+ "fieldName": "客户名称",
104
+ "groupType": "none"
105
+ }
106
+ ```
107
+
108
+ ### 3.3 targetFields(指标/度量字段)
109
+
110
+ 判定条件:
111
+ - 用户提到"统计...数量"、"求和...金额"、"平均...值"
112
+ - 需要聚合计算的数字类型字段
113
+ - 报表中的数据值区域
114
+
115
+ 配置示例:
116
+ ```json
117
+ {
118
+ "fieldName": "合同金额",
119
+ "countType": "sum" // 求和
120
+ }
121
+ ```
122
+
123
+ countType 中文到系统值映射:
124
+ - "求和" → `sum`
125
+ - "最大值" → `max`
126
+ - "最小值" → `min`
127
+ - "平均值" → `avg`
128
+ - "计数" → `count`
129
+ - "去重计数" → `distinctcount`
130
+ - 默认 → `sum`
131
+
132
+ ## 四、报表类型判定与布局规则
133
+
134
+ ### 4.1 简单列表(LIST)
135
+
136
+ **触发条件**:只有 listFields 和/或 targetFields,没有 groupFields
137
+
138
+ **布局规则**:
139
+ - 所有字段纵向扩展(expandType = Vertical)
140
+ - 显示方式为排列(displayType = List)
141
+ - 左父格均为默认(leftParent = ["default", 0, 0])
142
+ - 无上父格(topParent = ["empty", 0, 0])
143
+
144
+ **单元格布局示例**:
145
+ ```
146
+ A1: 标题行(常量)
147
+ A2: 字段1(纵向扩展,排列) B2: 字段2(纵向扩展,排列) C2: 字段3(纵向扩展,排列)
148
+ ```
149
+
150
+ ### 4.2 分组表(GROUP)
151
+
152
+ **触发条件**:有 groupFields 但数量 < 2,或没有 targetFields
153
+
154
+ **布局规则**:
155
+ - 分组字段纵向扩展(expandType = Vertical),显示方式为分组(displayType = Group)
156
+ - 指标字段纵向扩展(expandType = Vertical),显示方式为汇总(displayType = Count)
157
+ - 左父格关系:指标字段的左父格默认依赖相邻的分组字段
158
+ - 无上父格
159
+
160
+ **单元格布局示例**:
161
+ ```
162
+ A1: 标题行(常量)
163
+ A2: 分组字段(纵向扩展,分组) B2: 指标字段(纵向扩展,汇总,求和)
164
+ ```
165
+
166
+ ### 4.3 交叉表/统计表(COUNT)
167
+
168
+ **触发条件**:groupFields >= 2 且有 targetFields
169
+
170
+ **布局规则**:
171
+ - 行维度 = groupFields 的最后一个(纵向扩展,分组)
172
+ - 列维度 = groupFields 的前 N-1 个(横向扩展,分组)
173
+ - 指标字段在交叉位置(纵向扩展,汇总)
174
+ - 指标字段的左父格自定义指向行维度单元格
175
+ - 指标字段的上父格自定义指向列维度单元格
176
+ - 必须设置父格筛选关联多数据集
177
+
178
+ **单元格布局示例**(2个分组字段+1个指标):
179
+ ```
180
+ A1: 标题行(常量)
181
+ A2: 行维度字段(纵向扩展,分组) B2: 列维度字段(横向扩展,分组)
182
+ B3: 指标字段(纵向扩展,汇总,求和)
183
+ 左父格=自定义(A2), 上父格=自定义(B2)
184
+ ```
185
+
186
+ ### 4.4 交叉表父格筛选配置
187
+
188
+ 当使用多个数据集时,必须同时配置 **subordination**(从属关系)和 **leftFilterField**(左父格筛选)。
189
+ 字段引用必须使用 **fieldKey**:`{dataSetId}.{sourceId}.{fieldName}`,且 `id` 等于 `currentField`。
190
+
191
+ > 完整说明、自定义筛选、双保存与定位见 `cross-dataset-filter-guide.md`。
192
+
193
+ ```json
194
+ {
195
+ "subordination": [
196
+ "1304979556231593994.1299763447342276611.field_1299763447342276617",
197
+ "1304979560546713602.1299789221321891842.field_1299789221321891843"
198
+ ],
199
+ "leftFilterField": [{
200
+ "parentField": "1304979556231593994.1299763447342276611.field_1299763447342276617",
201
+ "currentField": "1304979560546713602.1299789221321891842.field_1299789221321891843",
202
+ "type": "Equals",
203
+ "id": "1304979560546713602.1299789221321891842.field_1299789221321891843"
204
+ }],
205
+ "customFilterField": [{
206
+ "currentField": "1304979560546713602.1299789221321891842.field_1299789221321891844",
207
+ "type": "NotContain",
208
+ "value": "排除机构",
209
+ "id": "1304979560546713602.1299789221321891842.field_1299789221321891844"
210
+ }]
211
+ }
212
+ ```
213
+
214
+ **常见错误**:使用显示名「团队」「销售经理」或裸 `field_xxx` → 设计器筛选下拉空白。
215
+
216
+ ## 五、单元格坐标规划规则
217
+
218
+ ### 5.1 基本布局原则
219
+
220
+ - 第1行(y=0):报表标题行,使用常量字段(cellType=Const)
221
+ - 第2行(y=1):表头/字段名称行
222
+ - 第3行及以后(y>=2):数据区域
223
+
224
+ ### 5.2 坐标系
225
+
226
+ - x = 行号(从0开始,向下递增)
227
+ - y = 列号(从0开始,向右递增)
228
+ - 父格坐标:[type, x, y]
229
+ - `["default", 0, 0]` = 默认(依赖相邻单元格)
230
+ - `["custom", x, y]` = 自定义(指向坐标 x,y 的单元格)
231
+ - `["empty", 0, 0]` = 无父格
232
+
233
+ ### 5.3 多数据集布局
234
+
235
+ 当报表使用多个数据集时:
236
+ 1. 维度字段通常来自主数据集
237
+ 2. 指标字段可能来自不同数据集
238
+ 3. 跨数据集字段必须设置父格筛选关联
239
+
240
+ ## 六、公式配置规则
241
+
242
+ > **API / 脚本保存含 Formula 时,完整规范见 `formula-cell-api-guide.md`。** 本节为工作流摘要。
243
+
244
+ ### 6.1 公式类型
245
+
246
+ | 分类 | 常用公式 |
247
+ |------|----------|
248
+ | 数学 | SUM, AVERAGE, COUNT, MAX, MIN, ABS, ROUND, CEILING, FLOOR |
249
+ | 文本 | LEFT, RIGHT, MID, LEN, CONCAT, UPPER, LOWER |
250
+ | 日期 | YEAR, MONTH, DAY, DATE, DATEDIF, NOW, TODAY |
251
+ | 逻辑 | IF, IFERROR, AND, OR, NOT |
252
+ | 信息 | ISERROR, ISBLANK, ISNUMBER |
253
+
254
+ ### 6.2 公式配置方式(ReportProps / getReportDevInfo)
255
+
256
+ 公式单元格 `cellType` 为 `Formula`,**cellText 为公式表达式且不带前导 `=`**:
257
+
258
+ ```json
259
+ {
260
+ "cellType": "Formula",
261
+ "cellText": "IF(J3=0,0,L3/J3)",
262
+ "displayType": "Group",
263
+ "countType": "count",
264
+ "groupType": null,
265
+ "expandType": "NoExpand"
266
+ }
267
+ ```
268
+
269
+ **错误示例(会导致设计器空白)**:
270
+
271
+ ```json
272
+ {
273
+ "cellType": "Formula",
274
+ "cellText": "=IF(J3=0,0,L3/J3)",
275
+ "displayType": "List",
276
+ "countType": "none"
277
+ }
278
+ ```
279
+
280
+ ### 6.3 workbook 写入(saveReportWithCacheConfig)
281
+
282
+ workbook `dataTable` 中 Formula 格需同时设置:
283
+
284
+ - 顶层 `"formula": "IF(...)"`(无前导 `=`)
285
+ - `style.cellType.cellText` 与顶层 `formula` 内容一致
286
+ - `style.formatter` 为空字符串
287
+
288
+ 参考 `make_formula()` 见 `formula-cell-api-guide.md` §四。
289
+
290
+ ### 6.4 公式与父格关系
291
+
292
+ 若公式需要按特定分组计算,公式单元格也需设置自定义左父格或上父格(`leftX`/`leftY` 指向根格)。
293
+
294
+ 公式格通常 `subordination: ["", ""]`,引用同表内 Field 汇总格而非数据集字段名。
295
+
296
+ ### 6.5 占比 / 除法推荐写法
297
+
298
+ | 场景 | 设计器输入 | API 存储 |
299
+ |------|-----------|----------|
300
+ | 达成率 | `=IF(J3=0,0,L3/J3)` | `IF(J3=0,0,L3/J3)` |
301
+ | 占比 | `=IF(L3=0,0,M3/L3)` | `IF(L3=0,0,M3/L3)` |
302
+ | 安全除法 | `=IFERROR(G5/F5,"--")` | `IFERROR(G5/F5,"--")` |
303
+
304
+ ### 6.6 保存与验证
305
+
306
+ 1. 双保存:`saveReportWithCacheConfig` + `saveReportDevInfo`
307
+ 2. `getReportDevInfo` 回读:确认 `cellText` 不以 `=` 开头
308
+ 3. 运行 `validate_report_config.py` 预检 Formula 格式
309
+
310
+ ## 七、高级功能配置
311
+
312
+ ### 7.1 查询条件配置
313
+
314
+ > **API/脚本写入完整规范**见 `query-condition-api-guide.md`(条件字段形态、asNameIndex、21 项日期选项、系统参数默认值)。以下为 ReportProps 摘要,**不可直接等同于 saveQueryItem payload**。
315
+
316
+ ```json
317
+ {
318
+ "queryFields": [{
319
+ "uuid": "query-1",
320
+ "id": "field-001",
321
+ "text": "日期范围",
322
+ "displayType": "date",
323
+ "conditions": [{
324
+ "dataSetId": "ds-001",
325
+ "fieldId": "createdate",
326
+ "relation": "between"
327
+ }],
328
+ "showOrder": 1
329
+ }]
330
+ }
331
+ ```
332
+
333
+ ### 7.2 分页配置
334
+
335
+ ```json
336
+ {
337
+ "pageNum": 1,
338
+ "pageRowCount": 200, // 每页行数
339
+ "dynamicField": "", // 动态Sheet页字段
340
+ "scrollPage": false // 滚动分页
341
+ }
342
+ ```
343
+
344
+ ### 7.3 解析优化配置
345
+
346
+ ```json
347
+ {
348
+ "rowMode": false, // 行式加载(仅单数据集简单列表)
349
+ "preAggregate": true // 数据预聚合(默认开启)
350
+ }
351
+ ```
352
+
353
+ ### 7.4 打印配置
354
+
355
+ ```json
356
+ {
357
+ "printInfo": {
358
+ "area": { "startRow": -1, "endRow": -1, "startCol": -1, "endCol": -1 },
359
+ "repeatArea": { "startRow": -1, "endRow": -1, "startCol": -1, "endCol": -1 },
360
+ "printGridLine": false,
361
+ "printOuterBorder": false,
362
+ "allRowsInOnePage": false,
363
+ "allColsInOnePage": false,
364
+ "printOrder": "auto"
365
+ },
366
+ "pageMargin": { "top": -1, "bottom": -1, "left": -1, "right": -1, "header": -1, "footer": -1 },
367
+ "paperSize": "A4",
368
+ "paperOrientation": "portrait"
369
+ }
370
+ ```
371
+
372
+ ## 八、确认信息生成规则
373
+
374
+ 生成报表配置后,应向用户展示确认信息:
375
+
376
+ ```
377
+ 报表创建确认:
378
+
379
+ 名称:{reportName}
380
+ 数据源:{formName}
381
+ 报表类型:{列表|分组表|交叉表}
382
+
383
+ 行维度字段:{字段名}({分组类型})
384
+ 列维度字段:{字段名}({分组类型})
385
+ 列表字段:{字段名}
386
+ 指标字段:{字段名}({聚合方式})
387
+
388
+ 查询条件:{条件名}({条件类型})
389
+ 主题样式:主题{编号}
390
+
391
+ 请确认是否创建此报表。
392
+ ```
393
+
394
+ ## 九、错误处理与校验
395
+
396
+ ### 9.1 必须校验项
397
+
398
+ 1. **报表名称**:不能为空,不能与已有报表重名
399
+ 2. **数据源**:必须指定有效的数据源
400
+ 3. **字段配置**:至少需要一个字段
401
+ 4. **字段有效性**:指定的字段名必须在数据集可用字段中
402
+ 5. **父格一致性**:多数据集时必须设置父格筛选
403
+
404
+ ### 9.2 常见错误及处理
405
+
406
+ | 错误 | 原因 | 处理方式 |
407
+ |------|------|----------|
408
+ | 字段不存在 | AI 指定的字段名不在数据集中 | 列出可用字段,提示用户修正 |
409
+ | 数据源未找到 | formId 无效 | 提示用户选择有效数据源 |
410
+ | 名称重复 | 报表名已存在 | 提示用户更换名称 |
411
+ | 父格循环引用 | 父格设置形成环 | 检查并修正父格关系 |
412
+ | 聚合字段非数字 | 对文本字段使用求和 | 检查字段类型,使用计数替代 |
@@ -0,0 +1,275 @@
1
+ # API 从零搭建报表 · 快速路径(强制)
2
+
3
+ > **适用**:用户要求「在 XX 应用下搭建报表」「根据需求文档/Excel 建表」,且走 API/脚本落库。
4
+ > **目标**:**一次跑通**,禁止反复试探性 API、禁止二分调试脚本、禁止无用户许可的 copySheet。
5
+ > **优先级**:与本节冲突的旧文档表述(如「先 cache 后 dev」针对**新空报表**)以本节为准。
6
+ > **模式选型**:列表页「新建报表」三卡片见 **`report-create-modes-guide.md`**(模版创建 / 快速构建-列表式用 `e10-cli report create`)。**本节默认 = 从空白创建** 后的细粒度搭建。
7
+
8
+ ---
9
+
10
+ ## 〇、上下文与数据源定位(先于一切 ds API)
11
+
12
+ > **必加载** `app-datasource-lookup-guide.md` — 应用内 vs 全系统查找 + **§六探测预算/打断询问**。
13
+ > **必加载** `datasource-selection-and-parent-filter-guide.md` — **少挂数据源** + 连续区域只配入口父格筛选。
14
+
15
+ | 用户输入 | 行为 |
16
+ |----------|------|
17
+ | **已给 appId 或 appName** | 解析 appId → **先** `GET …/form/obj/getList/{appId}`(应用内)→ **未命中再**别处(lookup-guide §三);合计见探测预算 |
18
+ | **未给准确表名**(仅业务词/报表名) | **只在当前应用**检索候选 → **二次确认**后再 `addDataset`(lookup §2.0);CLI:`find form <appId> --suggest "…"`;**禁止**静默绑错表 |
19
+ | **已给 appId + sourceId** | **跳过**数据源搜索 |
20
+ | **未给 app** | 才允许全系统带关键字检索(**合计 ≤3**)→ 仍须用户确认唯一表 |
21
+ | **预算用尽仍不准** | **打断询问** — **禁止**继续盲扫 / 开浏览器扫页 / 固定 sleep |
22
+
23
+ **禁止**:用户已指定应用时,仍遍历全系统 `/ds/group` 或多分组空扫 —— 这是「发需求后响应慢」的首要原因。
24
+
25
+ **少挂源**:主表已有用户/部门等字段时,不要再挂人员表、部门表(见 selection-guide §一)。
26
+ ---
27
+
28
+ ## 一、执行纪律(响应时间)
29
+
30
+ | 规则 | 说明 |
31
+ |------|------|
32
+ | **单脚本单次交付** | 登录 → 定位 sourceId → 建壳 → 绑数据集 → 组 workbook → 保存 → 回读验证;**禁止**为定位再写 3~5 个 debug_*.js |
33
+ | **轻量加载文档** | API 建表任务**只加载**:`cold-start-scan-guide.md` + 本节 + `app-datasource-lookup-guide.md` + `datasource-selection-and-parent-filter-guide.md`(父格相关段)+ `safe-partial-save-guide.md`(保存相关段)+ `report-delivery-contract.md`(模式 A);**跳过** `report-knowledge-base.md` 全文、`report-requirement-analysis-template.md`、`report-help-guide.md`、`report-building-guide.md`、`datasource-metadata-guide.md`、`build_guide_html`、`weaver-e10-login`;**禁止**查找/加载 `e10-cli*` 与 `本地工作目录**` |
34
+ | **找表:先应用后别处** | 已给 app → **先** `GET /api/bs/ebuilder/form/obj/getList/{appId}`;未命中才别处检索;见 lookup-guide §二→§三 |
35
+ | **禁止固定 sleep** | `addDataset` 后用 **短轮询** `dataset/list`(如 100ms×≤8),**禁止** `sleep(800)` / 盲等 |
36
+ | **禁止为 API 启浏览器** | 建表/找表用 `https` multipart;**禁止** `chromium.launch` + 打开应用页扫表单 |
37
+ | **禁止探索性 API** | 未指向明确目的不得 copySheet、preCheck 全表、跨报表对比、全系统 ds/group 首轮遍历;找表超预算必须问用户 |
38
+ | **禁止擅自 copySheet** | 仅当用户**明确要求复制某张表**时使用;从模板 JSON 搭布局是默认路径 |
39
+ | **失败最多重试 1 次** | 同一 API/步骤最多再试 1 次;布局仍失败 → **删空壳**(见下)禁止同 id 死循环 |
40
+ | **失败/中止必删空壳** | 建壳后若布局未成功落库,或任务失败/用户中止 → **`deleteReport` 清掉临时壳**;禁止列表残留空白报表。见 `failure-cleanup-and-nonblocking-guide.md` §一 |
41
+ | **附属失败不卡死** | 查询条件/权限/快照等失败 → **提示用户** → 继续其它步骤 → 交付主表 → 收尾再自动补试 1 次;禁止卡在单点。见同指南 §二 |
42
+ | **CLI 优先** | 历史沉淀可执行点一律 `e10-cli report`(见 `e10-cli report -cli.md` §一映射);禁止堆 debug 脚本 |
43
+ | **多表关联** | 需求写明 → 按需求配;未写明 → `e10-cli report join-suggest` + **提示用户确认**(selection-guide §2.5) |
44
+ | **查询条件** | `e10-cli report query save`(multipart 单对象);失败提示后继续 |
45
+ | **失败删壳** | `e10-cli report cleanup` |
46
+ | **交付自检** | `e10-cli report verify all`(可后台) |
47
+ | **交付物克制** | **布局落库成功后立刻给设计器地址并结束**(`report-delivery-contract.md`);**默认不**做 HTML / verify / 预聚合 / 需求分析;用户要分析时才走分析模板 |
48
+ | **默认表头样式** | 用户未指定样式且无效果图 → 自动蓝标题+灰列头(`default-header-style-guide.md`);有指定/效果图则完全按用户 |
49
+ | **文档输入一次解析** | Excel/JSON 需求只解析一次 |
50
+ | **首建跳过 cache** | 单数据集、无跨表 leftFilterField 时,首次可省略 `saveReportWithCacheConfig` |
51
+ | **页面布局默认关闭** | 网格线 page `gridLine=0`;**workbook 禁写 gridline**(存在→500);落库前 `validate gridline`(§4.6.1) |
52
+ | **耗时目标** | 已给 app+表名:找表 **≤2s**;整段落库 **≤5s**(不含用户确认) |
53
+
54
+ ---
55
+
56
+ ## 二、标准流程(约数秒,非 30~60s)
57
+
58
+ ```
59
+ 0. e10-login status(本地,勿 sleep)
60
+ 0.2 【优先 CLI】e10-cli report find <appId> <准确表名>
61
+ 若用户未给准确表名 → find form <appId> --suggest "需求关键词" → **等用户确认** → 禁止静默 addDataset
62
+ 0.3 多表且需求未写关联 → e10-cli report join-suggest … → 提示用户确认(可先按 best 配并标注待确认)
63
+ 0.5 解析 appId;GET form/obj/getList/{appId} → sourceId(未中再别处,见 lookup-guide)
64
+ 1. POST baseInfo(id=0, **name=目标报表名**) → reportId
65
+ 2. POST addDataset(sourceId) **须** `sourceType=LOGIC` + `sourceGroup=weaver-ebuilder-form-service`(普通应用;见 `add-dataset-registration-guide.md`)
66
+ 2.1 poll dataset/list 直到 sourceId 命中 → datasetId(禁止固定 sleep;**禁止跨报表复用 datasetId**)
67
+ 3. GET fieldsAndOriginFields?isFront=true → data.fieldsKey(**同 reportId,禁止另建探测壳取字段**)
68
+ 3.1 **门禁**:业务字段应含 `field_*`;若多为裸雪花 → 注册错,delDataset 重建(禁止在 Field 上手工补前缀)
69
+ 4. 按模板 remap 字段 + buildWorkbook(多表入口格配父格筛选)
70
+ 5. POST saveReportDevInfo(**name=目标报表名**)
71
+ 6. [可选] saveReportWithCacheConfig
72
+ 7. GET getReportDevInfo 验证;**禁止**再 rename
73
+ ```
74
+
75
+ **失败清理**:步骤 1 已拿到 `reportId`,但步骤 5 未成功或任务中止 → **必须** `deleteReport` 删除空壳,见 `failure-cleanup-and-nonblocking-guide.md`。
76
+
77
+ ### 2.05 提速三件事( ;细则 `session-build-performance-guide.md` §六补充)
78
+
79
+ 1. **HTTPS 连接复用**:全程一条连接(keep-alive)。每请求 new 一次 ≈271ms/次,复用 ≈115ms/次。
80
+ 2. **ETEAMSID 只解析一次**:`e10-login status` ≈0.9s,写本地缓存复用;禁止每脚本/每请求 subprocess。
81
+ 3. **可省的接口**:新空壳 `saveReportDevInfo` 的 `designKey` 传空串即可(无需先 `getReportDevInfo`);`fillDatasetConfig` 只在运行态取不到数据时补;`dataset/list` 通常首次即命中,**禁止**预 sleep。
82
+
83
+ > 另:**禁止跨报表复用 datasetId**;仅本 report 已挂载的数据集可复用。取字段必须在本表 `addDataset` 之后。
84
+
85
+ ### 2.1 新建报表命名(禁止空壳临时名)
86
+
87
+ > **必加载** `report-baseinfo-defaults-guide.md`(平台默认值权威表)。
88
+
89
+ - **`baseInfo` / `saveReportDevInfo` 全程用目标报表名**;**禁止** `__build_*` / `__probe_*`。
90
+ - **禁止**落库后再 rename(撞名易残留壳名)。
91
+ - **字段先预检再建表**:`fieldsBySource` 精确匹配通过才 `baseInfo`;否则 exit 4(**不建表**)。
92
+ - **同源只挂一次**:本表已有同 `sourceId` 数据集必须复用,禁止二次 `addDataset`(否则左侧重复分组)。
93
+ - **对齐平台默认**:`groupId=0`、`showOrder=1`、`nameLabelId="-1"`;`groupId` 禁止写 `-1`(列表哨兵)。
94
+ - **`name` / `nameLabelId`**:trim;禁控制字符;落库前可 `validate base`。
95
+ - 定源未确认(fuzzy)前 **禁止** `baseInfo`。CLI:`e10-cli report build`。
96
+
97
+ ### 2.2 保存顺序(新空报表 · 已验证)
98
+
99
+ | 顺序 | 接口 | 新空报表 | 已有 layout 的报表 |
100
+ |------|------|----------|-------------------|
101
+ | **①** | `saveReportDevInfo` | **必须** | 必须(改 layout) |
102
+ | **②** | `saveReportWithCacheConfig` | 可选,且在 ① 成功之后 | 可选(跨表筛选缓存) |
103
+
104
+ **禁止**:新报表在 **从未** 成功 `saveReportDevInfo` 之前单独调用 `saveReportWithCacheConfig` —— 会损坏报表壳,后续 dev 保存持续 500。
105
+
106
+ ---
107
+
108
+ ## 三、字段映射(禁止字符串全局替换 · 禁止匹配失败)
109
+
110
+ > **必加载** `field-bind-exact-match-guide.md` — 字段名唯一来源、裸雪花 ID 事故、保存前后门禁。
111
+ > **必加载** `add-dataset-registration-guide.md` — **addDataset 必须与设计器一致**,否则 `fieldsKey` 无 `field_`。
112
+
113
+ ### 3.0 硬约束(零容忍)
114
+
115
+ | 规则 | 说明 |
116
+ |------|------|
117
+ | **注册先于绑定** | 普通应用 `addDataset`:`sourceType=LOGIC` + `sourceGroup=weaver-ebuilder-form-service`;错用 `form`+`sourceGroup=appId` → fieldsKey 裸雪花 |
118
+ | **唯一来源** | Field 的 `name` **必须**等于 **当前 dataset** 的 `fieldsKey[].name`(不是显示名、不是臆造前缀) |
119
+ | **常见形态** | 设计器兼容注册下业务字段为 `field_{雪花}`;系统字段为 `create_time` / `name` / `creator` 等原样 |
120
+ | **禁止去前缀** | `field_3506…` **不可**写成 `3506…` —— 设计器有格、取数全挂(事故 AAA) |
121
+ | **禁止手工补前缀** | fieldsKey 已是裸雪花时,**先修注册**再绑定;禁止只在 cell 上加 `field_` 凑数 |
122
+ | **保存前门禁** | 每个 Field:`fieldsKey.name` 集合 `.has(name)`;失败则**中止保存** |
123
+ | **保存后门禁** | `node e10-cli report verify bind <reportId> [appId]` 必须 PASS 才可交付 |
124
+
125
+ ### 3.1 正确做法
126
+
127
+ 对每个 `cellType=Field` 的模板单元格 **逐对象** 改写:
128
+
129
+ ```javascript
130
+ // fieldName = fieldsKey 中按 text/showName 命中的那一项的 .name
131
+ nf.dataSetId = newDatasetId;
132
+ nf.nameIndex = newSourceId;
133
+ nf.name = fieldName; // 必须 === fieldsKey[].name(含 field_ 前缀)
134
+ nf.fieldKey = `${newDatasetId}.${newSourceId}.${fieldName}`;
135
+ // 同步 patch style 内嵌的 cellType 对象(见 §四)
136
+ nf.allNeedFields = '';
137
+ assert(legalNames.has(nf.name), `name 必须∈ fieldsKey: ${nf.name}`);
138
+ // 裸雪花 / field_ 前缀以 fieldsKey 为准,禁止凭记忆改写
139
+
140
+ ```
141
+
142
+ ### 3.2 禁止
143
+
144
+ - `JSON.stringify` 全量后 `split(oldId).join(newId)` 替换 fieldKey(datasetId 先替换会导致 fieldKey 替换失败,残留旧字段 ID)
145
+ - 用裸雪花 ID(无 `field_`)作 `name` / fieldKey 末段 —— **字段获取不上**
146
+ - 用显示名(如「资产类别」)作 `name` 或完整 fieldKey
147
+ - 截断字段名(`field_5`)或臆造 `field_*`
148
+ - 用表单 fieldId 未与 `fieldsKey.name` 交叉核对就直接写入
149
+
150
+ ### 3.3 字段 discovery
151
+
152
+ ```
153
+ # ① 建表前预检(无需报表;与 fieldsKey 同形)
154
+ GET /api/bs/edc/dataset/fieldsBySource?sourceId=&sourceType=logic&groupId=weaver-ebuilder-form-service
155
+ # ② 落库前权威(本表 addDataset 之后)
156
+ GET /api/bs/edc/dataset/fieldsAndOriginFields
157
+ ?datasetId={id}&hasField=true&isFront=true&reportId={reportId}
158
+ → data.fieldsKey[] // 权威;取 .name 写入;isFront=false 常返回空
159
+ ```
160
+
161
+ `addDataset` 不返回 datasetId → 必须 `dataset/list?reportId=` 按 **sourceId** 匹配,**禁止**按数组下标。
162
+
163
+ **字段绑定门禁(2026-09-11 强制)**:用 `spec_lib.resolveFieldBindings()`,仅**精确**匹配
164
+ (`fieldName`/`fieldMap` → 列标题 === `text` → `field` === `text`/`name`);
165
+ 任一列无精确命中 → **exit 4**,把 `candidates`/`allFields` 交用户指定,**禁止模糊兜底、禁止回退系统字段**。
166
+ 详见 `field-bind-exact-match-guide.md §2.0`。
167
+
168
+ ---
169
+
170
+ ## 四、workbook 单元格 style 键名(字段丢失根因)
171
+
172
+ 平台 `getFieldsFromWorkbook` 读取的是 Java 字段 **`style.cellType`**(`AnalysisFieldCellType`),**不是** `analysisFieldCellType`。
173
+
174
+ | 场景 | 正确键名 |
175
+ |------|----------|
176
+ | **上传 workbook(saveReportDevInfo)** | `style.cellType` |
177
+ | **getReportDevInfo 回读的 fields[].style 字符串** | 可能含 `analysisFieldCellType`(库内序列化) |
178
+
179
+ **buildCellFromField 模板**:
180
+
181
+ ```javascript
182
+ const style = parseJson(f.style, {});
183
+ const ct = style.analysisFieldCellType || style.cellType;
184
+ if (ct && typeof ct === 'object') {
185
+ style.cellType = ct;
186
+ delete style.analysisFieldCellType;
187
+ }
188
+ // Formula 另加 cell.formula = f.cellText(无前导 =)
189
+ ```
190
+
191
+ **症状**:`fields.length=21` 但 `cellType` 全是 `Const`、设计器无字段绑定 → 即 style 键名错误。
192
+
193
+ ---
194
+
195
+ ## 五、保存后验证(一次回读 · 含字段精确匹配)
196
+
197
+ ```javascript
198
+ const dev = getReportDevInfo.data;
199
+ const types = countBy(dev.fields, 'cellType');
200
+ // 期望示例:{ Const: 11, Field: 8, Formula: 2 }
201
+ types.Field >= 1 || FAIL;
202
+ dev.fields.some(f => f.fieldKey && f.cellType === 'Field') || FAIL;
203
+
204
+ // 强制:每个 Field.name / fieldKey末段 ∈ fieldsKey.name(见 field-bind-exact-match-guide.md)
205
+ // 或: node e10-cli report verify bind <reportId> <appId>
206
+ ```
207
+
208
+ | 检查项 | 通过标准 |
209
+ |--------|----------|
210
+ | `fields.length` | ≥ 预期单元格数(通常 >15) |
211
+ | `cellType` 分布 | 含 `Field` 与(如有公式)`Formula` |
212
+ | fieldKey 三段 | `{datasetId}.{sourceId}.{fieldsKey.name}` |
213
+ | **精确匹配** | **每个** Field 的 `name` ∈ 当前数据集 `fieldsKey.name`;禁止裸雪花 ID |
214
+ | `verify_field_bind.js` | Exit 0;失败则**禁止交付** |
215
+ | 损坏壳 | save 500 且 fields 全 Const/0 → `deleteReport` 重建,勿 resume |
216
+
217
+ ---
218
+
219
+ ## 六、故障对照表(禁止盲目重试)
220
+
221
+ | 现象 | 根因 | 处理 |
222
+ |------|------|------|
223
+ | saveReportDevInfo **500** 新空壳 | 先调了 cache / 壳已损坏 / dev 保存用了目标名 | 删 reportId → 临时名重建 → dev 保存 **name=临时名** → 成功后再 baseInfo 改名 |
224
+ | fields 全 **Const** | workbook 用了 `analysisFieldCellType` | 改为 `style.cellType` 重保存 |
225
+ | fieldKey 末段仍是旧雪花 ID | 字符串 replace 顺序错误 | 逐字段对象 remap(§三) |
226
+ | **有 Field 格但字段获取不上 / 取数空** | **`name` 为裸雪花 ID(缺 `field_`)或不在 fieldsKey** | 按 `field-bind-exact-match-guide.md` 重绑;`verify_field_bind.js` |
227
+ | 设计器 0 字段 / workbook cells 0 | 损坏壳或空 workbook 落库 | deleteReport + 重建;见 `safe-partial-save-guide.md` |
228
+ | 同名第二张报表 | 重复 baseInfo | 列表查重,删多余壳,只保留一张 |
229
+
230
+ ---
231
+
232
+ ## 七、禁止走的弯路(已验证浪费时间)
233
+
234
+ 1. **copySheet** 探路 + 再手工建表(用户未要求复制时)
235
+ 2. **preCheck** 全表二分 / 去掉公式逐格试(应先查 §四 style 键名)
236
+ 3. **跨报表**把 A 报表 fields 保存到 B 报表壳(壳损坏时仍 500,不能证明 layout 有问题)
237
+ 4. 在同一损坏 **reportId** 上连续 save 10+ 次
238
+ 5. 收尾打开源码、changed files;或交链后仍跑 verify/HTML/配置检测
239
+ 6. 用户只要搭表时跑需求分析模板或多轮「深度解析」
240
+ 7. 「检测生成报表配置」整包自检后再搭表
241
+ 8. 查找已删除的测试用例/原型脚本(`generate_test_case` / `prototype-design`)
242
+
243
+
244
+ ---
245
+
246
+ ## 八、与现有文档关系
247
+
248
+ | 文档 | 关系 |
249
+ |------|------|
250
+ | `safe-partial-save-guide.md` | 已有报表改快照/权限;**新报表首次落 layout 以本节 §二 顺序为准** |
251
+ | `cross-dataset-filter-guide.md` | fieldKey / leftFilterField 细节 |
252
+ | `formula-cell-api-guide.md` | 公式 cellText、countType |
253
+ | `report-delivery-contract.md` | 收尾交付格式 |
254
+ | `failure-cleanup-and-nonblocking-guide.md` | 失败删空壳;附属失败不卡死 |
255
+ | `app-datasource-lookup-guide.md` | 应用内 sourceId 查找 + 探测预算/打断(§〇 强制) |
256
+ | `datasource-selection-and-parent-filter-guide.md` | 少挂源;连续区域仅入口父格筛选 |
257
+ | `field-bind-exact-match-guide.md` | Field.name 必须 ∈ fieldsKey;裸 ID 事故与门禁 |
258
+ | `add-dataset-registration-guide.md` | addDataset 与设计器对齐;fieldsKey 无 field_ 的根因 |
259
+ | `e10-cli report verify bind` | 保存后字段精确匹配校验(交付前必跑) |
260
+ | `e10-cli report fix(内部走安全局部保存)` | mergeWorkbookSafe;新建布局仍用本节 buildCellFromField |
261
+
262
+ ---
263
+
264
+ ## 九、API 请求头与 multipart 最小集(禁止浏览器自动化)
265
+
266
+ ```javascript
267
+ // headers 每次请求
268
+ { eteamsid, ebBusinessId, ebbusinessid, Referer: .../designer/{reportId},
269
+ 'User-Agent': 'Mozilla/5.0 AgentType=Agent,IsAgent=true' }
270
+
271
+ // saveReportDevInfo multipart
272
+ { groupId, appId, reportId, name, nameLabelId: '-1', designKey, workbook: gzipBase64 }
273
+ ```
274
+
275
+ `designKey` 来自当次 `getReportDevInfo`;保存前只拉 **一次**。