weaver-work-cli 0.1.23 → 0.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/README.md +33 -3
  2. package/dist/core/output.js +53 -1
  3. package/dist/internal/e10/auth/commands.js +210 -17
  4. package/dist/internal/e10/auth/crypto.js +52 -12
  5. package/dist/internal/e10/auth/xiaoe.js +117 -35
  6. package/dist/internal/e10/context.js +3 -3
  7. package/dist/internal/e10/request-runtime.js +46 -4
  8. package/dist/shortcuts/caizhilian/file-upload/metadata.js +124 -0
  9. package/dist/shortcuts/caizhilian/file-upload/multipart.js +47 -0
  10. package/dist/shortcuts/caizhilian/file-upload/protocol.js +116 -0
  11. package/dist/shortcuts/caizhilian/file-upload/receipt.js +37 -0
  12. package/dist/shortcuts/caizhilian/host.js +13 -5
  13. package/dist/shortcuts/caizhilian/operations/handlers/file-upload.js +72 -179
  14. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
  15. package/dist/shortcuts/caizhilian/operations/handlers/folder.js +701 -4
  16. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
  17. package/dist/shortcuts/caizhilian/operations/registry.js +5 -1
  18. package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
  19. package/dist/shortcuts/caizhilian/operations/specs.js +67 -0
  20. package/dist/shortcuts/workflow/continuation.js +14 -9
  21. package/dist/shortcuts/workflow/endpoints.js +11 -1
  22. package/dist/shortcuts/workflow/index.js +55 -1
  23. package/dist/shortcuts/workflow/operations/flow-status.js +63 -0
  24. package/dist/shortcuts/workflow/operations/form.js +1822 -547
  25. package/dist/shortcuts/workflow/operations/read.js +414 -13
  26. package/dist/shortcuts/workflow/operations/shared.js +28 -0
  27. package/dist/shortcuts/workflow/operations/write.js +5 -5
  28. package/dist/shortcuts/workflow/operations.js +8 -6
  29. package/dist/shortcuts/workflow/stdout-compact.js +33 -0
  30. package/docs/caizhilian.md +12 -5
  31. package/docs/e10-auth.md +25 -3
  32. package/node_modules/@napi-rs/keyring/LICENSE +21 -0
  33. package/node_modules/@napi-rs/keyring/README.md +19 -0
  34. package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
  35. package/node_modules/@napi-rs/keyring/index.js +514 -0
  36. package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
  37. package/node_modules/@napi-rs/keyring/keytar.js +26 -0
  38. package/node_modules/@napi-rs/keyring/package.json +125 -0
  39. package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
  40. package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
  41. package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
  42. package/node_modules/commander/LICENSE +22 -0
  43. package/node_modules/commander/Readme.md +1149 -0
  44. package/node_modules/commander/esm.mjs +16 -0
  45. package/node_modules/commander/index.js +24 -0
  46. package/node_modules/commander/lib/argument.js +149 -0
  47. package/node_modules/commander/lib/command.js +2662 -0
  48. package/node_modules/commander/lib/error.js +39 -0
  49. package/node_modules/commander/lib/help.js +709 -0
  50. package/node_modules/commander/lib/option.js +367 -0
  51. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  52. package/node_modules/commander/package-support.json +16 -0
  53. package/node_modules/commander/package.json +82 -0
  54. package/node_modules/commander/typings/esm.d.mts +3 -0
  55. package/node_modules/commander/typings/index.d.ts +1045 -0
  56. package/package.json +5 -1
  57. package/skills/weaver-e10-builder/SKILL.md +281 -0
  58. package/skills/weaver-e10-builder/_catalog.md +94 -0
  59. package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
  60. package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
  61. package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
  62. package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
  63. package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
  64. package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  65. package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
  66. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
  67. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
  68. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
  69. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
  70. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
  71. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
  72. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  73. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
  74. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
  75. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
  76. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
  77. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  78. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  79. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  80. package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
  81. package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  82. package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  83. package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  84. package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  85. package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  86. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
  87. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
  88. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  89. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  90. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
  91. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
  92. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  93. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
  94. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
  95. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
  96. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
  97. package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
  98. package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
  99. package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  100. package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
  101. package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
  102. package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
  103. package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
  104. package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  105. package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
  106. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
  107. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
  108. package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
  109. package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
  110. package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
  111. package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
  112. package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
  113. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  114. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  115. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  116. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  117. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  118. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
  119. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  120. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  121. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  122. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
  123. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  124. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  125. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  126. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  127. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  128. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
  129. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  130. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  131. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
  132. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  133. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  134. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  135. package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
  136. package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
  137. package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
  138. package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
  139. package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
  140. package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
  141. package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
  142. package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
  143. package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
  144. package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
  145. package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
  146. package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
  147. package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
  148. package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
  149. package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
  150. package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
  151. package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
  152. package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
  153. package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
  154. package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
  155. package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
  156. package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
  157. package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
  158. package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
  159. package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
  160. package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
  161. package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
  162. package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
  163. package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
  164. package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
  165. package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
  166. package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
  167. package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
  168. package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
  169. package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
  170. package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
  171. package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
  172. package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
  173. package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
  174. package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
  175. package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
  176. package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
  177. package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
  178. package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
  179. package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
  180. package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
  181. package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
  182. package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
  183. package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
  184. package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
  185. package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
  186. package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
  187. package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
  188. package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
  189. package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
  190. package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
  191. package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
  192. package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
  193. package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
  194. package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
  195. package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
  196. package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
  197. package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
  198. package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
  199. package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
  200. package/skills/weaver-e10-builder/assets/icons.db +0 -0
  201. package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
  202. package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
  203. package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
  204. package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
  205. package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
  206. package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
  207. package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
  208. package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
  209. package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
  210. package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
  211. package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
  212. package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
  213. package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
  214. package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
  215. package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
  216. package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
  217. package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
  218. package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
  219. package/skills/weaver-e10-builder/references/common/map.md +153 -0
  220. package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
  221. package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
  222. package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
  223. package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
  224. package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
  225. package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
  226. package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
  227. package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
  228. package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
  229. package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
  230. package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
  231. package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
  232. package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
  233. package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
  234. package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
  235. package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
  236. package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
  237. package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
  238. package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
  239. package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
  240. package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
  241. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
  242. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
  243. package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
  244. package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
  245. package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
  246. package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
  247. package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
  248. package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
  249. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
  250. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
  251. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
  252. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
  253. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
  254. package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
  255. package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
  256. package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
  257. package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
  258. package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
  259. package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
  260. package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
  261. package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
  262. package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
  263. package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
  264. package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
  265. package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
  266. package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
  267. package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
  268. package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
  269. package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
  270. package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
  271. package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
  272. package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
  273. package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
  274. package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
  275. package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
  276. package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
  277. package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
  278. package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
  279. package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
  280. package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
  281. package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
  282. package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
  283. package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
  284. package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
  285. package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
  286. package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
  287. package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
  288. package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
  289. package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
  290. package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
  291. package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
  292. package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
  293. package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
  294. package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
  295. package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  296. package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
  297. package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
  298. package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
  299. package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
  300. package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
  301. package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
  302. package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
  303. package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
  304. package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
  305. package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
  306. package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
  307. package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
  308. package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
  309. package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
  310. package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
  311. package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
  312. package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
  313. package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
  314. package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
  315. package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
  316. package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
  317. package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
  318. package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
  319. package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
  320. package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
  321. package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
  322. package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
  323. package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
  324. package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
  325. package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
  326. package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
  327. package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
  328. package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
  329. package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
  330. package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
  331. package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
  332. package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
  333. package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
  334. package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
  335. package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
  336. package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
  337. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
  338. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
  339. package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
  340. package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
  341. package/skills/weaver-e10-caizhilian/SKILL.md +14 -4
  342. package/skills/weaver-e10-caizhilian/references/file-upload.md +100 -295
  343. package/skills/weaver-e10-caizhilian/references/files.md +15 -0
  344. package/skills/weaver-e10-caizhilian/references/folder.md +31 -3
  345. package/skills/weaver-e10-caizhilian/references/setting-attach.md +48 -3
  346. package/skills/weaver-e10-caizhilian/references/source-manifest.json +634 -25
  347. package/skills/weaver-e10-jiuchuanhui/SKILL.md +9 -1
  348. package/skills/weaver-e10-shared/SKILL.md +19 -5
  349. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +25 -5
  350. package/skills/weaver-e10-workflow/SKILL.md +28 -47
  351. package/skills/weaver-e10-workflow/references/source-manifest.json +46 -36
  352. package/skills/weaver-e10-workflow/references/workflow-batch.md +2 -4
  353. package/skills/weaver-e10-workflow/references/workflow-create.md +261 -86
  354. package/skills/weaver-e10-workflow/references/workflow-edit.md +2 -1
  355. package/skills/weaver-e10-workflow/references/workflow-memory.md +3 -6
  356. package/skills/weaver-e10-workflow/references/workflow-operate.md +2 -1
  357. package/skills/weaver-e10-workflow/references/workflow-query.md +11 -9
  358. package/skills/weaver-e10-workflow/references/workflow-share.md +2 -0
@@ -0,0 +1,191 @@
1
+ {
2
+ "component": "DigitalPanel 数字面板",
3
+ "usage": "用户说「给数字面板的 XX 设样式」→ 按 pickTree 定位到某棵树 → 在树里找语义节点 → 用 id/class 写选择器。只列有 id 或关键 class 的元素,纯布局包裹 div 已省略或合并。",
4
+ "legend": {
5
+ "[cls]": "条件类名,满足条件才出现",
6
+ "{a|b}": "多选一",
7
+ "a > b": "合并两层(中间节点无类名 / 无关键类)",
8
+ "ref": "引用 shared 下的复用片段",
9
+ "<comId>": "组件运行时 id(config.layout.i),挂在引擎外壳那层。官方样式生成器一律以 #<comId> 限域(scope = #<comId>.ebcom),自写样式建议照做",
10
+ "前缀": "ebcoms=本仓库源码(clsPrefix) 与 @weapp/ebdcoms 公用类(AssetsItem) | ebcom=引擎外壳与布局层(@weapp/ebdcoms) | ui=@weapp/ui | 无前缀=源码里的字面量(digital-panel-item 等)"
11
+ },
12
+ "pickTree": "最外三层固定(见 root):引擎外壳 > header + content + footer 三个平级兄弟。header 由 config.titleEnabled 决定(默认 true,所以默认有);footer 由 footerEnabled 决定(默认 false,基本见不到)。组件自己的 DOM 全在 content > .ebcoms-digital-panel 里,只有两种形态:① showmode='single'(一行)→ layout.single;② showmode='multiple'(多行/网格)→ layout.multiple。两种形态下 Item 内部结构完全一致,差异只在根容器类名和 item 的宽度/浮动。item 内部再按「有无图标 / 有无 showDatas / 有无同比环比 / 有无对比标签」分支,见 shared.item。PC 与移动端同构,差异:根多一个 is-mobile、item 多一个 ebcoms-digital-panel-glm、移动端不响应 hover。",
13
+
14
+ "root": {
15
+ "tag": "div",
16
+ "id": "<comId>",
17
+ "class": "ebcom ebcom-digitalpanel [ebcom-m] ebcom-{grid|flow} [ebcom-view|ebcom-design] [has-no-header] [event-action-click] [ebcom-display-none]",
18
+ "desc": "【引擎外壳】由 @weapp/ebdcoms 的 createView / createDesign 渲染,不在本组件源码里。flex 纵列,所以下面固定挂 3 个平级兄弟。type='DigitalPanel' → ebcom-digitalpanel(连写、单数、中间无横线)。它是 GRID 布局组件,外壳自带 position:relative; display:flex; flex-direction:column; border:1px solid var(--border-color); overflow:auto; height:100%",
19
+ "children": [
20
+ {
21
+ "ref": "shared.header",
22
+ "desc": "config.titleEnabled 默认 true → 默认存在;关掉标题后这块整块消失,外壳上只留 has-no-header 状态类"
23
+ },
24
+ {
25
+ "tag": "div",
26
+ "class": "content",
27
+ "desc": "【引擎内容槽】引擎固定追加,组件自己的 DOM 全在它里面,`#<comId> > .content` 可稳定命中。引擎默认 padding:10px 15px; height:100%; overflow:auto; flex:1 1 auto。⚠️ 这是引擎通用类名,一个页面里有很多个 .content,单独用它定位必然串味,必须带 #<comId> 限域。",
28
+ "children": [
29
+ { "ref": "shared.panelRoot", "desc": "组件根容器,唯一的组件自有节点(同级的还有下面的弹窗)" },
30
+ { "ref": "dialogs.dataListDlg", "desc": "条件渲染,与 panelRoot 平级" }
31
+ ]
32
+ },
33
+ { "ref": "shared.footer", "desc": "footerEnabled 默认 false,本组件默认不渲染" }
34
+ ]
35
+ },
36
+
37
+ "shared": {
38
+ "header": {
39
+ "when": "config.titleEnabled=true 且 defaultOpts.render.showHeader 不为 false(本组件没定义这两个,所以只受 titleEnabled 控制)。本组件没有 static renderHeader / renderTitle,100% 走引擎默认实现",
40
+ "chain": "div.header > [div.ebcoms-title-icon[.noBgColor] > div.ebcoms-assets-item] + div.ebcom-title[.ebcom-title-richtext] + [div.ebcoms-header-btns > span > .ebcoms-configurable-btn.{showType} > .default-btn|.hover-btn]",
41
+ "tips": "① 整行改高/去边框打 `.ebcom.ebcom-digitalpanel > .header`(默认 padding:0 20px; min-height/line-height:40px; color:#666; font-size:var(--font-size-lg); font-weight:600; border-bottom:1px solid var(--border-color); flex:0 0 auto)。② 数字面板的默认标题是「标题」(getLabel 56053),图标来自 config.titleIcon,只有 titleIcon.path 有值才渲染 .ebcoms-title-icon。③ 按钮组 .ebcoms-header-btns 只在配置了顶部操作按钮时出现,最多两个 div:竖排=positionType RIGHT,横排=LEFT。④ ⚠️ 引擎用 `&:has(.ebcoms-header-btns)` 把 .ebcom-title 改成 display:inline-block —— 这是「有顶部按钮时给标题加 width 不生效」的原因。⑤ 兼容老结构 `.ebcom-header-wrap > .header`,不确定时两个都覆盖。⑥ 标题文案走 compatible.formatComTitle,可能是富文本,此时多一个 .ebcom-title-richtext,内部是 p 标签。"
42
+ },
43
+
44
+ "footer": {
45
+ "when": "config.footerEnabled=true 且 defaultOpts.render.showFooter 不为 false。数字面板默认 footerEnabled=false,所以正常情况下这块不存在(不是隐藏,是整块没渲染)",
46
+ "chain": "div.footer[内联 style=按钮对齐] > ( 组件 renderFooter,本组件未定义 ) + div.ebcoms-footer-btns > span > ConfigurableButton",
47
+ "tips": "① 默认 height/line-height/min-height:36px; border-top:1px solid var(--border-color); position:relative; display:flex。② ⚠️ 对齐由 JS 内联 style 写在 .footer 上,覆盖要 !important。③ 按钮组有 max-width:100%; height:100%; overflow-x:auto; padding:3px 0,其 > span 是 color:#666; font-size:12px; margin-right:10px(首个 margin-left:10px)。④ ⚠️ 引擎把内部默认按钮透明化:`.ui-btn.ui-btn-default{border-color:transparent;background-color:transparent}`(disabled/hover 各有独立规则),直接改 .ui-btn 会被压掉。⑤ 无权限/未付费时外壳照渲染但内部为空。"
48
+ },
49
+
50
+ "panelRoot": {
51
+ "tag": "div",
52
+ "class": "ebcoms-digital-panel {ebcoms-digital-panel-single|ebcoms-digital-panel-multiple} [is-mobile]",
53
+ "desc": "【组件根容器】common/Content.tsx render 的第一个节点,所有数字项都挂在它下面。内联 style:--ebcoms-digitalPanel-columns=config.columns(列数,供 CSS 取用);PC 且多行时还有 minWidth=90*有效列数(有效列数 counts = min(项数, columns))。",
54
+ "tips": "① is-mobile 无前缀,且与根容器同级(page.client !== 'PC')。② 它本身是 flex 横排、line-height:1.5、z-index:1。③ -single / -multiple 两个类名必有一个,用它区分布局比看别的更稳。④ 已有样式钩子:`.ebcoms-digital-panel .ebcoms-assets-item{margin-right:10px;border-radius:50%}`、`.ebcoms-digital-panel > div{display:flex;align-items:center;padding:20px 10px 20px 20px;flex:1 1 auto;height:100%;transition:background .2s linear}`。",
55
+ "children": [
56
+ { "ref": "shared.item", "desc": "按 store.formatData 顺序重复。⚠️ showHInfo.children 里 display=hide 的项、以及 setHidePanels 传入的下标,是**直接 return null 不渲染**(不是 display:none),会影响 :nth-child 序号" }
57
+ ]
58
+ },
59
+
60
+ "item": {
61
+ "tag": "div",
62
+ "class": "digital-panel-item [ebcoms-digital-panel-glm] [hasClick] [row-start] [row-end] [{panel.customClassName}]",
63
+ "desc": "【单个数字项】90% 的样式需求落在这层。⚠️ digital-panel-item 是源码里的字面量,**没有任何前缀**,别写成 .ebcoms-digital-panel-item。内联 style:多行时 width=100/counts%,单行时 width:auto;另有 CSS 变量 --ebcoms-digitalPanel-icon-color(由 icon 的颜色/填充方式算出,图标与涨跌箭头取色都靠它)。",
64
+ "tips": "① ebcoms-digital-panel-glm 仅移动端。② hasClick = 配了事件动作(eventGroup) 或 systemOption 有值;view/index.less 只在 .hasClick 上做 hover 背景(#f6f6f6),改 hover 效果必须带 .hasClick。③ row-start/row-end 仅多行模式用于清浮动。④ customClassName 只在 panel.customCNFlag 为真时才拼上来。⑤ 点击后引擎的 EventClickable 会给这一层加 ebsdk-bind-dom(并先清掉其他元素上的),可用它做选中态。⑥ ⚠️ EventClickable / CorsComponent 都不产生额外包裹 div——它 clone 了这个 div 只注入 onClick,所以 item 就是根容器的直接子元素。",
65
+ "children": [
66
+ { "ref": "shared.icon" },
67
+ {
68
+ "tag": "div",
69
+ "desc": "【数值+标题列】无类名,只有内联 maxWidth:有图标时 calc(100% - 56px),无图标时 100%。⚠️ 内联样式,想改宽度必须 !important。已有钩子:`.ebcoms-digital-panel > div > div{display:flex;flex-direction:column;align-items:center;justify-content:space-between;min-height:39px}`",
70
+ "children": [
71
+ {
72
+ "tag": "span",
73
+ "desc": "无类名,只有内联 color(有图标时取图标色,没图标时固定 #333)。它是 `.ebcoms-digital-panel > div > div > span:first-child` 的落点,已有样式 font-size:var(--font-size-md); font-weight:bold; text-align:center",
74
+ "children": [{ "ref": "shared.data" }]
75
+ },
76
+ {
77
+ "tag": "span",
78
+ "class": "ebcoms-digtial-panel-item-title",
79
+ "desc": "【标题文字】span:nth-child(2)。已有样式 font-size:var(--font-size-sm); min-width:36px; width:100%; text-align:center; 单行省略号(text-overflow:ellipsis + nowrap + overflow:hidden)。"
80
+ },
81
+ {
82
+ "tag": "span",
83
+ "class": "ebcoms-digtial-panel-item-last",
84
+ "desc": "【上一周期值】仅 calcs 里存在 lastCycleVal.isShow 时渲染,span:nth-child(3),已有样式 font-size:12px; font-weight:400。文案 = lastCycleVal.content + calc.compare + panel.unit"
85
+ }
86
+ ]
87
+ }
88
+ ]
89
+ },
90
+
91
+ "icon": {
92
+ "when": "panel.icon.path 有值;没有 path 时整块不渲染(IconEidtor 清空后就会出现这种状态),同时数值列 maxWidth 变成 100%",
93
+ "desc": "【图标】@weapp/ebdcoms 的 AssetsItem(size='md' → 36px 容器)。⚠️ 它是 Loadable,加载完成前 fallback 是空 Fragment,不占位。",
94
+ "tips": "同一个 span 上会同时带 ebcoms-assets-icon 和 ebcoms-assets-item 两个类(AssetsIcon 把 config 传来的 className 直接拼上去了),还带尺寸类 md。.bg 类只在 style 里含 backgroundColor 时才出现——数字面板默认图标带 bgColor(会被 parseIconStyleToCssStyle 转成 backgroundColor),所以通常都带 .bg。已有钩子:`.ebcoms-digital-panel .digital-panel-item .ebcoms-assets-icon img.ui-icon-svg{width:100%;height:100%}`。",
95
+ "branches": [
96
+ {
97
+ "when": "path 以 # 开头(系统图标,如 #Icon-Unfinished-business / #icon-rate-star)→ AssetsIcon 分支",
98
+ "chain": "span.ebcoms-assets-icon.ebcoms-assets-item.md[.bg] > span.ui-icon.ui-icon-wrapper > svg.ui-icon-svg",
99
+ "tips": "① 容器 36px,图标是容器的 66.7%(.bg 时)/ 100%。② path 里的图标名命中 @weapp/ebdcoms 的 ModuleLine / ModuleSurface 分类时改走 @weapp/ui AppIcon(内部是 .ui-app-icon 体系),其余走 IconFont(字体图标)——这两类的内部 DOM 不可控,只把外面这层当挂载点。③ AssetsItem 是按需加载的跨包组件,别假设它一定同步在。"
100
+ },
101
+ {
102
+ "when": "path 不以 # 开头且不以 /svg 结尾 → AssetsImg 分支",
103
+ "chain": "img.ebcoms-assets-img.ebcoms-assets-item.md",
104
+ "tips": "图片图标,样式(含 bgColor 转出的 backgroundColor / radius / 宽高)全部内联在这张 img 上。"
105
+ }
106
+ ]
107
+ },
108
+
109
+ "data": {
110
+ "tag": "span",
111
+ "class": "ebcoms-digtial-panel-item-data [flex]",
112
+ "desc": "【数值区】数字 + 单位 + 计算标签的容器。flex 类 = 配置了 showDatas 多值展示。已有样式:display:flex; position:relative; line-height:25px。⚠️ 类名里的 digtial 是源码拼写错误,全组件都是这么写的。",
113
+ "children": [
114
+ {
115
+ "chain": "span.ebcoms-digtial-panel-item-value > svg[width/height=1.2em] > use[href=#numberLoading]",
116
+ "desc": "【数字加载态】三点闪烁动画。出现条件:数据还没就绪(!(!numberLoading && hasInit))且不是数据延迟加载的占位。",
117
+ "tips": "⚠️ svg 是 <use> 引用,symbol 定义由 common/number-loading 注入到一个 display:none 的 div 里、挂到 #root 下——不在组件 DOM 里,用 #<comId> 限域选不到它,要调动画得打 numberLoading 那个 symbol。"
118
+ },
119
+ {
120
+ "chain": "span.ebcoms-digtial-panel-item-value{数值} + [span.ebcoms-digtial-panel-item-unit{单位}]",
121
+ "desc": "【常规单值】仅 showDatas 为空时渲染。单位没有配置时就没有 item-unit。",
122
+ "tips": "① 官方样式生成器的「数值字体」「单位字体」分别打 .ebcoms-digtial-panel-item-value 和 .ebcoms-digtial-panel-item-unit。② item-unit 已有钩子:font-weight:normal(common/index.less)+ 单行截断(-webkit-line-clamp:1,只有单位有这层截断,数值本身没有)。③ 数值 >999 且是系统项(systemOption)时会显示成 '999+'。④ title 属性 = 数值拼单位。"
123
+ },
124
+ {
125
+ "chain": "div.ebcoms-digtial-panel-item-group > span.ebcoms-digtial-panel-item-value + [span.ebcoms-digtial-panel-item-unit]",
126
+ "desc": "【多值(showDatas)】showDatas.length>0 时每个值一个 group,一行并排(item-group 已有样式 display:inline-flex)。此分支下 item-data 恒带 flex 类。"
127
+ },
128
+ { "ref": "shared.calc" }
129
+ ]
130
+ },
131
+
132
+ "calc": {
133
+ "tag": "sup",
134
+ "class": "[ebcoms-digital-panel-calc-one|ebcoms-digital-panel-calc-more]",
135
+ "desc": "【同比/环比计算区】恒渲染(calcs 为空时 class 是空字符串,元素照样在)。绝对定位到数值右侧(left:100%),one(1 个计算)时 top:-7px,more(多个)时 top:-14px。里面每个 calc 一个 CalcField;countType=NONE 的项自己返回 null。",
136
+ "children": [
137
+ {
138
+ "chain": "div.{ebcoms-digital-panel-calc-up|ebcoms-digital-panel-calc-down|ebcoms-digital-panel-calc-flat}[title=计算说明] > [span.ebcoms-digital-panel-calc-prefix] + [span.ui-icon.ui-icon-wrapper > svg.ui-icon-svg | span{--}] + span.ebcoms-digital-panel-calc-data + [span.ebcoms-digital-panel-calc-suffix]",
139
+ "desc": "【同比/环比 YOYMOM】三个状态类按数值符号选:-up=大于 0(红,var(--danger))、-down=小于 0(绿,var(--success))、-flat=等于 0(灰,var(--invalid-fc))。前缀/后缀是可选 span(-suffix 有 margin-left:5px)。中间的图标是 CountIcon:>0 → Icon-up-arrow04、<0 → Icon-Down-arrow04、=0 或空串 → span{--}(内联 padding:0 2px)、原始值(dataType=origin)且非数字(如 YYYY-MM-DD)→ 不渲染图标。",
140
+ "tips": "① ⚠️ -up 是红、-down 是绿(与国内涨红跌绿一致,别按欧美习惯反着改)。② 官方样式生成器的 YOYMOMIncrease/YOYMOMDecrease/YOYMOMFlat 打的就是这三个类,并且会同时生成一条 `.ebcoms-digital-panel > div > div .ebcoms-digtial-panel-item-data .ebcoms-digital-panel-calc-{up|down|flat} .ui-icon` 去覆盖箭头图标色。"
141
+ },
142
+ { "ref": "shared.comparison" }
143
+ ]
144
+ },
145
+
146
+ "comparison": {
147
+ "when": "calc.countType === COMPARISONTAG(对比标签),与同比环比共用同一个 <sup> 容器",
148
+ "chain": "div.ebcoms-digitalpanel-comparison[style=color] > span.ebcoms-digitalpanel-comparison-content( > span > ui Icon | span{--} | 无 ) + [span{annotation}]",
149
+ "desc": "【对比标签】外层 div 带内联 color:increase=#ff4d4f、decrease=#52c41a、其余=#bbbbbb(iconStyle.style.color 优先)。数值与 percentValue 拼在同一行;annotation 是第二行灰色小字。",
150
+ "tips": "⚠️ 前缀是 digitalpanel 而不是 digital-panel:ebcoms-digitalpanel-comparison / -comparison-content,别写成 ebcoms-digital-panel-comparison。已有样式:-comparison-content 是 inline-block; height/line-height:20px,其 `+ span`(annotation)是 display:block; color:#bbb; line-height:16px; text-align:center。"
151
+ }
152
+ },
153
+
154
+ "layout": {
155
+ "single": {
156
+ "when": "config.showmode = 'single'(一行)。此时 config.columns 只影响根容器上的 --ebcoms-digitalPanel-columns 变量,不产生换行",
157
+ "ref": "shared.panelRoot",
158
+ "tips": "根容器带 ebcoms-digital-panel-single,index.less 有一条 `.ebcoms-digital-panel.ebcoms-digital-panel-single > div.digital-panel-item{height:100% !important; align-items:center !important; justify-content:center}` —— 单行模式下每个 item 都被强制满高居中对齐,改高度/对齐必须 !important。item 宽度是 auto,靠 flex 均分。"
159
+ },
160
+ "multiple": {
161
+ "when": "config.showmode = 'multiple'(多行/网格)",
162
+ "ref": "shared.panelRoot",
163
+ "tips": "根容器带 ebcoms-digital-panel-multiple,index.less 把根改成 display:block,item 改成 float:left + 内联 width:100/counts%;`.row-start{clear:left}` 用来断行。⚠️ 是浮动布局,item 之间调间距用 margin(flex 的 gap 在这里无效)。官方样式生成器的「主题色」是按 `.ebcoms-digital-panel .digital-panel-item:nth-child(i)` 逐项上色的,所以项数与顺序变化会让配色重排。"
164
+ }
165
+ },
166
+
167
+ "dialogs": {
168
+ "dataListDlg": {
169
+ "when": "运行态点击数字项且事件动作是「打开数据列表」(linkInfo.type='dataList');配了字段列表直接开,没配字段列表则先拉 dsUtils.getFields 再开。store.dataListDlgVisible 为真才渲染",
170
+ "desc": "【数据列表弹窗】外部组件 @weapp/ebdlist 的 DataListDlg,id 是一个模块级 UUID(dataListId),不是组件 id。它由 When 包裹,与 shared.panelRoot 平级,都挂在引擎的 .content 里 —— 不是挂 body。",
171
+ "tips": "⚠️ 弹窗内部 DOM 属于 @weapp/ebdlist,本组件不做任何控制,别在这里找类名;要限域只能用 `#<comId> .content` 或它自己的 id。移动端不弹窗,走路由 `${parentPath}/dataList?refComId=<comId>`,参数存在 sessionStorage.dataListProps 与 window.EBUILDER.pageParams 里。"
172
+ }
173
+ },
174
+
175
+ "configPanel": {
176
+ "when": "设计器右侧属性面板(config/Config.tsx → config/stats-panel),只在搭建态出现,与运行态 DOM 无关",
177
+ "chain": "div.ebcoms-digital-panel-config > div > ( SortableItem 的包裹 div > ( div.{ebcoms-dpc-data-element|ebcoms-dpc-collect-element}[.divider] > ( div > 数据源/字段区 + [div.ebcoms-dpc-data-element-bottom > .ebcoms-digital-icon-editor + div > LocaleEx + EventsActionBtn] ) + div.ops-group ) ) + div.ebcoms-digital-panel-config-add > ui Menu(overlayClassName=ebcoms-dpc-drop-menu)",
178
+ "tips": "① statType='data' → ebcoms-dpc-data-element;'collect'(系统项)→ ebcoms-dpc-collect-element。② needDivider(非第一项)才加 .divider(padding-top:15px + 上边框)。③ 图标编辑区类名统一是 .ebcoms-digital-icon-editor(作为 className 传给 @weapp/ebdcoms 的 IconEidtor)。④ 显示模式单选在 .ebcoms-digital-panel-columns 里(ui Radio)。⑤ 每项右侧的切换/删除按钮在 div.ops-group(无前缀)里。"
179
+ },
180
+
181
+ "notes": [
182
+ "【最容易写错的类名】① 拼写是 digtial(源码把 digital 写错了),全套:ebcoms-digtial-panel-item-data / -item-value / -item-unit / -item-group / -item-title / -item-last —— 只有 ebcoms-digital-panel(容器)和 ebcoms-digital-panel-calc-*(计算)是真 digital。② digital-panel-item、is-mobile、hasClick、row-start、row-end、flex、divider、ops-group、content / header / footer 全部无前缀。③ 对比标签前缀是 digitalpanel(ebcoms-digitalpanel-comparison),少一个横线。④ 外壳是 ebcom-digitalpanel(连写),不是 ebcom-digital-panel。",
183
+ "【两个同名/近名陷阱】引擎的 .content(无前缀,组件 DOM 的容器)≠ 组件根 .ebcoms-digital-panel;ebcom-digitalpanel(外壳)≠ ebcoms-digital-panel(组件根)——一个是 ebcom、一个是 ebcoms,肉眼极易混。",
184
+ "【引擎自动加的修饰类】`.has-no-header`(titleEnabled=false 或 renderHeader 存在时)、`.event-action-click > .content{cursor:pointer}`(配了点击事件动作)、`.ebcom-display-none`(被事件动作隐藏时引擎加的,同时内联 display:none)。⚠️ 本组件**不会**出现 content-no-padding(defaultOpts 里没定义 padding),padding:0 是 view/index.less 里 `.ebcom-digitalpanel.ebcom-digitalpanel > .content{padding:0;overflow:auto}` 打进去的——想把内边距加回来要覆盖这条,而不是找 content-no-padding。",
185
+ "【官方样式生成器(common/getPanelStyles.ts)的选择器清单】它把所有 CSS 作用域写成 `#<comId>.ebcom`,产物挂在 `#<comId> .comStyle` / `.comCodeSource` / `.comCodeOld` 三组上。原样清单:容器背景 `.content .ebcoms-digital-panel`;主题色 `.ebcoms-digital-panel .digital-panel-item:nth-child(i)`(按 panels 顺序对 subjectColor 取模循环);图标 `.content .ebcoms-assets-item .ui-icon-svg`、`.content .ebcoms-assets-item.bg .ui-icon-svg`、`.content .ebcoms-assets-item`;字体 `.ebcoms-digital-panel .ebcoms-digtial-panel-item-value|item-unit|item-title|item-last`;涨跌 `.ebcoms-digital-panel .ebcoms-digital-panel-calc-up|flat|down` 以及 `.ebcoms-digital-panel > div > div .ebcoms-digtial-panel-item-data .ebcoms-digital-panel-calc-* .ui-icon`。自写样式沿用同一套即可被「自定义 CSS」吸收。",
186
+ "【自带 CSS 变量】根容器上有 --ebcoms-digitalPanel-columns(=config.columns)与 --ebcoms-digitalPanel-icon-color(=图标颜色,hexToRgb 后的值),item 上继承。调图标色/列宽优先改这两个变量,比覆写一堆选择器稳。",
187
+ "【已有但用不上的样式钩子(别照着写)】`.ebcoms-digital-panel-loading`、`.ebcoms-digtial-panel-item-hide`、`.ebcoms-digital-panel-calc`(纯组,源码从没挂过)只定义在 view/index.less 里,没有任何元素带这些类。另有一条 `.ebcoms-digital-panel .is-mobile{...}` 因为 is-mobile 与根容器是同一个元素(不是后代)而永远不生效——移动端去 hover 要写 `.ebcoms-digital-panel.is-mobile`。",
188
+ "【移动端与 RTL】移动端:根加 is-mobile、item 加 ebcoms-digital-panel-glm,并且 index.less 会把 .hasClick 的 hover/active 背景强制 transparent(但受上面那条失效规则影响,实际靠 !important 的写法也没生效,改移动端 hover 直接覆盖 .hasClick 即可)。RTL:`body[page-rtl='true'] .ebcoms-digtial-panel-item-data{transform:scaleX(-1)}`,item-value / item-unit 又被 transform:none 还原,calc-one 再翻一次。",
189
+ "【反查源码】本组件 → common/Content.tsx(引擎对接 + 根容器 + 弹窗 + 取数)、common/PanelItem.tsx(数字项全部 DOM + CountIcon)、common/calc-field/{YOYMOM,Comparison}.tsx(同比环比 / 对比标签)、common/number-loading/(三点动画 symbol 注入)、common/getPanelStyles.ts(官方样式生成器)、view/index.less + common/index.less(全部已有样式)、view/View.tsx + design/Design.tsx + design-m/Design.tsx(出入口与 defaultProps)、config/stats-panel/(属性面板)。@weapp/ui → D:\\fwCode\\weapp-ui(Icon=ui-icon/ui-icon-svg、AppIcon=ui-app-icon、CorsComponent 不产生 DOM)。引擎(外壳 / header / content / footer / 按钮)→ D:\\fwCode\\weapp-ebdcoms/src/components/core/:view/createView.tsx、design/common.less、utils/comp.ts(getClassName → ebcom-<type>)、common/assets-lib/assets-item/{Item,Icon,Img}.tsx(图标 DOM)、common/event-action/event-click/EventClickable.tsx(clone 不包裹,加了 ebsdk-bind-dom)。"
190
+ ]
191
+ }
@@ -0,0 +1,387 @@
1
+ {
2
+ "component": "eb-button EB按钮组件",
3
+ "usage": "先看 btnKind 字段确定按钮形态:btn=普通按钮 / levelBtnGroup=层级按钮组 / tileBtnGroup=平铺按钮组。层级按钮组进一步区分 renderType(menu=图标菜单,其他=标准下拉)和 mobileShowType(移动端 default=Menu下拉,其他=遮罩Carousel)。找到对应分支后,通过条件class速查表定位元素编写样式。",
4
+ "legend": {
5
+ "[className]": "条件class,满足业务条件才挂载",
6
+ "{a|b}": "二选一class,编译后为联合类型",
7
+ "ref:shared.xxx": "引用 shared 中定义的复用片段,避免重复书写",
8
+ "uncontrolled": "外部组件(@weapp/ui)渲染,仅知道挂载点"
9
+ },
10
+ "pickTree": "1. btnKind 分支:btn / levelBtnGroup / tileBtnGroup\n2. levelBtnGroup 再看:renderType==='menu' → levelBtnGroup-pc-menu;否则 → levelBtnGroup-pc 或 levelBtnGroup-mobile\n3. levelBtnGroup-mobile 再看 mobileShowType:'default' → Menu下拉弹层;其他 → 遮罩 + Carousel\n4. tileBtnGroup 无 PC/Mobile 独立文件,共用 TileBtnGroupContent.tsx,通过 InMobile prop 切换子元素 class 和外壳",
11
+
12
+ "root": {
13
+ "tag": "div",
14
+ "class": ["ebcom-ebbutton-group-wrapper"],
15
+ "desc": "组件最外层引擎外壳 div(btn装饰态、levelBtnGroup、tileBtnGroup 均用此外壳 class)",
16
+ "children": []
17
+ },
18
+
19
+ "shared": {
20
+ "btnContent": {
21
+ "desc": "普通按钮内部内容片段(图标+文字+加载态)",
22
+ "chain": "span.ui-btn-content > Spin.ebcoms-ebbutton-spin.btn? + span.ui-btn-content-text | AssetsItem | (leftIcon + span.ui-btn-content-text + rightIcon)",
23
+ "tips": [
24
+ "display='name' 仅文字;'icon' 仅图标;'both' 图标+文字",
25
+ "position 决定图标 left/right 侧",
26
+ "无 btnIcon 或 design 态会渲染默认图标"
27
+ ]
28
+ },
29
+ "levelBtnContent": {
30
+ "desc": "层级/平铺主按钮内部内容片段",
31
+ "chain": "span.ebcoms-eb-button-group-content > (Spin.ebcoms-ebbutton-spin.main | AssetsItem)? + span.ebcoms-eb-button-cover-list-item-text + (rightPos Icon)?",
32
+ "tips": [
33
+ "tileBtnGroup 主按钮还额外渲染 div.ebcoms-eb-button-has-children",
34
+ "levelBtnGroup 有 otherAction 时父级 sibling 是 span.ebcoms-eb-button-group-content-otherAction"
35
+ ]
36
+ },
37
+ "subBtnContent": {
38
+ "desc": "下拉菜单项 / 平铺子菜单的内部内容片段",
39
+ "chain": "(div.ebcoms-eb-button-cover-list-item | div.ebcoms-eb-button-level-submenu-item) > (Spin.ebcoms-ebbutton-spin.sub | AssetsItem)? + span.ebcoms-eb-button-cover-list-item-text + (rightPos Icon)?",
40
+ "tips": [
41
+ "有 btnIcon 时:图标+文字;无 btnIcon 时:仅文字+loading态Spin",
42
+ "position 由 subIconPosition / subiconPosition 决定"
43
+ ]
44
+ },
45
+ "tileSheetBtnContent": {
46
+ "desc": "移动端遮罩弹层栅格按钮内容(垂直布局)",
47
+ "chain": "div.ebcoms-eb-button-group-m-sheet-item > (div.ebcoms-eb-button-cover-list-item-icon? + div.ebcoms-eb-button-cover-list-item-text + div.ebcoms-eb-button-cover-list-item-icon?)",
48
+ "tips": [
49
+ "onlyIcon 模式下只渲染 icon",
50
+ "position 决定 top/bottom 布局"
51
+ ]
52
+ },
53
+ "state": {
54
+ "desc": "JS运行时动态追加的class(不在初始render输出,交互时由组件setState触发)",
55
+ "list": [
56
+ {
57
+ "condition": "config.isDecoratedBtn===true",
58
+ "targetSelector": ".ui-btn.ebcoms-ebbutton-btn",
59
+ "addClass": "new-decorate",
60
+ "note": "装饰按钮,有自定义padding/border"
61
+ },
62
+ {
63
+ "condition": "config.size==='custom'",
64
+ "targetSelector": ".ui-btn.ebcoms-ebbutton-btn, .ebcom-ebbutton-group-wrapper",
65
+ "addClass": "is-custom-size"
66
+ },
67
+ {
68
+ "condition": "status==='disable' 或 btnStatus==='disable'",
69
+ "targetSelector": ".ui-btn.ebcoms-ebbutton-btn",
70
+ "addClass": "disabled",
71
+ "note": "按钮禁用态"
72
+ },
73
+ {
74
+ "condition": "btnStatus==='loading'",
75
+ "targetSelector": ".ui-btn.ebcoms-ebbutton-btn, .ebcoms-eb-button-group-wrapper, .ebcoms-eb-button-group-layout",
76
+ "addClass": "loading",
77
+ "note": "加载态,可能在按钮或外壳上"
78
+ },
79
+ {
80
+ "condition": "btnStatus==='selected'",
81
+ "targetSelector": ".ui-btn.ebcoms-ebbutton-btn",
82
+ "addClass": "selected"
83
+ },
84
+ {
85
+ "condition": "样式库自定义样式生效 (inCustomClassName state=true)",
86
+ "targetSelector": ".ebcoms-ebbutton",
87
+ "addClass": "inCustomEBButtonStyle",
88
+ "note": "去除默认 ui-btn:before 覆盖层"
89
+ },
90
+ {
91
+ "condition": "showExpandIcon===true",
92
+ "targetSelector": ".ebcoms-eb-button-group",
93
+ "addClass": "showExpandIcon",
94
+ "note": "主按钮与展开图标分离显示"
95
+ },
96
+ {
97
+ "condition": "主按钮 btnGroupDisabled===true",
98
+ "targetSelector": ".ebcoms-eb-button-group, .ebcoms-eb-button-level-main-btnOuter",
99
+ "addClass": "btnGroupDisabled / disabled"
100
+ },
101
+ {
102
+ "condition": "子按钮有 children",
103
+ "targetSelector": ".ebcoms-eb-button-group-menu-item",
104
+ "addClass": "hasChild"
105
+ },
106
+ {
107
+ "condition": "otherAction 图标悬停",
108
+ "targetSelector": ".ebcoms-eb-button-otherActionIcon",
109
+ "addClass": "isHover"
110
+ },
111
+ {
112
+ "condition": "tileBtnGroup 有 subBtnGroup",
113
+ "targetSelector": ".ebcoms-eb-button-level-main",
114
+ "addClass": "hasmore"
115
+ },
116
+ {
117
+ "condition": "tileBtnGroup mainBtnGroup.length===0",
118
+ "targetSelector": ".ebcoms-eb-button-level-main, .ebcoms-eb-button-level-menu",
119
+ "addClass": "only-more"
120
+ },
121
+ {
122
+ "condition": "config.filled===true",
123
+ "targetSelector": ".ebcoms-eb-button-level, .ebcoms-eb-button-level-m",
124
+ "addClass": "filled"
125
+ },
126
+ {
127
+ "condition": "tileBtnGroup subBtnGroup.length>0",
128
+ "targetSelector": ".ebcoms-eb-button-level, .ebcoms-eb-button-level-m",
129
+ "addClass": "hasMoreBtn"
130
+ },
131
+ {
132
+ "condition": "更多菜单前有主按钮",
133
+ "targetSelector": ".ebcoms-eb-button-level-menu",
134
+ "addClass": "hasbtn",
135
+ "note": "有主按钮时取消更多菜单左圆角"
136
+ },
137
+ {
138
+ "condition": "平铺主按钮无子菜单",
139
+ "targetSelector": ".ebcoms-eb-button-level-main-btnOuter",
140
+ "addClass": "noSub",
141
+ "note": "隐藏右侧下拉箭头"
142
+ },
143
+ {
144
+ "condition": "customStyle 指定主题色",
145
+ "targetSelector": ".ebcoms-eb-button-level-main-btnOuter, .ebcoms-eb-button-level-menu, .ebcoms-eb-button-level-submenu, .ebcoms-eb-button-group-m-menu-mask",
146
+ "addClass": "primary | success | warning | danger"
147
+ },
148
+ {
149
+ "condition": "tileBtnGroup 子按钮 hasBorder && tileMainBtnShowSplit",
150
+ "targetSelector": ".ebcoms-eb-button-level-main-btnOuter-split",
151
+ "addClass": "(渲染此分割线div)",
152
+ "note": "本身是一个渲染的div元素,不是class"
153
+ }
154
+ ]
155
+ }
156
+ },
157
+
158
+ "branches": {
159
+ "btn-pc": {
160
+ "when": "PC环境 + btnKind==='btn' 或未配置 + isDecoratedBtn=true",
161
+ "root": {
162
+ "tag": "div",
163
+ "id": "<comId>",
164
+ "class": ["ebcom-ebbutton-group-wrapper", "ebcoms-eb-button-group-layout"],
165
+ "conditionalClass": ["is-custom-size", "ebcom", "has-basic-style"],
166
+ "desc": "装饰按钮(有外壳div)。hoverTipSelect!=='none' 时外壳内先包一层 Popover 再包 Button;hoverTipSelect==='none' 时外壳内直接是 Button",
167
+ "children": [
168
+ {
169
+ "type": "uncontrolled",
170
+ "desc": "@weapp/ui Popover tooltip弹层",
171
+ "tips": [
172
+ "className: ebcoms-ebbutton-popover",
173
+ "hoverTipSelect === 'none' 时此层不存在"
174
+ ]
175
+ },
176
+ {
177
+ "tag": "button",
178
+ "class": ["ui-btn", "ebcoms-ebbutton-btn", "ebcoms-eb-button-group-layout"],
179
+ "conditionalClass": ["is-custom-size", "disabled", "new-decorate", "inCustomEBButtonStyle", "selected", "loading"],
180
+ "desc": "@weapp/ui Button 组件",
181
+ "children": ["ref:shared.btnContent"]
182
+ }
183
+ ]
184
+ },
185
+ "absent": []
186
+ },
187
+
188
+ "btn-pc-plain": {
189
+ "when": "PC环境 + btnKind==='btn' 或未配置 + isDecoratedBtn=false",
190
+ "root": {
191
+ "tag": "button",
192
+ "id": "<comId>",
193
+ "class": ["ui-btn", "ebcoms-ebbutton-btn", "ebcoms-eb-button-group-layout"],
194
+ "conditionalClass": ["is-custom-size", "disabled", "new-decorate", "inCustomEBButtonStyle", "selected", "loading"],
195
+ "desc": "@weapp/ui Button 组件,无外壳直接渲染",
196
+ "children": ["ref:shared.btnContent"]
197
+ },
198
+ "absent": []
199
+ },
200
+
201
+ "btn-mobile": {
202
+ "when": "移动端 + btnKind==='btn' 或未配置",
203
+ "root": {
204
+ "tag": "button",
205
+ "id": "<comId>",
206
+ "class": ["ui-btn", "ebcoms-ebbutton-btn", "eb-button-m-content"],
207
+ "conditionalClass": ["is-custom-size", "disabled", "new-decorate", "inCustomEBButtonStyle", "selected", "loading"],
208
+ "desc": "移动端普通按钮(固定带 eb-button-m-content class)",
209
+ "children": ["ref:shared.btnContent"]
210
+ },
211
+ "absent": ["ebcoms-eb-button-group-layout"]
212
+ },
213
+
214
+ "levelBtnGroup-pc": {
215
+ "when": "PC环境 + btnKind==='levelBtnGroup' + renderType !== 'menu'(标准下拉样式)",
216
+ "root": {
217
+ "tag": "div",
218
+ "id": "<comId>",
219
+ "class": ["ebcom-ebbutton-group-wrapper", "ebcoms-eb-button-group"],
220
+ "conditionalClass": ["showExpandIcon", "btnGroupDisabled", "loading"],
221
+ "desc": "层级按钮组 PC端 标准下拉",
222
+ "children": [
223
+ {
224
+ "tag": "div",
225
+ "class": ["ebcoms-eb-button-group-layout"],
226
+ "desc": "布局容器",
227
+ "children": [
228
+ {
229
+ "type": "uncontrolled",
230
+ "desc": "@weapp/ui Menu 组件",
231
+ "tips": [
232
+ "overlayClassName: ebcoms-eb-button-cover-container + <comId> + customStyle",
233
+ "showExpandIcon=false → selectType='normal',主按钮在 customSelectContent 内",
234
+ "showExpandIcon=true → selectType='btn',主按钮在 customBtn 内",
235
+ "triggerProps.popupClassName: ebcoms-eb-button-cover-trigger + (empty 时附加 empty)",
236
+ "主按钮 Button class: ebcoms-eb-button-group-mainBtn",
237
+ "主按钮内容容器: ebcoms-eb-button-group-select-content",
238
+ "菜单项核心 class: ebcoms-eb-button-group-menu-item + ebcoms-eb-button-cover-list-item",
239
+ "菜单项 otherAction 图标区域: ebcoms-eb-button-otherActionIcon",
240
+ "菜单项 has-children 标记: ebcoms-eb-button-has-children",
241
+ "菜单项右侧 end 区域: ebcoms-eb-button-group-menu-item-end"
242
+ ]
243
+ }
244
+ ]
245
+ }
246
+ ]
247
+ },
248
+ "absent": []
249
+ },
250
+
251
+ "levelBtnGroup-pc-menu": {
252
+ "when": "PC环境 + btnKind==='levelBtnGroup' + renderType === 'menu'(样式库指定的图标菜单样式)",
253
+ "root": {
254
+ "tag": "div",
255
+ "id": "<comId>",
256
+ "class": ["ebcom-ebbutton-group-wrapper"],
257
+ "desc": "层级按钮组 PC端 图标菜单样式",
258
+ "children": [
259
+ {
260
+ "tag": "div",
261
+ "class": ["ebcoms-eb-button-group-layout"],
262
+ "conditionalClass": ["loading"],
263
+ "desc": "布局容器",
264
+ "children": [
265
+ {
266
+ "type": "uncontrolled",
267
+ "desc": "@weapp/ui Menu 组件 (selectType='iconOverlay')",
268
+ "tips": [
269
+ "selectIcon: div.ebcoms-btn-group-menu-selectIcon [loading] > Popover > div.ebcoms-btn-group-menu [onlyicon|icon-right]",
270
+ "ebcoms-btn-group-menu 内部结构: (rightPos 文字) + Spin/Icon + (leftPos 文字) + span.ebcoms-btn-group-menu-otherAction?",
271
+ "菜单项与 levelBtnGroup-pc 相同",
272
+ "overlayClassName: ebcoms-btn-group-menu-select-overlay + <comId>",
273
+ "subGroupBtnPosition==='right' 时 selectOverlay 附加 ebcoms-btn-group-menu-select-overlay-right"
274
+ ]
275
+ }
276
+ ]
277
+ }
278
+ ]
279
+ },
280
+ "absent": ["ebcoms-eb-button-group"]
281
+ },
282
+
283
+ "levelBtnGroup-mobile": {
284
+ "when": "移动端 + btnKind==='levelBtnGroup'",
285
+ "root": {
286
+ "tag": "div",
287
+ "id": "<comId>",
288
+ "class": ["ebcoms-eb-button-group-m", "ebcoms-eb-button-group-layout", "ebcoms-eb-button-content"],
289
+ "conditionalClass": ["loading"],
290
+ "desc": "层级按钮组 移动端",
291
+ "children": [
292
+ {
293
+ "type": "uncontrolled",
294
+ "desc": "mobileShowType==='default': @weapp/ui Menu (className: ebcoms-eb-button-group-m-menu, overlayClassName: ebcoms-eb-button-group-m-menu-sub)",
295
+ "tips": [
296
+ "主按钮 Button class: ebcoms-eb-button-group-m-menu-mainBtn",
297
+ "菜单项 class: ebcoms-eb-button-level-submenu-item",
298
+ "菜单项无 hoverTip(移动端不显示 tooltip)",
299
+ "菜单项子级弹层 overlayClassName: ebcoms-eb-button-group-m-menu-sub + customStyle",
300
+ "另一种 mobileShowType 模式: 额外渲染遮罩层 div.ebcoms-eb-button-group-m-menu-mask + MCarousel 栅格",
301
+ "遮罩层 mask 有主题色 primary/success/warning/danger class",
302
+ "遮罩内栅格按钮 class: ebcoms-eb-button-group-m-sheet-item [hasBorder|disabled]"
303
+ ]
304
+ }
305
+ ]
306
+ },
307
+ "absent": ["ebcom-ebbutton-group-wrapper", "ebcoms-eb-button-group", "Popover tooltip"]
308
+ },
309
+
310
+ "tileBtnGroup": {
311
+ "when": "btnKind==='tileBtnGroup' (PC/Mobile 共用 TileBtnGroupContent.tsx,通过 InMobile prop 切换)",
312
+ "root": {
313
+ "tag": "div",
314
+ "id": "<comId>",
315
+ "class": ["ebcoms-eb-button-level", "ebcom-ebbutton-group-wrapper"],
316
+ "conditionalClass": ["filled", "hasMoreBtn"],
317
+ "desc": "平铺按钮组 PC端外壳。移动端外壳 class 替换为 ebcoms-eb-button-level-m",
318
+ "children": [
319
+ {
320
+ "tag": "div",
321
+ "class": ["ebcoms-eb-button-group-layout"],
322
+ "desc": "布局容器",
323
+ "children": [
324
+ {
325
+ "tag": "div",
326
+ "class": ["ebcoms-eb-button-level-main"],
327
+ "conditionalClass": ["hasmore", "only-more"],
328
+ "desc": "主按钮区域容器(可包含多个主按钮)",
329
+ "children": [
330
+ {
331
+ "tag": "div",
332
+ "class": ["ebcoms-eb-button-level-main-btnOuter"],
333
+ "conditionalClass": ["noSub", "disabled", "loading", "primary", "success", "warning", "danger"],
334
+ "desc": "单个主按钮外壳(数组 map 渲染)",
335
+ "children": [
336
+ {
337
+ "tag": "span",
338
+ "desc": "span > Menu.ui-btn (PC端) 或 Menu.ebcoms-eb-button-level-main-btn (移动端)",
339
+ "children": ["ref:shared.levelBtnContent"]
340
+ },
341
+ {
342
+ "tag": "div",
343
+ "class": ["ebcoms-eb-button-level-main-btnOuter-split"],
344
+ "desc": "按钮间分割线,仅 tileMainBtnShowSplit && item.hasBorder 时渲染",
345
+ "children": []
346
+ }
347
+ ]
348
+ }
349
+ ]
350
+ },
351
+ {
352
+ "type": "uncontrolled",
353
+ "desc": "@weapp/ui Menu 更多按钮",
354
+ "tips": [
355
+ "className: ebcoms-eb-button-level-menu.ui-menu",
356
+ "conditionalClass: hasbtn | only-more | primary | success | warning | danger",
357
+ "overlayClassName: ebcoms-eb-button-level-submenu (PC) 或 ebcoms-eb-button-level-submenu-m (Mobile) + customStyle",
358
+ "子菜单项核心 class: ebcoms-eb-button-level-submenu-item",
359
+ "子菜单项 loading/disabled 也是条件class",
360
+ "更多按钮无 Popover tooltip(hoverTipSelect==='none')",
361
+ "移动端:子菜单 action='click';PC端:action='hover'"
362
+ ]
363
+ }
364
+ ]
365
+ }
366
+ ]
367
+ },
368
+ "diffs": [
369
+ "移动端外壳 class 为 ebcoms-eb-button-level-m",
370
+ "移动端 Menu className 为 ebcoms-eb-button-level-main-btn 而非 ui-btn",
371
+ "移动端子菜单弹层 overlayClassName 为 ebcoms-eb-button-level-submenu-m 而非 ebcoms-eb-button-level-submenu"
372
+ ],
373
+ "absent": []
374
+ }
375
+ },
376
+
377
+ "notes": [
378
+ "组件大量依赖 @weapp/ui 的 Button / Menu / Popover / Spin / Icon / AssetsItem,这些组件内部DOM不在eb-button控制范围内,但eb-button通过class来自定义样式",
379
+ "AssetsItem 是 @weapp/ui 的资源图标组件,外层 class 为 ebcoms-assets-item,内部渲染 svg/img",
380
+ "Spin 是加载态旋转图标组件,外层 class 含 ebcoms-ebbutton-spin,后续有位置修饰符 (btn|main|sub|levelBtn)",
381
+ "clsPrefix='ebcoms', ebcomPrefix='ebcom',两者生成的 class 前缀不同,注意区分",
382
+ "hoverTipSelect==='none' 时普通按钮没有 Popover 包裹,层级组菜单项 tooltip 也会隐藏",
383
+ "样式库的 id 决定了是否走 levelBtnGroup-pc-menu (renderType='menu') 分支",
384
+ "tileBtnGroup 的 tileMainBtnShowSplit 由 defaultStyle.dfColorBd==='transparent' 或特定样式库 id 控制",
385
+ "otherAction 是按钮主操作旁的副操作按钮,有独立 icon 和事件,在 PC 层级组中表现为文字旁边的小图标区域"
386
+ ]
387
+ }