weaver-e10-builder 1.2.2 → 1.2.5

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 (274) hide show
  1. package/README.md +8 -19
  2. package/dist/commands/actionflow.d.ts.map +1 -1
  3. package/dist/commands/actionflow.js +14 -1
  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-add-detail-table.d.ts.map +1 -1
  10. package/dist/commands/form-add-detail-table.js +127 -7
  11. package/dist/commands/form-add-detail-table.js.map +1 -1
  12. package/dist/commands/form-ebuilder-columns.d.ts +7 -0
  13. package/dist/commands/form-ebuilder-columns.d.ts.map +1 -1
  14. package/dist/commands/form-ebuilder-columns.js +2 -24
  15. package/dist/commands/form-ebuilder-columns.js.map +1 -1
  16. package/dist/commands/form-field-lang.d.ts.map +1 -1
  17. package/dist/commands/form-field-lang.js +4 -39
  18. package/dist/commands/form-field-lang.js.map +1 -1
  19. package/dist/commands/form-formula.d.ts.map +1 -1
  20. package/dist/commands/form-formula.js +35 -11
  21. package/dist/commands/form-formula.js.map +1 -1
  22. package/dist/commands/form-layout-init.d.ts.map +1 -1
  23. package/dist/commands/form-layout-init.js +15 -10
  24. package/dist/commands/form-layout-init.js.map +1 -1
  25. package/dist/commands/form-layout.js +24 -21
  26. package/dist/commands/form-layout.js.map +1 -1
  27. package/dist/commands/form-native.d.ts.map +1 -1
  28. package/dist/commands/form-native.js +181 -0
  29. package/dist/commands/form-native.js.map +1 -1
  30. package/dist/commands/form-nlist.d.ts +1 -1
  31. package/dist/commands/form-nlist.d.ts.map +1 -1
  32. package/dist/commands/form-nlist.js +5 -3
  33. package/dist/commands/form-nlist.js.map +1 -1
  34. package/dist/commands/form-validate.d.ts.map +1 -1
  35. package/dist/commands/form-validate.js +11 -3
  36. package/dist/commands/form-validate.js.map +1 -1
  37. package/dist/commands/form.d.ts.map +1 -1
  38. package/dist/commands/form.js +168 -90
  39. package/dist/commands/form.js.map +1 -1
  40. package/dist/commands/menu.d.ts.map +1 -1
  41. package/dist/commands/menu.js +170 -23
  42. package/dist/commands/menu.js.map +1 -1
  43. package/dist/commands/wf-form.d.ts +1 -0
  44. package/dist/commands/wf-form.d.ts.map +1 -1
  45. package/dist/commands/wf-form.js +44 -13
  46. package/dist/commands/wf-form.js.map +1 -1
  47. package/dist/commands/workflow-auth-resp.d.ts.map +1 -1
  48. package/dist/commands/workflow-auth-resp.js +69 -8
  49. package/dist/commands/workflow-auth-resp.js.map +1 -1
  50. package/dist/commands/workflow-node-assign-flow.d.ts +3 -0
  51. package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -0
  52. package/dist/commands/workflow-node-assign-flow.js +341 -0
  53. package/dist/commands/workflow-node-assign-flow.js.map +1 -0
  54. package/dist/commands/workflow-node.d.ts +2 -0
  55. package/dist/commands/workflow-node.d.ts.map +1 -1
  56. package/dist/commands/workflow-node.js +219 -48
  57. package/dist/commands/workflow-node.js.map +1 -1
  58. package/dist/commands/workflow-odoc.d.ts.map +1 -1
  59. package/dist/commands/workflow-odoc.js +56 -56
  60. package/dist/commands/workflow-odoc.js.map +1 -1
  61. package/dist/commands/workflow-setting.d.ts.map +1 -1
  62. package/dist/commands/workflow-setting.js +77 -1
  63. package/dist/commands/workflow-setting.js.map +1 -1
  64. package/dist/commands/workflow.d.ts.map +1 -1
  65. package/dist/commands/workflow.js +36 -80
  66. package/dist/commands/workflow.js.map +1 -1
  67. package/dist/core/auth.js +1 -1
  68. package/dist/core/client.d.ts +14 -0
  69. package/dist/core/client.d.ts.map +1 -1
  70. package/dist/core/client.js +28 -12
  71. package/dist/core/client.js.map +1 -1
  72. package/dist/index.js +4 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/services/actionflow/command_output.d.ts +7 -0
  75. package/dist/services/actionflow/command_output.d.ts.map +1 -1
  76. package/dist/services/actionflow/command_output.js +46 -0
  77. package/dist/services/actionflow/command_output.js.map +1 -1
  78. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  79. package/dist/services/actionflow/components/action_eb_add.js +14 -4
  80. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  81. package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
  82. package/dist/services/actionflow/components/action_eb_add_compiler.js +29 -0
  83. package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
  84. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  85. package/dist/services/actionflow/components/action_eb_update.js +23 -8
  86. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  87. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
  88. package/dist/services/actionflow/components/action_eb_update_compiler.js +239 -6
  89. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  90. package/dist/services/actionflow/components/assign_var.d.ts +12 -0
  91. package/dist/services/actionflow/components/assign_var.d.ts.map +1 -0
  92. package/dist/services/actionflow/components/assign_var.js +133 -0
  93. package/dist/services/actionflow/components/assign_var.js.map +1 -0
  94. package/dist/services/actionflow/components/custom_set_form.d.ts +10 -0
  95. package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -0
  96. package/dist/services/actionflow/components/custom_set_form.js +65 -0
  97. package/dist/services/actionflow/components/custom_set_form.js.map +1 -0
  98. package/dist/services/actionflow/components/custom_trigger.d.ts +2 -2
  99. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
  100. package/dist/services/actionflow/components/custom_trigger.js +7 -10
  101. package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
  102. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  103. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  104. package/dist/services/actionflow/components/index.d.ts.map +1 -1
  105. package/dist/services/actionflow/components/index.js +9 -0
  106. package/dist/services/actionflow/components/index.js.map +1 -1
  107. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  108. package/dist/services/actionflow/components/output.js +6 -1
  109. package/dist/services/actionflow/components/output.js.map +1 -1
  110. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  111. package/dist/services/actionflow/context_preflight.js +13 -6
  112. package/dist/services/actionflow/context_preflight.js.map +1 -1
  113. package/dist/services/actionflow/context_provider.d.ts.map +1 -1
  114. package/dist/services/actionflow/context_provider.js +3 -2
  115. package/dist/services/actionflow/context_provider.js.map +1 -1
  116. package/dist/services/actionflow/dynamic_resources.d.ts +7 -1
  117. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  118. package/dist/services/actionflow/dynamic_resources.js +65 -8
  119. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  120. package/dist/services/actionflow/ebuilder_source.d.ts +19 -0
  121. package/dist/services/actionflow/ebuilder_source.d.ts.map +1 -0
  122. package/dist/services/actionflow/ebuilder_source.js +78 -0
  123. package/dist/services/actionflow/ebuilder_source.js.map +1 -0
  124. package/dist/services/actionflow/form_source.d.ts +76 -0
  125. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  126. package/dist/services/actionflow/form_source.js +195 -1
  127. package/dist/services/actionflow/form_source.js.map +1 -1
  128. package/dist/services/actionflow/formula_service.d.ts +4 -1
  129. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  130. package/dist/services/actionflow/formula_service.js +97 -23
  131. package/dist/services/actionflow/formula_service.js.map +1 -1
  132. package/dist/services/actionflow/preflight_service.d.ts +6 -0
  133. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  134. package/dist/services/actionflow/preflight_service.js +211 -3
  135. package/dist/services/actionflow/preflight_service.js.map +1 -1
  136. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  137. package/dist/services/actionflow/workflow_compiler.js +83 -15
  138. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  139. package/dist/services/designer-css.d.ts +89 -0
  140. package/dist/services/designer-css.d.ts.map +1 -0
  141. package/dist/services/designer-css.js +163 -0
  142. package/dist/services/designer-css.js.map +1 -0
  143. package/dist/services/dom-structure.d.ts +42 -0
  144. package/dist/services/dom-structure.d.ts.map +1 -0
  145. package/dist/services/dom-structure.js +251 -0
  146. package/dist/services/dom-structure.js.map +1 -0
  147. package/dist/services/form-create.d.ts +2 -1
  148. package/dist/services/form-create.d.ts.map +1 -1
  149. package/dist/services/form-create.js.map +1 -1
  150. package/dist/services/form-ebuilder-columns.d.ts +50 -0
  151. package/dist/services/form-ebuilder-columns.d.ts.map +1 -0
  152. package/dist/services/form-ebuilder-columns.js +68 -0
  153. package/dist/services/form-ebuilder-columns.js.map +1 -0
  154. package/dist/services/form-field-drop.d.ts +30 -1
  155. package/dist/services/form-field-drop.d.ts.map +1 -1
  156. package/dist/services/form-field-drop.js +60 -0
  157. package/dist/services/form-field-drop.js.map +1 -1
  158. package/dist/services/form-field-patch.d.ts +69 -0
  159. package/dist/services/form-field-patch.d.ts.map +1 -0
  160. package/dist/services/form-field-patch.js +117 -0
  161. package/dist/services/form-field-patch.js.map +1 -0
  162. package/dist/services/form-i18n-label.d.ts +48 -0
  163. package/dist/services/form-i18n-label.d.ts.map +1 -0
  164. package/dist/services/form-i18n-label.js +91 -0
  165. package/dist/services/form-i18n-label.js.map +1 -0
  166. package/dist/services/form-nlist.d.ts +1 -0
  167. package/dist/services/form-nlist.d.ts.map +1 -1
  168. package/dist/services/form-nlist.js +32 -5
  169. package/dist/services/form-nlist.js.map +1 -1
  170. package/dist/services/form-style-template.d.ts +6 -2
  171. package/dist/services/form-style-template.d.ts.map +1 -1
  172. package/dist/services/form-style-template.js +8 -4
  173. package/dist/services/form-style-template.js.map +1 -1
  174. package/dist/services/form-sub-detail.d.ts +51 -3
  175. package/dist/services/form-sub-detail.d.ts.map +1 -1
  176. package/dist/services/form-sub-detail.js +183 -20
  177. package/dist/services/form-sub-detail.js.map +1 -1
  178. package/dist/services/formula-detail.d.ts +68 -5
  179. package/dist/services/formula-detail.d.ts.map +1 -1
  180. package/dist/services/formula-detail.js +110 -44
  181. package/dist/services/formula-detail.js.map +1 -1
  182. package/dist/services/menu-catalog.d.ts +84 -0
  183. package/dist/services/menu-catalog.d.ts.map +1 -0
  184. package/dist/services/menu-catalog.js +183 -0
  185. package/dist/services/menu-catalog.js.map +1 -0
  186. package/dist/services/rich-text.d.ts +33 -0
  187. package/dist/services/rich-text.d.ts.map +1 -0
  188. package/dist/services/rich-text.js +134 -0
  189. package/dist/services/rich-text.js.map +1 -0
  190. package/dist/services/workflow-add-step.d.ts +45 -0
  191. package/dist/services/workflow-add-step.d.ts.map +1 -0
  192. package/dist/services/workflow-add-step.js +122 -0
  193. package/dist/services/workflow-add-step.js.map +1 -0
  194. package/dist/services/workflow-assign-flow.d.ts +109 -0
  195. package/dist/services/workflow-assign-flow.d.ts.map +1 -0
  196. package/dist/services/workflow-assign-flow.js +306 -0
  197. package/dist/services/workflow-assign-flow.js.map +1 -0
  198. package/dist/services/workflow-drawback.d.ts +19 -0
  199. package/dist/services/workflow-drawback.d.ts.map +1 -0
  200. package/dist/services/workflow-drawback.js +59 -0
  201. package/dist/services/workflow-drawback.js.map +1 -0
  202. package/dist/services/workflow-links.d.ts +51 -0
  203. package/dist/services/workflow-links.d.ts.map +1 -0
  204. package/dist/services/workflow-links.js +162 -0
  205. package/dist/services/workflow-links.js.map +1 -0
  206. package/dist/services/workflow-node-layout.d.ts +45 -4
  207. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  208. package/dist/services/workflow-node-layout.js +142 -41
  209. package/dist/services/workflow-node-layout.js.map +1 -1
  210. package/dist/services/workflow-node-menu.d.ts +57 -0
  211. package/dist/services/workflow-node-menu.d.ts.map +1 -0
  212. package/dist/services/workflow-node-menu.js +144 -0
  213. package/dist/services/workflow-node-menu.js.map +1 -0
  214. package/dist/services/workflow-odoc-setting.d.ts +43 -0
  215. package/dist/services/workflow-odoc-setting.d.ts.map +1 -0
  216. package/dist/services/workflow-odoc-setting.js +100 -0
  217. package/dist/services/workflow-odoc-setting.js.map +1 -0
  218. package/dist/services/workflow-tab-config.d.ts +54 -0
  219. package/dist/services/workflow-tab-config.d.ts.map +1 -0
  220. package/dist/services/workflow-tab-config.js +137 -0
  221. package/dist/services/workflow-tab-config.js.map +1 -0
  222. package/dist/types.d.ts +5 -1
  223. package/dist/types.d.ts.map +1 -1
  224. package/package.json +1 -1
  225. package/skill-docs/SKILL.md +8 -7
  226. package/skill-docs/_catalog.md +81 -77
  227. package/skill-docs/actionflows/SKILL.md +170 -167
  228. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +39 -2
  229. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +42 -0
  230. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -33
  231. package/skill-docs/actionflows/references/components/logic/Output.md +2 -0
  232. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +16 -11
  233. package/skill-docs/assets/dom-structure/Bar.json +341 -0
  234. package/skill-docs/assets/dom-structure/BarStack.json +341 -0
  235. package/skill-docs/assets/dom-structure/Bubble.json +323 -0
  236. package/skill-docs/assets/dom-structure/Calendar.json +515 -0
  237. package/skill-docs/assets/dom-structure/Circular.json +337 -0
  238. package/skill-docs/assets/dom-structure/CollapsePanel.json +289 -0
  239. package/skill-docs/assets/dom-structure/Comment.json +617 -0
  240. package/skill-docs/assets/dom-structure/CountDown.json +755 -0
  241. package/skill-docs/assets/dom-structure/DigitalPanel.json +191 -0
  242. package/skill-docs/assets/dom-structure/EbButton.json +387 -0
  243. package/skill-docs/assets/dom-structure/FastCreate.json +242 -0
  244. package/skill-docs/assets/dom-structure/Gauge.json +282 -0
  245. package/skill-docs/assets/dom-structure/HBar.json +336 -0
  246. package/skill-docs/assets/dom-structure/HBarStack.json +337 -0
  247. package/skill-docs/assets/dom-structure/Line.json +341 -0
  248. package/skill-docs/assets/dom-structure/NList.json +712 -0
  249. package/skill-docs/assets/dom-structure/NavBar.json +274 -0
  250. package/skill-docs/assets/dom-structure/NavPanel.json +390 -0
  251. package/skill-docs/assets/dom-structure/NewTab.json +606 -0
  252. package/skill-docs/assets/dom-structure/Nightingale.json +336 -0
  253. package/skill-docs/assets/dom-structure/PageHeader.json +205 -0
  254. package/skill-docs/assets/dom-structure/Picture.json +209 -0
  255. package/skill-docs/assets/dom-structure/Pie.json +338 -0
  256. package/skill-docs/assets/dom-structure/ProgressChart.json +299 -0
  257. package/skill-docs/assets/dom-structure/SearchGlobal.json +628 -0
  258. package/skill-docs/assets/dom-structure/Slide.json +489 -0
  259. package/skill-docs/assets/dom-structure/Treemap.json +324 -0
  260. package/skill-docs/references/common/guide-plan-template.md +254 -251
  261. package/skill-docs/references/common/ref-cli-commands.md +537 -519
  262. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +12 -1
  263. package/skill-docs/references/ebuilder-designer/guide-designer-css.md +127 -0
  264. package/skill-docs/references/ebuilder-designer/guide-designer.md +6 -5
  265. package/skill-docs/references/form/guide-create-form.md +233 -232
  266. package/skill-docs/references/form/guide-form-formula-functions.md +11 -1
  267. package/skill-docs/references/form/guide-form-layout-planning.md +1 -1
  268. package/skill-docs/references/form/guide-form-linkage.md +28 -2
  269. package/skill-docs/references/form/guide-form-sub-detail.md +82 -0
  270. package/skill-docs/references/form/guide-list-custom-text.md +52 -0
  271. package/skill-docs/references/menu/system-menus.md +12 -0
  272. package/skill-docs/references/workflow/guide-workflow-auth-resp.md +198 -190
  273. package/skill-docs/references/workflow/guide-workflow-odoc.md +22 -2
  274. package/skill-docs/references/workflow/guide-workflow.md +25 -3
@@ -0,0 +1,289 @@
1
+ {
2
+ "component": "collapse-panel 折叠面板(weapp-ebddatacoms/src/components/collapse-panel,引擎类型 CollapsePanel → 外壳类名 ebcom-collapsepanel)",
3
+ "usage": "四种场景(运行态/设计态 × PC/移动端)共用同一套面板项骨架,骨架细节全在 shared.panel 里。先按 pickTree 判断落在哪棵树拿到前缀映射,再进 shared.panel 找节点。用户说『改标题』时先确认要改的是标题栏本体(div.ui-collapse-panel__title)、名字(span.ebcoms-collapse-panel-title)、展开图标(span.ebcoms-collapse-panel-title-icon)还是操作按钮区(div.ebcoms-panel-operations-wrap),这四个都在标题栏里平级。",
4
+ "legend": {
5
+ "[cls]": "条件class,满足业务条件才挂载",
6
+ "{a|b}": "多选一class(同一位置按配置换成其中一个)",
7
+ "a > b": "父子层级压缩写法,冒号左边是右边的父级",
8
+ "ref": "引用 shared 里的复用片段,写成 ref:shared.xxx",
9
+ "uncontrolled": "第三方渲染(设计器拖拽层、子组件),内部结构不可控,只给挂载点",
10
+ "<comId>": "组件实例 id;引擎外壳的 id 与组件根上的 data-id 都是它,官方样式作用域写成 #<comId>.ebcom",
11
+ "ebcoms-": "组件自己写的类名前缀(clsPrefix='ebcoms')",
12
+ "ebcom-": "引擎/框架层的类名前缀(ebcomPrefix='ebcom'),折叠面板源码里搜不到",
13
+ "ui- / ui-m-": "@weapp/ui 的类名;折叠面板前缀 collapsePrefix='ui-collapse'、mCollapseClsPrefix='ui-m-collapse',两者结构完全一样,只差前缀"
14
+ },
15
+ "pickTree": "两步。① 运行态还是设计态:外壳 class 含 ebcom-view 是页面运行态,含 ebcom-design 是设计器设计态 —— 两者面板内容区完全不同(运行态是 div.content-box.ebcom + 引擎渲染的子组件;设计态是 div.ebcoms-collapse-panel-droppable-warp + 设计器拖拽层)。② 端:page.client==='MOBILE' 走移动端树(源码 view-m / design-m),否则 PC 树。移动端只换前缀:ui-collapse→ui-m-collapse、ebcoms-collapse-panel-content→ebcoms-m-collapse-panel-content、ebcoms-panel-operations-wrap→ebcoms-m-panel-operations-wrap、ebcoms-collapse-panel-droppable-warp→ebcoms-m-collapse-panel-droppable-warp,骨架不变。",
16
+ "root": {
17
+ "tag": "div",
18
+ "id": "<comId>",
19
+ "class": [
20
+ "ebcom",
21
+ "ebcom-collapsepanel",
22
+ "{ebcom-grid|ebcom-flow|ebcom-excel}",
23
+ "[ebcom-m]",
24
+ "{ebcom-view|ebcom-design}",
25
+ "[has-no-header]",
26
+ "[event-action-click]",
27
+ "<布局/设计器追加的类名>"
28
+ ],
29
+ "desc": "引擎外壳,由 weapp-ebdcoms 的 createView.renderView(运行态)/ createDesign.renderDesign(设计态)生成,不在本组件源码里。类型名拼成 ebcom-collapsepanel,布局拼成 ebcom-grid/ebcom-flow/ebcom-excel,移动端多一个 ebcom-m,运行态是 ebcom-view、设计态是 ebcom-design。配置了点击事件动作时运行态会加 event-action-click。官方样式作用域就是 #<comId>.ebcom(getCollapsePanelStyles 生成的规则被它限域)。",
30
+ "tips": [
31
+ "has-no-header 基本常驻:collapse-panel 的 Design/View defaultOpts 里 titleEnabled 默认 false,且组件没有 renderHeader,所以标题栏不存在、外壳带 has-no-header",
32
+ "不会出现的类名:content-no-padding(组件没声明 padding=false)、mask(Design.defaultOpts 没开 mask)、standalone",
33
+ "折叠面板的样式生成器还会接受 .ebcoms-com-collapsepanel 这个作用域类(pretreatCssCode 会把它剥掉),但 DOM 上并没有这个类,别拿它当选择器"
34
+ ],
35
+ "children": [
36
+ {
37
+ "tag": "div",
38
+ "class": ["header"],
39
+ "when": "titleEnabled===true 才有;折叠面板默认 false,通常看不到",
40
+ "children": [
41
+ { "tag": "div", "class": ["ebcom-title"], "desc": "引擎渲染的组件标题(有 {xx} 动态语法时换成 TransformContent 的 div,类名同样是 ebcom-title)" },
42
+ { "tag": "div", "class": ["ebcoms-header-btns"], "desc": "标题栏操作按钮组(wrapClass 传入)" }
43
+ ]
44
+ },
45
+ {
46
+ "tag": "div",
47
+ "class": ["content"],
48
+ "desc": "引擎内容槽(createView.renderContent)。⚠️ 同一层级里还有 .header/.footer,且组件内部也用了 content-box / content 字样的类名,写选择器时注意层级:common/index.less 里 .ebcom-collapsepanel > .content 说的就是这一层",
49
+ "children": ["ref:shared.comRoot"]
50
+ },
51
+ {
52
+ "tag": "div",
53
+ "class": ["footer"],
54
+ "when": "footerEnabled===true 才有;折叠面板 Design.defaultProps 里 footerEnabled:false",
55
+ "desc": "引擎底部按钮区"
56
+ }
57
+ ]
58
+ },
59
+ "shared": {
60
+ "comRoot": {
61
+ "tag": "div",
62
+ "class": [
63
+ "{ebcoms-collapse-panel-content|ebcoms-m-collapse-panel-content}",
64
+ "ebcoms-collapse-panel-content-distance"
65
+ ],
66
+ "desc": "组件根(ViewContent.render 的最外层),PC 是 ebcoms-collapse-panel-content,移动端是 ebcoms-m-collapse-panel-content;两种情况都额外带 content-distance(控制面板间距/圆角)。运行态引擎会在这层写 data-id=<comId>。里面直接就是 @weapp/ui 的 Collapse 根。",
67
+ "tips": [
68
+ "自己写的规则建议用 #<comId> 限域,或 #<comId> .ebcoms-collapse-panel-content,别只写 .content(会命中引擎内容槽)",
69
+ "less 已给这层 padding:0 / flex 竖排 / height:100%,不要重复写"
70
+ ]
71
+ },
72
+ "collapseRoot": {
73
+ "desc": "折叠面板列表容器(@weapp/ui Collapse)。组件固定传 bordered={false},没传 type(默认 normal),所以类名恒为 --no-border + -normal;less 里若有 --has-border 的钩子不要照着写。四个场景只差前缀:PC 是 ui-collapse*,移动端是 ui-m-collapse*。",
74
+ "chain": "div.{ui-collapse|ui-m-collapse}.{ui-collapse--no-border|ui-m-collapse--no-border}.{ui-collapse-normal|ui-m-collapse-normal}",
75
+ "children": ["ref:shared.panel"]
76
+ },
77
+ "panel": {
78
+ "desc": "一个面板项(@weapp/ui Collapse.Panel),config.panels 里 hide!==true 的项各渲染一个,顺序与配置一致。组件只传了 title / iconPosition,其余由 Collapse 注入(active、isLast、bordered、isClickOnRow 等)。accordion 由 spreadType==='mutex' 决定;parataxis 且 expandAll 时会有多个面板同时 active。",
79
+ "chain": "div.ui-collapse-panel[.ui-collapse-panel--has-arrow]{--active|--inactive} > div.ui-collapse-panel__title + div.ui-collapse-panel__content-box > div.ui-collapse-panel__content",
80
+ "tips": [
81
+ "面板根上 has-arrow 常驻;展开收起只切 --active / --inactive(less 已按它给了标题底色 var(--primary) 和文字/图标颜色),不要自己再写展开态",
82
+ "--active 时标题栏底色 = var(--primary)、图标 svg 与标题文字 = #fff;--inactive 时底色 #fff、文字 #666 —— 这几条 less 里已经写好",
83
+ "移动端的 div.ui-m-collapse-panel 类名与 PC 一一对应,把 ui-collapse → ui-m-collapse 即可"
84
+ ],
85
+ "children": [
86
+ {
87
+ "tag": "div",
88
+ "class": [
89
+ "ui-collapse-panel__title",
90
+ "ui-collapse-panel__title--bg-default",
91
+ "[mirror-text]"
92
+ ],
93
+ "desc": "标题栏(点击整行展开/收起)。--bg-default 来自组件传的 panelTitleBackground='default';RTL 语言加 mirror-text。⚠️ 同一个 classnames 里还有 --bg-none / 无修饰三种分支,只有 --bg-default 出现。",
94
+ "children": [
95
+ {
96
+ "tag": "span",
97
+ "class": [
98
+ "[ui-collapse-panel__arrow-right]",
99
+ "[needRTL]"
100
+ ],
101
+ "desc": "展开/收缩图标的包裹 span,由 @weapp/ui Panel.renderIcon 生成,里面装的是组件 customIconRender 的返回值(操作按钮区 + 图标)。⚠️ 只有 iconPosition==='right' 时才有 ui-collapse-panel__arrow-right(less 里给它 position:absolute;right:0;top:0;bottom:0)。系统样式 2/6/7(getPanelIconPosition 返回 'left')时 iconPosition==='left',这个 span 的 class 是空的(只有 needRTL 时是 needRTL),此时定位只能靠 .ebcoms-collapse-panel-title-icon",
102
+ "children": [
103
+ {
104
+ "tag": "div",
105
+ "class": [
106
+ "{ebcoms-panel-operations-wrap|ebcoms-m-panel-operations-wrap}",
107
+ "[{ebcoms-panel-operations-toright|ebcoms-m-panel-operations-toright}]"
108
+ ],
109
+ "when": "Content.renderComBtns 的返回值。渲染条件(取反看):面板不存在 / 面板下没有第一个子组件 / 子组件开了 titleEnabled / 子组件还没 loading 完 / 子组件是新列表 NList 之一不满足时反而会渲染这个空壳;子组件存在且不是 NList 时 renderComBtns 返回空 fragment,这一层不存在",
110
+ "desc": "面板标题右侧的自定义操作按钮容器(里面是 ExtraContent,只有事件动作的 NEWTAB_RENDER_EXTRA_CONTENT 注入过内容才有东西)。toright 是 iconPosition==='left' 时挂的反向定位类(less 已给 right:16px 绝对定位)。",
111
+ "tips": [
112
+ "less 里已有钩子:.ebcoms-panel-operations-wrap .ebcoms-header-btns{position:static;max-width:100%}、.ebcoms-panel-operations-toright{position:absolute;right:16px;top:50%}",
113
+ "移动端前缀换成 ebcoms-m-panel-operations-wrap / ebcoms-m-panel-operations-toright"
114
+ ]
115
+ },
116
+ {
117
+ "tag": "span",
118
+ "class": ["ui-icon", "ui-icon-wrapper", "ebcoms-collapse-panel-title-icon"],
119
+ "desc": "@weapp/ui Icon(size='s',className 由组件传入,会拼到 wrapper 上)。内部是 svg.ui-icon-svg.ui-icon-s.<图标名>;图标按系统样式 id 取(getPanelPositionIcon):默认 Icon-Down-arrow01/Icon-Right-arrow01,样式 2/4 是 arrow04,样式 5 是 arrow03,样式 6 是 Icon-reduce01/Icon-add-to01;active 用第一个、inactive 用第二个。RTL 时 wrapper 上多 mirror-text。",
120
+ "tips": "改图标颜色写 .ebcoms-collapse-panel-title-icon .ui-icon-svg(less 里两处展开态规则就是这么写的),别写 .ui-icon"
121
+ }
122
+ ]
123
+ },
124
+ {
125
+ "tag": "span",
126
+ "class": ["ebcoms-assets-item", "s", "{ebcoms-assets-svg|ebcoms-assets-icon|ebcoms-assets-img}"],
127
+ "when": "config.panels[n].icon 存在时才有(引擎的 AssetsItem,size='s' 所以类名里有个裸类 s)",
128
+ "desc": "面板图标素材。三种形态:icon.path 以 /svg 结尾 → span.ebcoms-assets-svg(内含 react-inlinesvg 的 svg);以 # 开头 → span.ebcoms-assets-icon(内含 @weapp/ui Icon/AppIcon/IconFont);其余 → img.ebcoms-assets-img。less 已给 .ebcoms-assets-item{margin-right:4px}。",
129
+ "tips": "要统一控制尺寸/间距就写 .ebcoms-assets-item(三种形态都有这个类),不要只写 ebcoms-assets-img"
130
+ },
131
+ {
132
+ "tag": "span",
133
+ "class": ["ebcoms-collapse-panel-title", "[ebcoms-collapse-panel-text-ellipsis]"],
134
+ "desc": "标题文字容器。text-ellipsis 只在设计态(isDesign)挂上;运行态的省略号靠内层 PanelName 的 div。less 已给:运行态 font-size 12px / max-width 80% / flex 居中,展开时文字变 #fff。",
135
+ "children": [
136
+ {
137
+ "tag": "div",
138
+ "class": ["ebcoms-collapse-panel-name"],
139
+ "when": "仅运行态(isDesign=false)。设计态直接渲染纯文本,没有这一层",
140
+ "desc": "面板名容器,带 title 属性(鼠标悬浮的完整名称)。里面是 ebdcoms 的 TransformContent:mode 默认 normal,所以渲染 div.ebcoms-collapse-panel-name-item.ebcoms-collapse-panel-text-ellipsis(有同环比等特殊字段时内部还会出 div.ebcoms-transform-content-custom 或按钮组件 div;hasTrans 时 name-item 上多 ebcoms-transform-content-hasTrans)。less 已给 .ebcoms-collapse-panel-name{width:100%} 和 text-ellipsis 三件套。",
141
+ "tips": "中文名称、数据集占位符、动态参数都在这层被替换,改文字样式写 .ebcoms-collapse-panel-title 或 .ebcoms-collapse-panel-name-item"
142
+ },
143
+ {
144
+ "tag": "span",
145
+ "class": ["count"],
146
+ "when": "面板下第一个子组件开了「显示数量」(showCount) 且计数成功、displayCount>−1 时才有,文案形如 ' (12)'",
147
+ "desc": "数量徽标(common/Count.tsx 渲染的裸类名 span.count)。less 已给 .ui-collapse-panel__title .count{padding-left:3px}(PC/移动端各一条)。"
148
+ }
149
+ ]
150
+ }
151
+ ]
152
+ },
153
+ {
154
+ "tag": "div",
155
+ "class": ["ui-collapse-panel__content-box"],
156
+ "when": "LazyMount 包裹:面板第一次 active 之前 DOM 里完全没有这个节点;active 过一次后即使收起也一直在(只是 height:0 + overflow:hidden)",
157
+ "desc": "内容区外层,由 AnimateHeight 渲染,行内写死 height(active 时 auto/收起时 0)与 transition: height 160ms、overflow:hidden。less 钩子:组件层已把 padding 归零、background 透明,ui 层默认的 padding 也被覆盖。",
158
+ "children": [
159
+ {
160
+ "tag": "div",
161
+ "class": ["ui-collapse-panel__content"],
162
+ "children": ["ref:shared.panelContent"]
163
+ }
164
+ ]
165
+ }
166
+ ]
167
+ },
168
+ "panelContent": {
169
+ "desc": "面板内容区(放子组件的地方),运行态与设计态是两个完全不同的分支,用 #<comId> .ebcom-collapsepanel.ebcom-view / .ebcom-design 区分。",
170
+ "branchView": {
171
+ "when": "运行态(isDesign=false)",
172
+ "chain": "div.content-box.ebcom[id=<linkedNodes[panelId]>] > 子组件外壳…",
173
+ "desc": "内容容器,固定类名 content-box + ebcom(classnames(`content-box ${ebcomPrefix}`)),id 取 config.flow.linkedNodes[panelId](没关联时是空 id)。里面由 @weapp/designer 的 DroppableView 直接渲染子组件(不可控),每个子组件是引擎外壳 div#<childComId>.ebcom.ebcom-<type>。⚠️ RTL 时 less 给 .content-box.ebcom 做了 scaleX(-1),别在内部再翻一次。",
174
+ "tips": "用户说『面板内容区/子组件区域』时指的就是这层;要改内边距写 #<comId> .content-box,less 里 .ui-collapse-panel__content 已经被组件置为 padding:0"
175
+ },
176
+ "branchDesign": {
177
+ "when": "设计态(isDesign=true)",
178
+ "chain": "div.ebcoms-collapse-panel-droppable-warp[.panelEmpty] > 设计器拖拽层",
179
+ "desc": "设计态的拖拽包裹层(PC 是 ebcoms-collapse-panel-droppable-warp,移动端是 ebcoms-m-collapse-panel-droppable-warp),panelEmpty 在面板容器下没有任何子组件时挂上。里面的 Droppable 由设计器渲染(uncontrolled),不保证内部结构;空面板时它内部会渲染 div.weapp-ebde-droppable-empty(less 已给字号/颜色/圆角/min-height:178px 的样式钩子)。less 里 .ebcoms-collapse-panel-droppable-warp > div:first-child{height:auto!important} 正好作用在这层。",
180
+ "tips": [
181
+ "条件分支:只有 props.Droppable 不是函数时才渲染上面这条链;否则渲染空的 div.ebcoms-collapse-panel-demoManage(less 给 min-height:150px),DOM 里没有拖拽层",
182
+ "设计态另一种空态提示在移动端:.ebcom-collapsepanel.ebcom-design .weapp-ebde-droparea-m .ebcoms-empty.ebcoms-empty-text(less 已定义)"
183
+ ]
184
+ }
185
+ },
186
+ "state": {
187
+ "desc": "运行期动态变化(初始 render 里没有),写样式时按「可能出现」对待",
188
+ "list": [
189
+ {
190
+ "condition": "展开/收起某个面板(点标题栏行,或事件动作调 doActive/doInactive、切换 spreadType)",
191
+ "targetSelector": "对应 div.ui-collapse-panel",
192
+ "addClass": "ui-collapse-panel--active / ui-collapse-panel--inactive",
193
+ "note": "纯 state 切换(contextApi 不做 DOM 操作);首次展开才会挂载 content-box"
194
+ },
195
+ {
196
+ "condition": "面板 active 且首次展开",
197
+ "targetSelector": "div.ui-collapse-panel__content-box",
198
+ "addClass": "(新增节点)",
199
+ "note": "AnimateHeight 动画期间 height 在 0→实际值→auto 之间变化,transition/overflow 是行内样式,别在 CSS 里覆盖 height"
200
+ },
201
+ {
202
+ "condition": "子列表计数刷新(count.updateRefresh)/ 筛选条件变化",
203
+ "targetSelector": "span.ebcoms-collapse-panel-title .count",
204
+ "addClass": "(文本变化,无类名变化)"
205
+ },
206
+ {
207
+ "condition": "组件被事件动作隐藏",
208
+ "targetSelector": "引擎外壳 #<comId>",
209
+ "addClass": "ebcom-display-none",
210
+ "note": "同时写 style.display='none'"
211
+ }
212
+ ]
213
+ }
214
+ },
215
+ "view-pc": {
216
+ "when": "页面运行态(外壳含 ebcom-view)且 page.client!=='MOBILE';源码 view/View.tsx → view/Content.tsx → view/ViewContent.tsx",
217
+ "tree": [
218
+ "div.content(引擎内容槽)",
219
+ "ref:shared.comRoot → class 为 ebcoms-collapse-panel-content ebcoms-collapse-panel-content-distance",
220
+ "ref:shared.collapseRoot → div.ui-collapse.ui-collapse--no-border.ui-collapse-normal",
221
+ "ref:shared.panel(每个面板项一个)",
222
+ "ref:shared.panelContent.branchView(运行时面板内容区)"
223
+ ],
224
+ "diffs": [
225
+ "这里的内容区是 div.content-box.ebcom,直接装子组件外壳;没有拖拽层、没有 droppable-empty",
226
+ "isClickOnRow=true:点击整行切换,标题栏 div 上带 role=\"button\"、aria-expanded=<active>"
227
+ ]
228
+ },
229
+ "view-mobile": {
230
+ "when": "页面运行态且 page.client==='MOBILE';源码 view-m/View.tsx → view-m/Content.tsx → view-m/ViewContent.tsx",
231
+ "tree": [
232
+ "div.content(引擎内容槽,与 PC 相同)",
233
+ "ref:shared.comRoot → class 换成 ebcoms-m-collapse-panel-content ebcoms-collapse-panel-content-distance",
234
+ "div.ui-m-collapse.ui-m-collapse--no-border.ui-m-collapse-normal",
235
+ "ref:shared.panel → 把 ui-collapse-* 全部换成 ui-m-collapse-*",
236
+ "ref:shared.panelContent.branchView(内容区相同:div.content-box.ebcom)"
237
+ ],
238
+ "diffs": [
239
+ "前缀替换:ui-collapse→ui-m-collapse(含 --no-border / -normal / __title / __content-box / __content / __arrow-right)",
240
+ "组件类名:ebcoms-m-collapse-panel-content、ebcoms-m-panel-operations-wrap、ebcoms-m-panel-operations-toright;而标题文字 span.ebcoms-collapse-panel-title、图标 span.ebcoms-collapse-panel-title-icon、名称 div.ebcoms-collapse-panel-name 不加 m(PC/移动端共用)",
241
+ "外壳多一个 ebcom-m(class ebcom ebcom-collapsepanel ebcom-m ebcom-mgl ebcom-view)",
242
+ "less 已单独给移动端写好标题 padding(10px 0 10px 10px)、图标 margin-right:8px 等,不要用 PC 的规则覆盖"
243
+ ]
244
+ },
245
+ "design-pc": {
246
+ "when": "设计器设计态且 page.client!=='MOBILE';源码 design/Design.tsx → design/Content.tsx → view/ViewContent.tsx(isDesign=true)",
247
+ "tree": [
248
+ "引擎外壳 div#<comId>.ebcom.ebcom-collapsepanel.ebcom-grid.ebcom-design.has-no-header(createDesign.renderDesign,设计器还会追加自己的类)",
249
+ "div.content(引擎内容槽,与运行态同一套 ViewContent 包装)",
250
+ "ref:shared.comRoot → ebcoms-collapse-panel-content ebcoms-collapse-panel-content-distance",
251
+ "ref:shared.collapseRoot → div.ui-collapse.ui-collapse--no-border.ui-collapse-normal(同一套 @weapp/ui 组件)",
252
+ "ref:shared.panel",
253
+ "ref:shared.panelContent.branchDesign(设计态拖拽层)"
254
+ ],
255
+ "diffs": [
256
+ "标题文字不再走 PanelName:span.ebcoms-collapse-panel-title 里直接是纯文本 + ebcoms-collapse-panel-text-ellipsis(没有 div.ebcoms-collapse-panel-name / name-item)",
257
+ "内容区换成 div.ebcoms-collapse-panel-droppable-warp[.panelEmpty] + 设计器拖拽层;空面板可见 div.weapp-ebde-droppable-empty",
258
+ "isClickOnRow=false:标题栏没有 role=\"button\",点标题本体不切换,只有点展开图标 span 才切换(避免误触选中组件)",
259
+ "less 有 .ebcom-collapsepanel.ebcom-design 下的专属规则(拖拽空态样式)"
260
+ ]
261
+ },
262
+ "design-mobile": {
263
+ "when": "设计器设计态且 page.client==='MOBILE';源码 design-m/Design.tsx → design-m/Content.tsx → view-m/ViewContent.tsx(isDesign=true)",
264
+ "tree": [
265
+ "引擎外壳 div#<comId>.ebcom.ebcom-collapsepanel.ebcom-m.ebcom-mgl.ebcom-design(class 里的布局段按实际布局)",
266
+ "div.content",
267
+ "ref:shared.comRoot → ebcoms-m-collapse-panel-content ebcoms-collapse-panel-content-distance",
268
+ "div.ui-m-collapse…(同 view-mobile)",
269
+ "ref:shared.panel",
270
+ "设计态内容区:div.ebcoms-m-collapse-panel-droppable-warp[.panelEmpty] + 设计器拖拽层"
271
+ ],
272
+ "diffs": [
273
+ "把 design-pc 与 view-mobile 的差异叠加:ui-m-* 前缀 + 设计态内容区 + 设计态标题(纯文本)",
274
+ "移动端设计器空态:.ebcom-collapsepanel.ebcom-design .weapp-ebde-droparea-m .ebcoms-empty.ebcoms-empty-text(less 已定义)"
275
+ ]
276
+ },
277
+ "notes": [
278
+ "三类前缀要分清:ebcoms-* 是组件自己写的;ebcom-* 是引擎外壳(本组件源码里搜不到);ui-collapse-* / ui-m-collapse-* 来自 @weapp/ui 的 Collapse + Collapse.Panel,组件只传了 title / iconPosition / panelTitleBackground。",
279
+ "最常踩的定位错误是 content 系列:引擎内容槽是 div.content,面板内容区是 div.content-box.ebcom,@weapp/ui 的内容节点是 div.ui-collapse-panel__content / __content-box,组件根是 div.ebcoms-collapse-panel-content。四者名字都含 content,写选择器必须带前缀或 #<comId> 限域。",
280
+ "标题栏四个平级部件(从左到右):展开图标包裹 span → 面板图标 span.ebcoms-assets-item → 标题文字 span.ebcoms-collapse-panel-title(内含名称 div.ebcoms-collapse-panel-name / name-item 与数量 span.count)→ 操作按钮 div.ebcoms-panel-operations-wrap。图标包裹 span 是绝对定位(ui-collapse-panel__arrow-right 只有 iconPosition='right' 才有),所以它视觉上在右侧但 DOM 里排在最前。",
281
+ "iconPosition 由系统样式决定:getPanelIconPosition 对样式 2/6/7 返回 'left'(其余 'right')。left 时展开图标包裹 span 没有 ui-collapse-panel__arrow-right 类,且操作按钮容器多 ebcoms-panel-operations-toright;改定位要按这两条分支分别写,或统一抓 .ebcoms-collapse-panel-title-icon。",
282
+ "内容区只在面板 active 过之后才存在(LazyMount),收起时节点仍保留但 height:0 + overflow:hidden(行内样式,AnimateHeight 控制)。想给「收起的面板内容区」写样式基本没意义,想给展开态写要带 .ui-collapse-panel--active。",
283
+ "less 里已有的钩子不要重复写:#<comId> 外壳 border:none、.ebcom-collapsepanel > .content 的 flex 竖排/padding:0、.ebcoms-collapse-panel-content(flex 竖排 + height:100%)、面板间距与圆角(.ebcoms-collapse-panel-content-distance)、展开/收起底色与文字色、标题 padding 与 max-width、图标 margin、.count 的内边距、拖拽空态样式。",
284
+ "系统样式库(7 个内置 id)与自定义样式走 getCollapsePanelStyles 生成,作用域是 #<comId>.ebcom,生成的规则会同时命中 PC 的 .ui-collapse-panel* 与移动端的 .ui-m-collapse-panel*(源码里两套选择器成对拼出)。自定义样式里直接用组件类名即可,不需要自己套外壳。",
285
+ "改文字/图标颜色优先利用展开态钩子:.ui-collapse-panel--active .ebcoms-collapse-panel-title 与 .ui-collapse-panel--active .ebcoms-collapse-panel-title-icon .ui-icon-svg 已分别是 #fff,覆盖时注意选择器权重别低于它。",
286
+ "设计态与运行态的 DOM 差异很大(外壳 ebcom-design、面板内容区换成拖拽层、标题去 PanelName),在页面运行态验证选择器时不要参考设计器里的结构;反之亦然。",
287
+ "反查源码:外壳与内容槽在 weapp-ebdcoms/src/components/core/view/createView.tsx(renderView/renderContent)与 design/createDesign.tsx(renderDesign/renderContent,同一套 view/Content.tsx 包装);面板项骨架在 weapp-ui/src/components/collapse/Panel.tsx 与 Collapse.tsx;面板内容区两分支在 view/ViewContent.tsx 的 getPanels(!isDesign / isDesign);标题名称在 common/PanelName.tsx、数量在 common/Count.tsx;已有样式在 view/index.less、view-m/index.less、common/index.less;样式生成器在 common/getCollapsePanelStyles.ts。"
288
+ ]
289
+ }