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,245 @@
1
+ # HRM 矩阵指南(条件矩阵 / 部门矩阵 / 分部矩阵)
2
+
3
+ > 矩阵 = 「条件维度(行)→ 值维度(列)」的映射查询表。例如:部门 + 费用类型 → 审批人。用于流程中的矩阵对应操作者类型。
4
+
5
+ ## 命令参考
6
+
7
+ ### 矩阵管理
8
+
9
+ | 命令 | 说明 |
10
+ |------|------|
11
+ | `e10-cli matrix create <name>` | 新建矩阵。`--type 0=分部/1=部门/2=自定义` `--desc` `--org-id` |
12
+ | `e10-cli matrix update <id>` | 更新矩阵。`--name` `--desc` `--type` |
13
+ | `e10-cli matrix list` | 查询矩阵列表。`--name` `--enable-status` `--org-id`。非 JSON 输出会标出「行随组织同步 / 行手工维护」「字段只读」 |
14
+ | `e10-cli matrix config <id>` | 查看矩阵配置(条件字段 + 值字段) |
15
+ | `e10-cli matrix config-edit <id>` | 编辑配置。`--value`(配合可选 `--condition`)或 `--config` 一次性提交。**`--condition` 可省略**,省略则沿用现有条件列 |
16
+ | `e10-cli matrix enable <id>` | 启用矩阵 |
17
+ | `e10-cli matrix disable <id>` | 停用矩阵 |
18
+ | `e10-cli matrix delete <ids...>` | 删除矩阵。**矩阵里有数据行时平台会拒绝删除**(报"存在不能删除的矩阵"且不指出是哪个)——先 `matrix data delete <id> <rowIds...>` 清空数据行再删;批量删除时只要有**一条**不可删,整批都失败 |
19
+
20
+ ### 矩阵数据维护
21
+
22
+ | 命令 | 说明 |
23
+ |------|------|
24
+ | `e10-cli matrix data list <matrixId>` | 分页查询矩阵数据行。`--condition` `--value` 过滤 |
25
+ | `e10-cli matrix data save <matrixId> --rows @file` | 保存数据行(新增/修改)。简写: `[{rowId?, "字段configId":["实体ID"]}]` —— 带 `rowId` 为改该行,不带为新增 |
26
+ | `e10-cli matrix data delete <matrixId> <ids...>` | 删除数据行 |
27
+ | `e10-cli matrix data template <matrixId>` | 下载导入模板(Excel) |
28
+ | `e10-cli matrix data import <matrixId> <file>` | 从 Excel 导入。`--mode add/cover` |
29
+
30
+ ---
31
+
32
+ ## 典型工作流
33
+
34
+ ```bash
35
+ # 1. 创建矩阵(新建即启用;分权租户的所属机构自动取当前机构)
36
+ e10-cli matrix create "审批人映射表" --type 2 --desc "部门→审批人"
37
+
38
+ # 2. 查 ID
39
+ e10-cli matrix list --name "审批人"
40
+
41
+ # 3. 配字段(条件=部门,值=审批人)—— 直接可用,不需要先开设计器
42
+ e10-cli matrix config-edit <matrixId> \
43
+ --condition '[{"type":"department","name":"所属部门"}]' \
44
+ --value '[{"type":"resource","name":"审批人","singleType":1}]'
45
+
46
+ # 4. 启用
47
+ e10-cli matrix enable <matrixId>
48
+
49
+ # 5. 填数据
50
+ echo '[{"<条件configId>":["<部门ID>"],"<值configId>":["<人员ID>"]}]' > rows.json
51
+ e10-cli matrix data save <matrixId> --rows @rows.json
52
+
53
+ # 6. 查数据
54
+ e10-cli matrix data list <matrixId>
55
+
56
+ # 7. 在流程中使用矩阵
57
+ e10-cli workflow set-operator <wf> <nodeId> --type matrix \
58
+ --matrix-id <matrixId> --value-config-id <值configId> \
59
+ --matrix-rule "<条件configId>:1:1:1"
60
+ ```
61
+
62
+ 部门矩阵少一步 —— 条件列是平台建矩阵时自动给的,只配值列:
63
+
64
+ ```bash
65
+ # 1. 建(--sync-depart = 界面上那个「从组织架构中同步部门」;行随组织同步,不可增删)
66
+ e10-cli matrix create "部门负责人" --type 1 --sync-depart --desc "部门→负责人"
67
+
68
+ # 2. 只配值列,--condition 省略(CLI 会沿用平台建好的「部门」条件列)
69
+ e10-cli matrix config-edit <matrixId> \
70
+ --value '[{"type":"resource","name":"部门负责人","singleType":0}]'
71
+
72
+ # 3. 看行 —— 同步型矩阵的行是组织架构带来的,行 id 就是部门 id
73
+ e10-cli matrix data list <matrixId>
74
+
75
+ # 4. 给某一行填值(带 rowId 才是改那一行,不带就是新增一行)
76
+ echo '[{"rowId":"<部门id>","<值configId>":["<人员ID>"]}]' > rows.json
77
+ e10-cli matrix data save <matrixId> --rows @rows.json
78
+ ```
79
+
80
+ ---
81
+
82
+ ## 行从哪来、字段能不能改:看 `syncType` 和 `permList`
83
+
84
+ `matrix list --json` 每条记录带几个标记位。**不要拿 `sysType` 当判据** —— 它只说明是不是平台内置的,不决定能力:
85
+
86
+ | 字段 | 取值 | 含义 |
87
+ |---|---|---|
88
+ | `type` | `0` / `1` / `2` | `0`=分部矩阵、`1`=部门矩阵、`2`=自定义矩阵 |
89
+ | `syncType` | `1` / `0` | **行从哪来**。`1`=数据行随组织架构同步(**行不可增删,行 id 就是部门/分部 id**);`0`=行手工维护(行 id 是平台发号的雪花) |
90
+ | `permList` | 数组 | **含 `FIELD` 才能改字段配置**;不含就是字段只读(平台内置矩阵是这种) |
91
+ | `sysType` | `1` / `0` | 是否平台内置。只影响名字语义,**不影响能做什么** |
92
+
93
+ `matrix list` 的非 JSON 输出会直接把这两条标出来:`行随组织同步 / 行手工维护`、`字段只读`。
94
+
95
+ 同一租户里四个矩阵的对照,四个象限都出现过:
96
+
97
+ | 矩阵 | type | sysType | syncType | permList 有 `FIELD` | 结果 |
98
+ |---|---|---|---|---|---|
99
+ | 平台内置的部门矩阵 | 1 | 1 | 1 | 否 | 行随组织同步、字段只读 |
100
+ | 部门负责人矩阵 | 1 | 0 | 0 | 是 | 行手工维护、字段可改 |
101
+ | 自建并勾了「同步部门」 | 1 | 0 | 1 | 是 | 行随组织同步、字段可改 |
102
+ | 自建未勾同步 | 1 | 0 | 0 | 是 | 行手工维护、字段可改 |
103
+
104
+ > **`type` 与 `syncType` 互相独立**:`type=1` 的部门矩阵既可以是同步的、也可以是手工维护的;创建时用 `--sync-depart` / `--sync-subcompany` 决定,事后也能用 `matrix update --sync-depart` 改。
105
+ >
106
+ > 不管哪种,**在流程里的用法完全一样**(都是 `workflow set-operator --type matrix`)。
107
+
108
+ ## 部门矩阵 / 分部矩阵:条件列是平台给的
109
+
110
+ 建部门矩阵(`matrix create <name> --type 1 --sync-depart`)时,平台会**自动把条件列建好**:
111
+
112
+ ```json
113
+ "conditionConfigList": [
114
+ { "id": "<矩阵id + 1>", "name": "部门", "type": "department", "singleType": 1 }
115
+ ],
116
+ "valueConfigList": [] ← 这才是你要配的
117
+ ```
118
+
119
+ 所以配列时**只给值列就行**,`--condition` 省略掉:
120
+
121
+ ```bash
122
+ e10-cli matrix config-edit <matrixId> \
123
+ --value '[{"type":"resource","name":"部门负责人","singleType":0}]'
124
+ ```
125
+
126
+ CLI 会把现有条件列原样带上(会打印一行 `ℹ 未指定条件列,已沿用现有的: 部门`)。
127
+
128
+ > **别手写条件列。** 写一个不带 `id` 的 `{"type":"department","name":"部门"}` 进去,CLI 会当成新列去 `addField` 取号,结果矩阵里多出一条一模一样的「部门」列。
129
+ >
130
+ > 可用类型用 `GET /api/bs/hrm/matrix2/config/typeList?id=<matrixId>&matrixType=<0|1|2>` 查:部门矩阵返回 `conditionTypeList:[department]` / `valueTypeList:[resource]`。
131
+
132
+ **所属机构与分权**:矩阵强制校验"所属机构",而落到哪个字段由**分权状态**决定——分权开启时平台读 `belong_org_id`(归属机构),关闭时读 `targetId`。CLI 建矩阵前会自动查 `check-detach` 判断并选对字段,分权租户还会直接用返回的当前机构兜底,所以 `matrix create` 通常不用手写机构;只有"非分权租户"或"归属机构与目标机构必须不同"时才需要 `--org-id` / `--target-id`。
133
+
134
+ **列表的状态过滤**:`matrix list` 走管理端点 `matrix2/list`,能看到**停用的矩阵**并显示真实状态;`--name`(模糊)、`--enable-status`、`--org-id` 都是服务端过滤。
135
+
136
+ ## 完整配置:条件列 → 人员列 → 数据映射 → 运行时读回
137
+
138
+ ```bash
139
+ # ① 建矩阵(自定义矩阵。系统矩阵是平台内置的,用 matrix list 找现成的)
140
+ # 新建即为「启用」状态,不需要再 enable;要停用才跑 matrix disable
141
+ # 所属机构:分权租户自动取当前机构,非分权租户用 --org-id 显式指定(不加会有"所属机构不能为空")
142
+ e10-cli matrix create "部门审批人" --type 2 --desc "部门→审批人"
143
+
144
+ # ② 配列:条件列 + 值列。值列 type=resource 就是"人员列";singleType 0=多选 1=单选
145
+ e10-cli matrix config-edit <matrixId> \
146
+ --condition '[{"type":"department","name":"所属部门"}]' \
147
+ --value '[{"type":"resource","name":"审批人","singleType":1}]'
148
+
149
+ # ③ 取各列 configId(数据映射的键就是它),再填数据行
150
+ e10-cli matrix config <matrixId> # → conditionConfigList[].id / valueConfigList[].id
151
+ e10-cli matrix data save <matrixId> --rows @rows.json
152
+ e10-cli matrix data list <matrixId> # 回读数据行
153
+
154
+ # ④ 启用并挂到流程节点
155
+ e10-cli matrix enable <matrixId>
156
+ e10-cli workflow set-operator <wf> <nodeId> --type matrix \
157
+ --matrix-id <matrixId> --value-config-id <值列configId> \
158
+ --matrix-rule "<条件列configId>:1:1:1"
159
+
160
+ # ⑤ 运行时读回:确认条件列/值列是否就是流程实际在读的那一组
161
+ e10-cli matrix config <matrixId>
162
+ ```
163
+
164
+ > **矩阵类型不用手填**:`--type matrix` 的 `sourceType` / 条件列中文名由 CLI 自动读 `GET /api/bs/hrm/matrix2/config?id=<matrixId>` 解析——`conditionConfigList[].type` 是 `department` 即部门矩阵、`subcompany` 即分部矩阵。条件列不在目标矩阵里时会直接报错并列出可选列,不会静默挂错。
165
+ >
166
+ > 排查"取不到人"时按这个顺序看:`matrix config`(列对不对)→ `matrix data list`(行有没有)→ 流程节点的矩阵规则是否引用了正确的 `条件configId`。
167
+
168
+ ## 字段类型枚举
169
+
170
+ 设计器「字段维护」里就这 **7 档**:
171
+
172
+ | 中文 | API 值 |
173
+ |------|--------|
174
+ | 人员 | `resource` |
175
+ | 部门 | `department` |
176
+ | 分部 | `subcompany` |
177
+ | 岗位 | `position` |
178
+ | 客户 | `customer` |
179
+ | 项目 | `project` |
180
+ | 自定义浏览框 | `customBrowser` |
181
+
182
+ ## 自定义浏览框列
183
+
184
+ 条件列和值列都可以是**自定义浏览框**。它的读写形状**不一样**,这点最容易踩:
185
+
186
+ | | 形状 |
187
+ |---|---|
188
+ | **写**(要发的) | `customBrowser:<浏览框富对象>` + `singleType` |
189
+ | **读**(回来的) | `browserModule` + `browserType` + `configDetailDto{dataId,singleType}` + `showConfig` |
190
+
191
+ 平台**只认写的那个形状**:把读回来的三个键原样发回去,会被回「**自定义浏览框参数异常**」。所以:
192
+
193
+ - **新建**一列时用浏览框**名字**指名即可,CLI 会去查回富对象:
194
+ ```json
195
+ { "type": "自定义浏览框", "name": "这里是显示名字", "browser": "测试自定义浏览框", "singleType": 0 }
196
+ ```
197
+ `browser` 也收完整对象(想直接贴 bean 就用 `customBrowser`)。名字**精确匹配**,同名多条或查不到都会报错并列候选。
198
+ - **沿用**老列(省略 `--condition`)时,CLI 会按读回里的 `configDetailDto.dataId` **把富对象反查回来再发** —— 不需要你补;也不要手写 `browserType` / `configDetailDto`,发了会被拒。
199
+ - `singleType`:`0` 多选 / `1` 单选(列底下那个「单选」勾选框)。自定义浏览框列默认 `0`。
200
+
201
+ ```bash
202
+ e10-cli matrix config-edit <矩阵ID> \
203
+ --condition '[{"type":"部门","name":"所属门店"},{"type":"自定义浏览框","name":"合同","browser":"测试自定义浏览框"}]' \
204
+ --value '[{"type":"人员","name":"门店经理","singleType":1}]'
205
+ ```
206
+
207
+ ## config-edit 参数
208
+
209
+ ```json
210
+ {
211
+ "id": "<矩阵ID>",
212
+ "conditionConfigList": [
213
+ { "id": "<现有条件列id>", "type": "department", "name": "显示名", "sort": 1 }
214
+ ],
215
+ "valueConfigList": [
216
+ { "id": "<现有值列id>", "type": "resource", "name": "显示名", "singleType": 1, "sort": 1 },
217
+ { "type": "resource", "name": "新加的列", "singleType": 0, "sort": 2 }
218
+ ],
219
+ "conditionDelList": [],
220
+ "valueDelList": []
221
+ }
222
+ ```
223
+
224
+ - `singleType`: 0=多选, 1=单选。值字段必传,条件字段可省(省了沿用现有的)。条件列在平台上**本身是必填的**,空着下发会被拒(「请至少维护一个条件字段」)。自定义浏览框列默认 0。
225
+ - **自定义浏览框列**用 `"browser":"<浏览框名>"` 指名即可(CLI 查回富对象再发),详见上面「自定义浏览框列」一节。写 `browserType` / `configDetailDto` 这类**读回形状**会被平台拒。
226
+ - **已有的列要带 `id`**(从 `matrix config` 拿);不带 `id` 的会被当成新列去 `addField` 取号,**等于多建一列**。不带 id 但与现有列重名时 CLI 会告警。
227
+ - **列 id 必须属于该矩阵**。传了别的矩阵的列 id,平台只回一句「系统内部错误」(NPE),CLI 会抢先报错并点名是哪一列。
228
+ - ⚠ **保存是「按 id 合并」,不是整表替换**:没传的列**不会**被删(删列要走 `--value-del`)。所以「加一列」只传那一列就够了,不必把现有列全列一遍。
229
+ - 保存后回读比对提交的列(在不在、名字对不对),平台回 200 但没按提交落库会直接报错。
230
+
231
+ ## data save 简写格式
232
+
233
+ ```json
234
+ [
235
+ {"<条件configId>": ["<实体ID>"], "<值configId>": ["<实体ID>"]},
236
+ {"rowId": "<行id>", "<值configId>": ["<实体ID>"]}
237
+ ]
238
+ ```
239
+
240
+ - 不带 `rowId` = 新增一行;带 `rowId`(或写作 `id`)= 改那一行。行 id 用 `matrix data list <matrixId>` 拿。
241
+ - **改行只给要改的列就行**:平台是整行覆盖,CLI 会先读回该行、把没给的列补上再发。
242
+ - 键不是该矩阵的列时直接报错并列出可用列,不会静默发出去。
243
+
244
+ CLI 自动查 config 判断 `conditionAble` 标记并展开为完整格式;改过的行保存后会回读比对,平台回 200 但没按提交落库会直接报错。
245
+
@@ -0,0 +1,155 @@
1
+ # 组织架构 — 人员录入(Excel 批量导入)
2
+
3
+ > **平台自己解析 Excel,CLI 只负责把文件送上去、把解析结果取回来** —— CLI 不解析单元格,
4
+ > 也不想解析:字段映射、必填校验、主子表展开全在平台侧,CLI 自己解一遍只会跟平台不一致。
5
+
6
+ ## 命令
7
+
8
+ | 命令 | 说明 |
9
+ |------|------|
10
+ | `e10-cli org employee template [--out <路径>]` | 导出人员导入模板(xlsx)。默认输出到当前目录的 `人员导入模板.xlsx` |
11
+ | `e10-cli org employee import <file>` | 从 Excel 导入人员。`--dry-run` 只预览不导入;`--mode add\|update`(默认 `add`);`--find-by <字段>`(更新时按哪个字段认人,默认 `username`);`--review <n>` 预览行数(默认 100) |
12
+ | `e10-cli org employee task <taskId>` | 查某个导入任务的结果(没等、或等超时了,用这个补看) |
13
+
14
+ 导入默认**等结果**:打完 `已导入 N 条 / 失败 M 条` 才结束,**有失败行时退出码非 0**,脚本可以直接判。
15
+
16
+ | 选项 | 说明 |
17
+ |---|---|
18
+ | `--no-wait` | 提交后立刻返回。⚠ 不等就等于不校验 —— **「已提交」不代表导入成功**,要自己再用 `task` 查 |
19
+ | `--wait-timeout <ms>` | 等结果的超时(默认 60000)。超时不编成功,如实报「仍在处理中」并给 taskId |
20
+ | `--error-file <路径>` | 失败数据的保存路径。默认与源文件同目录、同名 + `.错误数据.xlsx` |
21
+ | `--no-error-file` | 不保存失败数据文件(原因仍会打出来) |
22
+
23
+ ## 模板怎么填(三处最容易填错)
24
+
25
+ 模板第 2 个工作表「模板注意事项说明」里也写了这几条,这里挑出**填错代价最大**的三处:
26
+
27
+ ### 1. 「状态(必填)」列只认平台那几个词
28
+
29
+ `试用` / `试用延期` / `正式` / `临时` / `实习` / `离职` / `退休` / `解聘` / `无效`,就这九个 ——
30
+ 填其它写法(比如 `1`、`在职`)**整行导入失败**。
31
+
32
+ ⚠ 别拿**动作流里「人员状态」**的 `1`(在职)/ `2`(离职)来填这一列,那是另一套取值,两者不通。
33
+
34
+ ### 2. 「密码」在第 35 列(AI 列)
35
+
36
+ 模板一共 63 列,密码夹在中间那段:
37
+ `AH` 登录名 → **`AI` 密码** → `AJ` 解除账号 → `AK` 安全级别。
38
+ 填到隔壁的「安全级别」(第 37 列)**不会报错**,只是那人的密码没设上 —— 属于静默填错。
39
+
40
+ ### 3. 有上级/助理的人,拆两批导
41
+
42
+ 「上级」「其他上级」「助理」填的是**别人的姓名**,如果那个人也在这张表里,
43
+ **同一批导入可能引用不到**。
44
+ 做法:**第一批只导没有任何上级/助理的人**,第二批再导引用他们的那些 ——
45
+ 不用改表结构,拆成两个文件依次导即可。
46
+
47
+ - 「上级」列**只填一个人**;要挂多个上级用「其他上级」列,多个之间用 `,` 分隔。
48
+ - 这几列按平台说明,必须是该上级/助理**「重复验证字段」**的值(编号、姓名选其一)。
49
+
50
+ ### 别忘了删示例行
51
+
52
+ 模板第 2~9 行是 `user001`~`user008` 的**演示数据**(平台自带的),**导入前整行删掉**,
53
+ 否则这几行会被当成真人建进组织里。
54
+
55
+ ## ⚠ 先 `--dry-run`,再真导
56
+
57
+ 批量写组织数据是**外部可见且不好撤销**的操作。导入前先干跑一次:
58
+
59
+ ```bash
60
+ e10-cli org employee import 人员.xlsx --dry-run
61
+ ```
62
+
63
+ 干跑会打出**平台解析出来的**工作表名、列数、行数和前几行内容 —— 拿它跟你的原表对一遍,
64
+ 确认列没串、行数对得上(尤其是**模板自带的示例行要删掉**),再去掉 `--dry-run` 真导。
65
+
66
+ `--dry-run` 停在「预览」这一步,**这一步之前不会往组织里写任何东西**。
67
+
68
+ ## 链路(七步,每步产出喂给下一步)
69
+
70
+ | | 端点 | 产出 |
71
+ |---|---|---|
72
+ | ⓪ | `POST /api/bs/hrm/emp/edit/importParam` | `bizId` + moduleName / functionName / handlerName / serviceName / dataType |
73
+ | ① | `POST /api/file/preUploadCheck`(multipart) | 预上传 id |
74
+ | ② | `POST /api/file/module/upload`(multipart) | `fileId` |
75
+ | ③ | `POST /api/ebatch/checkFilePassword` | — |
76
+ | ④ | `POST /api/ebatch/uploadFileId` | `taskId` |
77
+ | ⑤ | `POST /api/ebatch/getExcelData` | 预览行(**不落库**) |
78
+ | ⑥ | `POST /api/ebatch/importExcelData` | 真正执行 |
79
+ | ⑦ | `POST /api/ebatch/getByTaskId` | **导入结果**:条数 / 失败原因 / 错误文件 |
80
+
81
+ - **⓪ 把 ④ 要的元数据全给了** —— moduleName / functionName / handlerName / serviceName / dataType
82
+ 都不是 CLI 硬编码的,`bizId` 更是每次调用现生成。
83
+ - **①② 的 multipart 字段逐字相同**,② 只多 `preUploadId` 与 `uploadType=common`。
84
+ - ⑤⑥⑦ 的参数全在 **query string**,body 为空。
85
+
86
+ ## 导入结果(⑥ 只是「提交了」,结论在 ⑦)
87
+
88
+ **⑥ 的响应体只有一个 `true`** —— 条数、失败原因、错误文件**全都不在里面**。只发 ⑥ 就报成功,
89
+ 会让**整批失败也显示成「导入已提交」**,所以命令发完 ⑥ 会去轮询 ⑦。
90
+
91
+ ```json
92
+ {"status": -1,
93
+ "msg": "存在错误数据,下载错误文件查看",
94
+ "callbackData": "{\"msg\":\"导入失败\",\"errorFileId\":\"...\",\"module\":\"hrm\",\"successCount\":0,\"errorCount\":\"1\"}"}
95
+ ```
96
+
97
+ - **`callbackData` 是一个 JSON 字符串**,要二次解析 —— 条数和错误文件 id 都在里面。
98
+ - ⚠ **`successCount` 是数字、`errorCount` 是字符串**(`1` / `"0"`),同一段 JSON 里类型不一致,两边都得转一遍。
99
+ - ⚠ **`status: 0` 不是「成功」** —— 它是个**中途值**:同一个任务先读到 `status: 0` + `msg: 成功`、
100
+ `callbackData` 还是空的,几秒后才落成 `-1` + 失败 1 条。**判完成的依据是 `callbackData` 能不能解出来,不是 `status`**;
101
+ 按 `status` 收工就会把失败读成成功。
102
+ - `status: -1` = 存在错误数据,可以直接当终态(命令也这么处理)。
103
+
104
+ ### 失败原因在**单元格批注**里,不在任何一列
105
+
106
+ 导出的失败数据文件里**只有出错的那几行,没有「原因」列** —— 用表格软件打开看值,看不出为什么失败。
107
+ 原因挂在**出错单元格的批注(Excel comment)**上,形态是:
108
+
109
+ | 单元格 | 值 | 批注 |
110
+ |---|---|---|
111
+ | A2 | 人员A | **姓名 重复** |
112
+
113
+ 所以 `import` / `task` 会把批注读出来直接打给你:
114
+
115
+ ```
116
+ 导入结果: 人员A.xlsx
117
+ 已导入 0 条
118
+ 失败 1 条
119
+ 平台说明 存在错误数据,下载错误文件查看
120
+ 失败原因
121
+ 第 2 行 · 姓名(人员A): 姓名 重复
122
+ 失败数据 1323916251655815168 → 人员A.错误数据.xlsx
123
+ ```
124
+
125
+ ### 失败数据怎么下来的
126
+
127
+ ```
128
+ GET /api/file/remotedownload/<fileId>/token/true?authModule=ebatch
129
+ → 302 → 对象存储的签名地址(文件真身在这边,文件名也在这一步给)
130
+ ```
131
+
132
+ 下载按**两步**取:先带鉴权拿到 302,再**不带任何鉴权头**去对象存储取字节 ——
133
+ 会话凭证不跟着跳转发到第三方域名上。
134
+
135
+ ## 几个坑
136
+
137
+ - **取 id 的层级三步三样**:① 在 `data.preUploadId`(**有的环境**是 `data.uploadModuleDto.fileid`)、
138
+ ② 在 `data.fileid`(**小写 d**)、④ 在 `data.data.taskId`(多一层)。照着别的接口的写法套会静默取到空。
139
+ - **① 的返回形状随环境变**:有的环境 `preUploadCheck` 只回 `data.preUploadId`
140
+ (`data` 下就 `preUploadId` / `uploadType` / `permissionType` 三个键,**没有** `uploadModuleDto`)。
141
+ 两种写法语义相同,命令都认;一个都没有才报错。只认其中一种的话,那条环境整条导入链**第①步就断**。
142
+ - **⑤ 的参数是 `rerviewNum`** —— 平台把 review 拼错了,别"顺手改正"成 `reviewNum`。
143
+ - **`weaTable[0].total` 是 `-1`**,不能拿来当行数;行数看 `data` 数组长度。
144
+ - **`rerviewNum` 只是一次取多少行**,预览到的未必是全部 —— 行数刚好等于上限时命令会提示。
145
+ - **⚠⚠ 分部名写错不会报错 —— 平台会静默新建一个分部,把人放进去。**
146
+ 「分部(必填)」填一个机构里不存在的名字(例如把「泛微北京」写成「泛微北金」),导入**照样回成功**,
147
+ 然后机构里会多出一个同名分部(父级 = 操作者所在组织),人落在里面。**没有报错、没有警告**,
148
+ `--dry-run` 的预览也看不出来 —— 预览只是把单元格原样回显,**不做任何校验**。
149
+ 所以:**分部名必须是机构里已有的名字**,导之前自己核一遍 —— 一次手误就是一条脏组织数据 + 一个错位的人。
150
+ - **`importType` 在 ④ 的报文里出现两次**:顶层是空串、真正生效的在 `uploadSet.customObj` 里。
151
+
152
+ ## 环境差异
153
+
154
+ `emp/edit/importParam` 是判定「这个环境能不能导入人员」的探针 —— 返回里没有 `bizId` / `functionName`
155
+ 就说明该环境不支持,命令会直接报错,不会带着半截参数往下走。
@@ -0,0 +1,75 @@
1
+ # 系统内置菜单 URL 参考
2
+
3
+ 通过 `savePublishMenu` API 挂载系统内置页面到应用菜单。menuUrl 格式固定,禁止瞎编。
4
+
5
+ > **暂不支持 H5/移动端菜单**。移动端是独立体系(不同 URL + 不同 pageId),目前尚未整理完整,禁止 AI 自行编造。
6
+
7
+ ---
8
+
9
+ ## PC 端菜单
10
+
11
+ ### 工作流页面 (pageType: WORKFLOW)
12
+
13
+ | 菜单名 | pageId | menuUrl |
14
+ |--------|--------|---------|
15
+ | 待办流程 | todo | `/sp/ebdfpage/workflow/{appId}_todo` |
16
+ | 已办流程 | done | `/sp/ebdfpage/workflow/{appId}_done` |
17
+ | 我提交的流程 | mine | `/sp/ebdfpage/workflow/{appId}_mine` |
18
+ | 共享给我的流程 | share | `/sp/ebdfpage/workflow/{appId}_share` |
19
+ | 下属的待办流程 | subordinates | `/sp/ebdfpage/workflow/{appId}_subordinates` |
20
+ | 全部流程 | all | `/sp/ebdfpage/workflow/{appId}_all` |
21
+ | 草稿流程 | draft | `/sp/ebdfpage/workflow/{appId}_draft` |
22
+ | 流程监控 | monitor | `/sp/ebdfpage/workflow/{appId}_monitor` |
23
+
24
+ ### 独立页面(不跟 appId)
25
+
26
+ | 菜单名 | pageId | menuUrl |
27
+ |--------|--------|---------|
28
+ | 提交申请 | newflow | `/sp/ebdfpage/ebflowpage/create/` |
29
+
30
+ ### 其他系统页面
31
+
32
+ | 菜单名 | pageId | pageType | menuUrl |
33
+ |--------|--------|----------|---------|
34
+ | 我的关注 | followList | BASE | `/sp/ebdfpage/followlist/{appId}` |
35
+ | 共享给我的 | shareList | BASE | `/sp/ebdfpage/sharelist/{appId}` |
36
+
37
+ ---
38
+
39
+ ## 用法
40
+
41
+ ```json
42
+ {
43
+ "content": "待办流程",
44
+ "menuType": "1",
45
+ "page": {
46
+ "pageId": "todo",
47
+ "pageName": "待办流程",
48
+ "pageType": "WORKFLOW",
49
+ "appid": "{appId}"
50
+ },
51
+ "menuUrl": "/sp/ebdfpage/workflow/{appId}_todo",
52
+ "shareMap": [{
53
+ "id": "0",
54
+ "content": "所有人",
55
+ "permissionId": "sys_view",
56
+ "targetType": 11,
57
+ "sourceType": 1,
58
+ "objIdList": ["所有人"]
59
+ }]
60
+ }
61
+ ```
62
+
63
+ > **只有包含工作流的应用**才能挂载工作流系统页面。表单台账会自动挂入菜单,无需手动操作。
64
+
65
+ ---
66
+
67
+ ## 菜单是一棵树
68
+
69
+ 应用菜单不止一层:顶层之外还有 `children` 嵌套(例如平台自带的「设置 → 个人设置 → 个人菜单设置」、系统设置下的「基本信息 / 菜单设置」)。
70
+
71
+ - `menu list <appId>` **递归展开**整棵树,输出带缩进;末尾会注明含多少个嵌套菜单。**这份列表就是全量**,在它里面找不到某个菜单,才能下结论说「该应用没有这个菜单」。
72
+ - `menu rename <appId> <菜单ID或名称> <新名>` 按 ID 或名称定位,**嵌套里的菜单一样能改**。同名多条时命令会报歧义并列出候选 ID,不会替你挑一条。
73
+ - 改名的命令会**重建写报文**再回读比对:名称变了、且「页面绑定 / 菜单 URL / 可见范围」等字段一个都没动,才算成功。改名只动名字,不会顺带改掉已有的筛选条件或页签配置。
74
+
75
+ **平台系统菜单(回收站、设置及其子项)不能改名** —— 它们由平台维护、指向内置页面,改名没有语义,命令会直接拒绝。
@@ -0,0 +1,139 @@
1
+ # addDataset 注册契约 · `field_` 前缀门禁(强制)
2
+
3
+ > **事故(已验证 · 报表 `1312765120721813505`)**
4
+ > 同一 `sourceId=972019393600233477`(轻资产信息):
5
+ > - **Agent/API 加的数据集** `1312765120721813506`:`type=form` + `sourceGroup=<appId>` → `fieldsKey.name` 业务字段为**裸雪花**(无 `field_`)
6
+ > - **设计器手动「+」加的数据集** `1312794545670627330`:`type=logic` + `sourceGroup=weaver-ebuilder-form-service` → `fieldsKey.name` 业务字段为 **`field_{雪花}`**
7
+ >
8
+ > **遗漏点不在「写 Field 时忘加 field_」**,而在 **`addDataset` 注册参数与设计器不一致**,导致权威 `fieldsKey` 本身就没有 `field_`。
9
+ > 后续若按设计器习惯臆造 `field_`,或绑错到「裸雪花」那份 dataset,会出现保存 500 / 取数失败 / 与用户手动数据集字段名对不齐。
10
+
11
+ ---
12
+
13
+ ## 一、两种注册形态(必须分清)
14
+
15
+ | 形态 | 典型 `addDataset` | `dataset/list` 特征 | 业务字段 `fieldsKey.name` | `tableName` 后缀 | 何时用 |
16
+ |------|-------------------|---------------------|---------------------------|------------------|--------|
17
+ | **A. 设计器默认(LOGIC)** | `sourceType=LOGIC`(或 `logic`)+ `sourceGroup=weaver-ebuilder-form-service` + `appid=<appId>` | `type:"logic"`,`sourceGroup:"weaver-ebuilder-form-service"` | **`field_{雪花}`** | **`(业务模块)`** | **普通应用表单(默认强制)** |
18
+ | **B. 共享表 / form 契约** | `sourceType=form` + `sourceGroup=<appId>` | `type:"form"`,`sourceGroup` 等于 appId | 常为**裸雪花** | **`(表单)`** | 仅「xxx-共享表」类应用且已验证必须用此契约时(见 MEMORY/共享表笔记) |
19
+
20
+ **禁止**:在普通应用里误用形态 B,再抱怨「没有 field_」——那是注册错了,不是 fieldsKey 坏了。
21
+
22
+ > ⚠️ **`tableName` 后缀必须与注册形态一致**:形态 A → `(业务模块)`,形态 B → `(表单)`。
23
+ > 后缀缺失或写错会导致左侧数据源不显示模块类型。
24
+ > 详见 **`dataset-table-field-contract-guide.md`**(含 `FieldCellType` 必需字段全表 + 落库门禁)。
25
+
26
+ ---
27
+
28
+ ## 二、设计器兼容的 addDataset(默认强制)
29
+
30
+ ```
31
+ POST /api/bs/edc/report/addDataset
32
+ Content-Type: multipart/form-data
33
+
34
+ reportId = {reportId}
35
+ sourceType = LOGIC
36
+ sourceIds = {sourceId} // 表单/数据源 ID
37
+ sourceName = {显示名} // **回显名强制**:`{表单名}(业务模块)`,如 `轻资产信息(业务模块)`;禁止只传裸表单名
38
+ appid = {appId} // 注意小写 appid(与设计器一致)
39
+ sourceGroup = weaver-ebuilder-form-service
40
+ ```
41
+ > **回显名(已验证)**:`sourceName` 写入 `edc_dataset_dev.name`,左侧回显应为 **`xxx(业务模块)`**。
42
+ > 只传 `轻资产信息` 会缺后缀;源合并后的 `tableText` 可能仍是 `轻资产信息(uf_xxx)`,与回显名不是同一字段——**以 `name`=sourceName 为准**。
43
+
44
+ 可选字段以设计器实际请求为准;**不得**把 `sourceGroup` 写成 appId,除非走 §一 形态 B。
45
+
46
+ `addDataset` **不返回** datasetId → 短轮询:
47
+
48
+ ```
49
+ GET /api/bs/edc/dataset/list?hasField=true&reportId={reportId}
50
+ ```
51
+
52
+ 按 **sourceId** 命中;若同 sourceId 多条,**优先选** `sourceGroup=weaver-ebuilder-form-service` / `type=logic` 那条。
53
+
54
+ ### 2.1 同源只挂一次(**强制 · 2026-09-11 事故**)
55
+
56
+ `spec_lib.resolveDataset()` 在 `addDataset` **之前**先查 `dataset/list`:
57
+
58
+ | 场景 | 行为 |
59
+ |------|------|
60
+ | 本报表已有同 `sourceId` 数据集 | **复用**(`datasetReused=true`),**不再 addDataset** |
61
+ | 发现同源 ≥2 条 | 回传 `datasetDuplicates[]` + WARN(左侧会出现重复分组) |
62
+ | 传了别的报表的 `datasetId` | 忽略 + WARN(禁止跨报表复用) |
63
+
64
+ > 事故:同一表单被 `addDataset` 挂载两次(`type=LOGIC` 与 `type=logic` 各一条),
65
+ > 且画布上两个单元格引用第二条 → 设计器左侧出现**两个同名数据源分组**。
66
+ > 未先去重就继续绑字段,会让「绑到哪一份数据源」变得不可预测。
67
+ > 清理顺序见 `dataset-sidebar-ops-guide.md §5.3`(**先改绑/清单元格 → 再 delDataset**)。
68
+
69
+ ---
70
+
71
+ ## 三、addDataset 后强制门禁(遗漏即本事故)
72
+
73
+ `fieldsAndOriginFields?isFront=true` 拿到 `fieldsKey` 后立刻检查:
74
+
75
+ ```javascript
76
+ const biz = fieldsKey.filter(
77
+ (f) => /^\d{15,}$/.test(f.name) || /^field_\d{15,}$/.test(f.name)
78
+ );
79
+ const withPrefix = biz.filter((f) => String(f.name).startsWith('field_')).length;
80
+ const bare = biz.filter((f) => /^\d{15,}$/.test(f.name)).length;
81
+
82
+ // 普通应用(非共享表 form 契约):业务字段应多数带 field_
83
+ if (!isSharedFormContract && biz.length > 0 && bare > withPrefix) {
84
+ throw new Error(
85
+ 'addDataset 注册错误:fieldsKey 业务字段为裸雪花(无 field_)。' +
86
+ '应使用 sourceType=LOGIC + sourceGroup=weaver-ebuilder-form-service;' +
87
+ 'delDataset 后重建,禁止在 Field 上凭记忆加 field_ 前缀凑数。'
88
+ );
89
+ }
90
+ ```
91
+
92
+ | 检查 | 通过标准 |
93
+ |------|----------|
94
+ | 普通应用 | 业务字段 `field_` 数量 **≥** 裸雪花数量(通常裸雪花应为 0) |
95
+ | 共享表 form 契约 | 允许裸雪花;**禁止**再擅自加 `field_` |
96
+ | 同 sourceId 已有手动 LOGIC 数据集 | **绑定/取 fieldsKey 必须用那条**;勿继续用旧的 form+appId 脏注册 |
97
+
98
+ 失败处理:
99
+
100
+ 1. `POST /api/bs/edc/report/delDataset` 删掉错误注册
101
+ - form:`reportId=<报表ID>` · **`sourceIds=<datasetId>`**(参数名历史遗留,**不是**表单 sourceId)
102
+ - 建议先 `GET /api/bs/edc/dataset/checkDataSetUsed?reportId=&datasetId=`;CLI:`e10-cli report dataset delete`
103
+ - 完整侧栏操作见 `dataset-sidebar-ops-guide.md`
104
+ 2. 按 §二 重新 `addDataset`
105
+ 3. 再拉 `fieldsKey`,确认出现 `field_*`
106
+ 4. 再写 Field / `saveReportDevInfo`
107
+
108
+ ---
109
+
110
+ ## 四、与「字段精确绑定」的关系
111
+
112
+ | 步骤 | 规则 |
113
+ |------|------|
114
+ | 1 注册 | 本指南:让 `fieldsKey` **先**变成设计器同款(含 `field_`) |
115
+ | 2 绑定 | `field-bind-exact-match-guide.md`:`name` **逐字等于** 当前 dataset 的 `fieldsKey.name` |
116
+ | 3 禁止 | 注册错了却在 cell 上「手工补 `field_`」;或注册对了却去前缀 |
117
+
118
+ **一句话**:`field_` 不是 Agent 写 Field 时发明的,是 **正确 addDataset 之后 fieldsKey 自带的**。
119
+
120
+ ---
121
+
122
+ ## 五、自检清单
123
+
124
+ - [ ] `addDataset` 使用 `sourceType=LOGIC` + `sourceGroup=weaver-ebuilder-form-service`(除非共享表契约)
125
+ - [ ] `dataset/list` 回读该条 `type/sourceGroup` 与设计器一致
126
+ - [ ] `fieldsKey` 业务字段已出现 `field_*`(普通应用)
127
+ - [ ] Field.`name` / fieldKey 末段 ∈ **该** dataset 的 fieldsKey(`verify_field_bind.js`)
128
+ - [ ] 同 sourceId 多实例时,未误绑到旧的 form+appId 裸雪花数据集
129
+
130
+ ---
131
+
132
+ ## 六、相关文档
133
+
134
+ | 文档 | 关系 |
135
+ |------|------|
136
+ | `field-bind-exact-match-guide.md` | 绑定名权威来源;前置依赖本指南的注册正确 |
137
+ | `api-report-build-fast-path.md` | 建表流程步骤 2 / 2.1 门禁 |
138
+ | `report-designer-feature-map.md` §六 | 设计器「+」对应 addDataset 参数 |
139
+ | `e10-cli report verify bind` | 交付校验;并对「裸雪花 fieldsKey」给出注册错误提示 |