weaver-work-cli 0.1.24 → 0.1.26

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 (401) hide show
  1. package/README.md +30 -21
  2. package/dist/cmd/root.js +1 -0
  3. package/dist/core/output.js +53 -1
  4. package/dist/core/runtime-agent.js +19 -0
  5. package/dist/internal/e10/auth/commands.js +58 -23
  6. package/dist/internal/e10/auth/crypto.js +52 -12
  7. package/dist/internal/e10/auth/xiaoe.js +145 -53
  8. package/dist/internal/e10/context.js +5 -27
  9. package/dist/shortcuts/archive-oa/constants.js +66 -0
  10. package/dist/shortcuts/archive-oa/continuation.js +70 -0
  11. package/dist/shortcuts/archive-oa/errors.js +53 -0
  12. package/dist/shortcuts/archive-oa/host.js +157 -0
  13. package/dist/shortcuts/archive-oa/index.js +225 -0
  14. package/dist/shortcuts/archive-oa/manifest.js +62 -0
  15. package/dist/shortcuts/archive-oa/operations/borrow-car.js +159 -0
  16. package/dist/shortcuts/archive-oa/operations/borrow-url.js +108 -0
  17. package/dist/shortcuts/archive-oa/operations/confirm.js +48 -0
  18. package/dist/shortcuts/archive-oa/operations/contract.js +120 -0
  19. package/dist/shortcuts/archive-oa/operations/locate.js +50 -0
  20. package/dist/shortcuts/archive-oa/operations/registry.js +40 -0
  21. package/dist/shortcuts/archive-oa/operations/shared.js +181 -0
  22. package/dist/shortcuts/archive-oa/operations/types.js +45 -0
  23. package/dist/shortcuts/archive-oa/operations.js +13 -0
  24. package/dist/shortcuts/caizhilian/operations/handlers/fileops.js +67 -1
  25. package/dist/shortcuts/caizhilian/operations/handlers/setting-attach.js +198 -0
  26. package/dist/shortcuts/caizhilian/operations/shared.js +32 -0
  27. package/dist/shortcuts/caizhilian/operations/specs.js +15 -0
  28. package/dist/shortcuts/index.js +2 -0
  29. package/dist/shortcuts/invoice/host.js +2 -1
  30. package/dist/shortcuts/invoice/manifest.js +111 -0
  31. package/dist/shortcuts/invoice/operations/issuing-qys.js +361 -0
  32. package/dist/shortcuts/invoice/operations/issuing.js +5 -5
  33. package/dist/shortcuts/invoice/operations/registry.js +4 -0
  34. package/dist/shortcuts/workflow/endpoints.js +11 -0
  35. package/dist/shortcuts/workflow/host.js +2 -2
  36. package/dist/shortcuts/workflow/index.js +25 -1
  37. package/dist/shortcuts/workflow/operations/chatscene.js +270 -0
  38. package/dist/shortcuts/workflow/operations/form.js +2128 -244
  39. package/dist/shortcuts/workflow/operations/read.js +186 -41
  40. package/dist/shortcuts/workflow/operations/shared.js +25 -0
  41. package/dist/shortcuts/workflow/operations/sign-input.js +106 -0
  42. package/dist/shortcuts/workflow/operations/write.js +9 -1
  43. package/dist/shortcuts/workflow/stdout-compact.js +41 -0
  44. package/docs/archive-oa.md +79 -0
  45. package/docs/caizhilian.md +4 -3
  46. package/docs/e10-auth.md +13 -5
  47. package/node_modules/@napi-rs/keyring/LICENSE +21 -0
  48. package/node_modules/@napi-rs/keyring/README.md +19 -0
  49. package/node_modules/@napi-rs/keyring/index.d.ts +166 -0
  50. package/node_modules/@napi-rs/keyring/index.js +514 -0
  51. package/node_modules/@napi-rs/keyring/keytar.d.ts +53 -0
  52. package/node_modules/@napi-rs/keyring/keytar.js +26 -0
  53. package/node_modules/@napi-rs/keyring/package.json +125 -0
  54. package/node_modules/@napi-rs/keyring-darwin-arm64/README.md +3 -0
  55. package/node_modules/@napi-rs/keyring-darwin-arm64/keyring.darwin-arm64.node +0 -0
  56. package/node_modules/@napi-rs/keyring-darwin-arm64/package.json +32 -0
  57. package/node_modules/commander/LICENSE +22 -0
  58. package/node_modules/commander/Readme.md +1149 -0
  59. package/node_modules/commander/esm.mjs +16 -0
  60. package/node_modules/commander/index.js +24 -0
  61. package/node_modules/commander/lib/argument.js +149 -0
  62. package/node_modules/commander/lib/command.js +2662 -0
  63. package/node_modules/commander/lib/error.js +39 -0
  64. package/node_modules/commander/lib/help.js +709 -0
  65. package/node_modules/commander/lib/option.js +367 -0
  66. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  67. package/node_modules/commander/package-support.json +16 -0
  68. package/node_modules/commander/package.json +82 -0
  69. package/node_modules/commander/typings/esm.d.mts +3 -0
  70. package/node_modules/commander/typings/index.d.ts +1045 -0
  71. package/package.json +5 -1
  72. package/skill-template/business-info.json +16 -0
  73. package/skill-template/domains/archive-oa.md +19 -0
  74. package/skill-template/domains/yepiaotong.md +2 -2
  75. package/skills/weaver-e10-archive-oa/SKILL.md +159 -0
  76. package/skills/weaver-e10-archive-oa/references/archive-locate.md +49 -0
  77. package/skills/weaver-e10-archive-oa/references/borrow-car.md +76 -0
  78. package/skills/weaver-e10-archive-oa/references/borrow-flow.md +53 -0
  79. package/skills/weaver-e10-archive-oa/references/contract-search.md +63 -0
  80. package/skills/weaver-e10-archive-oa/references/disabled-capabilities.md +29 -0
  81. package/skills/weaver-e10-archive-oa/references/qys-contract-search.md +47 -0
  82. package/skills/weaver-e10-archive-oa/references/source-manifest.json +400 -0
  83. package/skills/weaver-e10-builder/SKILL.md +303 -0
  84. package/skills/weaver-e10-builder/_catalog.md +94 -0
  85. package/skills/weaver-e10-builder/actionflows/CONTEXT.md +71 -0
  86. package/skills/weaver-e10-builder/actionflows/SKILL.md +176 -0
  87. package/skills/weaver-e10-builder/actionflows/docs/adr/0001-generated-actionflow-cleanup-identity.md +5 -0
  88. package/skills/weaver-e10-builder/actionflows/docs/adr/0002-preserve-existing-actionflow-on-update.md +36 -0
  89. package/skills/weaver-e10-builder/actionflows/references/components/calendar/MeetingCreate.md +19 -0
  90. package/skills/weaver-e10-builder/actionflows/references/components/calendar/ScheduleCreate.md +17 -0
  91. package/skills/weaver-e10-builder/actionflows/references/components/database/DMLExecute.md +38 -0
  92. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentCopy.md +17 -0
  93. package/skills/weaver-e10-builder/actionflows/references/components/document/AttachmentMove.md +17 -0
  94. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentCopy.md +17 -0
  95. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentDelete.md +17 -0
  96. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentEdit.md +17 -0
  97. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentMove.md +17 -0
  98. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentPermissionChange.md +17 -0
  99. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRenewal.md +17 -0
  100. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentRevert.md +17 -0
  101. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSave.md +17 -0
  102. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscription.md +17 -0
  103. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionApprove.md +17 -0
  104. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionSendBack.md +17 -0
  105. package/skills/weaver-e10-builder/actionflows/references/components/document/DocumentSubscriptionWithdraw.md +17 -0
  106. package/skills/weaver-e10-builder/actionflows/references/components/document/FileFolderSave.md +17 -0
  107. package/skills/weaver-e10-builder/actionflows/references/components/document/GetAttachmentInfo.md +17 -0
  108. package/skills/weaver-e10-builder/actionflows/references/components/document/GetDocumentInfo.md +17 -0
  109. package/skills/weaver-e10-builder/actionflows/references/components/document/ModifyDocumentStatus.md +17 -0
  110. package/skills/weaver-e10-builder/actionflows/references/components/document/ReplaceAttachment.md +17 -0
  111. package/skills/weaver-e10-builder/actionflows/references/components/document/UpdatePrintNum.md +17 -0
  112. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbAdd.md +100 -0
  113. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbDelete.md +23 -0
  114. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbRecover.md +17 -0
  115. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbSaveVersion.md +17 -0
  116. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/ActionEbUpdate.md +67 -0
  117. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/DateTrigger.md +32 -0
  118. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EbGetDataById.md +17 -0
  119. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EnquiryForm.md +107 -0
  120. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventButton.md +33 -0
  121. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/EventFormData.md +19 -0
  122. package/skills/weaver-e10-builder/actionflows/references/components/ebuilder/TimeBatchTrigger.md +19 -0
  123. package/skills/weaver-e10-builder/actionflows/references/components/http/Http.md +77 -0
  124. package/skills/weaver-e10-builder/actionflows/references/components/logic/Condition.md +23 -0
  125. package/skills/weaver-e10-builder/actionflows/references/components/logic/LogicFlowSet.md +17 -0
  126. package/skills/weaver-e10-builder/actionflows/references/components/logic/MultipleExecution.md +38 -0
  127. package/skills/weaver-e10-builder/actionflows/references/components/logic/Output.md +37 -0
  128. package/skills/weaver-e10-builder/actionflows/references/components/message/InnerMQSend.md +50 -0
  129. package/skills/weaver-e10-builder/actionflows/references/components/message/SendMessage.md +30 -0
  130. package/skills/weaver-e10-builder/actionflows/references/components/personnel/AlterPersonStatus.md +30 -0
  131. package/skills/weaver-e10-builder/actionflows/references/components/personnel/HrmEmployeeUpdate.md +34 -0
  132. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelAlterType.md +38 -0
  133. package/skills/weaver-e10-builder/actionflows/references/components/personnel/PersonnelOnboarding.md +36 -0
  134. package/skills/weaver-e10-builder/actionflows/references/components/serverless/ServerlessAction.md +42 -0
  135. package/skills/weaver-e10-builder/actionflows/references/components/trigger/CustomTrigger.md +82 -0
  136. package/skills/weaver-e10-builder/actionflows/references/components/trigger/InnerMQListener.md +41 -0
  137. package/skills/weaver-e10-builder/actionflows/references/components/trigger/SimpleScheduler.md +19 -0
  138. package/skills/weaver-e10-builder/actionflows/references/components/trigger/WebHookTrigger.md +91 -0
  139. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAddSign.md +17 -0
  140. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveAgreeRejectApply.md +17 -0
  141. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCommit.md +17 -0
  142. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveConsulTurnTodo.md +17 -0
  143. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveCreate.md +17 -0
  144. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDelete.md +19 -0
  145. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoCirculate.md +17 -0
  146. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoForward.md +17 -0
  147. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveDoTurnTodo.md +17 -0
  148. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveEntrust.md +19 -0
  149. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveIntervention.md +17 -0
  150. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveMandatoryArchiving.md +17 -0
  151. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveManualCC.md +17 -0
  152. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRefuseRejectApply.md +17 -0
  153. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveRejectApply.md +17 -0
  154. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSave.md +17 -0
  155. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveSendBack.md +17 -0
  156. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveShareEntry.md +17 -0
  157. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveTrigger.md +99 -0
  158. package/skills/weaver-e10-builder/actionflows/references/components/workflow/ApproveWithdraw.md +17 -0
  159. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkFlowDocEmpowerment.md +17 -0
  160. package/skills/weaver-e10-builder/actionflows/references/components/workflow/WorkflowToDoc.md +17 -0
  161. package/skills/weaver-e10-builder/actionflows/references/condition_rules.md +100 -0
  162. package/skills/weaver-e10-builder/actionflows/references/dynamic_capability_matrix.md +39 -0
  163. package/skills/weaver-e10-builder/actionflows/references/dynamic_resources.md +41 -0
  164. package/skills/weaver-e10-builder/actionflows/references/examples/enquiry-form-batch-insert-scene2.json +1043 -0
  165. package/skills/weaver-e10-builder/actionflows/references/function_rules.md +15 -0
  166. package/skills/weaver-e10-builder/actionflows/references/trigger_runtime_notes.md +53 -0
  167. package/skills/weaver-e10-builder/assets/dom-structure/Bar.json +341 -0
  168. package/skills/weaver-e10-builder/assets/dom-structure/BarStack.json +341 -0
  169. package/skills/weaver-e10-builder/assets/dom-structure/Bubble.json +323 -0
  170. package/skills/weaver-e10-builder/assets/dom-structure/Calendar.json +515 -0
  171. package/skills/weaver-e10-builder/assets/dom-structure/Circular.json +337 -0
  172. package/skills/weaver-e10-builder/assets/dom-structure/CollapsePanel.json +289 -0
  173. package/skills/weaver-e10-builder/assets/dom-structure/Comment.json +617 -0
  174. package/skills/weaver-e10-builder/assets/dom-structure/CountDown.json +755 -0
  175. package/skills/weaver-e10-builder/assets/dom-structure/DigitalPanel.json +191 -0
  176. package/skills/weaver-e10-builder/assets/dom-structure/EbButton.json +387 -0
  177. package/skills/weaver-e10-builder/assets/dom-structure/FastCreate.json +242 -0
  178. package/skills/weaver-e10-builder/assets/dom-structure/Gauge.json +282 -0
  179. package/skills/weaver-e10-builder/assets/dom-structure/HBar.json +336 -0
  180. package/skills/weaver-e10-builder/assets/dom-structure/HBarStack.json +337 -0
  181. package/skills/weaver-e10-builder/assets/dom-structure/Line.json +341 -0
  182. package/skills/weaver-e10-builder/assets/dom-structure/NList.json +712 -0
  183. package/skills/weaver-e10-builder/assets/dom-structure/NavBar.json +274 -0
  184. package/skills/weaver-e10-builder/assets/dom-structure/NavPanel.json +390 -0
  185. package/skills/weaver-e10-builder/assets/dom-structure/NewTab.json +606 -0
  186. package/skills/weaver-e10-builder/assets/dom-structure/Nightingale.json +336 -0
  187. package/skills/weaver-e10-builder/assets/dom-structure/PageHeader.json +205 -0
  188. package/skills/weaver-e10-builder/assets/dom-structure/Picture.json +209 -0
  189. package/skills/weaver-e10-builder/assets/dom-structure/Pie.json +338 -0
  190. package/skills/weaver-e10-builder/assets/dom-structure/ProgressChart.json +299 -0
  191. package/skills/weaver-e10-builder/assets/dom-structure/SearchGlobal.json +628 -0
  192. package/skills/weaver-e10-builder/assets/dom-structure/Slide.json +489 -0
  193. package/skills/weaver-e10-builder/assets/dom-structure/Treemap.json +324 -0
  194. package/skills/weaver-e10-builder/assets/factory/chart-dimensions.json +536 -0
  195. package/skills/weaver-e10-builder/assets/factory/example-btn-progress-collapse-configured.json +2515 -0
  196. package/skills/weaver-e10-builder/assets/factory/example-configured-2.json +13805 -0
  197. package/skills/weaver-e10-builder/assets/factory/example-configured.json +6735 -0
  198. package/skills/weaver-e10-builder/assets/factory/factory-bar-stack.json +326 -0
  199. package/skills/weaver-e10-builder/assets/factory/factory-bar.json +222 -0
  200. package/skills/weaver-e10-builder/assets/factory/factory-bubble.json +322 -0
  201. package/skills/weaver-e10-builder/assets/factory/factory-calendar.json +325 -0
  202. package/skills/weaver-e10-builder/assets/factory/factory-circular.json +320 -0
  203. package/skills/weaver-e10-builder/assets/factory/factory-collapse-panel.json +132 -0
  204. package/skills/weaver-e10-builder/assets/factory/factory-comment.json +388 -0
  205. package/skills/weaver-e10-builder/assets/factory/factory-count-down.json +198 -0
  206. package/skills/weaver-e10-builder/assets/factory/factory-digital-panel.json +108 -0
  207. package/skills/weaver-e10-builder/assets/factory/factory-eb-button.json +150 -0
  208. package/skills/weaver-e10-builder/assets/factory/factory-fast-create.json +62 -0
  209. package/skills/weaver-e10-builder/assets/factory/factory-gauge.json +312 -0
  210. package/skills/weaver-e10-builder/assets/factory/factory-h-bar-stack.json +328 -0
  211. package/skills/weaver-e10-builder/assets/factory/factory-h-bar.json +326 -0
  212. package/skills/weaver-e10-builder/assets/factory/factory-line.json +212 -0
  213. package/skills/weaver-e10-builder/assets/factory/factory-nav-bar.json +167 -0
  214. package/skills/weaver-e10-builder/assets/factory/factory-nav-menu.json +144 -0
  215. package/skills/weaver-e10-builder/assets/factory/factory-nav-panel.json +338 -0
  216. package/skills/weaver-e10-builder/assets/factory/factory-new-tab.json +163 -0
  217. package/skills/weaver-e10-builder/assets/factory/factory-nightingale.json +312 -0
  218. package/skills/weaver-e10-builder/assets/factory/factory-nlist.json +112 -0
  219. package/skills/weaver-e10-builder/assets/factory/factory-page-header.json +171 -0
  220. package/skills/weaver-e10-builder/assets/factory/factory-picture.json +169 -0
  221. package/skills/weaver-e10-builder/assets/factory/factory-pie.json +212 -0
  222. package/skills/weaver-e10-builder/assets/factory/factory-progress-chart.json +162 -0
  223. package/skills/weaver-e10-builder/assets/factory/factory-search-global.json +104 -0
  224. package/skills/weaver-e10-builder/assets/factory/factory-slide.json +164 -0
  225. package/skills/weaver-e10-builder/assets/factory/factory-treemap.json +322 -0
  226. package/skills/weaver-e10-builder/assets/icons.db +0 -0
  227. package/skills/weaver-e10-builder/assets/sample/.claude/settings.local.json +8 -0
  228. package/skills/weaver-e10-builder/assets/sample/api/formApi.js +510 -0
  229. package/skills/weaver-e10-builder/assets/sample/config/config.js +0 -0
  230. package/skills/weaver-e10-builder/assets/sample/config/configLoad.js +0 -0
  231. package/skills/weaver-e10-builder/assets/sample/config/configLoad_default.js +0 -0
  232. package/skills/weaver-e10-builder/assets/sample/config/config_default.js +0 -0
  233. package/skills/weaver-e10-builder/assets/sample/entry.js +22 -0
  234. package/skills/weaver-e10-builder/assets/sample/eslint.config.cjs +48 -0
  235. package/skills/weaver-e10-builder/assets/sample/memo.md +0 -0
  236. package/skills/weaver-e10-builder/assets/sample/readme.js +8 -0
  237. package/skills/weaver-e10-builder/references/app/guide-app-publish.md +92 -0
  238. package/skills/weaver-e10-builder/references/auth/guide-auth.md +88 -0
  239. package/skills/weaver-e10-builder/references/coding/guide-edit-backfill.md +189 -0
  240. package/skills/weaver-e10-builder/references/coding/guide-form-crud.md +262 -0
  241. package/skills/weaver-e10-builder/references/coding/guide-page-code.md +244 -0
  242. package/skills/weaver-e10-builder/references/coding/guide-page-export.md +119 -0
  243. package/skills/weaver-e10-builder/references/coding/ref-compile-rules.md +130 -0
  244. package/skills/weaver-e10-builder/references/common/guide-plan-template.md +164 -0
  245. package/skills/weaver-e10-builder/references/common/map.md +153 -0
  246. package/skills/weaver-e10-builder/references/common/ref-cli-commands.md +635 -0
  247. package/skills/weaver-e10-builder/references/components/@weapp-Button.md +104 -0
  248. package/skills/weaver-e10-builder/references/components/base-Badge.md +100 -0
  249. package/skills/weaver-e10-builder/references/components/base-Dialog.md +358 -0
  250. package/skills/weaver-e10-builder/references/components/base-Empty.md +58 -0
  251. package/skills/weaver-e10-builder/references/components/base-Tag.md +112 -0
  252. package/skills/weaver-e10-builder/references/components/display-Alert.md +64 -0
  253. package/skills/weaver-e10-builder/references/components/display-Avatar.md +150 -0
  254. package/skills/weaver-e10-builder/references/components/display-Calendar.md +263 -0
  255. package/skills/weaver-e10-builder/references/components/display-Carousel.md +115 -0
  256. package/skills/weaver-e10-builder/references/components/display-Collapse.md +299 -0
  257. package/skills/weaver-e10-builder/references/components/display-FilePreview.md +49 -0
  258. package/skills/weaver-e10-builder/references/components/display-Icon.md +66 -0
  259. package/skills/weaver-e10-builder/references/components/display-List.md +320 -0
  260. package/skills/weaver-e10-builder/references/components/display-Pagination.md +41 -0
  261. package/skills/weaver-e10-builder/references/components/display-Spin.md +34 -0
  262. package/skills/weaver-e10-builder/references/components/display-Steps.md +89 -0
  263. package/skills/weaver-e10-builder/references/components/display-Table.md +160 -0
  264. package/skills/weaver-e10-builder/references/components/display-Title.md +117 -0
  265. package/skills/weaver-e10-builder/references/components/form-Checkbox.md +161 -0
  266. package/skills/weaver-e10-builder/references/components/form-DepartmentBrowser-api.md +52 -0
  267. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser-api.md +51 -0
  268. package/skills/weaver-e10-builder/references/components/form-EmployeeBrowser.md +51 -0
  269. package/skills/weaver-e10-builder/references/components/form-Input.md +123 -0
  270. package/skills/weaver-e10-builder/references/components/form-Radio.md +145 -0
  271. package/skills/weaver-e10-builder/references/components/form-Select.md +191 -0
  272. package/skills/weaver-e10-builder/references/components/form-Switch.md +46 -0
  273. package/skills/weaver-e10-builder/references/components/form-Upload.md +53 -0
  274. package/skills/weaver-e10-builder/references/components/generic-Echarts.md +102 -0
  275. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-components.md +130 -0
  276. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-css.md +127 -0
  277. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-factory.md +460 -0
  278. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer-version.md +111 -0
  279. package/skills/weaver-e10-builder/references/ebuilder-designer/guide-designer.md +288 -0
  280. package/skills/weaver-e10-builder/references/esb-interface/guide-import.md +34 -0
  281. package/skills/weaver-e10-builder/references/form/guide-create-form.md +248 -0
  282. package/skills/weaver-e10-builder/references/form/guide-ebuilder-filter.md +73 -0
  283. package/skills/weaver-e10-builder/references/form/guide-ebuilder-scope.md +82 -0
  284. package/skills/weaver-e10-builder/references/form/guide-field-linkage.md +123 -0
  285. package/skills/weaver-e10-builder/references/form/guide-form-archive-permission.md +175 -0
  286. package/skills/weaver-e10-builder/references/form/guide-form-association.md +124 -0
  287. package/skills/weaver-e10-builder/references/form/guide-form-button.md +169 -0
  288. package/skills/weaver-e10-builder/references/form/guide-form-data.md +78 -0
  289. package/skills/weaver-e10-builder/references/form/guide-form-formula-functions.md +343 -0
  290. package/skills/weaver-e10-builder/references/form/guide-form-layout-incremental.md +90 -0
  291. package/skills/weaver-e10-builder/references/form/guide-form-layout-planning.md +68 -0
  292. package/skills/weaver-e10-builder/references/form/guide-form-linkage.md +269 -0
  293. package/skills/weaver-e10-builder/references/form/guide-form-message.md +74 -0
  294. package/skills/weaver-e10-builder/references/form/guide-form-physical-table.md +146 -0
  295. package/skills/weaver-e10-builder/references/form/guide-form-serial-mark.md +47 -0
  296. package/skills/weaver-e10-builder/references/form/guide-form-sub-detail.md +82 -0
  297. package/skills/weaver-e10-builder/references/form/guide-form-view-permission.md +38 -0
  298. package/skills/weaver-e10-builder/references/form/guide-form-view.md +371 -0
  299. package/skills/weaver-e10-builder/references/form/guide-formula-linkage.md +281 -0
  300. package/skills/weaver-e10-builder/references/form/guide-list-columns.md +52 -0
  301. package/skills/weaver-e10-builder/references/form/guide-list-custom-text.md +52 -0
  302. package/skills/weaver-e10-builder/references/form/guide-list-stats.md +136 -0
  303. package/skills/weaver-e10-builder/references/form/guide-virtual-form.md +156 -0
  304. package/skills/weaver-e10-builder/references/form/ref-form-fields.md +293 -0
  305. package/skills/weaver-e10-builder/references/form/style-templates.md +97 -0
  306. package/skills/weaver-e10-builder/references/hrm/guide-matrix.md +245 -0
  307. package/skills/weaver-e10-builder/references/hrm/guide-org-employee.md +155 -0
  308. package/skills/weaver-e10-builder/references/menu/system-menus.md +75 -0
  309. package/skills/weaver-e10-builder/references/report/add-dataset-registration-guide.md +139 -0
  310. package/skills/weaver-e10-builder/references/report/ai-report-workflow.md +412 -0
  311. package/skills/weaver-e10-builder/references/report/api-report-build-fast-path.md +275 -0
  312. package/skills/weaver-e10-builder/references/report/app-datasource-lookup-guide.md +230 -0
  313. package/skills/weaver-e10-builder/references/report/cell-config-echo-guide.md +163 -0
  314. package/skills/weaver-e10-builder/references/report/cell-transform-guide.md +147 -0
  315. package/skills/weaver-e10-builder/references/report/condition-format-guide.md +140 -0
  316. package/skills/weaver-e10-builder/references/report/cross-dataset-filter-guide.md +304 -0
  317. package/skills/weaver-e10-builder/references/report/dataset-query-filter-guide.md +235 -0
  318. package/skills/weaver-e10-builder/references/report/dataset-sidebar-ops-guide.md +280 -0
  319. package/skills/weaver-e10-builder/references/report/dataset-table-field-contract-guide.md +339 -0
  320. package/skills/weaver-e10-builder/references/report/datasource-metadata-guide.md +365 -0
  321. package/skills/weaver-e10-builder/references/report/datasource-selection-and-parent-filter-guide.md +148 -0
  322. package/skills/weaver-e10-builder/references/report/date-range-query-reference.md +102 -0
  323. package/skills/weaver-e10-builder/references/report/default-header-style-guide.md +70 -0
  324. package/skills/weaver-e10-builder/references/report/designer-blank-prevention-guide.md +111 -0
  325. package/skills/weaver-e10-builder/references/report/event-hreflink-guide.md +184 -0
  326. package/skills/weaver-e10-builder/references/report/field-bind-exact-match-guide.md +208 -0
  327. package/skills/weaver-e10-builder/references/report/formula-cell-api-guide.md +258 -0
  328. package/skills/weaver-e10-builder/references/report/guide-report-build.md +131 -0
  329. package/skills/weaver-e10-builder/references/report/guide-report-modify.md +100 -0
  330. package/skills/weaver-e10-builder/references/report/guide-report-multisource.md +143 -0
  331. package/skills/weaver-e10-builder/references/report/guide-report-query.md +98 -0
  332. package/skills/weaver-e10-builder/references/report/hidden-row-and-header-merge-guide.md +100 -0
  333. package/skills/weaver-e10-builder/references/report/layout-showlocation-freeze-guide.md +167 -0
  334. package/skills/weaver-e10-builder/references/report/preaggregate-auto-disable-guide.md +107 -0
  335. package/skills/weaver-e10-builder/references/report/query-condition-api-guide.md +890 -0
  336. package/skills/weaver-e10-builder/references/report/ref-report-commands.md +122 -0
  337. package/skills/weaver-e10-builder/references/report/ref-report-pitfalls.md +226 -0
  338. package/skills/weaver-e10-builder/references/report/report-baseinfo-defaults-guide.md +117 -0
  339. package/skills/weaver-e10-builder/references/report/report-building-guide.md +511 -0
  340. package/skills/weaver-e10-builder/references/report/report-config-schema.md +445 -0
  341. package/skills/weaver-e10-builder/references/report/report-create-modes-guide.md +182 -0
  342. package/skills/weaver-e10-builder/references/report/report-data-model.md +447 -0
  343. package/skills/weaver-e10-builder/references/report/report-delivery-contract.md +101 -0
  344. package/skills/weaver-e10-builder/references/report/report-designer-feature-map.md +500 -0
  345. package/skills/weaver-e10-builder/references/report/report-internal-error-guide.md +78 -0
  346. package/skills/weaver-e10-builder/references/report/report-knowledge-base.md +389 -0
  347. package/skills/weaver-e10-builder/references/report/report-lifecycle-api-guide.md +392 -0
  348. package/skills/weaver-e10-builder/references/report/report-list-page-ops-guide.md +191 -0
  349. package/skills/weaver-e10-builder/references/report/report-permission-guide.md +365 -0
  350. package/skills/weaver-e10-builder/references/report/report-requirement-analysis-template.md +202 -0
  351. package/skills/weaver-e10-builder/references/report/report-self-check-guide.md +164 -0
  352. package/skills/weaver-e10-builder/references/report/safe-partial-save-guide.md +151 -0
  353. package/skills/weaver-e10-builder/references/report/snowflake-id-precision-guide.md +84 -0
  354. package/skills/weaver-e10-builder/references/report/spec-build-schema.md +294 -0
  355. package/skills/weaver-e10-builder/references/report/targeted-fix-guide.md +97 -0
  356. package/skills/weaver-e10-builder/references/report/user-request-scope-only-guide.md +82 -0
  357. package/skills/weaver-e10-builder/references/workflow/guide-function-management.md +154 -0
  358. package/skills/weaver-e10-builder/references/workflow/guide-opinion-settings.md +126 -0
  359. package/skills/weaver-e10-builder/references/workflow/guide-workflow-action.md +174 -0
  360. package/skills/weaver-e10-builder/references/workflow/guide-workflow-auth-resp.md +224 -0
  361. package/skills/weaver-e10-builder/references/workflow/guide-workflow-condition.md +447 -0
  362. package/skills/weaver-e10-builder/references/workflow/guide-workflow-node-layout.md +181 -0
  363. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc-setting.md +248 -0
  364. package/skills/weaver-e10-builder/references/workflow/guide-workflow-odoc.md +68 -0
  365. package/skills/weaver-e10-builder/references/workflow/guide-workflow.md +527 -0
  366. package/skills/weaver-e10-builder/references/workflow/operator-matrix.md +76 -0
  367. package/skills/weaver-e10-caizhilian/SKILL.md +43 -16
  368. package/skills/weaver-e10-caizhilian/references/agent-entry.md +7 -3
  369. package/skills/weaver-e10-caizhilian/references/collaboration.md +5 -3
  370. package/skills/weaver-e10-caizhilian/references/document.md +33 -11
  371. package/skills/weaver-e10-caizhilian/references/file-collection.md +4 -3
  372. package/skills/weaver-e10-caizhilian/references/file-upload.md +2 -3
  373. package/skills/weaver-e10-caizhilian/references/files.md +23 -2
  374. package/skills/weaver-e10-caizhilian/references/folder.md +48 -16
  375. package/skills/weaver-e10-caizhilian/references/setting-attach.md +61 -42
  376. package/skills/weaver-e10-caizhilian/references/setting-backup.md +13 -51
  377. package/skills/weaver-e10-caizhilian/references/setting-encrypt.md +20 -51
  378. package/skills/weaver-e10-caizhilian/references/setting-storage.md +82 -147
  379. package/skills/weaver-e10-caizhilian/references/source-manifest.json +99 -1
  380. package/skills/weaver-e10-caizhilian/references/withheld.md +20 -44
  381. package/skills/weaver-e10-shared/SKILL.md +24 -18
  382. package/skills/weaver-e10-shared/references/e10-auth-and-session.md +16 -15
  383. package/skills/weaver-e10-shared/references/non-interactive-environment.md +10 -10
  384. package/skills/weaver-e10-workflow/SKILL.md +23 -44
  385. package/skills/weaver-e10-workflow/references/source-manifest.json +40 -25
  386. package/skills/weaver-e10-workflow/references/workflow-create.md +278 -85
  387. package/skills/weaver-e10-workflow/references/workflow-edit.md +1 -1
  388. package/skills/weaver-e10-workflow/references/workflow-memory.md +1 -4
  389. package/skills/weaver-e10-workflow/references/workflow-query.md +2 -2
  390. package/skills/weaver-e10-yepiaotong/SKILL.md +10 -7
  391. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-examples.md +49 -1
  392. package/skills/weaver-e10-yepiaotong/references/invoice-issuing-qys-ledger.md +66 -0
  393. package/skills/weaver-e10-yepiaotong/references/invoice-reim.md +59 -36
  394. package/skills/weaver-e10-yepiaotong/references/reim-api-reference.md +54 -509
  395. package/skills/weaver-e10-yepiaotong/references/reim-examples.md +182 -345
  396. package/skills/weaver-e10-yepiaotong/references/reim-expense-subject-rules.md +4 -5
  397. package/skills/weaver-e10-yepiaotong/references/reim-form-fill-rules.md +153 -345
  398. package/skills/weaver-e10-yepiaotong/references/reim-phone-subsidy-rules.md +5 -5
  399. package/skills/weaver-e10-yepiaotong/references/reim-workflow.md +182 -154
  400. package/skills/weaver-e10-yepiaotong/references/source-manifest.json +96 -0
  401. package/skills/weaver-e10-yepiaotong/references/reim-fast-path.md +0 -119
@@ -0,0 +1,755 @@
1
+ {
2
+ "component": "count-down 倒计时(weapp-ebdothercoms/src/components/count-down,引擎类型 CountDown → 外壳类名 ebcom-countdown)",
3
+ "usage": "先按 pickTree 用 comRoot 上的样式类判断落在哪棵树(FlipClockNew 是默认),再在树里按语义找节点。用户说「改倒计时数字」时先确认样式:翻牌式=div.ebcoms-countDown-flipper-new 里的 div.digital,环形式=svg 里的 text.circle-timingText,卡片式=div.ebcoms-count-down-card-item-time,日历式=div.ebcoms-count-down-calendar-style-time-single-num,横条式=div.ebcoms-horizontal-bar-single-num span,旧翻牌式=div.ebcoms-count-down-fliper 的 .digital。用户说「标题」时分三种:引擎组件标题 div.ebcom-title(外壳 header 里)、样式自带名称(各树第一个节点)、单位名(天/时/分/秒,各树末尾节点)。",
4
+ "legend": {
5
+ "[cls]": "条件 class,满足业务条件才挂载",
6
+ "{a|b}": "多选一 class(同一位置按配置或端换成其中一个)",
7
+ "a > b": "父子层级压缩写法,冒号左边是右边的父级",
8
+ "ref": "引用 shared 里的复用片段,写成 ref:shared.xxx",
9
+ "uncontrolled": "第三方渲染(@weapp/ui 组件、设计器层),内部结构不可控,只给挂载点",
10
+ "<comId>": "组件实例 id;引擎外壳的 id 与组件根上的 data-id 都是它,官方样式作用域写成 #<comId>.ebcom",
11
+ "ebcoms-": "组件自己写的类名前缀(clsPrefix='ebcoms')",
12
+ "ebcom-": "引擎/框架层的类名前缀(ebcomPrefix='ebcom'),本组件源码里搜不到",
13
+ "ui-": "@weapp/ui 的类名前缀(Icon / Switch 等第三方组件)"
14
+ },
15
+ "pickTree": "两步。① 判断样式:看 div.ebcoms-count-down-com 上的第二个类 —— FlipClockNew / FlipClock / TimeCircles / CalendarStyle / HorizontalBar / CardStyle,分别对应下面同名的树。样式由 common/countDownCom.tsx 的 getStyleType 决定:优先 config.styles[0].libStyle.countDown.styleType,其次是 category==='9' 且 id ∈ 50/51/109/110/190/192 的内置样式(50=FlipClock、51=TimeCircles、109=CalendarStyle、110=HorizontalBar、190=CardStyle、192=FlipClockNew),再其次是页面主题关联样式,都没有就默认 FlipClockNew(新建组件即此样式)。② 判断端:同层第三个类是 PC 或 Mobile,各树内部的小端类名跟着变(注意大小写不一致,见 notes)。",
16
+ "root": {
17
+ "tag": "div",
18
+ "id": "<comId>",
19
+ "class": [
20
+ "ebcom",
21
+ "ebcom-countdown",
22
+ "{ebcom-grid|ebcom-flow|ebcom-excel}",
23
+ "[ebcom-m]",
24
+ "{ebcom-view|ebcom-design}",
25
+ "[mask]",
26
+ "[has-no-header]",
27
+ "[event-action-click]",
28
+ "<布局/设计器追加的类名>"
29
+ ],
30
+ "desc": "引擎外壳,由 weapp-ebdcoms 的 createView.renderView(运行态)/ createDesign.renderDesign(设计态)生成,不在本组件源码里。类型段由 compUtils.getClassName('CountDown', client, layoutType, viewType) 拼成 ebcom-countdown,布局段拼成 ebcom-grid/ebcom-flow/ebcom-excel。官方样式作用域就是 #<comId>.ebcom(getCountDownStyles 生成的规则被它限域)。",
31
+ "tips": [
32
+ "id 与组件根上的 data-id 都是组件实例 id;组件自己的 less 不在这一层,别拿 .ebcom-countdown 当组件类名用(那是引擎拼出来的)",
33
+ "mask 只有设计态有:Design 与 design-m/Design 的 defaultOpts 里 mask: true,运行态外壳不带",
34
+ "has-no-header 在 config.titleEnabled===false 时出现;倒计时默认 titleEnabled: true(标题「倒计时」),一般看不到",
35
+ "ebcom-m 只在 page.client==='MOBILE' 时出现;event-action-click 只在配置了点击事件动作时出现"
36
+ ],
37
+ "children": [
38
+ {
39
+ "tag": "div",
40
+ "class": [
41
+ "header"
42
+ ],
43
+ "when": "config.titleEnabled===true(倒计时默认 true)才有;登录前(isPassportEbpage)按钮列表为空但 header 仍在",
44
+ "desc": "引擎标题栏,createView.renderHeader / createDesign.renderDesign 里写死的 div.header。倒计时没有 renderHeader,所以标题与按钮都走引擎默认渲染。",
45
+ "children": [
46
+ {
47
+ "tag": "div",
48
+ "class": [
49
+ "ebcom-title"
50
+ ],
51
+ "desc": "引擎渲染的组件标题,内容是 config.title(默认「倒计时」)。title 里有 {xx} 动态语法时换成 TransformContent 的 div,类名同样只有 ebcom-title。标题图标(titleIcon)存在时会在这层前面多一个 ebcoms-assets-item 节点。"
52
+ },
53
+ {
54
+ "tag": "div",
55
+ "class": [
56
+ "ebcoms-header-btns"
57
+ ],
58
+ "desc": "标题栏操作按钮组(引擎 OperationBtns 的 wrapClass)。倒计时只有一个默认按钮「跳过节假日」,constants.ts 的 customOperations 把 SKIPHOILDAY 映射到组件自己的 common/SkipHoliday,所以渲染出来的是组件节点 div.ebcoms-skip-holiday,不是通用按钮样式。",
59
+ "children": [
60
+ {
61
+ "tag": "div",
62
+ "class": [
63
+ "ebcoms-skip-holiday"
64
+ ],
65
+ "when": "设计态(外壳含 ebcom-design)只要 titleEnabled 就渲染;运行态还要 topOperatBtns.btns[n].isOpen===true(引擎 hasOpenOperatBtn 判定),默认 isOpen:false 时运行态没有这一层",
66
+ "desc": "跳过节假日开关(组件源码 common/SkipHoliday/index.tsx),结构是 span(文案) + @weapp/ui Switch。less 已给 cursor:pointer / color:var(--secondary-fc) / font-size 12 / flex 居中,以及 & > span{margin-right:3px;font-weight:400}。",
67
+ "tips": [
68
+ "开关在引擎 header 里,不在 .ebcoms-count-down-content 里 —— 想在运行态给它写样式,得先把配置里这个按钮打开,否则选择器永远命不中",
69
+ "开关状态由 window.TEAMS.userConfig 的 element.countDown.<comId>.<userId>.skipHoilday 控制,点击后才写入,初始值来自组件 userConfig"
70
+ ],
71
+ "children": [
72
+ {
73
+ "tag": "span",
74
+ "desc": "按钮文案(defaultBtns 的 showContent,默认「跳过节假日」,多语言取值后渲染)"
75
+ },
76
+ {
77
+ "tag": "ui-switch",
78
+ "class": [
79
+ "ui-switch",
80
+ "ui-switch-sm",
81
+ "[ui-switch-disabled]",
82
+ "[ui-switch-readOnly]",
83
+ "[mirror-text]"
84
+ ],
85
+ "desc": "@weapp/ui Switch(第三方,uncontrolled,只给挂载点)。组件只传了 size='sm' / onChange / value;内部还有 button.ui-switch-btn、div.ui-switch-handle、span.ui-switch-inner 等,别抄这些内部类名。"
86
+ }
87
+ ]
88
+ }
89
+ ]
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "tag": "div",
95
+ "ref": "shared.contentWrap",
96
+ "desc": "引擎内容槽,组件所有可见内容都在这一层之下"
97
+ },
98
+ {
99
+ "tag": "div",
100
+ "class": [
101
+ "footer"
102
+ ],
103
+ "when": "footerEnabled===true 才有;倒计时 Design/View 的 defaultProps 里 footerEnabled: false",
104
+ "desc": "引擎底部按钮区(createView.renderFooter),倒计时默认不渲染"
105
+ }
106
+ ]
107
+ },
108
+ "shared": {
109
+ "contentWrap": {
110
+ "tag": "div",
111
+ "class": [
112
+ "ebcoms-count-down-content",
113
+ "{PC|Mobile}",
114
+ "content"
115
+ ],
116
+ "desc": "内容槽本体。class 由引擎拼接:contentClass(View/View.tsx 与 Design/Design.tsx 的 defaultOpts.render.contentClass = ebcoms-count-down-content + PC 或 Mobile)后面再拼引擎固定的 content。运行态由 createView.renderContent 生成,设计态由 createDesign.renderContent 经 view/Content.tsx 生成,两者最终 DOM 完全一样。组件大部分自带 less 都挂在这个类下(common/index.less、horizontalBar/index.less 都有 .ebcoms-count-down-content 规则)。",
117
+ "tips": [
118
+ "这里的 content 是引擎固定类名,最容易和「组件自己的 xxx-content 类」混。写选择器用 #<comId> .ebcoms-count-down-content,别只写 .content",
119
+ "端串是大写 PC(跟随引擎 contentClass),和树内部的小写 Pc 不同",
120
+ "CommonConfigData 若声明 padding=false 会多 content-no-padding,倒计时没声明"
121
+ ],
122
+ "children": [
123
+ "ref:shared.comRoot"
124
+ ]
125
+ },
126
+ "comRoot": {
127
+ "tag": "div",
128
+ "class": [
129
+ "ebcoms-count-down-com",
130
+ "{FlipClockNew|FlipClock|TimeCircles|CalendarStyle|HorizontalBar|CardStyle}",
131
+ "{PC|Mobile}",
132
+ "[countDownCentre]",
133
+ "[ebcoms-count-down-not-single]"
134
+ ],
135
+ "desc": "组件根(common/countDownCom.tsx render 最外层,classnames 拼接;style 上还会写 width:100%)。第二个类是当前样式类型,第三个是端;countDownCentre 在 CalendarStyle 与 FlipClock 上恒挂(types.ts 的 CentreStyle),ebcoms-count-down-not-single 在 countDownSettings 长度 > 1 时挂上。",
136
+ "tips": [
137
+ "countDownCentre 是裸 camelCase 类名、没有 ebcoms- 前缀,别写成 .ebcoms-countDownCentre;less 已用它做 flex 居中",
138
+ "同一页面里不同样式的实例,公共祖先只有 #<comId> 和 .ebcoms-count-down-content,区分只能靠这一层的样式类",
139
+ "ebcoms-count-down-not-single 已被 less 使用(日历式多条时左对齐、datas 宽度 max-content)"
140
+ ],
141
+ "children": [
142
+ "ref:shared.datasWrap"
143
+ ]
144
+ },
145
+ "datasWrap": {
146
+ "tag": "div",
147
+ "class": [
148
+ "ebcoms-count-down-com-datas",
149
+ "[ebcoms-count-down-com-horizontal-bar]"
150
+ ],
151
+ "desc": "数据容器。config.countDownSettings 每条渲染一个 CountDownSingle(common/countDownCom.tsx 里 map),顺序与配置一致;没有配置时用 defaultData 兜底成一条。horizontal-bar 类只在 HorizontalBar 样式下挂上,它是横条渐变底色的承载层。",
152
+ "tips": [
153
+ "CountDownSingle 的 render 返回 Fragment,不会额外产生 item 包裹 div —— 样式组件的根节点直接是这一层的子元素,中间没有「一条数据一层」的节点",
154
+ "同一实例的多个倒计时共享同一套 state(日期由各自的 CountDownSingle 计时),样式上只有顺序差异",
155
+ "stylePre + mockData 时(设计器改样式时)会用 mock 数据渲染,DOM 结构不变"
156
+ ]
157
+ },
158
+ "single": {
159
+ "desc": "CountDownSingle(common/CountDownSingle.tsx)本身不产出 DOM,只按 props.styleTypeCurrent 分派到六种样式组件之一,并把 day/hour/minute/second/tType/isMobile/name 传下去。name 会先过 getLocaleValue 做多语言。",
160
+ "tips": [
161
+ "单位是否渲染由 timingType 决定(types.ts 的 hasDay/hasHour/hasMinute/hasSecond 白名单),顺序恒为 天 → 时 → 分 → 秒",
162
+ "数字补位规则在各样式里不一致:旧 FlipClock 会把数值按位拆成多个牌,其余样式一个单位一个整体;日历式与横条式对天数截断到 999",
163
+ "计时类样式(日历/横条/环形式)的 number 只做 floor 不补零,翻牌两式才补零(新版直接给原值,靠 numberN 的 CSS content 出字)"
164
+ ]
165
+ },
166
+ "state": {
167
+ "desc": "运行期动态变化(初始 render 里没有),写样式时按「可能出现」对待",
168
+ "list": [
169
+ {
170
+ "condition": "翻牌动画进行中(约 500ms)",
171
+ "targetSelector": "div.ebcoms-countDown-flipper-new / div.ebcoms-count-down-fliper",
172
+ "addClass": "go",
173
+ "note": "同时 down/up 是翻页方向类(恒有,非动画态也在),配合 go 触发 keyframes"
174
+ },
175
+ {
176
+ "condition": "倒计时归零或未到 beginTime 静置",
177
+ "targetSelector": "各样式数字节点",
178
+ "addClass": "(文本变 0,无类名变化)",
179
+ "note": "归零后 clearInterval,DOM 保留,只是不再刷新"
180
+ },
181
+ {
182
+ "condition": "点击跳过节假日开关 / 收到 skipHoilday.skip|noSkip 事件",
183
+ "targetSelector": "div.ebcoms-skip-holiday 内的 Switch",
184
+ "addClass": "ui-switch-btn-checked / checked 相关类(@weapp/ui 内部处理)",
185
+ "note": "同时会改变倒计时是否按节假日停走,不产生额外节点"
186
+ },
187
+ {
188
+ "condition": "组件被事件动作隐藏",
189
+ "targetSelector": "引擎外壳 #<comId>",
190
+ "addClass": "ebcom-display-none",
191
+ "note": "同时写 style.display='none'"
192
+ },
193
+ {
194
+ "condition": "数字超过 60(新版翻牌式)",
195
+ "targetSelector": "document.head 下新注入的 <style id=\"count-down-number-content\">",
196
+ "addClass": "(无,注入的是样式规则)",
197
+ "note": "见 flipclocknew 树的 tips,别在样式文件里重复这些数字规则"
198
+ }
199
+ ]
200
+ }
201
+ },
202
+ "flipclocknew": {
203
+ "when": "comRoot 上样式类为 FlipClockNew(内置样式 192,无样式配置时的默认值;设计器新建组件即此样式)",
204
+ "prefixChain": "div.ebcoms-count-down-content.{PC|Mobile}.content > div.ebcoms-count-down-com.FlipClockNew.{PC|Mobile} > div.ebcoms-count-down-com-datas > 本树根",
205
+ "tree": [
206
+ {
207
+ "tag": "div",
208
+ "class": [
209
+ "ebcoms-countDown-flip-clock-new-all"
210
+ ],
211
+ "desc": "新版翻牌式的根。注意类是驼峰 countDown + 连字符 flip-clock-new,和旧版、和其余样式的命名习惯都不同。less 已给 display:flex / flex-wrap:wrap / justify-content:center(规则写在 .ebcoms-count-down-com.FlipClockNew .ebcoms-countDown-flip-clock-new-all 下)。",
212
+ "children": [
213
+ {
214
+ "tag": "div",
215
+ "class": [
216
+ "ebcoms-countDown-flip-clock-new-name"
217
+ ],
218
+ "when": "data.name 非空时才有",
219
+ "desc": "整组倒计时的名称行,里面是 div.name[title=<多语言后的名称>]。less 已给 width:100% / margin-top:10px / font-size 14 / color #666 / font-weight 600,以及 .name 的 ellipsis 三件套与 margin-bottom:8px;Mobile 下 less 把宽度收成 calc(100% - 16px) 并清掉 .name 的 margin。",
220
+ "chain": "div.ebcoms-countDown-flip-clock-new-name > div.name"
221
+ },
222
+ {
223
+ "tag": "div",
224
+ "class": [
225
+ "ebcoms-countDown-flip-clock-new",
226
+ "{Pc|Mobile}"
227
+ ],
228
+ "desc": "时钟主体,display:flex / flex-wrap:wrap / justify-content:center。Mobile 时时额外有 margin-bottom:8px(less)。",
229
+ "children": [
230
+ {
231
+ "tag": "div",
232
+ "class": [
233
+ "ebcoms-countDown-flippers-new"
234
+ ],
235
+ "when": "每个时间单位一个(天/时/分/秒按 timingType 决定,最多 4 个)",
236
+ "desc": "一个单位的牌组。Pc 下 less 给 margin:10px 12px 0,Mobile 下 margin:10px 3px 0,且 display:inline-block。",
237
+ "children": [
238
+ {
239
+ "tag": "div",
240
+ "class": [
241
+ "ebcoms-countDown-flipper-new",
242
+ "{down|up}",
243
+ "[go]",
244
+ "{Pc|Mobile}"
245
+ ],
246
+ "desc": "一张完整的翻牌(一个单位的整个数值一起翻,不按数字位拆)。flipType 恒为 down(翻新牌只用 flipDown),up 只有源码里未调用的 flipUp 会用到;go 只在 500ms 动画期间出现。里面靠两个 .digital 的 ::before/::after 出字,数字类是 number{N}。",
247
+ "children": [
248
+ {
249
+ "tag": "div",
250
+ "class": [
251
+ "digital",
252
+ "front",
253
+ "number{N}"
254
+ ],
255
+ "desc": "前牌,里面有一个 span 直接显示当前数字文本(span 无类名)。数字类由 _textClass 拼成 number + 原值,可能是一位(number5)也可能是两位(number05/00),最长 number60;数字 > 60 时源码会在 render 里往 document.head 注入 <style id=\"count-down-number-content\">,动态补 .number{N}:before/:after{content:'N'}。"
256
+ },
257
+ {
258
+ "tag": "div",
259
+ "class": [
260
+ "digital",
261
+ "back",
262
+ "number{N}"
263
+ ],
264
+ "desc": "后牌,空元素,靠 CSS content 出字(less 预置 number0、number00 到 number60)。"
265
+ }
266
+ ]
267
+ },
268
+ {
269
+ "tag": "div",
270
+ "class": [
271
+ "ebcoms-countDown-flipper-new-name"
272
+ ],
273
+ "desc": "单位名(天/时/分/秒,来自 timeTypeGroup 的 name,已在组件初始化时多语言化)。less 已给 margin-top:8px / font-weight 400 / font-size 12 / color #666。"
274
+ }
275
+ ]
276
+ }
277
+ ]
278
+ }
279
+ ],
280
+ "tips": [
281
+ "类名三连最容易写错:新版是 countDown-(驼峰)+ flip-clock-new / flippers-new / flipper-new(双 p);旧版是 count-down-(连字符)+ flip-clock / flipers / fliper(单 p)",
282
+ "数字宽度/高度/圆角/字号都在 flipperNew.less(Pc 76x78 圆角 10 字号 52;Mobile 52x55 圆角 5 字号 38),底色在 .digital:before/:after(less 写死 #5e8eff),系统样式的 cardColor 也会写到同一组选择器上",
283
+ "字号 >= 52 时 getCountDownStyles 会给 .ebcoms-countDown-flipper-new.Mobile 补 line-height:normal,>= 72 时给新版补 padding:0 12px —— 自己改字号时注意这条冲突",
284
+ "less 里有一条 #com_manage_50.ebcom .ebcoms-countDown-flipper-new .digital:before 的后台专属规则,只在组件管理页生效,别当成通用规则",
285
+ "翻页 keyframes(frontFlipDown / backFlipDown / frontFlipUp / backFlipUp)与 .go 的组合都在 flipperNew.less,不要重写"
286
+ ]
287
+ }
288
+ ]
289
+ },
290
+ "flipclock": {
291
+ "when": "comRoot 上样式类为 FlipClock(内置样式 50,即旧版翻牌式)",
292
+ "prefixChain": "div.ebcoms-count-down-content.{PC|Mobile}.content > div.ebcoms-count-down-com.FlipClock.{PC|Mobile} > div.ebcoms-count-down-com-datas > 本树根",
293
+ "tree": [
294
+ {
295
+ "tag": "div",
296
+ "class": [
297
+ "ebcoms-count-down-flip-clock-all"
298
+ ],
299
+ "desc": "旧版翻牌式的根。less 已给 display:flex / flex-wrap:wrap / justify-content:center。",
300
+ "children": [
301
+ {
302
+ "tag": "div",
303
+ "class": [
304
+ "ebcoms-count-down-flip-clock-name"
305
+ ],
306
+ "when": "data.name 非空时才有",
307
+ "desc": "名称行,里面是 div.name[title]。less 已给 width:100% / margin-top:10px / font-size 14 / font-weight bold,.name 用 ellipsis 三件套;Mobile 下 less 把宽度收成 calc(100% - 16px)。",
308
+ "chain": "div.ebcoms-count-down-flip-clock-name > div.name"
309
+ },
310
+ {
311
+ "tag": "div",
312
+ "class": [
313
+ "ebcoms-count-down-flip-clock",
314
+ "{Pc|Mobile}"
315
+ ],
316
+ "desc": "时钟主体(display:flex / flex-wrap:wrap / min-width:100%)。Mobile 时 justify-content:center。",
317
+ "children": [
318
+ {
319
+ "tag": "div",
320
+ "class": [
321
+ "ebcoms-count-down-flipers"
322
+ ],
323
+ "when": "每个时间单位一个",
324
+ "desc": "一个单位的牌组。Pc 下 less 给 padding-right:15px / margin:0 auto,Mobile 下 margin-right:8px。",
325
+ "children": [
326
+ {
327
+ "tag": "div",
328
+ "class": [
329
+ "ebcoms-count-down-fliper",
330
+ "{down|up}",
331
+ "[go]",
332
+ "{Pc|Mobile}"
333
+ ],
334
+ "desc": "单张牌,按数值的每一位拆一个:String(min(num,999)).split(''),所以「12」是两个 fliper、「365」是三个(与新版一位一整套不同)。flipType 实际恒为 down。",
335
+ "children": [
336
+ {
337
+ "tag": "div",
338
+ "class": [
339
+ "digital",
340
+ "front",
341
+ "number{N}"
342
+ ]
343
+ },
344
+ {
345
+ "tag": "div",
346
+ "class": [
347
+ "digital",
348
+ "back",
349
+ "number{N}"
350
+ ]
351
+ }
352
+ ],
353
+ "tips": "两位数字在旧版是拆开的,因此 number 类只可能是 number0 到 number9(flipper.less 预置),没有 number00 这类两位数写法;两个 .digital 都没有子节点,字体全靠 CSS content"
354
+ },
355
+ {
356
+ "tag": "div",
357
+ "class": [
358
+ "ebcoms-count-down-flipers-name"
359
+ ],
360
+ "desc": "单位名(天/时/分/秒)。less 已给 font-weight bolder / font-size 14 / color #555。"
361
+ }
362
+ ]
363
+ }
364
+ ]
365
+ }
366
+ ],
367
+ "tips": [
368
+ "与新版差异:类名是连字符 count-down + flipers / fliper(单 p,无 -new);数值按位拆分;flipper.less 把 .digital:before/:after 底色写成 #000(新版是 #5e8eff),尺寸 60x100/圆角 10/字号 66(Mobile 24x40/圆角 5/字号 37)",
369
+ "系统样式的 cardColor 会同时写给新旧两套选择器(.ebcoms-count-down-fliper .digital:before/:after 与 .ebcoms-countDown-flipper-new .digital:before/:after),改底色两条一起生效",
370
+ "common/index.less 里还有一条 .ebcoms-count-down-flip-clock-wrapper(text-align:center / width:100% / margin:1em),DOM 上并没有这个类,是遗留规则,别照着写选择器"
371
+ ]
372
+ }
373
+ ]
374
+ },
375
+ "card": {
376
+ "when": "comRoot 上样式类为 CardStyle(内置样式 190,卡片式)",
377
+ "prefixChain": "div.ebcoms-count-down-content.{PC|Mobile}.content > div.ebcoms-count-down-com.CardStyle.{PC|Mobile} > div.ebcoms-count-down-com-datas > 本树根",
378
+ "tree": [
379
+ {
380
+ "tag": "div",
381
+ "class": [
382
+ "ebcoms-count-down-card"
383
+ ],
384
+ "desc": "卡片式根(flex 竖排 / 居中 / margin-bottom:12px,less 已给)。注意这棵树没有任何端类名挂在根上,端只在 card-item 上加。",
385
+ "children": [
386
+ {
387
+ "tag": "div",
388
+ "class": [
389
+ "ebcoms-count-down-card-name"
390
+ ],
391
+ "when": "data.name 非空时才有",
392
+ "desc": "名称节点,带 title=name(未做多语言,直接用原值)。less 已给 ellipsis 三件套 + 居中 + font-size 14 / color #666 / font-weight 500 / margin-bottom:12px。",
393
+ "chain": "div.ebcoms-count-down-card-name[title]"
394
+ },
395
+ {
396
+ "tag": "div",
397
+ "class": [
398
+ "ebcoms-count-down-card-position"
399
+ ],
400
+ "desc": "外层定位容器(max-width:100% / overflow:overlay)。⚠️ less 里这条规则写的是裸类名 .ebcoms-count-down-card-position(没有父级前缀),会命中同一页面所有 CardStyle 实例。",
401
+ "children": [
402
+ {
403
+ "tag": "div",
404
+ "class": [
405
+ "ebcoms-count-down-card-all"
406
+ ],
407
+ "desc": "居中容器(margin:0 auto / flex 竖排 / width:max-content / padding-right:2px)",
408
+ "children": [
409
+ {
410
+ "tag": "div",
411
+ "class": [
412
+ "ebcoms-count-down-card-group"
413
+ ],
414
+ "desc": "卡片横排容器(display:flex / justify-content:center / align-items:center)",
415
+ "children": [
416
+ {
417
+ "tag": "div",
418
+ "class": [
419
+ "ebcoms-count-down-card-item",
420
+ "[Mobile]"
421
+ ],
422
+ "when": "每个时间单位一个(天/时/分/秒)",
423
+ "desc": "单张卡片。端类名只在移动端加(Mobile),PC 不加任何类。卡片之间靠 less 的 .count-down-card-item:not(:last-child) 画分隔冒号(:before content ':',PC 字号 42 / right:-31px,Mobile 改 top:8px / right:-22px / width:20px)与间距(PC margin-right:30px、Mobile 20px)。",
424
+ "children": [
425
+ {
426
+ "tag": "div",
427
+ "class": [
428
+ "ebcoms-count-down-card-item-time"
429
+ ],
430
+ "desc": "数字。字号走 CSS 变量 --count-down-num-size(PC 42px、Mobile 38px),min-width 用 calc(var(--count-down-num-size) * 1.58) / Mobile *1.65,padding 0 8px / Mobile 0 6px。系统样式的 cardTimingText 就写在这一层。"
431
+ },
432
+ {
433
+ "tag": "div",
434
+ "class": [
435
+ "ebcoms-count-down-card-item-type"
436
+ ],
437
+ "desc": "单位名(天/时/分/秒)。less 已给 font-size 12 / color #666 / 居中 / padding 0 4px;系统样式的 labelText 写在这一层。"
438
+ }
439
+ ]
440
+ }
441
+ ]
442
+ }
443
+ ]
444
+ }
445
+ ]
446
+ }
447
+ ],
448
+ "tips": [
449
+ "卡片底色 / 边框走系统样式(cardBackgroundColor、cardBorder),生成的选择器是 .ebcoms-count-down-card .ebcoms-count-down-card-position .ebcoms-count-down-card-all .ebcoms-count-down-card-group .ebcoms-count-down-card-item,自己写时用 .ebcoms-count-down-card-item 更省事",
450
+ "分隔冒号是 CSS 生成的内容,DOM 里没有元素;想隐藏就覆盖 :before 的 content",
451
+ "Mobile 下卡片整体 margin-top:12px、position 收成 calc(100% - 12px)(less 已写)"
452
+ ]
453
+ }
454
+ ]
455
+ },
456
+ "calendar": {
457
+ "when": "comRoot 上样式类为 CalendarStyle(内置样式 109,日历式;它和 FlipClock 属于 CentreStyle,comRoot 上会额外挂 countDownCentre)",
458
+ "prefixChain": "div.ebcoms-count-down-content.{PC|Mobile}.content > div.ebcoms-count-down-com.CalendarStyle.{PC|Mobile} > div.ebcoms-count-down-com-datas > 本树根",
459
+ "tree": [
460
+ {
461
+ "tag": "div",
462
+ "class": [
463
+ "ebcoms-count-down-calendar-style",
464
+ "{PC|Mobile}"
465
+ ],
466
+ "desc": "日历式根。less 已给 width:100% / background #ffffff / border-radius 20px / flex 居中 / overflow:auto。多条数据时 less 用 .ebcoms-count-down-com.CalendarStyle.ebcoms-count-down-not-single 把内容左对齐并把 datas 宽度改成 max-content。",
467
+ "children": [
468
+ {
469
+ "tag": "div",
470
+ "class": [
471
+ "ebcoms-count-down-calendar-style-position"
472
+ ],
473
+ "desc": "定位层(less 只给了 max-width:100%),它内部就是下一层 -all。",
474
+ "children": [
475
+ {
476
+ "tag": "div",
477
+ "class": [
478
+ "ebcoms-count-down-calendar-style-all"
479
+ ],
480
+ "desc": "内容层(flex 竖排 / 居中 / margin:auto)。",
481
+ "children": [
482
+ {
483
+ "tag": "div",
484
+ "class": [
485
+ "ebcoms-count-down-calendar-style-name"
486
+ ],
487
+ "when": "data.name 非空时才有",
488
+ "desc": "名称行(flex / align-items:center / margin-bottom:calc(var(--hd) * 12) / padding-left:5px)。less 已有 .ui-icon-s.ui-icon-svg.Icon-time-o use{color:var(--primary)} 与 .name-content 的字号/色/字距/省略号。",
489
+ "children": [
490
+ {
491
+ "tag": "span",
492
+ "class": [
493
+ "ui-icon",
494
+ "ui-icon-wrapper",
495
+ "ui-icon-blue",
496
+ "ebcoms-count-down-calendar-style-name-icon"
497
+ ],
498
+ "desc": "名称前的时钟图标,来自 @weapp/ui Icon(name='Icon-time-o'、size='s'、moduleColor='blue';组件把 ebcoms-count-down-calendar-style-name-icon 作为 className 传进去,会拼到 wrapper 上)。",
499
+ "children": [
500
+ {
501
+ "tag": "svg / span",
502
+ "class": [
503
+ "ui-icon-s",
504
+ "ui-icon-svg",
505
+ "Icon-time-o"
506
+ ],
507
+ "desc": "图标内层(线上形态因图标类型不同而异:CHUNK 时是 svg > use,异步未加载时是空 span)。less 里改图标色用的是 .ui-icon-s.ui-icon-svg.Icon-time-o use —— 要覆盖请照这个写法带上图标类名。"
508
+ }
509
+ ],
510
+ "tips": "要统一控制图标盒子就用 .ebcoms-count-down-calendar-style-name-icon,别只写 .ui-icon(一个页面里有很多 ui-icon)"
511
+ },
512
+ {
513
+ "tag": "div",
514
+ "class": [
515
+ "ebcoms-count-down-calendar-style-name-content"
516
+ ],
517
+ "desc": "名称文字容器(flex / 字号 var(--font-size-10) / color var(--primary) / 字距 0.36px / font-weight 500 / margin-left:8px / ellipsis),里面是 div.name[title]。",
518
+ "chain": "div.ebcoms-count-down-calendar-style-name-content > div.name"
519
+ }
520
+ ]
521
+ },
522
+ {
523
+ "tag": "div",
524
+ "class": [
525
+ "ebcoms-count-down-calendar-style-time"
526
+ ],
527
+ "desc": "时间行(display:flex / justify-content:center)。多条数据(not-single)时 less 把它改成 flex-start。",
528
+ "children": [
529
+ {
530
+ "tag": "div",
531
+ "class": [
532
+ "ebcoms-count-down-calendar-style-time-single"
533
+ ],
534
+ "when": "每个时间单位一个",
535
+ "desc": "一个单位(flex 横排)。字号与间距来自 less 的 PC / Mobile 两套规则:PC 下 margin:8px 0,num 字号 calc(var(--hd) * 39) / 字距 1.38 / padding 0 8px;Mobile 下 num 字号 calc(var(--hd) * 26) / padding 0 3px,unit 字号 calc(var(--hd) * 8)。",
536
+ "children": [
537
+ {
538
+ "tag": "div",
539
+ "class": [
540
+ "ebcoms-count-down-calendar-style-time-single-num"
541
+ ],
542
+ "desc": "数字(flex / 底部对齐 / color #333 / font-weight 500 / padding-right:10px),里面一个 span 装数字。系统样式的 timingText 写在这一层。"
543
+ },
544
+ {
545
+ "tag": "div",
546
+ "class": [
547
+ "ebcoms-count-down-calendar-style-time-single-unit"
548
+ ],
549
+ "desc": "单位名,带 title,里面一个 span。less 已给 color #999 / 底部对齐;系统样式的 labelText 写在这一层。"
550
+ }
551
+ ]
552
+ }
553
+ ]
554
+ }
555
+ ]
556
+ }
557
+ ]
558
+ },
559
+ {
560
+ "tag": "div",
561
+ "desc": "源码里恒渲染的一个无类名空 div(CalendarStyle render 末尾的 <div />),纯占位,写样式时忽略。"
562
+ }
563
+ ],
564
+ "tips": [
565
+ "comRoot 上的 countDownCentre 就是给这个样式(以及旧翻牌式)用的,less 用它做 flex 居中,不要再写一遍",
566
+ "源码里 common/style/calendarStyle/SingleItem.tsx 是死代码(calendarStyle/index.tsx 自己内联了 SingleItem,import 被注释掉),而且那个文件里的类名是 horizontal-bar 系列的 —— 别拿它当参考",
567
+ "整块白底圆角 20px 是 less 给的;改背景/圆角覆盖 .ebcoms-count-down-calendar-style 即可"
568
+ ]
569
+ }
570
+ ]
571
+ },
572
+ "horizontal": {
573
+ "when": "comRoot 上样式类为 HorizontalBar(内置样式 110,横条式;这个样式下 datasWrap 会多 ebcoms-count-down-com-horizontal-bar)",
574
+ "prefixChain": "div.ebcoms-count-down-content.{PC|Mobile}.content > div.ebcoms-count-down-com.HorizontalBar.{PC|Mobile} > div.ebcoms-count-down-com-datas.ebcoms-count-down-com-horizontal-bar > 本树根",
575
+ "tree": [
576
+ {
577
+ "tag": "div",
578
+ "class": [
579
+ "ebcoms-horizontal-bar-all",
580
+ "{PC|Mobile}"
581
+ ],
582
+ "desc": "横条式根。less 已给 width:100% / color #ffffff / border-radius 6px / display:flex / font-family PingFangSC-Medium,以及 :hover 时 background rgba(255,255,255,0.15)。注意这棵树的类名完全不含 count-down。",
583
+ "children": [
584
+ {
585
+ "tag": "div",
586
+ "class": [
587
+ "ebcoms-horizontal-bar-left",
588
+ "{PC|Mobile}",
589
+ "[onlyEndTimeStr]"
590
+ ],
591
+ "desc": "左侧名称与日期区。onlyEndTimeStr 只在「有结束日期且没有名称」时挂上(less 让它 display:flex)—— 此时左边只有日期。PC 下 less 给 min-width:75px。",
592
+ "children": [
593
+ {
594
+ "tag": "div",
595
+ "class": [
596
+ "ebcoms-horizontal-bar-name"
597
+ ],
598
+ "when": "data.name 非空时才有",
599
+ "desc": "名称,带 title。less 已给 font-size 16 / font-weight 500 / 字距 0.57px / min-width 75px / ellipsis / padding-right:10px;Mobile 下 width:0 / min-width:100%。系统样式的 titleText 写在这一层。",
600
+ "chain": "div.ebcoms-horizontal-bar-name[title]"
601
+ },
602
+ {
603
+ "tag": "div",
604
+ "class": [
605
+ "ebcoms-horizontal-bar-endTime"
606
+ ],
607
+ "when": "计时类型含天(hasDay)并且 endTime 能格式化成有效日期时才有;值是 dayjs(endTime).format('YYYY-MM-DD')",
608
+ "desc": "截止日期,带 title。less 已给 font-size 10 / opacity 0.6 / margin:auto 0;系统样式的 dateText 写在这一层。",
609
+ "chain": "div.ebcoms-horizontal-bar-endTime[title]"
610
+ }
611
+ ]
612
+ },
613
+ {
614
+ "tag": "div",
615
+ "class": [
616
+ "ebcoms-horizontal-bar-right"
617
+ ],
618
+ "desc": "右侧数字区(text-align:right / display:flex / flex:1 / justify-content:flex-end / align-items:center)。这一层不带端类名,靠父级 all 上的端类名区分。",
619
+ "children": [
620
+ {
621
+ "tag": "div",
622
+ "class": [
623
+ "ebcoms-horizontal-bar-single"
624
+ ],
625
+ "when": "每个时间单位一个",
626
+ "desc": "一个单位(flex 居中)。less 已给 PC min-height:calc(var(--hd) * 28);Mobile 改成竖排 flex-wrap + margin-right:10px。",
627
+ "children": [
628
+ {
629
+ "tag": "div",
630
+ "class": [
631
+ "ebcoms-horizontal-bar-single-num"
632
+ ],
633
+ "desc": "数字外框(less 已给 background rgba(255,255,255,0.15) / border-radius 6px / flex / 居中,PC min-width:calc(var(--hd) * 46)、Mobile 45),里面一个 span 装数字(font-size 18 / margin 5px)。系统样式的 timingText 与 timingBackgroundColor 都写在这一层(timingText 会带 padding-right:0.2*字号 的斜体补偿)。",
634
+ "chain": "div.ebcoms-horizontal-bar-single-num > span"
635
+ },
636
+ {
637
+ "tag": "div",
638
+ "class": [
639
+ "ebcoms-horizontal-bar-single-unit"
640
+ ],
641
+ "desc": "单位名,带 title(font-size 10 / color #ffffff / 字距 0.36px / margin 0 5px;Mobile 下 margin-top:3px)。系统样式的 labelText 写在这一层。"
642
+ }
643
+ ]
644
+ }
645
+ ]
646
+ }
647
+ ],
648
+ "tips": [
649
+ "横条渐变底色不在本树里,而在 datasWrap 的 .ebcoms-count-down-com-horizontal-bar 上;less 把渐变写在 .ebcoms-count-down-content.PC 与 .ebcoms-count-down-content.Mobile 两个分支下(PC 圆角 20px + padding 10px,Mobile 圆角 10px),覆盖时两套端都要顾",
650
+ "系统样式的 backgroundColor 生成的选择器是 .ebcoms-count-down-content .ebcoms-count-down-com .ebcoms-count-down-com-horizontal-bar;传 transparent 时源码会退化成默认渐变(且缺花括号,属于已知实现细节,别依赖它)",
651
+ "所有类名都没有 count-down 字样,搜索定位时用 horizontal-bar",
652
+ "endTime 只在含天的计时类型下出现;数值截断规则同其它样式(见 shared.single)"
653
+ ]
654
+ }
655
+ ]
656
+ },
657
+ "timecircles": {
658
+ "when": "comRoot 上样式类为 TimeCircles(内置样式 51,环形式)",
659
+ "prefixChain": "div.ebcoms-count-down-content.{PC|Mobile}.content > div.ebcoms-count-down-com.TimeCircles.{PC|Mobile} > div.ebcoms-count-down-com-datas > 本树根",
660
+ "tree": [
661
+ {
662
+ "tag": "div",
663
+ "class": [
664
+ "ebcoms-count-down-time-circles-all"
665
+ ],
666
+ "desc": "环形式根(flex 居中 / flex-wrap / padding:8px 0,less 已给)。",
667
+ "children": [
668
+ {
669
+ "tag": "div",
670
+ "class": [
671
+ "ebcoms-count-down-time-circles-name"
672
+ ],
673
+ "when": "data.name 非空时才有",
674
+ "desc": "名称行(flex / 居中 / margin:16px 0 / font-size 14 / width:100%),里面是 div.name[title](less 已给 ellipsis 与 padding-right:10px);Mobile 下 less 把宽度收成 calc(100% - 16px)。",
675
+ "chain": "div.ebcoms-count-down-time-circles-name > div.name"
676
+ },
677
+ {
678
+ "tag": "div",
679
+ "class": [
680
+ "ebcoms-count-down-time-circles",
681
+ "{Pc|Mobile}"
682
+ ],
683
+ "desc": "圆环容器(flex 居中 / flex-wrap)。端类名是小写 Pc。",
684
+ "children": [
685
+ {
686
+ "tag": "div",
687
+ "class": [
688
+ "ebcoms-count-down-time-circles-single",
689
+ "ebcoms-count-down-time-circles-{day|hour|minute|second}"
690
+ ],
691
+ "when": "每个时间单位一个(最多 4 个)",
692
+ "desc": "一个单位的外框,固定 70x70(less 已给 padding:0 3px / margin:0 auto / display:inline-block)。第二个类是按单位拼出来的(day/hour/minute/second),源码里为它准备了圆环配色钩子。",
693
+ "children": [
694
+ {
695
+ "tag": "svg",
696
+ "desc": "圆形进度条本体(common/style/timeCircles/circularProgressBar.tsx),viewBox='0 0 70 70',里面四个子节点依次是背景圆、进度圆、单位文字、数字文字。没有类名挂在 svg 上。",
697
+ "children": [
698
+ {
699
+ "tag": "circle",
700
+ "class": [
701
+ "circle-background"
702
+ ],
703
+ "desc": "背景圆(less 已给 fill:none / stroke:#ddd)。系统样式的 circleBackgroundColor 写在这一层。"
704
+ },
705
+ {
706
+ "tag": "circle",
707
+ "class": [
708
+ "circle-progress"
709
+ ],
710
+ "desc": "进度圆,颜色与进度用行内 style(strokeDasharray / strokeDashoffset / stroke=单位色,transform 从 12 点方向起算),less 已给 fill:none / stroke-linecap / stroke-linejoin / transition:stroke-dashoffset 1s linear。系统样式的 circleColor 通过 .ebcoms-count-down-time-circles-{单位} .circle-progress 写值(带 !important),覆盖时注意权重。"
711
+ },
712
+ {
713
+ "tag": "text",
714
+ "class": [
715
+ "circle-labelText"
716
+ ],
717
+ "desc": "单位名(天/时/分/秒),定位用 x='50%' y='35%' dy='.3em' textAnchor='middle'。注意它是 svg text,改颜色用 fill/stroke 而不是 color;less 里这条规则重复写了两遍(内容相同)。系统样式的 labelText 会同时写文字属性与 stroke。"
718
+ },
719
+ {
720
+ "tag": "text",
721
+ "class": [
722
+ "circle-timingText"
723
+ ],
724
+ "desc": "数字,x='50%' y='65%'。系统样式的 timingText 写在这一层(会带 stroke=color)。"
725
+ }
726
+ ]
727
+ }
728
+ ]
729
+ }
730
+ ]
731
+ }
732
+ ],
733
+ "tips": [
734
+ "circle-background / circle-progress / circle-labelText / circle-timingText 都是组件自己写的裸类名(无前缀),一个页面里若有多套主题可能互相影响,写样式建议带祖先 .ebcoms-count-down-time-circles",
735
+ "less 里 .container 与时间单位类(ebcoms-count-down-time-circles-day 等)没有对应规则,前者是死规则,后者只被样式生成器使用",
736
+ "圆环尺寸固定 70x70(出现在 less 与 svg 的 sqSize/strokeWidth 里),要改大小必须同时改 svg 的 viewBox 相关取值 —— 只改 CSS 宽高会拉伸图形"
737
+ ]
738
+ }
739
+ ]
740
+ },
741
+ "notes": [
742
+ "三类前缀要分清:ebcoms-* 是组件自己写的;ebcom-* 是引擎外壳与标题栏(本组件源码搜不到);ui-* 来自 @weapp/ui(Icon / Switch)。另外还有一批裸类名:countDownCentre(组件自己写的 camelCase,无前缀)、digital / front / back / name / number{N} / circle-* / content / PC / Mobile / Pc。",
743
+ "命名坑合集(最容易写错):新版翻牌式是 countDown-(驼峰)+ flip-clock-new / flippers-new / flipper-new(双 p);旧版是 count-down-(连字符)+ flip-clock / flipers / fliper(单 p);其余样式一律 count-down-。横条式(horizontal-bar-*)与日历式(calendar-style-*)的类名甚至完全不含 count-down。",
744
+ "端类名两种写法混用,必须逐个核对:content 与 comRoot、calendar-style、horizontal-bar-all / horizontal-bar-left 用大写 PC;flip-clock(新旧两式)、time-circles、fliper / flipper-new 用小写 Pc;card 只在 card-item 上挂 Mobile(PC 无类)。写跨端选择器时不要统一写 .PC 或 .Pc。",
745
+ "六棵子树互斥,由 comRoot 上的样式类决定(FlipClockNew 是默认值)。同一个页面可以同时存在不同样式的实例,此时公共祖先只有 #<comId> 与 .ebcoms-count-down-content,所有更深层的选择器都要带上样式类才好限定。",
746
+ "已有 less 钩子不要重复写:common/index.less(content 槽 flex 居中、com 与 datas 的 margin、FlipClockNew 的 100% 宽)、flipClockNew.less 与 flipClock.less(名称行、牌组间距、端类差异)、flipperNew.less 与 flipper.less(牌尺寸/圆角/底色/翻页 keyframes)、card/index.less(卡片、分隔冒号、间距)、calendarStyle/index.less(白底圆角、字号间距、图标色)、horizontalBar/index.less(渐变底、数字外框)、timeCircles/index.less(圆环与文字)、SkipHoliday/index.less(开关文案与间距)。",
747
+ "系统样式库(50/51/109/110/190/192)与自定义 codeSource 都走 common/getCountDownStyles.ts 生成,作用域是 #<comId>.ebcom。自定义代码里的 .ebcoms-com-countDown 与 .ebcom-countDown 这两个「作用域类」会被剥掉(源码常量 comScopeCls 与 ebcomPrefix-countDown),DOM 上并没有这两个类,别拿它们当选择器。",
748
+ "样式生成器写入的选择器(改色/改字优先复用,避免权重打架):cardColor → 新旧翻牌的 .digital:before/:after;cardText → .ebcoms-count-down-fliper / .ebcoms-countDown-flipper-new(字号 >=52 给 Mobile 补 line-height:normal,>=72 给新版补 padding:0 12px);circleColor → .ebcoms-count-down-time-circles-{单位} .circle-progress(!important);circleBackgroundColor → .ebcoms-count-down-time-circles .circle-background;backgroundColor → datasWrap 的 .ebcoms-count-down-com-horizontal-bar;cardBackgroundColor / cardBorder / cardTimingText → .ebcoms-count-down-card-item 及其子节点;titleText → 六种样式各自的名称节点;dateText → .ebcoms-horizontal-bar-endTime;timingText / labelText / timingBackgroundColor → 各样式的数字与单位节点(环形式写的是 svg text 的 stroke)。",
749
+ "数据侧注意:单位是否渲染由 timingType 决定(types.ts 的 hasDay/hasHour/hasMinute/hasSecond),顺序恒为 天 → 时 → 分 → 秒;含天的计时类型里 day/hour/minute 会被 getSingleTime 做进位补位(多 1),所以页面上的数字不总是纯 floor 结果 —— 这只影响文本,不产生额外节点。",
750
+ "计时未到 beginTime(配置了 beginTime 且当前时间早于它)时组件会「静置」显示初始时长,此时 DOM 与正常倒计时完全一致,只是数字不刷新;归零后 clearInterval,节点保留。",
751
+ "运行态与设计态的 DOM 差异只有两处:外壳 class(ebcom-view vs ebcom-design,设计态还多 mask)与标题栏按钮的渲染条件(运行态要 hasOpenOperatBtn 即按钮 isOpen 才渲染「跳过节假日」,设计态 titleEnabled 即渲染)。内容槽及其下的六棵子树完全一样,所以样式可以在两个态之间复用。",
752
+ "设计器右侧属性面板(config/CountDownSetting 与 CountDownSettings.tsx 产生的 ebcoms-count-down-setting* 类名、排序用 react-sortable-hoc)不属于组件 DOM,不在页面里渲染,别拿它定位组件。",
753
+ "反查源码:外壳与内容槽在 weapp-ebdcoms/src/components/core/view/createView.tsx(renderView/renderContent)与 design/createDesign.tsx(renderDesign/renderContent)、view/Content.tsx;外壳类名在 core/utils/comp.ts 的 getClassName;组件骨架在 common/countDownCom.tsx(comRoot / datasWrap / 样式分派 getStyleType)与 common/CountDownSingle.tsx;六种样式在 common/style/ 下;跳过节假日开关在 constants.ts 与 common/SkipHoliday/index.tsx;已有样式在 common/index.less 与各 style/*.less;样式生成器在 common/getCountDownStyles.ts。"
754
+ ]
755
+ }