weaver-e10-builder 1.2.3 → 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 (210) hide show
  1. package/dist/commands/actionflow.d.ts.map +1 -1
  2. package/dist/commands/actionflow.js +12 -25
  3. package/dist/commands/actionflow.js.map +1 -1
  4. package/dist/commands/designer-css.d.ts +15 -0
  5. package/dist/commands/designer-css.d.ts.map +1 -0
  6. package/dist/commands/designer-css.js +205 -0
  7. package/dist/commands/designer-css.js.map +1 -0
  8. package/dist/commands/form-field-lang.d.ts.map +1 -1
  9. package/dist/commands/form-field-lang.js +4 -39
  10. package/dist/commands/form-field-lang.js.map +1 -1
  11. package/dist/commands/form-layout-init.d.ts.map +1 -1
  12. package/dist/commands/form-layout-init.js +15 -10
  13. package/dist/commands/form-layout-init.js.map +1 -1
  14. package/dist/commands/form-layout.js +24 -21
  15. package/dist/commands/form-layout.js.map +1 -1
  16. package/dist/commands/form-native.d.ts.map +1 -1
  17. package/dist/commands/form-native.js +181 -0
  18. package/dist/commands/form-native.js.map +1 -1
  19. package/dist/commands/form-validate.d.ts.map +1 -1
  20. package/dist/commands/form-validate.js +11 -3
  21. package/dist/commands/form-validate.js.map +1 -1
  22. package/dist/commands/form.d.ts.map +1 -1
  23. package/dist/commands/form.js +76 -19
  24. package/dist/commands/form.js.map +1 -1
  25. package/dist/commands/menu.d.ts.map +1 -1
  26. package/dist/commands/menu.js +170 -23
  27. package/dist/commands/menu.js.map +1 -1
  28. package/dist/commands/wf-form.d.ts +1 -0
  29. package/dist/commands/wf-form.d.ts.map +1 -1
  30. package/dist/commands/wf-form.js +44 -13
  31. package/dist/commands/wf-form.js.map +1 -1
  32. package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -1
  33. package/dist/commands/workflow-node-assign-flow.js +1 -2
  34. package/dist/commands/workflow-node-assign-flow.js.map +1 -1
  35. package/dist/commands/workflow-node.d.ts.map +1 -1
  36. package/dist/commands/workflow-node.js +147 -2
  37. package/dist/commands/workflow-node.js.map +1 -1
  38. package/dist/commands/workflow-odoc.d.ts.map +1 -1
  39. package/dist/commands/workflow-odoc.js +56 -56
  40. package/dist/commands/workflow-odoc.js.map +1 -1
  41. package/dist/commands/workflow-setting.d.ts.map +1 -1
  42. package/dist/commands/workflow-setting.js +77 -1
  43. package/dist/commands/workflow-setting.js.map +1 -1
  44. package/dist/commands/workflow.d.ts.map +1 -1
  45. package/dist/commands/workflow.js +36 -80
  46. package/dist/commands/workflow.js.map +1 -1
  47. package/dist/core/client.d.ts +14 -0
  48. package/dist/core/client.d.ts.map +1 -1
  49. package/dist/core/client.js +28 -12
  50. package/dist/core/client.js.map +1 -1
  51. package/dist/index.js +2 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/services/actionflow/command_output.d.ts +7 -0
  54. package/dist/services/actionflow/command_output.d.ts.map +1 -1
  55. package/dist/services/actionflow/command_output.js +46 -0
  56. package/dist/services/actionflow/command_output.js.map +1 -1
  57. package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
  58. package/dist/services/actionflow/components/action_eb_add.js +14 -4
  59. package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
  60. package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
  61. package/dist/services/actionflow/components/action_eb_add_compiler.js +29 -0
  62. package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
  63. package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
  64. package/dist/services/actionflow/components/action_eb_update.js +23 -8
  65. package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
  66. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
  67. package/dist/services/actionflow/components/action_eb_update_compiler.js +239 -6
  68. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  69. package/dist/services/actionflow/components/custom_set_form.d.ts +10 -0
  70. package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -0
  71. package/dist/services/actionflow/components/custom_set_form.js +65 -0
  72. package/dist/services/actionflow/components/custom_set_form.js.map +1 -0
  73. package/dist/services/actionflow/components/custom_trigger.d.ts +2 -2
  74. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
  75. package/dist/services/actionflow/components/custom_trigger.js +7 -10
  76. package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
  77. package/dist/services/actionflow/components/enquiry_form.js +1 -1
  78. package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
  79. package/dist/services/actionflow/components/output.d.ts.map +1 -1
  80. package/dist/services/actionflow/components/output.js +6 -1
  81. package/dist/services/actionflow/components/output.js.map +1 -1
  82. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  83. package/dist/services/actionflow/context_preflight.js +13 -6
  84. package/dist/services/actionflow/context_preflight.js.map +1 -1
  85. package/dist/services/actionflow/context_provider.d.ts.map +1 -1
  86. package/dist/services/actionflow/context_provider.js +3 -2
  87. package/dist/services/actionflow/context_provider.js.map +1 -1
  88. package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
  89. package/dist/services/actionflow/dynamic_resources.js +1 -1
  90. package/dist/services/actionflow/dynamic_resources.js.map +1 -1
  91. package/dist/services/actionflow/ebuilder_source.d.ts +19 -0
  92. package/dist/services/actionflow/ebuilder_source.d.ts.map +1 -0
  93. package/dist/services/actionflow/ebuilder_source.js +78 -0
  94. package/dist/services/actionflow/ebuilder_source.js.map +1 -0
  95. package/dist/services/actionflow/form_source.d.ts +51 -10
  96. package/dist/services/actionflow/form_source.d.ts.map +1 -1
  97. package/dist/services/actionflow/form_source.js +173 -29
  98. package/dist/services/actionflow/form_source.js.map +1 -1
  99. package/dist/services/actionflow/formula_service.d.ts +4 -1
  100. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  101. package/dist/services/actionflow/formula_service.js +46 -22
  102. package/dist/services/actionflow/formula_service.js.map +1 -1
  103. package/dist/services/actionflow/preflight_service.d.ts +6 -0
  104. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  105. package/dist/services/actionflow/preflight_service.js +211 -3
  106. package/dist/services/actionflow/preflight_service.js.map +1 -1
  107. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  108. package/dist/services/actionflow/workflow_compiler.js +83 -15
  109. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  110. package/dist/services/designer-css.d.ts +89 -0
  111. package/dist/services/designer-css.d.ts.map +1 -0
  112. package/dist/services/designer-css.js +163 -0
  113. package/dist/services/designer-css.js.map +1 -0
  114. package/dist/services/dom-structure.d.ts +42 -0
  115. package/dist/services/dom-structure.d.ts.map +1 -0
  116. package/dist/services/dom-structure.js +251 -0
  117. package/dist/services/dom-structure.js.map +1 -0
  118. package/dist/services/form-field-patch.d.ts +22 -0
  119. package/dist/services/form-field-patch.d.ts.map +1 -1
  120. package/dist/services/form-field-patch.js +29 -0
  121. package/dist/services/form-field-patch.js.map +1 -1
  122. package/dist/services/form-i18n-label.d.ts +48 -0
  123. package/dist/services/form-i18n-label.d.ts.map +1 -0
  124. package/dist/services/form-i18n-label.js +91 -0
  125. package/dist/services/form-i18n-label.js.map +1 -0
  126. package/dist/services/form-style-template.d.ts +6 -2
  127. package/dist/services/form-style-template.d.ts.map +1 -1
  128. package/dist/services/form-style-template.js +8 -4
  129. package/dist/services/form-style-template.js.map +1 -1
  130. package/dist/services/menu-catalog.d.ts +84 -0
  131. package/dist/services/menu-catalog.d.ts.map +1 -0
  132. package/dist/services/menu-catalog.js +183 -0
  133. package/dist/services/menu-catalog.js.map +1 -0
  134. package/dist/services/workflow-add-step.d.ts +45 -0
  135. package/dist/services/workflow-add-step.d.ts.map +1 -0
  136. package/dist/services/workflow-add-step.js +122 -0
  137. package/dist/services/workflow-add-step.js.map +1 -0
  138. package/dist/services/workflow-assign-flow.d.ts +1 -6
  139. package/dist/services/workflow-assign-flow.d.ts.map +1 -1
  140. package/dist/services/workflow-assign-flow.js +3 -8
  141. package/dist/services/workflow-assign-flow.js.map +1 -1
  142. package/dist/services/workflow-drawback.d.ts +19 -0
  143. package/dist/services/workflow-drawback.d.ts.map +1 -0
  144. package/dist/services/workflow-drawback.js +59 -0
  145. package/dist/services/workflow-drawback.js.map +1 -0
  146. package/dist/services/workflow-links.d.ts +51 -0
  147. package/dist/services/workflow-links.d.ts.map +1 -0
  148. package/dist/services/workflow-links.js +162 -0
  149. package/dist/services/workflow-links.js.map +1 -0
  150. package/dist/services/workflow-node-layout.d.ts +45 -4
  151. package/dist/services/workflow-node-layout.d.ts.map +1 -1
  152. package/dist/services/workflow-node-layout.js +142 -41
  153. package/dist/services/workflow-node-layout.js.map +1 -1
  154. package/dist/services/workflow-odoc-setting.d.ts +43 -0
  155. package/dist/services/workflow-odoc-setting.d.ts.map +1 -0
  156. package/dist/services/workflow-odoc-setting.js +100 -0
  157. package/dist/services/workflow-odoc-setting.js.map +1 -0
  158. package/dist/services/workflow-tab-config.d.ts +54 -0
  159. package/dist/services/workflow-tab-config.d.ts.map +1 -0
  160. package/dist/services/workflow-tab-config.js +137 -0
  161. package/dist/services/workflow-tab-config.js.map +1 -0
  162. package/dist/types.d.ts +5 -1
  163. package/dist/types.d.ts.map +1 -1
  164. package/package.json +48 -48
  165. package/skill-docs/SKILL.md +7 -7
  166. package/skill-docs/_catalog.md +2 -0
  167. package/skill-docs/actionflows/SKILL.md +2 -0
  168. package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +38 -1
  169. package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +42 -0
  170. package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +1 -1
  171. package/skill-docs/actionflows/references/components/logic/Output.md +2 -0
  172. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +16 -11
  173. package/skill-docs/assets/dom-structure/Bar.json +341 -0
  174. package/skill-docs/assets/dom-structure/BarStack.json +341 -0
  175. package/skill-docs/assets/dom-structure/Bubble.json +323 -0
  176. package/skill-docs/assets/dom-structure/Calendar.json +515 -0
  177. package/skill-docs/assets/dom-structure/Circular.json +337 -0
  178. package/skill-docs/assets/dom-structure/CollapsePanel.json +289 -0
  179. package/skill-docs/assets/dom-structure/Comment.json +617 -0
  180. package/skill-docs/assets/dom-structure/CountDown.json +755 -0
  181. package/skill-docs/assets/dom-structure/DigitalPanel.json +191 -0
  182. package/skill-docs/assets/dom-structure/EbButton.json +387 -0
  183. package/skill-docs/assets/dom-structure/FastCreate.json +242 -0
  184. package/skill-docs/assets/dom-structure/Gauge.json +282 -0
  185. package/skill-docs/assets/dom-structure/HBar.json +336 -0
  186. package/skill-docs/assets/dom-structure/HBarStack.json +337 -0
  187. package/skill-docs/assets/dom-structure/Line.json +341 -0
  188. package/skill-docs/assets/dom-structure/NList.json +712 -0
  189. package/skill-docs/assets/dom-structure/NavBar.json +274 -0
  190. package/skill-docs/assets/dom-structure/NavPanel.json +390 -0
  191. package/skill-docs/assets/dom-structure/NewTab.json +606 -0
  192. package/skill-docs/assets/dom-structure/Nightingale.json +336 -0
  193. package/skill-docs/assets/dom-structure/PageHeader.json +205 -0
  194. package/skill-docs/assets/dom-structure/Picture.json +209 -0
  195. package/skill-docs/assets/dom-structure/Pie.json +338 -0
  196. package/skill-docs/assets/dom-structure/ProgressChart.json +299 -0
  197. package/skill-docs/assets/dom-structure/SearchGlobal.json +628 -0
  198. package/skill-docs/assets/dom-structure/Slide.json +489 -0
  199. package/skill-docs/assets/dom-structure/Treemap.json +324 -0
  200. package/skill-docs/references/common/guide-plan-template.md +1 -1
  201. package/skill-docs/references/common/ref-cli-commands.md +21 -13
  202. package/skill-docs/references/ebuilder-designer/guide-designer-components.md +12 -1
  203. package/skill-docs/references/ebuilder-designer/guide-designer-css.md +127 -0
  204. package/skill-docs/references/ebuilder-designer/guide-designer.md +6 -5
  205. package/skill-docs/references/form/guide-create-form.md +1 -1
  206. package/skill-docs/references/form/guide-form-layout-planning.md +1 -1
  207. package/skill-docs/references/form/guide-form-linkage.md +28 -2
  208. package/skill-docs/references/menu/system-menus.md +12 -0
  209. package/skill-docs/references/workflow/guide-workflow-odoc.md +22 -2
  210. package/skill-docs/references/workflow/guide-workflow.md +18 -3
@@ -0,0 +1,324 @@
1
+ {
2
+ "component": "Treemap(矩形树图)",
3
+ "usage": "图表组件的 HTML 结构索引,用于样式定位:用户说「给矩形树图的 XX 设置样式」时,在这里按语义找节点,用它的 id / class 写选择器。不是完整 DOM 树,只列有 id 或关键 class 的元素。",
4
+ "legend": {
5
+ "[cls]": "条件类名:条件满足时才出现,否则该类名不存在",
6
+ "{a|b}": "多选一:实际只会出现其中一个",
7
+ "a > b": "合并两层:b 是 a 的直接子元素(中间没有有意义的元素)",
8
+ "ref": "引用本文件 shared.* 里的复用片段",
9
+ "<comId>": "尖括号 = 需要替换的占位符。<comId> 是该组件在页面里的实例 id(配置界面叫「组件ID」),写样式时用它限域,例如 #<comId> .ebcoms-charts-total;<contentClass> 等同理。注意花括号 {a|b} 只表示「多选一」,不用来表示占位符。",
10
+ "ebcom / ebcom-*": "weapp-ebdcoms 引擎加的类,不在图表组件源码里(core/view/createView.tsx + core/utils/comp.ts)",
11
+ "ebcoms-*": "图表组件源码写的类(clsPrefix = 'ebcoms')",
12
+ "ui-*": "@weapp/ui 组件的类:ui-echarts / ui-table-grid-* / ui-spin / ui-empty / ui-pagination / ui-icon / ui-bread-crumb / ui-popover",
13
+ "weapp-ebdf-*": "筛选搜索组件(@weapp/ebpagedesign)的类,只给挂载点,内部结构不可控"
14
+ },
15
+ "pickTree": "按「区域」取树:标题区→header,图表区(合计/轴名/canvas/加载)→chartArea,数据表→dataList,图表左右侧的数值清单→labelDataList。写样式时先 #<comId> 限域再往下找。本类型没有「数值展示列表」区域(不在 isDataOnLeftOrRight 列表)。",
16
+ "root": {
17
+ "desc": "引擎外壳,所有图表组件完全一致,由 weapp-ebdcoms 渲染(不在图表源码里)。写样式统一用 #<comId> 限域。",
18
+ "tree": {
19
+ "tag": "div",
20
+ "id": "<comId>",
21
+ "class": "ebcom ebcom-treemap [ebcom-m] ebcom-{grid|flow} ebcom-view ebcom-chart has-no-header",
22
+ "desc": "组件根。ebcom-treemap=类型类(同页多个图表组件靠它区分类型);ebcom-m 仅移动端;ebcom-{grid|flow}=页面布局;ebcom-chart 来自图表 defaultOpts.render.containerClass;has-no-header 恒有(图表用 renderHeader 自渲染标题,不走引擎的默认 header)。",
23
+ "children": [
24
+ {
25
+ "tag": "div",
26
+ "class": "header",
27
+ "when": "config.titleEnabled = true",
28
+ "desc": "标题区。内容由图表自己的 ChartHeader 接管(见 header 树)。标题关闭时这个节点整个不存在。",
29
+ "ref": "header.tree"
30
+ },
31
+ {
32
+ "tag": "div",
33
+ "class": "<contentClass> content",
34
+ "desc": "引擎内容槽,图表全部内容都在这里。view 模式初始只有 content,其余类名由脚本 classList.toggle 追加;design 模式直接带全。可能追加到 .content 上的类:ebcoms-charts-fl(流式布局)、ebcoms-treemap-content(流式布局)、show-data-list、data-list-direction-{top|bottom|left|right}、ebcoms-charts-reloading、ebcoms-charts-grid-mobile、displayFlex。",
35
+ "ref": "chartArea.tree"
36
+ },
37
+ {
38
+ "tag": "div",
39
+ "class": "footer",
40
+ "desc": "引擎底部操作栏。图表默认不开,几乎见不到;开了才会在 .content 之后出现 .ebcoms-footer-btns。"
41
+ }
42
+ ]
43
+ }
44
+ },
45
+ "shared": {
46
+ "desc": "跨区域复用的小片段。同一个 class 在多个区域出现时以这里的定义为准。",
47
+ "empty": {
48
+ "tag": "div",
49
+ "class": "ui-empty",
50
+ "desc": "@weapp/ui Empty。图表里三种用法:未匹配配置(“请设置图表配置项”)、无数据(type=noData)、词云 IE 提示(多一个 ebcoms-charts-com-WordCloud-IEempty)。紧挨着还有一个 .ebcoms-charts-placeholder 占位块(echarts 未实例化时)。"
51
+ },
52
+ "spin": {
53
+ "tag": "div",
54
+ "class": "ui-spin [ui-spin-nested-loading > ui-spin-container]",
55
+ "desc": "@weapp/ui Spin。图表里有 3 处,外层都会再拼一个 ebcoms-* 类:ebcoms-charts-view-loading(图表区首次加载,在 .ebcoms-charts-com 内)、ebcoms-charts-view-reloading(刷新遮罩,绝对定位铺满半透明白,在 .ebcoms-charts-main 下)、数据表内部(ui-table-grid 内自动包一层)。"
56
+ },
57
+ "toolbarBtn": {
58
+ "tag": "span",
59
+ "desc": "标题区每个操作按钮外层都是一个无 class 的 span(OperationBtns 渲染)。里面要么是图表自己的定制视图(ChartSwitch / YMDSwitch / ChartsToolbarBtn),要么是 @weapp/ui 的 ConfigurableButton(ui-btn)或配置的图标(ui-icon > svg.ui-icon-svg)。想单独选中某个按钮只能靠 :nth-child() 或按内容定位。"
60
+ },
61
+ "filterMount": {
62
+ "tag": "div",
63
+ "class": "ebcoms-cmf-view [showFilter] [empty] [mobile] [onlyCondition] 或 ebcoms-cms-search [design] [active]",
64
+ "desc": "筛选条件区的挂载点(CommonFilter / SearchContent)。标题区和图表区各可能出现一个,两者互斥:筛选按钮配置在标题区时只在标题区渲染。内部 DOM 不可控,只在这个挂载点上写样式。"
65
+ }
66
+ },
67
+ "header": {
68
+ "when": "config.titleEnabled = true。关闭时 #<comId> 上带 has-no-header,.header 节点不存在。",
69
+ "chain": "#<comId> > .header.ebcoms-charts-custom-header.PC|MOBILE",
70
+ "tree": {
71
+ "tag": "div",
72
+ "class": "ebcoms-charts-custom-header header PC|MOBILE",
73
+ "desc": "标题区根。同时带引擎的 .header(布局用的通用类)和组件的 ebcoms-charts-custom-header。末尾的 PC / MOBILE 是 page.client 直接拼上去的,用来控制标题最大宽度(PC 65% / MOBILE 45%),不是类名前缀。",
74
+ "children": [
75
+ {
76
+ "tag": "div",
77
+ "class": "ebcoms-charts-custom-header-title-content",
78
+ "desc": "标题文本区。可能先有一个标题图标组件(TitleIconCom,仅配了标题图标时),然后是一个 <div> 承载标题 HTML(dangerouslySetInnerHTML,所以标题里的富文本、动态字段也会渲染进这个 div,别以为只有纯文本)。"
79
+ },
80
+ {
81
+ "tag": "div",
82
+ "class": "[isDesign]",
83
+ "desc": "flex:1 的右侧区,按顺序放:操作按钮组、筛选条件、再一个操作按钮组(筛选按钮配置在最后一位时按钮会挪到筛选前面)、design 模式下的遮罩 ebcoms-charts-main-filtertotal-mask。",
84
+ "children": [
85
+ {
86
+ "tag": "div",
87
+ "class": "ebcoms-header-btns",
88
+ "desc": "顶部操作按钮组(OperationBtns 的 wrapClass)。左侧按钮和右侧按钮会渲染成两个同 class 的兄弟 div,所以 .ebcoms-header-btns 在标题区可能出现两次,别用 :first-child 猜。",
89
+ "children": [
90
+ {
91
+ "tag": "div",
92
+ "class": "ebcoms-chart-toolbar",
93
+ "when": "“图表工具栏”按钮开启(isSupportChartToolsConfig)",
94
+ "desc": "图表工具栏。固定 6 个 span 槽位,顺序固定;每个槽位内部再分 .default / .hover 两个 span。.default 和 .hover 是通用类名,写样式必须用 .ebcoms-chart-toolbar 限定,否则会串到别处。",
95
+ "children": [
96
+ {
97
+ "tag": "span",
98
+ "class": "btn-boxSelect",
99
+ "desc": "区域缩放。槽位恒在,但本类型不渲染图标,是个空 span(要按顺序定位时别数错)。"
100
+ },
101
+ {
102
+ "tag": "span",
103
+ "class": "btn-clearBoxSelect",
104
+ "desc": "区域缩放还原。槽位恒在,但本类型不渲染图标,是个空 span(要按顺序定位时别数错)。"
105
+ },
106
+ {
107
+ "tag": "span",
108
+ "class": "btn-changeLine",
109
+ "desc": "切换为折线图。槽位恒在,但本类型不渲染图标,是个空 span(要按顺序定位时别数错)。"
110
+ },
111
+ {
112
+ "tag": "span",
113
+ "class": "btn-changeBar",
114
+ "desc": "切换为柱状图。槽位恒在,但本类型不渲染图标,是个空 span(要按顺序定位时别数错)。"
115
+ },
116
+ {
117
+ "tag": "span",
118
+ "class": "btn-restore",
119
+ "desc": "还原。槽位恒在,但本类型不渲染图标,是个空 span(要按顺序定位时别数错)。"
120
+ },
121
+ {
122
+ "tag": "span",
123
+ "class": "btn-saveAsImage",
124
+ "desc": "保存为图片。图标存在;里面有 .default 与 .hover 两个 span(默认显示 default,hover 换成 hover,宽度/颜色/底色可由按钮配置写进行内 style),图标是 ui-icon > svg.ui-icon-svg,选中态加 .selected。"
125
+ }
126
+ ]
127
+ }
128
+ ]
129
+ },
130
+ {
131
+ "ref": "shared.filterMount",
132
+ "when": "筛选按钮在标题区"
133
+ }
134
+ ]
135
+ }
136
+ ]
137
+ }
138
+ },
139
+ "chartArea": {
140
+ "desc": "引擎 .content 里的全部内容,由 AsyncBaseView + ChartView 渲染。",
141
+ "tree": {
142
+ "tag": "div",
143
+ "class": "ebcoms-charts-main",
144
+ "desc": ".content 下唯一的内容根。它是个 flex 容器:图表容器 .ebcoms-charts-com 和数据表 .ebcoms-data-list-display-content 是平级兄弟,所以 dataListDisplay.visible 时 .content 加 show-data-list,index.less 用它和 data-list-direction-* 决定图表与数据表是上下还是左右排列。",
145
+ "children": [
146
+ {
147
+ "tag": "div",
148
+ "class": "ebcoms-charts-main-switchChartType",
149
+ "when": "“图表类型”按钮开启 && customValue.keepDisplaying && 标题未开启(标题开启时它挪进标题区)",
150
+ "desc": "常驻在图表上方的图表类型切换条。",
151
+ "children": [
152
+ {
153
+ "tag": "div",
154
+ "class": "ebcoms-chart-head-chartSwitch",
155
+ "children": [
156
+ {
157
+ "tag": "span",
158
+ "class": "ebcoms-chart-head-chartSwitch-item [active]",
159
+ "desc": "每个可切换类型一项,active=当前类型。内含图标(普通类型 ui-icon;Bullet 内联 svg.icon;WordCloud / Facet / HeatMap 是 img)+ 类型名文本。"
160
+ }
161
+ ]
162
+ }
163
+ ]
164
+ },
165
+ {
166
+ "tag": "div",
167
+ "id": "id_<comId>",
168
+ "class": "ebcoms-charts-com [ebcoms-charts-preview] [hide]",
169
+ "desc": "图表容器,图表区所有东西都在这。id 是 id_<comId>(id_ + 组件 id)。ebcoms-charts-preview 仅 stylePre(预览)时;hide 仅 dataListDisplay.onlyTable(只显示数据表)时。容器自带 min-width: 30px(源码注释:宽度过小时气泡图 echart 内部会报错)。",
170
+ "children": [
171
+ {
172
+ "tag": "div",
173
+ "id": "filtertotal_<comId>",
174
+ "class": "ebcoms-charts-main-filtertotal [hasRelationStatistics]",
175
+ "desc": "图表上方一行:左边合计、右边筛选条件(两者独立出现)。hasRelationStatistics 仅关系图且有统计时(左侧让出 150px)。注意它和 .ebcoms-charts-main 是两个不同的 main。",
176
+ "children": [
177
+ {
178
+ "tag": "ul",
179
+ "class": "ebcoms-charts-total",
180
+ "when": "showTotal && 有数据 && 配置已初始化(本类型支持合计)",
181
+ "desc": "合计区,每个指标一个 li,li 上没有类名(要单独选只能 :nth-child())。这里会先撑高再触发图表 resize。"
182
+ },
183
+ {
184
+ "ref": "shared.filterMount",
185
+ "when": "配了筛选条件且按钮不在标题区"
186
+ }
187
+ ]
188
+ },
189
+ {
190
+ "tag": "div",
191
+ "id": "chartStatChildren_<comId>",
192
+ "when": "有维度钻取 或 维度开了“统计下级”",
193
+ "desc": "下钻 / 统计下级 / 关系图展开的挂载点(面包屑 + 弹出菜单)。不需要时这个 id 节点不存在。",
194
+ "children": [
195
+ {
196
+ "tag": "div",
197
+ "class": "ui-bread-crumb ebcoms-charts-bread-crumb {drilling|...}",
198
+ "desc": "面包屑。带 drilling 时样式不同(可点层级为蓝色)。关系图不渲染它。"
199
+ },
200
+ {
201
+ "tag": "span",
202
+ "class": "ebcoms-charts-statChildrenSpan",
203
+ "desc": "弹出菜单的定位锚点:1px 绝对定位的隐形 span,left/top 由点击坐标算出来。"
204
+ },
205
+ {
206
+ "tag": "div",
207
+ "class": "ebcoms-charts-statChildrenPop",
208
+ "desc": "菜单弹层(Popover)。内部列表项 class 为 ebcoms-charts-list-item;弹层箭头 .ui-popover-arrow 在这里被隐藏。"
209
+ }
210
+ ]
211
+ },
212
+ {
213
+ "tag": "div",
214
+ "class": "ebcoms-charts-axis-name",
215
+ "when": "永不出现",
216
+ "desc": "本类型在 hasNoAxis 列表里(无直角坐标轴),不会渲染坐标轴名称节点。注意:ECharts 的 category/axis 概念跟这里的 DOM 无关,不要以为没 DOM 就没配置项。"
217
+ },
218
+ {
219
+ "tag": "div",
220
+ "class": "ui-echarts [ui-echarts-rtl]",
221
+ "when": "非空数据且没在 loading",
222
+ "desc": "图表本体。ECharts 用 canvas 渲染,图例 / 坐标轴 / 数据标签 / tooltip / 柱子颜色全在 canvas 里,CSS 选不到——这些只能改图表配置项或图表主题。容器本身可改尺寸、背景、边框、滤镜;RTL 页面会多 ui-echarts-rtl(会 transform: scaleX(-1))。"
223
+ },
224
+ {
225
+ "tag": "div",
226
+ "class": "ebcoms-label-data-list-content",
227
+ "when": "永不出现",
228
+ "desc": "本类型不在 isDataOnLeftOrRight(Pie / Circular / Nightingale)列表里,图表左右侧不会出现数值展示清单。"
229
+ },
230
+ {
231
+ "ref": "shared.empty"
232
+ },
233
+ {
234
+ "tag": "div",
235
+ "class": "ebcoms-charts-placeholder",
236
+ "when": "chartInstance 尚未就绪",
237
+ "desc": "占位块,撑住高度防止塌陷。"
238
+ },
239
+ {
240
+ "tag": "div",
241
+ "class": "ui-spin ebcoms-charts-view-loading",
242
+ "when": "配置还未初始化完成,或正在刷新数据(此时上面那批节点都不渲染,互斥)",
243
+ "desc": "图表区加载态。"
244
+ }
245
+ ]
246
+ },
247
+ {
248
+ "tag": "div",
249
+ "class": "ui-pagination ebcoms-charts-pagination",
250
+ "when": "永不出现(本类型不在 hasPagination 列表,没有分页配置项)",
251
+ "desc": "图表级分页(不是数据表里的分页)。内部 ui-pagination-pager / ui-pagination-pager-item / ui-pagination-pager-active / ui-pagination-pager-page-input。"
252
+ },
253
+ {
254
+ "ref": "dataList.tree"
255
+ },
256
+ {
257
+ "tag": "div",
258
+ "class": "ui-spin ebcoms-charts-view-reloading",
259
+ "when": "reloading(切换图表类型 / 切换日期分组 / 强刷)",
260
+ "desc": "整块刷新遮罩:绝对定位居中铺满 + rgba(255,255,255,.7) 底。要改遮罩底色改这里。"
261
+ }
262
+ ]
263
+ }
264
+ },
265
+ "dataList": {
266
+ "when": "dataListDisplay.visible = true 且非空数据",
267
+ "chain": ".content > .ebcoms-charts-main > .ebcoms-data-list-display-content.{horizantal|vertical}[.show-total][.isMobile] > .ui-table-grid.ebcoms-datalist-table",
268
+ "tree": {
269
+ "tag": "div",
270
+ "class": "ebcoms-data-list-display-content {horizantal|vertical} [show-total] [isMobile]",
271
+ "desc": "数据表区域。和图表的 .ebcoms-charts-com 是 .ebcoms-charts-main 下的平级兄弟(不在图表容器里),所以它不会跟着图表一起被 hide。注意类名是 horizantal(源码里的拼写,少一个 o),别写成 horizontal。位置由 .content 上的 data-list-direction-{top|bottom|left|right} 控制;horizantal 表示横向扩展(第一列固定)。",
272
+ "children": [
273
+ {
274
+ "tag": "div",
275
+ "class": "ui-table-grid ebcoms-datalist-table ui-table-grid-bordered [ui-table-grid-no-pagination] [ui-table-grid-scroll-position-*] [ui-table-grid-table__fixed]",
276
+ "desc": "数据表(@weapp/ui Table)。下面这些 ui-table-grid-* 是引擎已有样式钩子,可以直接复用;要改文字色 / 表头底色 / 内容底色 / 边框色,优先用组件外观样式里的「数据表」配置(会自动生成这些选择器,见 notes)。",
277
+ "children": [
278
+ {
279
+ "tag": "div",
280
+ "class": "ui-spin > ui-spin-nested-loading > ui-spin-container",
281
+ "desc": "表格自带 loading 包裹层,表格内容都在 ui-spin-container 里。"
282
+ },
283
+ {
284
+ "tag": "div",
285
+ "class": "ui-table-grid-header-warp > .ui-table-grid-header",
286
+ "desc": "表头。里面 table > thead.ui-table-grid-thead > tr > th.ui-table-grid-th。固定列时还会有一份 ui-table-grid-sticky-header-warp(滚动吸顶)。"
287
+ },
288
+ {
289
+ "tag": "div",
290
+ "class": "ui-table-grid-body-outer > .ui-table-grid-body",
291
+ "desc": "表体。table > tbody.ui-table-grid-tbody > tr > td.ui-table-grid-td。合计行在 tfoot.ui-table-grid-tfoot(showTotal && 纵向扩展时)。细分隔行 tr 带 ui-table-grid-tr__gray。"
292
+ },
293
+ {
294
+ "tag": "div",
295
+ "class": "ui-table-grid-scroll",
296
+ "desc": "横向滚动容器;只在有固定列或按 table 滚动时出现。"
297
+ },
298
+ {
299
+ "tag": "div",
300
+ "class": "ui-table-grid-fixed-left / ui-table-grid-fixed-right",
301
+ "desc": "左右固定列(横向扩展时第一列 fixed: left)。"
302
+ },
303
+ {
304
+ "tag": "div",
305
+ "class": "ui-table-grid-empty",
306
+ "desc": "无数据占位。"
307
+ }
308
+ ]
309
+ }
310
+ ]
311
+ }
312
+ },
313
+ "notes": [
314
+ "样式作用域:图表样式由「组件外观样式」生成,最终选择器都会被包在 #<comId>.ebcom 下面(自定义源码再套一层 #<comId> .comCodeSource)。自己写选择器也建议 #<comId> .xxx,避免同页多图表互相污染。",
315
+ "数据表配色有官方生成器:组件外观样式→数据表里的「字体/表头底色/内容底色/边框色」,会直接生成 .ebcoms-data-list-display-content 下的 .ui-table-grid-td/.ui-table-grid-th/.ui-table-grid-thead/.ui-table-grid-header-warp/.ui-table-grid-body-outer/.ui-table-grid-tbody/.ui-table-grid-tfoot 规则。要改数据表颜色优先用这个,不要重复写 CSS。",
316
+ "canvas 边界:图例、坐标轴刻度、数据标签、tooltip、柱/扇区颜色全部是 ECharts canvas,CSS 选不到。这类需求只能改图表配置项或图表主题,不要试图用选择器命中。",
317
+ "同名陷阱:引擎的 .header / .content / .footer(无前缀)≠ 组件的 ebcoms-*-content;.ebcoms-charts-main 和 .ebcoms-charts-main-filtertotal 是两个不同层的节点,只差一个后缀;.default / .hover 是工具栏按钮的通用类名,必须用 .ebcoms-chart-toolbar 限定;displayFlex 是无前缀裸类名(全局限定)。",
318
+ "引擎自动加的修饰类:#<comId> 上恒有 has-no-header;ebcom-chart 来自图表 defaultOpts.render.containerClass;padding=false 时加 content-no-padding;配了点击事件时加 event-action-click。",
319
+ "移动端:外壳多 ebcom-m 类;网格布局 + 移动端时 .content 多 ebcoms-charts-grid-mobile(内部把加载块高度固定 300px)。",
320
+ "反查源码:引擎 weapp-ebdcoms/src/components/core/{view,design}/{createView,Base,createDesign}.tsx、core/utils/comp.ts、core/view/operation-btns/OperationBtns.tsx;组件 weapp-ebdchartcoms/src/components/charts/core/{BaseView,ChartView,ChartHeader,AxisLabelName,ChartTotal,ChartStatChildren,getChartsStyles}.ts(x)、core/DataListDisplay/*、core/LabelDataListDisplay.tsx、core/index.less;UI 库 weapp-ui/src/components/{echarts,table,spin,pagination,empty}。",
321
+ "矩形块、连接线(hasConnector)、层级颜色都是 canvas,不是 DOM。",
322
+ "横向扩展时数据表第一列固定(ui-table-grid-fixed-left)。"
323
+ ]
324
+ }
@@ -145,7 +145,7 @@
145
145
  - [ ] 节点2 | 操作者: 区域经理+部门领导(竞签) ← 「A或B审批」=一节点多人+竞签/非会签,不拆节点
146
146
  - [ ] 节点3 | 条件: <字段>=<值> 才走到,否则跳过/直达<节点>
147
147
  - [ ] 节点4 | 操作者: 角色X | 动作流: → <目标表>(add/update/delete, 映射: 源→目标)
148
- - [ ] 连线 | `workflow add-link/add-links <wf> <from> <to> <label>` [--reject 退回] [--default 默认]
148
+ - [ ] 连线 | `workflow add-links <wf> @links.json`(`reject`/`default` 逐条给;默认出口同源节点自动让位)
149
149
  - [ ] 结构改完补排版 | `workflow auto-layout <wf>`(**加/删节点、加/删连线之后必跑**;建流程时自动跑过的那一次不算)
150
150
 
151
151
  ###### 权责表设计(搭建方式为权责表时填写,替代普通节点与连线清单)
@@ -77,7 +77,7 @@
77
77
  | `e10-cli form list-click <objId> <appId> <listId> <fieldId> [--target <formObjId>] [--open-mode <模式>] [--win-size <尺寸>] [--clear] [--pc-only]` | 设置台账列**点击跳转**。`--open-mode` 支持当前页面/新窗口/弹出窗口/右侧滑出/右侧推出;`--win-size` 仅用于滑出/推出,具体数值按需求填写:百分比使用 `%`(0~100),像素使用 `px`,两种单位不可混用。缺省 `800px` |
78
78
  | `e10-cli form ebuilder-columns <objId> <appId> <fieldId> [字段名/ID...] [--clear]` | 设置 EBuilder 关联字段的**浏览显示列**(存在字段配置 `ffDisplayColumns:{id,name}[]`)。**缺省查看**:列出当前显示列 + 目标表单全部**业务字段候选**(系统字段已自动过滤,不设显示列时浏览走平台默认列会带系统字段);**传目标表业务字段名/ID 设置**,系统字段会被拦截提示"系统字段不能设为显示列";`--clear` 清空。关联浏览显示哪些字段(只留业务字段) |
79
79
  | `e10-cli form ebuilder-scope <get\|set\|clear> <objId> <appId> <fieldId>` | **浏览数据定义 → 数据范围设置**(关联浏览字段,限定被关联数据须满足条件才可选,如关联客户只选"客户状态=启用"的)。走 `browserDataScope` 接口(独立于字段布局)。`set --rules '[{"field":"客户状态","operator":"eq","value":"启用"}]'`(选项类 value 用选项名,CLI 自动解析 valueKey);`--logic and/or` 多规则关系;`--fill-null` 关联字段为空时填充;`get` 读已设条件;`clear` 清空。**这是关联浏览筛选的正解**,旧 `ebuilder-filter` 走 layout/save 不被设计器识别 |
80
- | `e10-cli form validate list <objId> <appId>` | 查看表单**查重规则**(字段重复校验,多字段 AND)。`add <objId> <appId> <字段名...> [--help 提示] [--remind]` 新增(缺省禁止提交 NOSUBMISSION,`--remind` 仅提醒);`delete <objId> <appId> <ruleId>` 删除。项目名称重名/工时日期重复不允许 |
80
+ | `e10-cli form validate list <objId> <appId>` | 查看表单**查重规则**(字段重复校验,多字段 AND)。`add <objId> <appId> <字段名...> [--help 提示] [--remind]` 新增(缺省禁止提交 NOSUBMISSION,`--remind` 仅提醒)。**`--help` 会建成多语言标签、存的是标签 id**(平台只收 id,传文本会被拒「提示内容格式不正确」;`list` 会解回文本显示,缓存原因刚建完约 10 秒内可能仍显示 id);`delete <objId> <appId> <ruleId>` 删除。项目名称重名/工时日期重复不允许 |
81
81
  | `e10-cli form add-detail-table <objId> <appId> <明细表名> [首字段名] [--init]` | 给**已存在的主表**加明细子表(saveSubForm 建子表 + 加首字段使其可见)。`--data-key <物理表名>`、`--first-field-type <类型>`(默认 Text)。⚠ **空子表平台会过滤掉、布局里看不见**,首字段名强烈建议传;`--init` 建完把 DetailTable 组件放进布局。后续往明细里加字段用 `form add-field --sub-form-id <subFormId>`:建表时一次性带明细用 `form create` 的 fields.json `DetailTable`+`formFields` |
82
82
  | `e10-cli form delete-detail-table <objId> <appId> <subFormId\|明细表名>` | **删除明细表**(连带表里的字段)。平台不允许删**仍被布局引用**的明细表(报「当前【X】明细表已被布局引用,不允许删除」)—— 明细表只要在表单上就必然被引用,所以多数情况要加 `--force`:先把这张表的组件(本体 + 每列的「字段本体 + 标题标签」)从布局摘掉、清掉 workbook 里的残留,再删。删除是**软删**,记录仍在但不再算数 |
83
83
  | `e10-cli form list-search <objId> <appId> <listId> [--add <fieldId...>] [--quick <fieldId...>] [--remove <fieldId>] [--pc-only]` | 查看/配置台账**搜索条件**。`--add` 进搜索面板、`--quick` 加顶部快捷筛选(均支持多字段)、`--remove` 移除。主表字段直取 ds/fields;明细子字段自动 fallback `getFormField` 单取元数据。**自动保留移动端配置** |
@@ -95,8 +95,9 @@
95
95
  | `e10-cli form view rename <objId> <appId> <viewId> <新名称>` | 修改已有默认台账(nListView)的名称,保留原视图 ID 和配置,并在保存后回读确认。需求名称与默认名称不一致时统一用此命令,不新建重复视图 |
96
96
  | `e10-cli form view create <objId> <appId> <视图名> [--type formView\|kanbanView\|calendarView\|mindMapView\|multiView] [--terminal PC\|MOBILE] [--layout-type FLOW\|EXCEL] [--detail <明细名>] [--sub-form-id <明细subFormId>]` | 给**已有表单**添加视图。`formView` 创建后是空布局,需续跑 `form view populate` 填字段;`kanbanView`/`calendarView`/`mindMapView`/`multiView` 建视图实体。**multiView 数据维度**:缺省主表;明细表维度用 `--detail <明细名>`(按名解析)或 `--sub-form-id <明细subFormId>`(直传),传值即明细维度(`subFormMain:true`)。**台账(NList)视图**用 `form table-view create`,不在此命令 |
97
97
  | `e10-cli form view populate <objId> <appId> <viewId>` | 把已有字段按布局类型填入新增的 formView(视图为空时用这个填充) |
98
- | `e10-cli form layout read <objId> <appId> [--view-id <id>]` | 读表单布局结构(comps 坐标/只读)。不传 `--view-id` 读默认布局,传则读指定视图 |
99
- | `e10-cli form layout init <objId> <appId> [--style-template <名\|id>] [--view-id <id>] [--read-only] [--required] [--disable-edit] [--single-row]` | 初始化/重建表单布局(initLayout):**换样式模板** + 覆盖字段 readOnly/required/disableEdit/singleRow(不传这些开关则**保留字段已有设置**)。**⚠ 样式模板流式与表格式是两套**,同名不同 id,按表单实际布局类型实时查(传错套会直接报错并列出可用项;**平台对跨套 id 不报错、只会静默忽略,表现为"命令成功但样式没变"**)。缺省:流式=标准版、表格式=表格版。完整模板表见 `form/style-templates.md`。**建表时不能指定样式,只能建完再用本命令换** |
98
+ | `e10-cli form native <子命令>` | **原生表单引擎**(formdatareport/biaoge,非 Ebuilder;只有 formId、无 objId、无 appId)的命令组:`create <名称>` 建表、`read <formId>` 读字段、`add-field` / `add-detail-table` / `init` / `field-group`,以及 `list [--keyword]`(存活表单,名称模糊搜)、`trash`(回收站)、`delete <formId...>`(停用→检查→删除,进回收站,删后回读确认)。**注意与 EB 表单不通用**:URL 前缀 `/api/formdatareport/...`、body module `biaoge` 或 `formdatareport` 视接口而定 |
99
+ | `e10-cli form layout read <objId> [--view-id <id>]` | 读表单布局结构(comps 坐标/只读)。不传 `--view-id` 读默认布局,传则读指定视图 |
100
+ | `e10-cli form layout init <objId> [--style-template <名\|id>] [--view-id <id>] [--read-only] [--required] [--disable-edit] [--single-row]` | 初始化/重建表单布局(initLayout):**换样式模板** + 覆盖字段 readOnly/required/disableEdit/singleRow(不传这些开关则**保留字段已有设置**)。**⚠ 样式模板流式与表格式是两套**,同名不同 id,按表单实际布局类型实时查(传错套会直接报错并列出可用项;**平台对跨套 id 不报错、只会静默忽略,表现为"命令成功但样式没变"**)。缺省:流式=标准版、表格式=表格版。完整模板表见 `form/style-templates.md`。**建表时不能指定样式,只能建完再用本命令换** |
100
101
  | `e10-cli form group <objId> <appId> --groups '{"基本信息":["字段名/fieldId",...]}'` | 给**已建好的 eb 表**加字段分组(折叠容器)。建组 saveFieldGroup → 分配 updateFormFieldGroup → initLayout generateCollapse 渲染。`--groups` 可 `@文件`;`--required` 同时设分组内字段必填;同名分组复用不重复建(去重)。建表时一次性带分组用 `form create` 的 fields.json `group` 属性 |
101
102
  | `e10-cli form data add <objId> <appId> <json>` | 写入表单数据(`@` 开头为 JSON 文件路径)。JSON key 可用 fieldId 或字段名;Select/RadioBox 值填选项名(自动解析 valueKey)或 valueKey、CheckBox/SelectMultiple 用数组、TextArea 直接值、Employee/Department 用 ID。详见 `form/guide-form-data.md` |
102
103
  | `e10-cli form data list <objId> [--page <n>] [--size <n>]` | 查询表单数据。`--page` 页码(缺省1)、`--size` 每页条数(缺省1000;不传 pageInfo 平台默认卡 10) |
@@ -163,7 +164,7 @@
163
164
  | `e10-cli workflow auth-resp-flow create <name> --base @json (--new-table <name>\|--reuse-table <id>)` | 按权责表方式创建流程。新建模式直接使用表单字段;复用模式可加 `--mappings @json` 保存权责表变量到当前表单字段的映射 |
164
165
  | `e10-cli workflow auth-resp-flow <bind\|design-read\|design-apply\|mapping-read\|mapping-save>` | 对已有权责表流程维护绑定关系、权责表流转设计及变量映射。节点、分支条件和路径通过权责表设计维护。详细顺序见 `workflow/guide-workflow-auth-resp.md` |
165
166
  | `e10-cli workflow odoc <list\|read>` | 查询公文流程列表,或读取单个公文流程及公文设置摘要。`list` 支持 `--name`、`--sub-company`、`--belong-type`、分页参数 |
166
- | `e10-cli workflow odoc setting <get\|set> <workflowId>` | 读取或修改公文设置。`set --config @json` 读取当前配置后合并保存并回读;常用参数含 `--official-type`、`--request-title-field`、`--upload-word/pdf/ofd`、`--text-in-form`、`--column-position`、`--attach-area`、`--archive-node` |
167
+ | `e10-cli workflow odoc setting <get\|set> <workflowId>` | 读取或修改公文设置。`set --config @json` 读取当前配置后合并保存并回读;常用参数含 `--official-type`、`--request-title-field`、`--upload-word/pdf/ofd`、`--text-in-form`、`--column-position`、`--attach-area`、`--archive-node`、`--open-text-select`、`--open-text-node`、`--edit-text-node`、`--ai-odoc/--ai-abstract/--ai-format`。`--open-text-node` / `--edit-text-node` / `--archive-node` 可写节点名称,CLI 会查回节点 ID;节点名称在流程内重复时报错,不擅自挑一个 |
167
168
  | `e10-cli wf-form read <formId>` | **流程表单管理(非默认路径)**。读流程表单字段(getConfig)。`<formId>` 由 `workflow create-workflow` 回吐。与 eb 表 `form read` 对齐,走 `/api/workflow/core/form/...`(module=workflow、customParam={}、无 apid) |
168
169
  | `e10-cli wf-form add-field <formId> <字段名> <类型> [标题]` | 给流程表单加字段。类型:Text/TextArea/Number/Money/Date/DateTime/Select/Employee/Department/Browser(浏览按钮),**以及全部富组件类型**(Time/Score/Signature/Project/Location/Order/Contract 等,走与 eb 表同一张映射表)。`--sub-form-id <明细subFormId>` 明细字段;`--multiple` 多选;`--precision`/`--percent`/`--default`(Number/Money);`--format`(日期精度)。formTableId 省略 |
169
170
  | `e10-cli wf-form add-field <formId> <名> Browser <标题> --browser-type <源>` | **浏览按钮必须指定浏览数据源**,否则平台报「程序异常」。源可选 `workflow`(缺省=工作流) / `hrcontract` / `role` / `archive` / `form`;用 `form` 时再配 `--browser-form-source business\|ebuilder`。落到平台是 `type=RelateBrowser` + `browserType:{module,name,id,type}` |
@@ -179,7 +180,7 @@
179
180
  | `e10-cli wf-form permission get <formId>` | 查看流程表单字段权限(display/readOnly/required/disableEdit)。**写字段权限用 `workflow node field-permission`**(节点级,流程表单表单级写平台多返 500) |
180
181
  | `e10-cli wf-form add-detail-table <formId> <明细表名> [首字段名] [--init]` | 给流程表单加明细子表(saveSubForm+首字段+可选 init 放入布局)。机制同 eb 表 `form add-detail-table` |
181
182
  | `e10-cli wf-form field-options <formId> <fieldId> --options '[{"name":"事假"},...]' [--default <序号>]` | 给流程表单 Select/SelectMultiple 配选项(read-modify-write:getFormField 读全字段→改 options→saveFormFieldNew 重存)。`--options` 支持 `@文件`;`--default` 默认选项 valueKey |
182
- | `e10-cli wf-form layout init <formId>` | 初始化/重建流程表单布局(initLayout,按 layoutType 选模板,默认 FLOW)。`--read-only`/`--required`/`--single-row` 覆盖字段属性 |
183
+ | `e10-cli wf-form layout init <formId> [--layout-id <布局ID>]` | 初始化/重建流程表单布局(initLayout,按 layoutType 选模板,默认 FLOW)。**`--layout-id` 指定要重建哪一套**(节点独立布局的 layoutId),不传则重建默认布局;字段属性用 `--read-only`/`--required`/`--single-row` 覆盖 |
183
184
  | `e10-cli wf-form layout add <formId> --name <布局名>` | 新增一套流程表单布局。`--layout-type FLOW|EXCEL`(默认 FLOW)、`--terminal-type PC|MOBILE`(默认 PC)、`--describe`、`--workflow-id`;返回 `layoutId`,多套布局并存且不覆盖原布局 |
184
185
  | `e10-cli wf-form layout delete <formId> <layoutId>` | 删除指定流程表单布局。`layoutId` 取自 `layout add` 返回值;可传 `--workflow-id`、`--terminal PC|MOBILE`(默认 PC)。该操作从布局列表移除目标布局 |
185
186
  | `e10-cli wf-form field-prop <formId>` | 设置运行时布局字段属性:`--required <字段...>`、`--no-required <字段...>`、`--readonly <字段...>`、`--editable <字段...>`、`--single-row <字段...>`。字段可传名称或 ID;内部 getConfig 读取并由 initLayout 保存,同时保留已有分组和独占一行设置 |
@@ -193,7 +194,7 @@
193
194
  | `e10-cli workflow add-node <wf> <type> <name>` | 添加节点(列表 API)。`<type>`: 0=发起 1=审批 2=确认 3=归档 5=投递 7=自动处理 8=等待 / forkstart/forkend/forkmiddle。**结束节点=归档节点(type=3)**。`--node-attr` 节点属性;合流点支持 `--merge-type`(0=全部/1=指定/2=数量/3=比例)、`--merge-num`、`--branch-nodes` |
194
195
  | `e10-cli workflow rename-node <wf> <nodeId> <name>` | 重命名节点(saveNodeSetForm API) |
195
196
  | `e10-cli workflow add-link <wf> <from> <to> <label>` | 一键添加连线(列表 API)。`--reject` 退回 / `--default` 默认出口 |
196
- | `e10-cli workflow add-links <wf> @links.json` | 批量添加连线(列表 API,一次保存)。格式:`[{"from":"节点ID","to":"节点ID","label":"标签","reject":true,"default":true}]` |
197
+ | `e10-cli workflow add-links <wf> @links.json` | 批量添加连线(列表 API,一次保存)。格式:`[{"from":"节点ID","to":"节点ID","label":"标签","reject":true,"default":true}]`。`reject`/`default` 逐条给;设为默认出口时同源节点原有默认出口自动让位 |
197
198
  | `e10-cli workflow link-list <wf>` | 查看出口列表(含默认/退回/条件标志)。`--node-id` 过滤单节点 |
198
199
  | `e10-cli workflow link-save <wf> @datas.json` | 修改/删除出口(列表方式)。`--delete-rows`/`--changed-link-ids`/`--update-row-ids` |
199
200
  | `e10-cli workflow link-rename <wf> <linkId> <名称>` | 重命名出口(连线名称)。linkId 用 link-list 查看。实现:读出口列表 → 改 linkName → saveNodeLinkEditTable(updateRowIds) |
@@ -208,19 +209,22 @@
208
209
  | `e10-cli workflow node layout get <wf> <nodeId>` | 查看某节点挂的是哪套布局(空 = 跟随表单默认) |
209
210
  | `e10-cli workflow node layout bind <wf> <nodeId> --layout-id <id>` | 把节点挂到某套布局。**自动从原来那套摘掉**(一个节点同时只属于一套布局);幂等 |
210
211
  | `e10-cli workflow node layout unbind <wf> <nodeId>` | 摘下独立布局,回落表单默认布局;幂等 |
211
- | `e10-cli workflow node layout create <wf> --name [--layout-type FLOW\|EXCEL] [--nodes <id...>] [--from <布局ID>\|--empty]` | 新建布局。**默认复制表单默认布局**(`--from` 换来源);`--empty` 才是空白布局。类型不写则跟随来源,**建后不可切换**。删布局用 `wf-form layout delete` |
212
- | `e10-cli workflow node layout init <wf> <布局ID> [--fields <名...>] [--list-fields] [--style-template] [--required\|--readonly\|--single-row]` | 重建某套布局的排版(**只动这一套**)。`--fields` = 只摆这些字段(不传=全摆,没摆的字段在表单上仍在);`--list-fields` 看可摆清单。`create --init [--fields …]` 可建完直接排 |
212
+ | `e10-cli workflow node layout create <wf> --name [--layout-type FLOW\|EXCEL] [--nodes <id...>] [--from <布局ID>\|--empty]` | 新建布局。**默认复制表单默认布局**(`--from` 换来源);`--empty` 才是空白布局。类型不写则跟随来源,**建后不可切换**。⚠ **复制会锁类型**:从流式来源复制却要求表格式,平台仍会建成流式,命令会**直接拒绝** —— 要建另一种类型请改用 `--empty`。要复制 PC 默认布局去建移动端布局是常见场景,来源按**两个终端的并集**找,不受目标终端限制。删布局用 `wf-form layout delete` |
213
+ | `e10-cli workflow node layout init <wf> <布局ID> [--fields <名...>] [--list-fields] [--style-template] [--required\|--readonly\|--single-row]` | 重建某套布局的排版(**只动这一套**)。`--fields` = 只摆这些字段(不传=全摆,没摆的字段在表单上仍在);`--list-fields` 看可摆清单。`create --init [--fields …]` 可建完直接排。**原生流程表单(不挂应用)与 eb 表关联流程的表单走两套不同路由,命令自动识别**,不需要额外参数 |
214
+ | `e10-cli workflow setting tabs <wf> [选项]` | 查看/配置**流程详情页页签**(显示哪些页签、默认打开哪个、移动端)。`--only <页签名...>` **PC 端只显示这些、其余全部不显示**(需求里「显示页签:A/B/C,其余不显示」就用它)、`--show`/`--hide` 单独开关、`--mobile <页签名...>` 移动端只显示这些、`--mobile-menu <...>` 移动端菜单、`--default-open <页签名>`(单选)。页签名可用**名称或类型码**(1 流程表单 / 2 流程图 / 3 流程状态 / 4 共享 / 6 主流程 / 7 子流程 / 8 平行流程 / 12 外部流程);同流程类型页签集合不同(「正文」只在公文流程上有)。保存后自动回读比对 |
213
215
  | `e10-cli workflow node-reject get <wf> <nodeId>` | 查看节点退回设置(退回提醒 / 退回方式 / 默认选中 / 退回后提交) |
214
216
  | `e10-cli workflow node-reject set <wf> <nodeId> [选项]` | 设置节点退回规则。`--reject-type free\|step\|range\|byLink\|preApprover`(自由/逐级/指定范围/按出口/上一审批人)、`--submit-type step\|direct\|fork\|operator`、`--reject-remind none\|all\|nodes\|user`、`--default-node prev\|start\|custom`、`--remind-node-ids`(提醒节点)、`--range-node-ids`(退回范围节点)、`--default-node-id`、`--to-create-node`(出口未配时退发起节点);`--custom` / `--no-custom` 显式指定是否启用自定义退回设置,**缺省保留节点当前值**。⚠ `--no-custom` 时平台会忽略全部节点级退回值,读回看到的是全局默认回显——不是没保存 |
215
217
  | `e10-cli workflow node-overtime list <wf> <nodeId>` | 查看节点超时规则(含启用状态与规则描述)。新规则平台默认「未启用」,需跑一遍 `set` 才会启用 |
216
218
  | `e10-cli workflow node-overtime set <wf> <nodeId> [选项]` | 设置节点超时规则,**建好后自动启用并回读核对**(回读不符即报错)。`--duration <天:时:分>`(如 `0:2:0`)、`--flow-type next\|reject\|submit\|intervene\|operator`(下一操作者/退回节点/提交节点/干预对象/指定操作者)、`--flow-delay <天:时:分>`、`--flow-node <节点ID>`(reject\|submit 的目标节点)、`--intervene-ids <用户ID>`(intervene 的干预对象)、`--operator-group <操作组ID>`(operator 的操作组)、`--disabled`(关闭超时处理且不启用)、`--skip-required`(有必填项也继续自动处理) |
217
219
  | `e10-cli workflow node-overtime remind <wf> <nodeId> [选项]` | 设置超时提醒。`--name <提醒名>`、`--type 0\|1`(超时前/超时后)、`--offset <天:时:分>`、`--mode 0\|1`(仅提醒本人/逐级提醒)、`--remind-group-id`、`--msg`/`--no-msg`、`--mail`/`--no-mail`、`--sms`/`--no-sms`。`--overtime-id` **可省略**:该节点只有一条超时规则时自动使用,多条时列出候选要求显式指定 |
220
+ | `e10-cli workflow node drawback <wf> <nodeId> [--after\|--no-after]` | 查看/配置**节点强制收回设置**(操作菜单「强制收回」按钮的内部设置)。⚠ 建模成**一个开关**而不是两个复选框:「查看前收回」是**平台强制基线,关不掉** —— 发「只要查看后收回」平台会给你**两个都开**(接口回读与页面勾选已双向对齐验证),所以命令只暴露 `--after`(是否额外允许查看后收回)。幂等:本来就是目标状态时不发请求 |
221
+ | `e10-cli workflow node addstep <wf> <nodeId> [选项]` | 查看/配置**节点加签设置**(操作菜单「加签」按钮的内部设置)。`--select-mode simple\|list\|chart`(简易/列表/流程图)、`--node-type approve\|confirm\|view`(审批/确认/查阅环节)、`--sign-attr countersign\|non\|order`(会签/非会签/依次逐个处理)、`--flow-type next\|back`(流转结束后自动流转下一节点/回到本节点)、`--back-flow operator\|next\|addstep`(回到本节点后:操作者选择/流转至下一节点/流转至加签环节)、`--field-auth all\|same`(加签人字段权限:所有字段权限/与当前节点保持一致)、`--modify-form`、`--limit-range`。取值可直接写数字码。⚠ 字段权限是 **0 所有字段权限 / 1 与当前节点保持一致**(接口库文档写的 1/2 是错的)。保存后自动回读比对 |
218
222
  | `e10-cli workflow node menu <wf> <nodeId> [选项]` | 查看/配置节点操作菜单。菜单分**快捷菜单**(批准/保存/退回/强制收回/加签…)与**更多菜单**(转办/转发/传阅/意见征询/催办/打印…)两组。`--quick <names...>` 快捷菜单**只启用这些**(其余快捷菜单关闭,不在该组的会移进来)、`--more` 同理、`--enable`/`--disable` 单独开关(不动分组)、`--rename 批准=发送` 改显示名(可重复,值留空恢复默认名)、`--sign 批准=同意` 设默认签字意见、`--toggle <菜单>` 切换单个。菜单可用**名称 / 类型码(AGREE) / ID** 指定;名字拼错会直接报错并列出候选 |
219
223
  | `e10-cli workflow node-assign-flow get <wf> <nodeId>` | 查看节点指定流转(工作流界面上的「开一窗流转」)设置:启用、目标节点选择范围、自动流转、操作者/抄送 |
220
224
  | `e10-cli workflow node-assign-flow set <wf> [nodeId] [选项] [--all-nodes]` | 设置节点指定流转。只改显式给出的项,其余沿用当前值。`--enable`/`--disable`、`--range out\|free\|nodes`(按出口/自由/指定节点范围)、`--nodes <节点ID...>`(`--range nodes` 时必填)、`--node-range all\|condition`(按出口时的可选出口)、`--auto-flow none\|must\|first`、`--must-nodes <节点ID...>`(`--auto-flow must` 时必填)、`--auto-first-node`/`--no-auto-first-node`、`--open-dialog`/`--no-open-dialog`、`--forbid-modify-node`、`--node-alone`(目标节点单选)、`--common-destination`(允许使用常用去向)、`--single-operator`、`--comments`、`--sign-relation user\|countersign\|non\|order\|node\|parallel`、`--cc`/`--no-cc`、`--cc-type user\|off\|submit\|auto`、`--cc-required 0\|1`。**`--all-nodes` 对全流程所有可配置节点统一执行**(跳过结束节点与分流/合流点),用于「全流程统一、节点上不单独配」的场景 |
221
225
  | `e10-cli workflow node-assign-flow targets <wf> <nodeId>` | 列出该节点已单独设置的目标节点(含稳定独立设置 ID 与接收范围键) |
222
226
  | `e10-cli workflow node-assign-flow add-target <wf> <nodeId> <目标节点ID...>` | 新增指定流转目标节点。已存在的自动跳过,不重复新增 |
223
- | `e10-cli workflow node-assign-flow range <wf> <nodeId> [--open\|--no-open] [--mode normal\|advanced] [--limit-operator]` | 查看/设置指定流转的接收人可选范围(`scene=7`)。保存后自动回读比对,**没落库会直接报错而不是假装成功** |
227
+ | `e10-cli workflow node-assign-flow range <wf> <nodeId> [--open\|--no-open] [--mode normal\|advanced] [--limit-operator]` | 查看/设置指定流转的**接收人可选范围**(总开关 / 普通·高级模式 / 仅限目标节点操作者范围)。`<nodeId>` 传**配指定流转的那个节点**。保存后自动回读比对(场景号传错时平台会照样回 `data=true`,回读比对是唯一的判据)|
224
228
  | `e10-cli workflow node vote <wf> <nodeId> --type count\|rate --num <n>` | 配置投票节点规则(**自动把节点置为投票类型** nodeType=5)。`--type count` 通过人数 / `rate` 通过率(`--num 100` = 100%);`--min-num` 最少通过人数、`--show-results` 投票后显示结果、`--veto` 一票否决 |
225
229
  | `e10-cli workflow node-robot get <wf> <nodeId>` | 查看机器人节点(等待节点 type 8)配置:等待时长 / 处理间隔 / 操作 / 异常干预 / 动作 |
226
230
  | `e10-cli workflow node-robot set <wf> <nodeId> [选项]` | 更新机器人节点配置(读-改-写,**未传的字段保留原值**)。`--wait-value <分钟>`、`--processing-interval`、`--operator-name`、`--operate-type-name`、`--remark`、`--intervene-type`、`--enable-remark-custom` |
@@ -303,10 +307,11 @@
303
307
 
304
308
  | 命令 | 说明 |
305
309
  |------|------|
306
- | `e10-cli menu list <appId>` | 列出当前Ebuilder应用下的菜单 |
307
- | `e10-cli menu add <name> <path> <appId>` | 将页面加入左侧导航(LINK 类型,URL path)。ecode 页面 path 如 `/sp/custom/ecode/project-list`。**表单台账/流程发起菜单用下面两条专用命令**(VIEWPORT/LAYOUT 类型,非 URL) |
308
- | `e10-cli menu add-table <appId> <objId> [name]` | 给表单加**台账菜单**(VIEWPORT,指向数据列表页)。`form create --menu` 才自动加(默认不加),此处用于事后补加 |
309
- | `e10-cli menu add-start <appId> <formObjId> [name]` | 给流程绑定的表单加**发起菜单**(LAYOUT,指向表单新建页,点开触发流程)。`workflow create --menu` 才自动加(默认不加) |
310
+ | `e10-cli menu list <appId>` | 列出当前Ebuilder应用下的菜单。**递归展开嵌套菜单**(如「设置 → 个人设置 → 个人菜单设置」),列表即全量 —— 在这里没找到就是真没有,不必再怀疑被折叠 |
311
+ | `e10-cli menu rename <appId> <菜单ID或名称> <新名>` | 重命名已有菜单(含嵌套菜单)。名称在应用内重复时必须改用 ID,命令会列出候选让你选。平台系统菜单(回收站/设置等)不能改 |
312
+ | `e10-cli menu add <name> <path> <appId>` | 将页面加入左侧导航(LINK 类型,URL path)。ecode 页面 path 如 `/sp/custom/ecode/project-list`。**表单台账/流程发起菜单用下面两条专用命令**(VIEWPORT/LAYOUT 类型,非 URL)。**建完会回读确认**并报出菜单 ID;回读不到就报错退出,不谎报成功 |
313
+ | `e10-cli menu add-table <appId> <objId> [name]` | 给表单加**台账菜单**(VIEWPORT,指向数据列表页)。`form create --menu` 才自动加(默认不加),此处用于事后补加。**建完回读确认** |
314
+ | `e10-cli menu add-start <appId> <formObjId> [name]` | 给流程绑定的表单加**发起菜单**(LAYOUT,指向表单新建页,点开触发流程)。`workflow create --menu` 才自动加(默认不加)。**建完回读确认** |
310
315
  | `e10-cli menu permission list <appId> <menuId>` | 列菜单可见范围授权(**默认所有人**;无输出=全可见) |
311
316
  | `e10-cli menu permission add <appId> <menuId> <目标> --type role\|dept\|user\|all` | 给菜单授权。默认语义:**加角色/人/部门后自动撤「所有人」→ 只有授权对象可见**;`--keep-all` 保留所有人;`--type all` 恢复"所有人可见" |
312
317
  | `e10-cli menu permission remove <appId> <menuId> <目标> --type role\|dept\|user\|all` | 撤销菜单授权(撤销所有人用 `--type all`) |
@@ -339,6 +344,9 @@
339
344
  | `e10-cli designer calendar dataset-bind\|field-map\|title` | 日历绑数据源(`--start --end --title-field`,内置全视图渲染)/调映射(`--end clear` 全天单日)/设标题 |
340
345
  | `e10-cli designer slide pic-add\|title` | 幻灯片加轮播图(**平台资源路径**,已防 Git Bash 路径转换)/设标题 |
341
346
  | `e10-cli designer nav-panel menu-add\|menu-source-type\|title` | 导航面板加跳页菜单(NewPage 双层 eventGroup 自动构造)/切菜单来源 DEFAULT\|CUSTOM/设标题 |
347
+ | `e10-cli designer css read <pageId> <compId> [--terminal pc\|mobile\|both]` | 读组件**自定义 CSS**(`comp.config.styles[].customStyle.base.codeSource`;compId 给任一端都行) |
348
+ | `e10-cli designer css write <pageId> <compId> (--css <文本>\|--css-file <路径>) [--append\|--clear] [--terminal] [--yes]` | 写自定义 CSS:默认**双端同写**、默认整段替换;`--append` 非幂等;`--clear` 清空但留记录;两端已分叉时须 `--yes`。写后回读比对,对不上报错 |
349
+ | `e10-cli designer dom-list` / `designer dom <type> [--keys] [--section <path>] [--refs]` | 查写 CSS 要用的**组件 DOM 结构索引**(27 个组件,随包分发)。**先 `--keys` 看骨架再 `--section` 取子树**(文档中位数 20 多 KB) |
342
350
 
343
351
  > **setter 通用**:`--field-id` 传字段名或 fieldId;绑定条目由 CLI 从 ds/fields 取平台原样字段对象自动构造(不用手填 physicalField/browserParams);其余 12 类非图表组件无 setter,走「导出 layout → 脚本改 config → save」(见 `ebuilder-designer/guide-designer-factory.md` 深度配置节)。
344
352
  | `e10-cli designer auto-height <pageId>` | **单列纵堆模式**:按组件内容自动定高 + 重排 y(配完字段后跑一次)。**多列栅格勿用**(会覆盖 w/x),手调 position |
@@ -26,6 +26,16 @@ e10-cli designer save <pageId> --layouts @layouts.json
26
26
  >
27
27
  > **PC/MOBILE 同名组件**经 `refCompId` 互连——改一端 config 时注意另一端是否需同步。
28
28
 
29
+ ### 自定义 CSS
30
+
31
+ 组件的外观有两层:`comp.config.styles[N].customStyle` 下的**图形化样式块**(`title`/`content`/`footer`/`container` 的字号、背景、边框等),以及其中的 **`base.codeSource` 自由文本 CSS**。后者就是需求里说的「自定义 CSS」。
32
+
33
+ - 干净组件的 `styles` 是**空数组**;Picture/CountDown 之类自带**主题绑定记录**(`useComStyle:true`),与自由 CSS 记录是两回事,**不要碰**。
34
+ - 不要绕开命令直接改布局 JSON,也不要去动 `sourceCode.cssCache`(平台的编译产物)。
35
+ - 用 `e10-cli designer css read/write` 读写,用 `e10-cli designer dom <type>` 查该组件的 DOM 结构来写选择器。
36
+
37
+ 完整契约、选择器作用域速查、27 个组件的 DOM 文档对照表与各条坑 → `guide-designer-css.md`。
38
+
29
39
  ---
30
40
 
31
41
  ## 接口给出的组件字段(Slide 一例)
@@ -104,7 +114,8 @@ e10-cli designer save <pageId> --layouts @layouts.json
104
114
 
105
115
  ## 相关指南
106
116
 
107
- - 布局层(info/layout/save/lock/theme/position)→ `guide-designer.md`
117
+ - 布局层(info/layout/save/lock/position)→ `guide-designer.md`
118
+ - 自定义 CSS 与组件 DOM 结构索引(`designer css` / `designer dom`)→ `guide-designer-css.md`
108
119
  - 工厂模板(comp-add 复制机制)→ `guide-designer-factory.md`
109
120
  - 版本层(list/revert)→ `guide-designer-version.md`
110
121
  - 命令速查 → `../common/ref-cli-commands.md`「designer」节