weaver-e10-builder 1.2.3 → 1.5.1

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 (351) hide show
  1. package/assets/org-employee-template.xlsx +0 -0
  2. package/dist/commands/actionflow.d.ts.map +1 -1
  3. package/dist/commands/actionflow.js +12 -25
  4. package/dist/commands/actionflow.js.map +1 -1
  5. package/dist/commands/designer-css.d.ts +15 -0
  6. package/dist/commands/designer-css.d.ts.map +1 -0
  7. package/dist/commands/designer-css.js +205 -0
  8. package/dist/commands/designer-css.js.map +1 -0
  9. package/dist/commands/form-button.d.ts.map +1 -1
  10. package/dist/commands/form-button.js +28 -5
  11. package/dist/commands/form-button.js.map +1 -1
  12. package/dist/commands/form-field-lang.d.ts.map +1 -1
  13. package/dist/commands/form-field-lang.js +4 -39
  14. package/dist/commands/form-field-lang.js.map +1 -1
  15. package/dist/commands/form-field-linkage.d.ts.map +1 -1
  16. package/dist/commands/form-field-linkage.js +27 -6
  17. package/dist/commands/form-field-linkage.js.map +1 -1
  18. package/dist/commands/form-formula-linkage.d.ts +3 -0
  19. package/dist/commands/form-formula-linkage.d.ts.map +1 -0
  20. package/dist/commands/form-formula-linkage.js +434 -0
  21. package/dist/commands/form-formula-linkage.js.map +1 -0
  22. package/dist/commands/form-formula.d.ts.map +1 -1
  23. package/dist/commands/form-formula.js +22 -3
  24. package/dist/commands/form-formula.js.map +1 -1
  25. package/dist/commands/form-layout-init.d.ts.map +1 -1
  26. package/dist/commands/form-layout-init.js +15 -10
  27. package/dist/commands/form-layout-init.js.map +1 -1
  28. package/dist/commands/form-layout.js +24 -21
  29. package/dist/commands/form-layout.js.map +1 -1
  30. package/dist/commands/form-list-click.d.ts.map +1 -1
  31. package/dist/commands/form-list-click.js +2 -1
  32. package/dist/commands/form-list-click.js.map +1 -1
  33. package/dist/commands/form-native.d.ts.map +1 -1
  34. package/dist/commands/form-native.js +192 -3
  35. package/dist/commands/form-native.js.map +1 -1
  36. package/dist/commands/form-validate.d.ts.map +1 -1
  37. package/dist/commands/form-validate.js +11 -3
  38. package/dist/commands/form-validate.js.map +1 -1
  39. package/dist/commands/form.d.ts.map +1 -1
  40. package/dist/commands/form.js +323 -192
  41. package/dist/commands/form.js.map +1 -1
  42. package/dist/commands/matrix.d.ts.map +1 -1
  43. package/dist/commands/matrix.js +175 -36
  44. package/dist/commands/matrix.js.map +1 -1
  45. package/dist/commands/menu.d.ts.map +1 -1
  46. package/dist/commands/menu.js +170 -23
  47. package/dist/commands/menu.js.map +1 -1
  48. package/dist/commands/org.d.ts +10 -0
  49. package/dist/commands/org.d.ts.map +1 -0
  50. package/dist/commands/org.js +278 -0
  51. package/dist/commands/org.js.map +1 -0
  52. package/dist/commands/role.d.ts.map +1 -1
  53. package/dist/commands/role.js +106 -62
  54. package/dist/commands/role.js.map +1 -1
  55. package/dist/commands/wf-form.d.ts +1 -0
  56. package/dist/commands/wf-form.d.ts.map +1 -1
  57. package/dist/commands/wf-form.js +545 -39
  58. package/dist/commands/wf-form.js.map +1 -1
  59. package/dist/commands/workflow-auth-resp.d.ts.map +1 -1
  60. package/dist/commands/workflow-auth-resp.js +53 -5
  61. package/dist/commands/workflow-auth-resp.js.map +1 -1
  62. package/dist/commands/workflow-create-auth-resp.d.ts.map +1 -1
  63. package/dist/commands/workflow-create-auth-resp.js +5 -1
  64. package/dist/commands/workflow-create-auth-resp.js.map +1 -1
  65. package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -1
  66. package/dist/commands/workflow-node-assign-flow.js +1 -2
  67. package/dist/commands/workflow-node-assign-flow.js.map +1 -1
  68. package/dist/commands/workflow-node.d.ts.map +1 -1
  69. package/dist/commands/workflow-node.js +147 -2
  70. package/dist/commands/workflow-node.js.map +1 -1
  71. package/dist/commands/workflow-odoc.d.ts.map +1 -1
  72. package/dist/commands/workflow-odoc.js +56 -56
  73. package/dist/commands/workflow-odoc.js.map +1 -1
  74. package/dist/commands/workflow-setting.d.ts.map +1 -1
  75. package/dist/commands/workflow-setting.js +77 -1
  76. package/dist/commands/workflow-setting.js.map +1 -1
  77. package/dist/commands/workflow.d.ts.map +1 -1
  78. package/dist/commands/workflow.js +114 -89
  79. package/dist/commands/workflow.js.map +1 -1
  80. package/dist/core/client.d.ts +14 -0
  81. package/dist/core/client.d.ts.map +1 -1
  82. package/dist/core/client.js +28 -12
  83. package/dist/core/client.js.map +1 -1
  84. package/dist/index.js +6 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/services/action-detail.d.ts.map +1 -1
  87. package/dist/services/action-detail.js +5 -4
  88. package/dist/services/action-detail.js.map +1 -1
  89. package/dist/services/actionflow/command_output.d.ts +7 -0
  90. package/dist/services/actionflow/command_output.d.ts.map +1 -1
  91. package/dist/services/actionflow/command_output.js +46 -0
  92. package/dist/services/actionflow/command_output.js.map +1 -1
  93. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  94. package/dist/services/actionflow/components/action_eb_add.js +14 -4
  95. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  96. package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
  97. package/dist/services/actionflow/components/action_eb_add_compiler.js +29 -0
  98. package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
  99. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  100. package/dist/services/actionflow/components/action_eb_update.js +23 -8
  101. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  102. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
  103. package/dist/services/actionflow/components/action_eb_update_compiler.js +261 -13
  104. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  105. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
  106. package/dist/services/actionflow/components/approve_create.js +6 -3
  107. package/dist/services/actionflow/components/approve_create.js.map +1 -1
  108. package/dist/services/actionflow/components/custom_set_form.d.ts +10 -0
  109. package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -0
  110. package/dist/services/actionflow/components/custom_set_form.js +99 -0
  111. package/dist/services/actionflow/components/custom_set_form.js.map +1 -0
  112. package/dist/services/actionflow/components/custom_trigger.d.ts +2 -2
  113. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
  114. package/dist/services/actionflow/components/custom_trigger.js +11 -11
  115. package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
  116. package/dist/services/actionflow/components/dml_execute.d.ts.map +1 -1
  117. package/dist/services/actionflow/components/dml_execute.js +7 -3
  118. package/dist/services/actionflow/components/dml_execute.js.map +1 -1
  119. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
  120. package/dist/services/actionflow/components/document_actions.js +7 -3
  121. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  122. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  123. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  124. package/dist/services/actionflow/components/hrm_actions.d.ts.map +1 -1
  125. package/dist/services/actionflow/components/hrm_actions.js +7 -3
  126. package/dist/services/actionflow/components/hrm_actions.js.map +1 -1
  127. package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
  128. package/dist/services/actionflow/components/multiple_execution.js +14 -5
  129. package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
  130. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  131. package/dist/services/actionflow/components/output.js +6 -1
  132. package/dist/services/actionflow/components/output.js.map +1 -1
  133. package/dist/services/actionflow/components/send_message.js +2 -2
  134. package/dist/services/actionflow/components/send_message.js.map +1 -1
  135. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  136. package/dist/services/actionflow/components/workflow_actions.js +7 -3
  137. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  138. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  139. package/dist/services/actionflow/context_preflight.js +25 -8
  140. package/dist/services/actionflow/context_preflight.js.map +1 -1
  141. package/dist/services/actionflow/context_provider.d.ts.map +1 -1
  142. package/dist/services/actionflow/context_provider.js +24 -4
  143. package/dist/services/actionflow/context_provider.js.map +1 -1
  144. package/dist/services/actionflow/custom_trigger_context.d.ts +10 -0
  145. package/dist/services/actionflow/custom_trigger_context.d.ts.map +1 -0
  146. package/dist/services/actionflow/custom_trigger_context.js +46 -0
  147. package/dist/services/actionflow/custom_trigger_context.js.map +1 -0
  148. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  149. package/dist/services/actionflow/dynamic_resources.js +1 -1
  150. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  151. package/dist/services/actionflow/ebuilder_source.d.ts +19 -0
  152. package/dist/services/actionflow/ebuilder_source.d.ts.map +1 -0
  153. package/dist/services/actionflow/ebuilder_source.js +78 -0
  154. package/dist/services/actionflow/ebuilder_source.js.map +1 -0
  155. package/dist/services/actionflow/filter_rules.js +2 -2
  156. package/dist/services/actionflow/filter_rules.js.map +1 -1
  157. package/dist/services/actionflow/form_source.d.ts +51 -10
  158. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  159. package/dist/services/actionflow/form_source.js +173 -29
  160. package/dist/services/actionflow/form_source.js.map +1 -1
  161. package/dist/services/actionflow/formula_service.d.ts +13 -2
  162. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  163. package/dist/services/actionflow/formula_service.js +104 -42
  164. package/dist/services/actionflow/formula_service.js.map +1 -1
  165. package/dist/services/actionflow/id_generator.d.ts +2 -0
  166. package/dist/services/actionflow/id_generator.d.ts.map +1 -1
  167. package/dist/services/actionflow/id_generator.js +13 -0
  168. package/dist/services/actionflow/id_generator.js.map +1 -1
  169. package/dist/services/actionflow/preflight_service.d.ts +6 -0
  170. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  171. package/dist/services/actionflow/preflight_service.js +217 -4
  172. package/dist/services/actionflow/preflight_service.js.map +1 -1
  173. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  174. package/dist/services/actionflow/workflow_compiler.js +172 -50
  175. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  176. package/dist/services/auth-resp-condition.d.ts +35 -0
  177. package/dist/services/auth-resp-condition.d.ts.map +1 -0
  178. package/dist/services/auth-resp-condition.js +111 -0
  179. package/dist/services/auth-resp-condition.js.map +1 -0
  180. package/dist/services/condition-rules.d.ts.map +1 -1
  181. package/dist/services/condition-rules.js +4 -1
  182. package/dist/services/condition-rules.js.map +1 -1
  183. package/dist/services/designer-css.d.ts +89 -0
  184. package/dist/services/designer-css.d.ts.map +1 -0
  185. package/dist/services/designer-css.js +163 -0
  186. package/dist/services/designer-css.js.map +1 -0
  187. package/dist/services/dom-structure.d.ts +42 -0
  188. package/dist/services/dom-structure.d.ts.map +1 -0
  189. package/dist/services/dom-structure.js +251 -0
  190. package/dist/services/dom-structure.js.map +1 -0
  191. package/dist/services/esb-interface/document-parser.d.ts.map +1 -1
  192. package/dist/services/esb-interface/document-parser.js +62 -5
  193. package/dist/services/esb-interface/document-parser.js.map +1 -1
  194. package/dist/services/form-association.d.ts +19 -0
  195. package/dist/services/form-association.d.ts.map +1 -1
  196. package/dist/services/form-association.js +64 -0
  197. package/dist/services/form-association.js.map +1 -1
  198. package/dist/services/form-button-action.d.ts +7 -0
  199. package/dist/services/form-button-action.d.ts.map +1 -1
  200. package/dist/services/form-button-action.js +11 -1
  201. package/dist/services/form-button-action.js.map +1 -1
  202. package/dist/services/form-create.d.ts +4 -0
  203. package/dist/services/form-create.d.ts.map +1 -1
  204. package/dist/services/form-create.js +18 -12
  205. package/dist/services/form-create.js.map +1 -1
  206. package/dist/services/form-field-patch.d.ts +25 -1
  207. package/dist/services/form-field-patch.d.ts.map +1 -1
  208. package/dist/services/form-field-patch.js +52 -9
  209. package/dist/services/form-field-patch.js.map +1 -1
  210. package/dist/services/form-formula-linkage.d.ts +349 -0
  211. package/dist/services/form-formula-linkage.d.ts.map +1 -0
  212. package/dist/services/form-formula-linkage.js +546 -0
  213. package/dist/services/form-formula-linkage.js.map +1 -0
  214. package/dist/services/form-i18n-label.d.ts +48 -0
  215. package/dist/services/form-i18n-label.d.ts.map +1 -0
  216. package/dist/services/form-i18n-label.js +91 -0
  217. package/dist/services/form-i18n-label.js.map +1 -0
  218. package/dist/services/form-layout-insert.d.ts +84 -0
  219. package/dist/services/form-layout-insert.d.ts.map +1 -0
  220. package/dist/services/form-layout-insert.js +244 -0
  221. package/dist/services/form-layout-insert.js.map +1 -0
  222. package/dist/services/form-linkage-condition.d.ts +159 -0
  223. package/dist/services/form-linkage-condition.d.ts.map +1 -0
  224. package/dist/services/form-linkage-condition.js +307 -0
  225. package/dist/services/form-linkage-condition.js.map +1 -0
  226. package/dist/services/form-style-template.d.ts +6 -2
  227. package/dist/services/form-style-template.d.ts.map +1 -1
  228. package/dist/services/form-style-template.js +8 -4
  229. package/dist/services/form-style-template.js.map +1 -1
  230. package/dist/services/formula-detail.d.ts +98 -6
  231. package/dist/services/formula-detail.d.ts.map +1 -1
  232. package/dist/services/formula-detail.js +208 -26
  233. package/dist/services/formula-detail.js.map +1 -1
  234. package/dist/services/matrix-rows.d.ts +43 -0
  235. package/dist/services/matrix-rows.d.ts.map +1 -0
  236. package/dist/services/matrix-rows.js +104 -0
  237. package/dist/services/matrix-rows.js.map +1 -0
  238. package/dist/services/menu-catalog.d.ts +84 -0
  239. package/dist/services/menu-catalog.d.ts.map +1 -0
  240. package/dist/services/menu-catalog.js +183 -0
  241. package/dist/services/menu-catalog.js.map +1 -0
  242. package/dist/services/org-department.d.ts +114 -0
  243. package/dist/services/org-department.d.ts.map +1 -0
  244. package/dist/services/org-department.js +209 -0
  245. package/dist/services/org-department.js.map +1 -0
  246. package/dist/services/org-employee.d.ts +87 -0
  247. package/dist/services/org-employee.d.ts.map +1 -0
  248. package/dist/services/org-employee.js +219 -0
  249. package/dist/services/org-employee.js.map +1 -0
  250. package/dist/services/role-member.d.ts +99 -0
  251. package/dist/services/role-member.d.ts.map +1 -0
  252. package/dist/services/role-member.js +206 -0
  253. package/dist/services/role-member.js.map +1 -0
  254. package/dist/services/workflow-add-step.d.ts +45 -0
  255. package/dist/services/workflow-add-step.d.ts.map +1 -0
  256. package/dist/services/workflow-add-step.js +122 -0
  257. package/dist/services/workflow-add-step.js.map +1 -0
  258. package/dist/services/workflow-assign-flow.d.ts +1 -6
  259. package/dist/services/workflow-assign-flow.d.ts.map +1 -1
  260. package/dist/services/workflow-assign-flow.js +3 -8
  261. package/dist/services/workflow-assign-flow.js.map +1 -1
  262. package/dist/services/workflow-drawback.d.ts +19 -0
  263. package/dist/services/workflow-drawback.d.ts.map +1 -0
  264. package/dist/services/workflow-drawback.js +59 -0
  265. package/dist/services/workflow-drawback.js.map +1 -0
  266. package/dist/services/workflow-info.d.ts +83 -0
  267. package/dist/services/workflow-info.d.ts.map +1 -0
  268. package/dist/services/workflow-info.js +97 -0
  269. package/dist/services/workflow-info.js.map +1 -0
  270. package/dist/services/workflow-links.d.ts +51 -0
  271. package/dist/services/workflow-links.d.ts.map +1 -0
  272. package/dist/services/workflow-links.js +162 -0
  273. package/dist/services/workflow-links.js.map +1 -0
  274. package/dist/services/workflow-node-layout.d.ts +45 -4
  275. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  276. package/dist/services/workflow-node-layout.js +142 -41
  277. package/dist/services/workflow-node-layout.js.map +1 -1
  278. package/dist/services/workflow-odoc-setting.d.ts +43 -0
  279. package/dist/services/workflow-odoc-setting.d.ts.map +1 -0
  280. package/dist/services/workflow-odoc-setting.js +109 -0
  281. package/dist/services/workflow-odoc-setting.js.map +1 -0
  282. package/dist/services/workflow-tab-config.d.ts +54 -0
  283. package/dist/services/workflow-tab-config.d.ts.map +1 -0
  284. package/dist/services/workflow-tab-config.js +137 -0
  285. package/dist/services/workflow-tab-config.js.map +1 -0
  286. package/dist/types.d.ts +5 -1
  287. package/dist/types.d.ts.map +1 -1
  288. package/dist/utils/column-name.d.ts +24 -0
  289. package/dist/utils/column-name.d.ts.map +1 -1
  290. package/dist/utils/column-name.js +16 -0
  291. package/dist/utils/column-name.js.map +1 -1
  292. package/ecodecmd/package.json +1 -2
  293. package/ecodecmd/src/loaddep.js +19 -9
  294. package/package.json +48 -48
  295. package/skill-docs/SKILL.md +15 -11
  296. package/skill-docs/_catalog.md +85 -79
  297. package/skill-docs/actionflows/SKILL.md +173 -168
  298. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +38 -1
  299. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +42 -0
  300. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +1 -1
  301. package/skill-docs/actionflows/references/components/logic/Output.md +2 -0
  302. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +48 -11
  303. package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +1 -1
  304. package/skill-docs/assets/dom-structure/Bar.json +341 -0
  305. package/skill-docs/assets/dom-structure/BarStack.json +341 -0
  306. package/skill-docs/assets/dom-structure/Bubble.json +323 -0
  307. package/skill-docs/assets/dom-structure/Calendar.json +515 -0
  308. package/skill-docs/assets/dom-structure/Circular.json +337 -0
  309. package/skill-docs/assets/dom-structure/CollapsePanel.json +289 -0
  310. package/skill-docs/assets/dom-structure/Comment.json +617 -0
  311. package/skill-docs/assets/dom-structure/CountDown.json +755 -0
  312. package/skill-docs/assets/dom-structure/DigitalPanel.json +191 -0
  313. package/skill-docs/assets/dom-structure/EbButton.json +387 -0
  314. package/skill-docs/assets/dom-structure/FastCreate.json +242 -0
  315. package/skill-docs/assets/dom-structure/Gauge.json +282 -0
  316. package/skill-docs/assets/dom-structure/HBar.json +336 -0
  317. package/skill-docs/assets/dom-structure/HBarStack.json +337 -0
  318. package/skill-docs/assets/dom-structure/Line.json +341 -0
  319. package/skill-docs/assets/dom-structure/NList.json +712 -0
  320. package/skill-docs/assets/dom-structure/NavBar.json +274 -0
  321. package/skill-docs/assets/dom-structure/NavPanel.json +390 -0
  322. package/skill-docs/assets/dom-structure/NewTab.json +606 -0
  323. package/skill-docs/assets/dom-structure/Nightingale.json +336 -0
  324. package/skill-docs/assets/dom-structure/PageHeader.json +205 -0
  325. package/skill-docs/assets/dom-structure/Picture.json +209 -0
  326. package/skill-docs/assets/dom-structure/Pie.json +338 -0
  327. package/skill-docs/assets/dom-structure/ProgressChart.json +299 -0
  328. package/skill-docs/assets/dom-structure/SearchGlobal.json +628 -0
  329. package/skill-docs/assets/dom-structure/Slide.json +489 -0
  330. package/skill-docs/assets/dom-structure/Treemap.json +324 -0
  331. package/skill-docs/references/common/guide-plan-template.md +10 -4
  332. package/skill-docs/references/common/ref-cli-commands.md +67 -34
  333. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +12 -1
  334. package/skill-docs/references/ebuilder-designer/guide-designer-css.md +127 -0
  335. package/skill-docs/references/ebuilder-designer/guide-designer.md +6 -5
  336. package/skill-docs/references/esb-interface/guide-import.md +4 -1
  337. package/skill-docs/references/form/guide-create-form.md +14 -1
  338. package/skill-docs/references/form/guide-field-linkage.md +2 -0
  339. package/skill-docs/references/form/guide-form-formula-functions.md +36 -0
  340. package/skill-docs/references/form/guide-form-layout-incremental.md +75 -0
  341. package/skill-docs/references/form/guide-form-layout-planning.md +1 -1
  342. package/skill-docs/references/form/guide-form-linkage.md +89 -5
  343. package/skill-docs/references/form/guide-formula-linkage.md +250 -0
  344. package/skill-docs/references/form/ref-form-fields.md +6 -0
  345. package/skill-docs/references/hrm/guide-matrix.md +79 -16
  346. package/skill-docs/references/hrm/guide-org-employee.md +56 -0
  347. package/skill-docs/references/menu/system-menus.md +12 -0
  348. package/skill-docs/references/workflow/guide-workflow-auth-resp.md +48 -22
  349. package/skill-docs/references/workflow/guide-workflow-odoc-setting.md +248 -0
  350. package/skill-docs/references/workflow/guide-workflow-odoc.md +25 -33
  351. package/skill-docs/references/workflow/guide-workflow.md +18 -3
@@ -0,0 +1,390 @@
1
+ {
2
+ "component": "NavPanel 导航面板",
3
+ "usage": "用户说『给导航面板某部分设样式』→ 按 pickTree 定位到某棵树 → 在树里找语义节点 → 用 id/class 写选择器。只列关键节点,纯布局包裹 div 已省略。",
4
+ "legend": {
5
+ "[cls]": "条件类名,满足条件才出现",
6
+ "{a|b}": "多选一",
7
+ "a > b": "合并两层(中间节点无类名/无关键类)",
8
+ "ref": "引用 shared 下的复用片段",
9
+ "<comId>": "组件运行时 id(挂在引擎外壳那层)。官方样式生成器一律以 #<comId> 限域,自写样式建议照做",
10
+ "前缀": "ebcoms=本仓库源码(clsPrefix) 与引擎(@weapp/ebdcoms)共用 | ebcom=引擎外壳与布局层(ebcomPrefix) | ui=@weapp/ui | swiper=轮播库"
11
+ },
12
+ "pickTree": "最外三层固定(见 root):引擎外壳 > header + content + footer 三个平级兄弟,header/footer 由引擎按 titleEnabled / footerEnabled 决定有无。以下只描述 content 里面怎么分:① paginationDisplay=true → pagination;② 系统数据个人视图 → personal;③ enableGroup=true → layout.group(groupMode 再分 vertical / horizontal / newTab);④ 其余 → layout.noGroup。PC 与移动端主结构同构,差异在 top.pc / top.mobile 与少量类名后缀;弹窗态多一个 .fromDialog 类。",
13
+
14
+ "root": {
15
+ "tag": "div",
16
+ "id": "<comId>",
17
+ "class": "ebcom ebcom-navpanel [ebcom-grid] [ebcom-view|ebcom-design] [has-no-header] [content-no-padding] [event-action-click] [standalone]",
18
+ "desc": "【引擎外壳】由引擎渲染,flex 纵列,所以下面固定挂 3 个子节点。⚠️ 这 3 个是平级兄弟,不是父子,别写 .content .header。defaultOpts.render.standalone 为真时三层整体不渲染(本组件未开启)。",
19
+ "children": [
20
+ { "ref": "shared.header", "desc": "titleEnabled=false 时不渲染,外壳上只留 has-no-header 状态类" },
21
+ {
22
+ "tag": "div",
23
+ "class": "content",
24
+ "desc": "【引擎内容槽】引擎固定追加,组件自己的 DOM 全在它里面,`#<comId> > .content` 可稳定命中。引擎默认 `flex:1 1 auto; padding:10px 15px; height:100%; overflow:auto`,本组件用 index.less 把 padding 覆盖为 0。⚠️ 别与 ebcoms-navPanel-wrapper-content(组件的内容滚动区,见 shared.content)混用——同名不同层。",
25
+ "children": [
26
+ { "ref": "shared.top", "desc": "顶部:快捷搜索栏 / 拓展菜单入口" },
27
+ { "tag": "div", "desc": "弹窗包裹层,无关键类" },
28
+ { "tag": "div", "id": "common-menus-<comId>", "class": "ebcoms-navPanel-common-menus-container", "desc": "仅 commonMenuSwitch && showCommonMenuGroup && !menuDataLoading → 见 commonMenus" },
29
+ { "ref": "layout.main", "desc": "主体:PagePanel 或 NavPanel 二选一" },
30
+ {
31
+ "tag": "div",
32
+ "class": "ebcoms-navPanel-bottom",
33
+ "desc": "仅『系统数据 + 默认内容 + groupMode=horizontal』的底部条",
34
+ "children": [
35
+ { "tag": "div", "class": "ebcoms-navPanel-bottom-wrapper", "desc": "『个人应用设置』整行(@weapp/ui Icon + 文案 + 外部组件 AppSettingDialogCom)" }
36
+ ]
37
+ }
38
+ ]
39
+ },
40
+ { "ref": "shared.footer", "desc": "footerEnabled=false 时不渲染(本组件默认不开)" }
41
+ ]
42
+ },
43
+
44
+ "shared": {
45
+ "top": {
46
+ "desc": "【顶部工具栏】PC / 移动端是两个不同容器类名",
47
+ "pc": {
48
+ "tag": "div",
49
+ "class": "ebcoms-navPanel-top",
50
+ "children": [
51
+ { "tag": "div", "class": "ebcoms-navPanel-ceiling-search", "desc": "仅 showSearch 或『更多展开且 showMoreInDialog=false』。内含 PinyinInput(ui-input)+ 可选两个 div.more-icon(⚠️ 无 ebcoms- 前缀)" },
52
+ { "tag": "div", "class": "ebcoms-navPanel-expand-menu", "desc": "仅系统数据 + showExpandMenu;内部是外部组件(@weapp/layout ExtendedMenu),DOM 不可控" }
53
+ ]
54
+ },
55
+ "mobile": {
56
+ "tag": "div",
57
+ "class": "ebcoms-navPanel-mobile-top [titleEnabled]",
58
+ "desc": "⚠️ titleEnabled 是反向条件(!titleEnabled 时才有这个类)",
59
+ "children": [
60
+ { "tag": "div", "class": "ebcoms-navPanel-ceiling-search.mobile", "desc": "移动端搜索栏(MPinyinInput)+ 可选 div.more-icon" },
61
+ { "tag": "div", "class": "ebcoms-navPanel-mobile-top-btn.viewMode", "desc": "视图切换(列表/方图标/圆图标),内含 TopMenu → ui-menu-*" },
62
+ { "tag": "div", "class": "ebcoms-navPanel-mobile-top-btn.expandMenu", "desc": "拓展菜单,同样 TopMenu → ui-menu-*;弹层用 ui-menu-select-*" }
63
+ ]
64
+ }
65
+ },
66
+
67
+ "wrapper": {
68
+ "tag": "div",
69
+ "class": "ebcoms-navPanel-wrapper [ebcoms-navPanel-wrapper-{vertical|horizontal|newTab}] [ebcoms-navPanel-wrapper-empty] [ebcoms-navPanel-wrapper-empty-search] [ebcoms-navPanel-wrapper-personal]",
70
+ "desc": "【主体最外层】-empty=无数据;-empty-search=空且带搜索;-personal=系统数据个人视图。加载中这一层里只有一个 ui-spin。"
71
+ },
72
+
73
+ "header": {
74
+ "when": "config.titleEnabled=true 且非 standalone。本组件没定义 static renderHeader / renderTitle,所以 100% 走引擎默认实现",
75
+ "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",
76
+ "tips": "① 整行改高/去边框打 `.ebcom.ebcom-navpanel > .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)。② 改标题文字只认 .ebcom-title(富文本另带 -richtext)。③ 按钮组 .ebcoms-header-btns 最多两个 div:竖排=positionType RIGHT,横排=LEFT。④ ⚠️ 引擎用 `&:has(.ebcoms-header-btns)` 把标题改成 display:inline-block —— 这是『有顶部按钮时标题加 width 不生效』的原因。⑤ 兼容老结构 `.ebcom-header-wrap > .header`,不确定时两个都覆盖。"
77
+ },
78
+
79
+ "footer": {
80
+ "when": "config.footerEnabled=true 且 defaultOpts.render.showFooter!==false 且非 standalone。本组件没定义 static renderFooter;否则整块不存在(不是隐藏)",
81
+ "chain": "div.footer[内联 style=按钮对齐] > ( 组件 renderFooter,可空 ) + div.ebcoms-footer-btns > span > ConfigurableButton",
82
+ "tips": "① 默认 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 会被压掉。⑤ 无权限/未付费时外壳照渲染但内部为空。"
83
+ },
84
+
85
+ "innerContent": {
86
+ "desc": "【一组菜单的内容块】非分组时直接挂 .ebcoms-navPanel-wrapper 下,分组时挂 .ebcoms-navPanel-wrapper-group-item 内",
87
+ "children": [
88
+ {
89
+ "tag": "div",
90
+ "id": "group-title-<comId>-<groupId>",
91
+ "class": "ebcoms-navPanel-wrapper-group-title",
92
+ "desc": "【分组标题行】有 id,限域最稳。仅 groupTitle 或 groupIcon 有值才渲染",
93
+ "children": [
94
+ {
95
+ "tag": "div",
96
+ "class": "ebcoms-navPanel-wrapper-group-title-text | ebcoms-navPanel-wrapper-group-title-text-m",
97
+ "desc": "PC 用 -text,移动端用 -text-m(独立类名)",
98
+ "children": [
99
+ { "tag": "div", "class": "ebcoms-assets-icon | ebcoms-assets-img", "desc": "分组图标(AssetsItem)" },
100
+ { "tag": "span", "class": "ebcoms-navPanel-wrapper-group-title-text-contentWithIcon > ebcoms-navPanel-wrapper-group-title-text-content", "desc": "【标题文字】有图标时才带 -contentWithIcon;官方样式表改分组标题宽度就是打这个类" }
101
+ ]
102
+ },
103
+ { "ref": "shared.operateBtn", "desc": "标题右侧的操作按钮(groupMode=newTab 时不在这层)" }
104
+ ]
105
+ },
106
+ { "ref": "shared.content" }
107
+ ]
108
+ },
109
+
110
+ "operateBtn": {
111
+ "desc": "【菜单操作按钮】编辑(定制)/更多 图标,仅在对应按钮落在面板内时渲染",
112
+ "tree": [
113
+ { "tag": "div", "class": "ebcoms-navPanel-wrapper-group-title-set", "desc": "单个按钮外壳(图标 + 5px 左边距),编辑与更多各一个", "children": [{ "tag": "div", "class": "ebcoms-assets-item", "desc": "编辑=Icon-* 自定义图标;更多=openIcon/closeIcon(展开前后切换),点击分别触发 openCustomMenu / openMoreMenu" }] },
114
+ { "tag": "div", "class": "common-group-edit-btn", "desc": "⚠️ 无 ebcoms- 前缀。仅当前分组=common_group 时出现,内含 @weapp/ui Icon(Icon-set-up-o)" },
115
+ { "tag": "div", "class": "nav-panel-btn-tabVertical", "desc": "⚠️ 无 ebcoms- 前缀。仅 newTab 且选项卡纵向排列且不在弹窗内时,操作按钮整体挪到这里(此时 group-title 里没有按钮)" }
116
+ ]
117
+ },
118
+
119
+ "content": {
120
+ "tag": "div",
121
+ "class": "ebcoms-navPanel-wrapper-content [ebcoms-navPanel-wrapper-content-notEmpty|ebcoms-navPanel-wrapper-content-isEmpty] [ebcoms-navPanel-wrapper-{styleId}]",
122
+ "desc": "【内容滚动区】内边距/滚动/最小宽度在这层;-{styleId} 是系统样式 id(41/42/770...),系统样式差异全靠它,改动前先确认当前 styleId。notEmpty/isEmpty 两个类名会在内层 wrapper 上再出现一次。",
123
+ "children": [
124
+ {
125
+ "tag": "div",
126
+ "class": "ebcoms-navPanel-wrapper-content-notEmpty ebcoms-navPanel-wrapper-content-wrapper",
127
+ "desc": "【行容器】flex-wrap 行;横向分组时会变成 flex-direction:column 并被 JS 做绝对定位",
128
+ "children": [
129
+ {
130
+ "tag": "div",
131
+ "class": "gap-style-line-wrap [system-menu-viewMode square|rotundity]",
132
+ "desc": "⚠️ gap-style-line-wrap 无 ebcoms- 前缀,是一行菜单。system-menu-* 只在『系统数据 + 图标视图 + 默认样式41』时附加",
133
+ "children": [{ "ref": "shared.card", "desc": "一行内按列数重复" }]
134
+ }
135
+ ]
136
+ },
137
+ { "ref": "shared.empty", "desc": "gapStyleDatas 为空时替代上面的行容器" }
138
+ ]
139
+ },
140
+
141
+ "card": {
142
+ "desc": "【单个菜单条目】= CustomCard。导航面板 90% 的样式需求都落在这棵树里",
143
+ "tree": [
144
+ {
145
+ "tag": "div",
146
+ "class": "ebcoms-navPanel-wrapper-customCardFirst ebcoms-navPanel-wrapper-customCard [no-border-right] [no-border-bottom] [no-margin-right] [no-margin-bottom] [ISEMPTY] [ebcoms-navPanel-wrapper-customCard-pre1] [ebcoms-navPanel-wrapper-customCard-show-gray-scale]",
147
+ "desc": "【条目外壳】宽度/高度/外边距在这层,并挂了 CSS 变量 --ebcoms-navPanel-icon-color(取值=图标色)。⚠️ 这些值都是内联 style(flex/height/width/margin),优先级高于样式表。no-*=无样式表的边框合并;ISEMPTY=补位空列(visibility:hidden);pre1/pre5=预置模板;show-gray-scale=置灰。",
148
+ "children": [
149
+ {
150
+ "tag": "div",
151
+ "class": "ebcoms-navPanel-wrapper-square-pos ebcoms-navPanel-wrapper-square [ebcoms-navPanel-wrapper-customCardPC] [ebcoms-navPanel-wrapper-square-isDefault] [moreMenu] [customEditMenu] [swiper-lazy]",
152
+ "desc": "【可点击卡片本体】背景色/边框/圆角/内边距改这层;-customCardPC=PC 端;-square-isDefault=默认样式41(带 ::before 小箭头与内边距差异);moreMenu/customEditMenu 用于区分『更多』『编辑』按钮条目(官方样式表靠这两个类排除它们)。⚠️ 它上面还有一层无类名的 EventClickable 包裹 div。",
153
+ "children": [
154
+ {
155
+ "tag": "div",
156
+ "class": "ebcoms-navPanel-wrapper-square-content",
157
+ "desc": "⚠️ 条件层:只有 (useCustom || libStyle) && (nameIconPos || nameIconPosRelative)(即样式里配过图标/名称位置)才存在。没有它时 iconWrap 与 cardName 直接是 square 的子元素——写选择器务必用 `.square-content` 或后代选择器,别写死层级",
158
+ "children": [
159
+ {
160
+ "tag": "div",
161
+ "class": "ebcoms-navPanel-wrapper-iconWrap ebcoms-navPanel-wrapper-iconWrap-pos [ebcoms-navPanel-wrapper-iconWrap-hide]",
162
+ "desc": "【图标区】与名称的间距 margin-bottom 在这层;图标本体样式(颜色/背景/圆角/尺寸)内联在这层。hide=仅图标显示模式下 hover 时隐藏",
163
+ "children": [
164
+ {
165
+ "tag": "div",
166
+ "class": "ebcoms-angle | ebcoms-angle-position | ebcoms-angle-block",
167
+ "desc": "【角标容器】共用的 Angle 组件,恒带 ebcoms-angle(无角标时就是这个类);有角标时 class 变成 ebcoms-angle-{position|block}",
168
+ "children": [
169
+ { "tag": "div", "class": "ebcoms-assets-item ebcoms-assets-icon | ebcoms-assets-img [moreMenu] [customEditMenu] [swiper-lazy]", "desc": "【图标本体】svg 图标=ebcoms-assets-icon,图片=ebcoms-assets-img。官方样式表用 `.content .ebcoms-assets-item:not(.moreMenu):not(.customEditMenu)` 定位普通图标、`.ebcoms-assets-item.moreMenu` 单独调更多图标尺寸" },
170
+ { "tag": "span", "class": "ebcoms-navPanel-wrapper-numTips-icon ebcoms-angle-position-count > span", "desc": "【数字角标】按系统样式 id 不同会是三套孪生类名之一:ebcoms-navPanel-wrapper-numTips-icon / -numTips-text / -numTips-placeholder(index.less 里成对定义),总是与 ebcoms-angle-{position|block}-count 同时出现" }
171
+ ]
172
+ }
173
+ ]
174
+ },
175
+ {
176
+ "tag": "div",
177
+ "class": "ebcoms-navPanel-wrapper-cardName ebcoms-navPanel-wrapper-cardName-pos [ebcoms-navPanel-wrapper-cardName-isPre5] [ebcoms-navPanel-wrapper-cardName-hide]",
178
+ "desc": "【名称区】对齐方式/内边距在这层;hide=纯图标模式 hover 时隐藏;isPre5=预置模板5",
179
+ "children": [
180
+ {
181
+ "tag": "div",
182
+ "class": "ebcoms-angle | ebcoms-angle-position",
183
+ "desc": "名称也要挂角标(numTipsType=text 或无图标)时的 Angle 容器",
184
+ "children": [
185
+ { "tag": "div", "class": "ebcoms-navPanel-wrapper-cardName-text [ebcoms-navPanel-wrapper-cardName-text-m]", "desc": "【名称文字本体】富文本;移动端用 -text-m。官方样式表改名称字体就是打 `.ebcoms-navPanel-wrapper-cardName .ebcoms-navPanel-wrapper-cardName-text`" },
186
+ { "tag": "div", "class": "ebcoms-navPanel-wrapper-cardDesc", "desc": "描述文字(仅 showItemDesc 且 descText.nameAlias 有值;横向分组不展示)" }
187
+ ]
188
+ }
189
+ ]
190
+ }
191
+ ]
192
+ },
193
+ { "tag": "div", "class": "ebcoms-navPanel-wrapper-placeholder > ebcoms-angle > ebcoms-navPanel-wrapper-placeholder-content", "desc": "仅默认样式41(isDefault)渲染,1px 占位,用于承载 placeholder 型数字角标" },
194
+ { "tag": "div", "class": "ebcoms-navPanel-wrapper-RightArrow", "desc": "右侧箭头(@weapp/ui Icon,Icon-Right-arrow01)。默认 display:none,只在部分样式/移动端列表视图下显示——写样式时常见需求就是把它打开" }
195
+ ]
196
+ }
197
+ ]
198
+ }
199
+ ]
200
+ },
201
+
202
+ "empty": {
203
+ "desc": "【空状态】NavEmpty → @weapp/ui Empty,恒为 ui-empty",
204
+ "chain": "div.ui-empty > ( div.ui-empty-image > svg图标 ) + div.ui-empty-description",
205
+ "tips": "文案随场景变化(暂无数据 / 此分组下暂无菜单 / 请在设计器右侧属性面板『添加菜单』)。index.less 里 `.ebcoms-navPanel-wrapper-content-isEmpty .ui-empty` 被强制撑满居中,调空状态布局先看这条。"
206
+ },
207
+
208
+ "emptyCommonGroup": {
209
+ "desc": "【常用菜单分组在搭建态的空态】与上面的 Empty 不是同一套 DOM",
210
+ "chain": "div.ebcoms-navPanel-common-menus-container > div.ebcoms-navPanel-common-menus-empty > ( div.title > ui-icon + span ) + div.ebcoms-navPanel-common-menus-empty-content > div*2"
211
+ }
212
+ },
213
+
214
+ "layout": {
215
+ "main": {
216
+ "desc": "主体二选一:config.paginationDisplay=true → pagination,否则 → noGroup / group",
217
+ "noGroup": {
218
+ "when": "!enableGroup",
219
+ "tree": [
220
+ { "ref": "shared.wrapper", "children": [
221
+ { "tag": "ui-spin", "desc": "menuDataLoading 时唯一子节点" },
222
+ { "ref": "shared.innerContent", "desc": "直接挂在 wrapper 下(没有 group-item 这层)" },
223
+ { "ref": "shared.empty", "desc": "isEmpty 时渲染 emptyContent" }
224
+ ] }
225
+ ]
226
+ },
227
+ "group": {
228
+ "when": "enableGroup=true(为假时 content 为 null,什么都不渲染)",
229
+ "tag": "div",
230
+ "class": "ebcoms-navPanel-wrapper-group [ebcoms-navPanel-wrapper-group-empty] [ebcoms-navPanel-wrapper-group-{vertical|horizontal|newTab}] [ebcoms-navPanel-newTab] [ebcoms-navPanel-newTab-vertical] [ebcoms-navPanel-newTab-mobile] [ebcoms-navPanel-newTab-bottom] [ebcoms-navPanel-newTab-right] [ebcoms-navPanel-newTab-inDialog] [ebcoms-navPanel-newTab-emptyGroup]",
231
+ "desc": "⚠️ 两组类名不同源:分组模式类带 -wrapper-(ebcoms-navPanel-wrapper-group-*),而 newTab 系列类不带(ebcoms-navPanel-newTab-*)。newTab 位置类 -bottom/-right 来自选项卡组件回传的 layout;-vertical=选项卡纵向;-emptyGroup=当前分组没数据。",
232
+ "mode": {
233
+ "vertical": {
234
+ "desc": "【纵向分组,默认】每组一整块竖排",
235
+ "item": {
236
+ "tag": "div",
237
+ "class": "ebcoms-navPanel-wrapper-group-item <comId> [fromDialog]",
238
+ "desc": "⚠️ 这个容器上同时挂了『组件 id 作为 class』(源码模板串写死的),别当成 id 用。内部 = shared.innerContent。vertical 且 groupSplitting 开启时,组与组之间还有分隔条",
239
+ "children": [{ "ref": "shared.innerContent" }, { "tag": "div", "class": "ebcoms-navPanel-wrapper-group-item-split", "desc": "分隔条(background:var(--bg-base),高 20px)" }]
240
+ },
241
+ "collapse": {
242
+ "when": "同 vertical 且 config.collapseEnable=true —— 这时 item 层换成 Collapse",
243
+ "chain": "div.ui-collapse.ui-collapse--no-border.ui-collapse-group > div.ui-collapse-panel.ui-collapse-panel--has-arrow.ui-collapse-panel--active|--inactive > ( div.ui-collapse-panel__title ) + div.ui-collapse-panel__content-box.ui-collapse-panel__content",
244
+ "tips": "标题行里的组图标额外带 ebcoms-navPanel-wrapper-group-vertical-collapseIcon;箭头是 .ui-collapse-group-panel__arrow-right。展开态类名是 --active/--inactive(⚠️ group 模式下 active 语义被取反)"
245
+ }
246
+ },
247
+ "horizontal": {
248
+ "desc": "【横向分组】组在容器里绝对定位,left/top 由 JS 按瀑布流算(列优先),过渡 left/top 0.3s",
249
+ "tips": "组容器 .ebcoms-navPanel-wrapper-group-item 变成 width:140*hd 的浮动块;.ebcoms-navPanel-wrapper-content-wrapper 转成 flex-direction:column;卡片 .ebcoms-navPanel-wrapper-square 变成一行小条(flex-direction:row,无边框)。给横向分组的组块调样式优先打 .ebcoms-navPanel-wrapper-group-horizontal 限域。"
250
+ },
251
+ "newTab": {
252
+ "desc": "【选项卡分组】选项卡组件由引擎(@weapp/designer 的 DroppableView)挂载,id 固定为 #ebd_nav_panel,导航面板只负责把分组内容塞进去",
253
+ "tree": [
254
+ { "tag": "div", "id": "ebd_nav_panel", "class": "ebcom ebcom-newtab ebcoms-tab-header ...", "desc": "选项卡本体(属于 tab 组件,不是本组件的类名)。改选项卡样式请用它的类名;导航面板 index.less 只依赖 `.ebcoms-tab-header.topDropdown .nav-panel-btn` 这一个选择器" },
255
+ { "tag": "div", "class": "ebcoms-navPanel-wrapper-group-item", "desc": "当前激活分组的菜单内容(结构与 vertical 的 item 相同,但没有 <comId> 类)" },
256
+ { "tag": "div", "class": "nav-panel-btn-tabVertical", "desc": "选项卡纵向时操作按钮的落点(见 shared.operateBtn)" }
257
+ ]
258
+ }
259
+ }
260
+ }
261
+ }
262
+ },
263
+
264
+ "pagination": {
265
+ "when": "config.paginationDisplay=true(PagePanel 树,PC/移动端共用)",
266
+ "tree": [
267
+ { "ref": "shared.wrapper" },
268
+ {
269
+ "tag": "div",
270
+ "class": "ebcoms-navPanel-wrapper-content ebcoms-navPanel-wrapper-content-page [ebcoms-navPanel-wrapper-content-notEmpty|ebcoms-navPanel-wrapper-content-isEmpty]",
271
+ "desc": "注意多了 -page 后缀;-page 下 .gap-style-line-wrap-page 会强制 flex-wrap:wrap",
272
+ "children": [
273
+ { "tag": "div", "class": "ui-spin", "desc": "menuDataLoading 时的占位" },
274
+ {
275
+ "tag": "div",
276
+ "class": "ui-carousel ebcoms-navPanel-wrapper-content-carousel [ui-carousel-rtl]",
277
+ "desc": "【轮播】@weapp/ui Carousel(swiper)。分页器/箭头样式改这层里的 swiper 类",
278
+ "children": [
279
+ {
280
+ "tag": "div",
281
+ "class": "ui-carousel-swiper-content ui-carousel-swiper-{horizontal|vertical} ui-carousel-swiper-imgFill [ui-carousel-swiper-ie]",
282
+ "desc": "swiper 容器。⚠️ 导航面板把 .swiper-wrapper 设成 visibility:hidden,只让 .swiper-slide-active > div 可见(index.less)",
283
+ "children": [
284
+ { "tag": "div", "class": "swiper-container > swiper-wrapper > div.swiper-slide", "desc": "一页一个 slide" },
285
+ { "tag": "div", "class": "gap-style-line-wrap-nav [gap-style-line-arrow-padding]", "desc": "非默认样式41:一页的行容器;内部是 div.gap-style-line-wrap > shared.card", "children": [{ "tag": "div", "class": "gap-style-line-wrap", "children": [{ "ref": "shared.card" }] }] },
286
+ { "tag": "div", "class": "gap-style-line-wrap-41 gap-style-line-wrap gap-style-line-wrap-page", "desc": "默认样式41 专用的行容器(与上面是互斥分支)", "children": [{ "ref": "shared.card" }] }
287
+ ]
288
+ },
289
+ { "tag": "div", "class": "ui-carousel-pagination swiper-pagination [pagination-custom-vertical]", "desc": "分页器。bullets 里每颗是 span.swiper-pagination-bullet,激活态 .swiper-pagination-active;progressbar 变体用 .swiper-pagination-bullet-carousel + .swiper-pagination-carousel-active。官方样式表改分页激活色就是打这两个激活类" },
290
+ { "tag": "div", "class": "ui-carousel-swiper-button-next .swiper-button-next.swiper-button-white | ui-carousel-swiper-button-prev .swiper-button-prev.swiper-button-white", "desc": "仅 paginationType=arrow 时存在" }
291
+ ]
292
+ },
293
+ { "ref": "shared.empty" }
294
+ ]
295
+ }
296
+ ]
297
+ },
298
+
299
+ "commonMenus": {
300
+ "when": "config.commonMenuSwitch && showCommonMenuGroup && !menuDataLoading;searchValue 非空时整块返回 null(隐藏)",
301
+ "tag": "div",
302
+ "id": "common-menus-<comId>",
303
+ "class": "ebcoms-navPanel-common-menus-container",
304
+ "desc": "【常用菜单分组】设计态走 isDesign 分支渲染空态;预览态内嵌一个 isCommon 的 NavPanelContent —— 也就是说里面还会出现 shared.wrapper / shared.content / shared.card 的同一套类名,写选择器建议用 #common-menus-<comId> 或 .ebcoms-navPanel-common-menus-container 限域。",
305
+ "children": [
306
+ {
307
+ "tag": "div",
308
+ "class": "ebcoms-common-menus-header",
309
+ "desc": "仅 !commonSwitch 时出现(commonSwitch=true 表示常用菜单已并入选项卡)",
310
+ "children": [
311
+ { "tag": "div", "class": "ebcoms-common-menus-header-title [ebcoms-common-menus-header-m-title]", "desc": "【常用菜单标题】移动端用 -m-title;官方样式表改常用菜单标题就是打这个类", "children": [{ "tag": "div", "class": "ebcoms-assets-icon | ebcoms-assets-img", "desc": "标题图标" }] },
312
+ { "tag": "div", "class": "icon", "desc": "⚠️ 无前缀。设置齿轮(Icon-set-up-o),点击打开常用菜单设置弹窗" }
313
+ ]
314
+ },
315
+ {
316
+ "tag": "div",
317
+ "class": "ebcoms-common-menus-body",
318
+ "desc": "内部就是一套完整的导航面板(isCommon)",
319
+ "children": [
320
+ { "ref": "shared.wrapper" },
321
+ { "tag": "div", "class": "ebcoms-common-menus-body-split", "desc": "groupSplitting 开启时的分隔条" }
322
+ ]
323
+ }
324
+ ]
325
+ },
326
+
327
+ "personal": {
328
+ "when": "menuSourceType=SYSTEM_DATA_INTERFACE 且 menuSourceContent=PERSONAL 且 无导航面板样式 且 PC 且 gridLayout",
329
+ "tree": [
330
+ { "ref": "shared.wrapper", "desc": "另外带 ebcoms-navPanel-wrapper-personal" },
331
+ {
332
+ "tag": "div",
333
+ "class": "ebcoms-navPanel-personal-data ebcoms-navPanel-wrapper-content",
334
+ "desc": "⚠️ personal-data 家族用 navPanelClsPrefix(=ebcoms-navPanel),不是 -wrapper- 系列",
335
+ "children": [
336
+ {
337
+ "tag": "div",
338
+ "class": "ebcoms-navPanel-wrapper-content-wrapper > div.ebcoms-navPanel-wrapper-customCard",
339
+ "desc": "复用了普通条目的 customCard 类名",
340
+ "children": [
341
+ { "tag": "div", "class": "ui-layout-row > ui-layout-col", "desc": "@weapp/ui Layout,按模块数量 1~9 走不同栅格组合" },
342
+ {
343
+ "tag": "div",
344
+ "class": "ebcoms-navPanel-personal-data-single ebcoms-navPanel-wrapper-square [ebcoms-navPanel-personal-data-single-hover] [ebcoms-navPanel-personal-data-single-iconTitle]",
345
+ "desc": "【个人数据卡】背景色/背景图内联在这层;-iconTitle=图标+文字;-hover=悬停时才显名称",
346
+ "children": [
347
+ { "tag": "div", "class": "ebcoms-navPanel-wrapper-square", "desc": "⚠️ 里面又套了一层同名 square" },
348
+ { "tag": "div", "class": "ebcoms-navPanel-personal-data-single-name", "desc": "名称(内部 span,纯图标模式下 visibility:hidden)" },
349
+ { "tag": "div", "class": "ebcoms-navPanel-personal-data-single-num", "desc": "数字(右下角绝对定位)" }
350
+ ]
351
+ }
352
+ ]
353
+ }
354
+ ]
355
+ }
356
+ ]
357
+ },
358
+
359
+ "dialogs": {
360
+ "moreDialog": {
361
+ "desc": "【更多菜单弹窗】showMoreInDialog=true 且点了更多",
362
+ "chain": ".ui-dialog.ebcoms-navPanel-wrapper-more-dialog.ebcom [.ebcoms-navPanel-wrapper-more-dialog-empty] > ... > div.content > ( div[nav-panel 顶部] + SyncNavPanel(fromDialog) )",
363
+ "tips": "⚠️ ① 弹层挂在 body,不能拿 #<comId> 当祖先选择器;② 弹窗内的内容层类名就叫 content(局部字符串,不是引擎那个全局类);③ dialogId=`<comId>-more-dialog`;④ 官方取宽度用 `.ebcoms-navPanel-wrapper-more-dialog .ui-layout-inner-container`;⑤ 标题栏里的编辑图标是 .ui-dialog-icon.navPanel-edit-icon。"
364
+ },
365
+ "editDialog": {
366
+ "desc": "【菜单设置/编辑弹窗】(CustomCardDialog)",
367
+ "chains": [
368
+ "弹窗态:.ui-dialog.ebcoms-navPanel-wrapper-more-edit-dialog(仅 showMore 时带此类) > ... > div.ebcoms-navPanel-wrapper-more-edit-dialog-content > div.ebcoms-navPanel-wrapper-more-edit-dialog-content-header(+ h4 分组标题) + @weapp/ui List(ui-list)",
369
+ "内联态(showCustomInDialog=false 且 customizeOuterBtn!=='1'):直接渲染 div.ebcoms-navPanel-wrapper-more-edit-dialog(无 ui-dialog 外壳)",
370
+ "空态:.ebcoms-navPanel-wrapper-more-edit-dialog-empty > ui-empty + div.ebcoms-navPanel-wrapper-more-edit-dialog-empty-create"
371
+ ],
372
+ "item": ".ebcoms-navPanel-wrapper-square-dialog > .ebcoms-navPanel-wrapper-iconWrap + .ebcoms-navPanel-wrapper-iconWrap-iconname( > i.ebcoms-navPanel-wrapper-iconWrap-iconname-custom + div.ebcoms-navPanel-wrapper-iconWrap-iconname-div ) + .reduce-icon|.add-icon",
373
+ "tips": "非弹窗态还会出现两个无前缀类:.showCustom-notIn-Dialog-search / .showCustom-notIn-Dialog;底部『完成』类名是 .ebcoms-navPanel-wrapper-more-edit-dialog-content-content,右下角是 .ebcoms-navPanel-wrapper-bottom-right。"
374
+ },
375
+ "topOperateButtons": {
376
+ "desc": "【顶部操作按钮】由引擎渲染(不是本组件 DOM)。导航面板注册了 3 个自定义渲染:快捷搜索 / 更多 / 编辑菜单",
377
+ "chain": "span.ebcom-quick-search[-hover] > div.ebcom-quick-search-button > 按钮 + div.ebcom-quick-search-field[-show] > ui-input",
378
+ "tips": "⚠️ 前缀是 ebcom(引擎),不是 ebcoms。普通按钮(刷新等)是 .ebcoms-configurable-btn 体系,结构与 pageheader 的按钮一致。"
379
+ }
380
+ },
381
+
382
+ "notes": [
383
+ "【最容易写错的类名】① 分组模式类带 -wrapper-(ebcoms-navPanel-wrapper-group-*),而 newTab 位置类不带(ebcoms-navPanel-newTab-*);② 源码里写死、无 ebcoms- 前缀的:.nav-panel-btn-tabVertical、.common-group-edit-btn、.common-menus-header .icon、.gap-style-line-wrap、.more-icon;③ 个人数据用 ebcoms-navPanel-personal-data-*(-navPanel-),不是 ebcoms-navPanel-wrapper-personal-data;④ .header/.content/.footer 同样无前缀,但它们是引擎的层,别去本组件源码里找。",
384
+ "【两个同名陷阱】引擎的 .content(无前缀,组件 DOM 的容器)≠ 组件的 ebcoms-navPanel-wrapper-content(内容滚动区);引擎 .header 里的标题是 .ebcom-title,不是组件类名。",
385
+ "【引擎自动加的修饰类】`.content-no-padding > .content{padding:0}`(config.padding===false)、`.event-action-click > .content{cursor:pointer}`(绑了点击事件)、`.header.hide-header{height:0;min-height:0}`(折叠态,本组件不加)。查 padding 异常先确认是被 index.less 还是被 content-no-padding 命中的。",
386
+ "【官方样式生成器(view/getNavStyles.ts)的选择器清单】它的 CSS 全部以 `#<comId> .content ...` 限域,自写样式直接沿用同一套,可被样式面板的『自定义 CSS』吸收:普通图标 `.content .ebcoms-assets-item:not(.moreMenu):not(.customEditMenu)`;更多/编辑图标 `.ebcoms-assets-item.moreMenu` / `.customEditMenu`(含 .ui-icon .ui-icon-svg 子选择器);行 `...-wrapper-content .ebcoms-navPanel-wrapper-content-wrapper .gap-style-line-wrap`(分页行为 -nav);轮播 `...-wrapper-content-carousel`;卡片 `-wrapper-customCard .ebcoms-navPanel-wrapper-square`;图标/名称位置 `-wrapper-square-pos .ebcoms-navPanel-wrapper-square-content .ebcoms-navPanel-wrapper-iconWrap-pos|.cardName-pos`;分组标题 `-wrapper-group-title` 与 `-title-text-content`;常用菜单标题 `.ebcoms-navPanel-common-menus-container .ebcoms-common-menus-header-title`。",
387
+ "【分页 vs 单页】共用 wrapper / content / card 类名,差异:content 多 -page、行容器变 gap-style-line-wrap-nav(或 -41)、外套 @weapp/ui Carousel(ui-carousel / swiper-*)。改分页器颜色只用 swiper-pagination-active 与 swiper-pagination-carousel-active。",
388
+ "【反查源码】本组件 → view/(SyncNavPanel.tsx 分组、SyncNavPanelInnerContent.tsx 组标题+行、CustomCard.tsx 条目、PagePanel.tsx + SyncPagePanel.tsx 分页轮播、View.tsx 顶部/弹窗/底部壳、index.less)、common/CommonMenus/、personalDataCom/、design/Sync*.tsx(弹窗)、view-m/View.tsx(移动端顶部)。@weapp/ui → D:\\fwCode\\weapp-ui(empty/collapse/carousel/spin/input/menu/icon)。引擎(外壳 / header / content / footer / 标题 / 按钮 / 顶部操作按钮)→ D:\\fwCode\\weapp-ebdcoms/src/components/core/:view/createView.tsx、view/Content.tsx、design/createDesign.tsx、design/common.less、style/getBasicStyles.ts、utils/comp.ts、view/TitleIconCom/、view/operation-btns/、common/button-config/ConfigurableButton.tsx、constants/index.ts(clsPrefix=ebcoms、ebcomPrefix=ebcom)。设计器侧 id 落点 → D:\\fwCode\\weapp-designer/src/core/view/internal/Container.tsx。"
389
+ ]
390
+ }