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,127 @@
1
+ # 页面组件自定义 CSS
2
+
3
+ 需求里出现「给这个组件调样式」「自定义 CSS」「改选择器」「样式不生效」「DOM 结构」时读本篇。组件 config 字段见 `guide-designer-components.md`,布局读写机制见 `guide-designer.md`。
4
+
5
+ ## 定位与职责边界
6
+
7
+ 自定义 CSS 写在**组件**上,形如:
8
+
9
+ ```
10
+ comp.config.styles[N].customStyle.base.codeSource ← 自由文本 CSS
11
+ ```
12
+
13
+ - **页面级没有自由 CSS 槽位**。`layout.config.style` 里只有结构化的 `page.margin/padding/background`。想整页统一风格,只能往组件上写。
14
+ - **CLI 只负责写**:写对、写稳、写后回读比对。样式在页面上如何渲染、样式缓存如何编译,是平台的事,命令不做判断也不承诺。
15
+ - **一个页面有 PC/MOBILE 两套布局,每个终端各有一份组件**,靠互指 `refCompId` 配对。设计器本身就是双端同写,所以 `css write` 默认也双端。
16
+
17
+ ## `styles` 记录契约
18
+
19
+ `comp.config.styles` 是数组,里面有**两种互不相干的记录**,标志位正好相反:
20
+
21
+ | | 自由 CSS 记录 | 主题绑定记录 |
22
+ |---|---|---|
23
+ | 形态 | `{category, useCustom:true, useComStyle:false, styleVersion, customStyle:{…}}` | `{id, category, customType, useCustom:false, themeId, useComStyle:true}` |
24
+ | 来源 | 用户/CLI 写的自定义样式 | 组件自带的外观主题(Picture、CountDown 的模板就带) |
25
+ | CLI 行为 | 读它、写它 | **绝不碰**(写 CSS 时追加一条新记录,不动它) |
26
+
27
+ 干净组件的 `styles` 是**空数组 `[]`**。三种输入状态及对应行为:
28
+
29
+ 1. `styles` 为空 → 新建一条记录(只需 `category`/`useCustom`/`useComStyle`/`styleVersion` + `customStyle.base.codeSource` 四个键)。
30
+ 2. 已有自由记录 → **外科式**只换 `customStyle.base.codeSource`,`customStyle` 下的 `title`/`content`/`footer`/`container` 等图形化样式块与记录的其它字段原样保留。
31
+ 3. 只有主题绑定记录 → **追加**一条自由记录,第 0 条一字不动。
32
+
33
+ ## 命令
34
+
35
+ ```bash
36
+ # 读(默认双端;compId 给 PC 或 MOBILE 任一端的都可以)
37
+ e10-cli designer css read <pageId> <compId> [--terminal pc|mobile|both] [--json]
38
+
39
+ # 写(默认双端、默认整段替换)
40
+ e10-cli designer css write <pageId> <compId> --css "<CSS>"
41
+ e10-cli designer css write <pageId> <compId> --css-file <路径>
42
+ e10-cli designer css write <pageId> <compId> --css "<CSS>" --append
43
+ e10-cli designer css write <pageId> <compId> --clear
44
+ e10-cli designer css write <pageId> <compId> --css "<CSS>" --terminal pc
45
+ ```
46
+
47
+ - **`--css` 与 `--css-file` 是两个选项,没有 `@file` 约定。** `@media` 开头的 CSS 是合法写法,用 `@文件` 会被当成路径。
48
+ - `--append` **非幂等**:重复跑会重复追加。想改内容用整段替换。
49
+ - `--clear` 清空内容但**保留记录**(不动 `customStyle` 其它块)。
50
+ - 两端现有 CSS **都非空且不一致**时,双端写会覆盖其中一端 —— 命令会拦下并点名两端字节数,确认覆盖加 `--yes`,只想改一端用 `--terminal`。
51
+ - 写完会**回读比对**;对不上直接报错(服务端可能没落库或改写了形状),用 `css read` 看实际值。
52
+
53
+ ## 写选择器:**不要写组件 id**
54
+
55
+ **`customStyle.base.codeSource` 是组件级的** —— 每段 CSS 本来就只属于它所在的那个组件,平台在编译时会自己套上 `#<comId>` 限域。所以源码里**再写一遍 id 是错的**:
56
+
57
+ ```css
58
+ /* ✅ 对:直接写类名 */
59
+ .ebcoms-navPanel-wrapper-square { border-radius: 12px; }
60
+ .content { background: #070d1a; }
61
+
62
+ /* ❌ 错:多写了组件 id */
63
+ #f3708b2387bd757a336ab0e176243801 .ebcoms-navPanel-wrapper-square { … }
64
+ ```
65
+
66
+ 写进去会怎样:轻则多余,重则**不生效** —— 一个页面 PC 与 MOBILE 是两份布局、两个不同的实例 id,同一段 CSS 双端同时写时(设计器自己就是双端同写、两端 `codeSource` 一模一样),写死哪一端的 id,另一端就必不匹配。
67
+
68
+ > 组件 DOM 文档里说的「官方样式生成器一律以 `#<comId>` 限域」,讲的是**编译产物**(`sourceCode.cssCache`)长什么样,**不是叫你写在源码里**。
69
+
70
+ 组件 DOM 由三层拼出来,**类名前缀区分来源**:
71
+
72
+ | 前缀 | 来源 |
73
+ |---|---|
74
+ | `ebcom-` | 引擎/框架层(源码里搜不到,由引擎外壳生成) |
75
+ | `ebcoms-` | 组件自己写的 |
76
+ | `ui-` | `@weapp/ui` 第三方组件追加的 |
77
+
78
+ - 引擎外壳的 `id` 与挂在组件根上的 `data-id` 都是组件实例 id —— **它们是给平台编译用的,不要写进你的选择器**。
79
+ - 页面层外壳是 `#ebpage_<pageId>`,同样**别拿它定位组件**。
80
+ - 各组件的 `ebcom-*` 外壳类名不统一(如 NList → `ebcom-nlist`、CountDown → `ebcom-countdown`、CollapsePanel → `ebcom-collapsepanel`),以 DOM 结构文档为准,不要凭类型名拼。
81
+
82
+ 写样式时:**只写类名,不写 id**;**不要杜撰类名**(拼错就是静默不生效);尽量不用 `!important` 去压默认样式。
83
+
84
+ ## 查 DOM 结构:`designer dom`
85
+
86
+ 内置 **27 个组件**的 DOM 结构索引,随 skill 资产分发,用来把「用户说的部位」翻成选择器。
87
+
88
+ ```bash
89
+ e10-cli designer dom-list # 全表:类型 / 体量 / 组件名
90
+ e10-cli designer dom NList --keys # 先看骨架:usage / pickTree / legend / 各区块体量
91
+ e10-cli designer dom NList --section shared.title # 只取需要的子树
92
+ e10-cli designer dom NList --section shared.title --refs # 就地展开 {"ref":"shared.x"}
93
+ ```
94
+
95
+ **先 `--keys` 再 `--section`**:文档中位数 20 多 KB,整份打出来很占上下文,而 `usage`/`pickTree`/`legend` 三段散文才是找对树的关键。
96
+
97
+ 文档里的记号(各文件自己的 `legend` 也有解释):
98
+
99
+ | 记号 | 含义 |
100
+ |---|---|
101
+ | `[cls]` | 条件类名,满足业务条件才挂 |
102
+ | `{a\|b}` | 同一个位置按配置二选一 |
103
+ | `a > b` | 父子层级压缩写法 |
104
+ | `<comId>` | 组件实例 id。**只出现在文档对编译产物的描述里**,写源码选择器时不要用(见上) |
105
+ | `ref:shared.x` / `{"ref":"shared.x"}` | 引用同文件的复用片段,用 `--refs` 展开 |
106
+ | `uncontrolled` | 第三方(`@weapp/ui` 等)渲染,只给挂载点 |
107
+
108
+ 覆盖的 27 个组件(命令按**平台组件 type** 取,也认下面的常见写法):
109
+
110
+ | 平台 type | 也认 | 平台 type | 也认 |
111
+ |---|---|---|---|
112
+ | `NavPanel` | nav-panel | `NList` | nlist、n-list |
113
+ | `NavBar` | nav-bar | `DigitalPanel` | digitalpanel、digital-panel |
114
+ | `ProgressChart` | progress-bar、progressbar | `PageHeader` | pageheader、page-header |
115
+ | `EbButton` | eb-button | `CountDown` | count-down |
116
+ | `FastCreate` | fast-create | `SearchGlobal` | search-global |
117
+ | `CollapsePanel` | collapse-panel | `NewTab` | new-tab |
118
+ | `Comment` / `Picture` / `Slide` / `Calendar` | — | `Bar`/`BarStack`/`Line`/`HBar`/`HBarStack`/`Pie`/`Circular`/`Nightingale`/`Gauge`/`Treemap`/`Bubble` | — |
119
+
120
+ `NavMenu`、`InternalContainer` **暂无**文档,命令会直接说明并列出已覆盖清单。
121
+
122
+ ## 坑
123
+
124
+ - **注释不会被编译进去**,但 CLI 写进去时**原样保存**,回读比对会按去掉注释后比 —— 所以带注释的原文是安全的。
125
+ - **MOBILE 端的布局不返回样式缓存**,双端写完之后想确认效果,看 PC 端更省事。
126
+ - **别手写 `sourceCode.cssCache`** —— 那是平台的编译产物,手写会和下次编译打架。
127
+ - 改完布局记得收尾 `designer unlock`(多人协作防并发;`/layout/save` 本身不校验锁)。
@@ -17,15 +17,16 @@
17
17
  | `e10-cli designer layout <pageId> --json` | 导出布局 JSON 文件,供 save/comp-add 复用(`--json` 是全局选项,非 layout 专属隐藏) | GET `/layout/list`(落地为文件) |
18
18
  | `e10-cli designer save <pageId> --layouts <json\|@file> [--page-name] [--sync-outdate]` | 保存布局(CLI 内部 LZ 压缩后 POST)。`--layouts` 必填(**不是位置参数**) | POST `/layout/save` |
19
19
  | `e10-cli designer lock <pageId>` / `designer unlock <pageId>` | 锁定/解锁页面 | POST `/layout/lock` |
20
- | `e10-cli designer theme <pageId> <themeId> [--terminal <PC\|MOBILE>]` | 给页面设置主题(`--terminal` 默认 PC) | POST `/layout/refTheme` |
21
- | `e10-cli designer theme-list <pageId>` / `designer theme-info <pageId>` | 查可选主题列表 / 当前主题详情 | 契约外 `/theme/list`、`/theme/info` |
20
+ | `e10-cli designer css read <pageId> <compId> [--terminal <pc\|mobile\|both>]` | 读组件自定义 CSS(默认双端;`<compId>` 给任一端都行) | GET `/layout/list` |
21
+ | `e10-cli designer css write <pageId> <compId> (--css <文本> \| --css-file <路径>) [--append\|--clear] [--terminal] [--yes]` | 写组件自定义 CSS(默认**双端同写**、默认整段替换)。写后回读比对,对不上报错 | POST `/layout/save` |
22
+ | `e10-cli designer dom-list` / `designer dom <type> [--keys] [--section <path>] [--refs]` | 查写 CSS 要用的**组件 DOM 结构索引**(27 个组件;先 `--keys` 看骨架,再 `--section` 取子树) | 读随包资产 |
22
23
  | `e10-cli designer position <pageId> <compId> --x --y --w --h` | 调组件栅格位置(PC,封装 `/layout/save`:改 `config.layout.x/y/w/h` 后 save) | POST `/layout/save` |
23
24
  | `e10-cli designer comp-add <pageId> --type <Type> [--template @<file>] [--from <srcPage> --comp <id>] [--x --y --w --h]` | 加组件(封装 `/layout/save`)。**`--type` 是选项不是位置参数**。两种取源:`--type --template @<file>`(factory 模板,见 `guide-designer-factory.md`)/ `--from <srcPage> --comp <id>`(从活页克隆)。`--h` 按该指南「组件高度判断」自行算 | POST `/layout/save` |
24
25
  | `e10-cli designer comp-remove <pageId> <compId>` | 移除组件(含 PC/MOBILE refCompId 两端) | POST `/layout/save` |
25
- | `e10-cli designer comp-library <pageId> [--custom] [--json]` | 查页面可用组件库(只读目录,不含 config 模板;加组件仍走 `comp-add --template`) | 契约外 `/api/ebuilder/coms/component/list` |
26
- | `e10-cli designer style <pageId> <compId>` / `designer style-set <pageId> <compId> --var <name> --value <val>` | 查/改组件视觉样式(CSS 变量;style-set best-effort、非持久) | 改 `sourceCode.cssCache.ebd_style_lib` + `/layout/save` |
27
26
 
28
- > 组件 config 字段名与配置机制见 `guide-designer-components.md`;版本 list/revert 见 `guide-designer-version.md`。
27
+ > **页面主题(`/layout/refTheme`)、页面可用组件库(`/api/ebuilder/coms/component/list`)这两类接口目前没有 CLI 命令封装**,故不列在此表 —— 上表只列**实际可执行**的命令。
28
+
29
+ > 组件 config 字段名与配置机制见 `guide-designer-components.md`;自定义 CSS 与 DOM 结构索引见 `guide-designer-css.md`;版本 list/revert 见 `guide-designer-version.md`。
29
30
 
30
31
  ---
31
32
 
@@ -219,7 +219,7 @@ e10-cli form field-lang set <objId> <appId> <fieldId> --zh "项目" --en "projec
219
219
  ```bash
220
220
  e10-cli form read <objId> --app-id <appId> --out fields-created.json
221
221
  e10-cli form list-view <objId> <appId>
222
- e10-cli form layout read <objId> <appId>
222
+ e10-cli form layout read <objId>
223
223
  ```
224
224
 
225
225
  重点确认字段数量与类型、明细结构、分组和显示属性、布局类型、默认台账名称与 `listId`。需要菜单时再确认菜单入口。
@@ -62,7 +62,7 @@
62
62
 
63
63
  ```bash
64
64
  e10-cli form create <appId> "<表单名>" --fields @fields.json --layout EXCEL
65
- e10-cli form layout read <objId> <appId>
65
+ e10-cli form layout read <objId>
66
66
  ```
67
67
 
68
68
  创建后需要调整局部位置或显示属性时,使用 `form layout` 下的移动、只读和必填设置命令;具体参数通过 `form layout --help` 查询。
@@ -29,7 +29,8 @@ e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
29
29
  "fieldId": "目标字段ID",
30
30
  "name": "字段名称",
31
31
  "dataKey": "字段编码",
32
- "fieldType": "Employee"
32
+ "fieldType": "Employee",
33
+ "isDetail": false
33
34
  }
34
35
  ]
35
36
  }
@@ -37,6 +38,30 @@ e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
37
38
  }
38
39
  ```
39
40
 
41
+ ### actions[].fields[](联动目标字段)
42
+
43
+ | 键 | 说明 |
44
+ |------|------|
45
+ | fieldId | 目标字段的 fieldId(从 `form read --app-id` 获取) |
46
+ | name | 字段名(显示用) |
47
+ | dataKey | 字段编码;`form read` 不返回它,**留空即可**(用 fieldId 代替可行) |
48
+ | fieldType | 字段类型,如 `Text` / `Employee` / `Date` |
49
+ | **`isDetail`** | **目标落在明细表里时必须为 `true`**。不传 = 主表字段 |
50
+
51
+ **目标字段在明细表里,就加 `"isDetail": true`** —— 这是「主表字段控制明细列显隐」的写法,两个方向都支持(实测 `hide` / `required` 均可):
52
+
53
+ ```json
54
+ {
55
+ "conditions": [{ "fieldId": "<主表字段ID>", "operator": "EQUAL", "value": "Y" }],
56
+ "actions": [{
57
+ "prop": "hide",
58
+ "fields": [{ "fieldId": "<明细列ID>", "name": "明细列A", "dataKey": "", "fieldType": "Text", "isDetail": true }]
59
+ }]
60
+ }
61
+ ```
62
+
63
+ **怎么认出明细字段**:`form read` 的输出里,明细字段会标注所属明细表 —— 带 `明细表: xxx` 那些就是,照它填 `isDetail: true`。
64
+
40
65
  ### conditions(触发条件)
41
66
 
42
67
  多个条件之间是 **AND** 关系(全部满足才触发)。
@@ -121,7 +146,8 @@ e10-cli form linkage add <appId> <objId> <name> --config @<json文件>
121
146
 
122
147
  ## 注意事项
123
148
 
124
- 1. **主表 vs 明细表**:主表触发字段可修改主表或明细字段;明细表触发字段只能修改本行字段
149
+ 1. **主表 vs 明细表**:主表触发字段可修改主表或明细字段;明细表触发字段只能修改本行字段。
150
+ 目标落在明细表里时,`actions[].fields[]` 那个条目**必须带 `isDetail: true`**;不带的话这个目标会被当作主表字段提交
125
151
  2. **表格布局限制**:通过隐藏行/列/单元格自定义属性隐藏的字段,无法通过联动显示出来
126
152
  3. **明细表字段列隐藏**:需在明细表第一行配置操作按钮元素
127
153
  4. **多规则冲突**:避免同一个触发字段或同一个目标字段出现在多个规则里
@@ -61,3 +61,15 @@
61
61
  ```
62
62
 
63
63
  > **只有包含工作流的应用**才能挂载工作流系统页面。表单台账会自动挂入菜单,无需手动操作。
64
+
65
+ ---
66
+
67
+ ## 菜单是一棵树
68
+
69
+ 应用菜单不止一层:顶层之外还有 `children` 嵌套(例如平台自带的「设置 → 个人设置 → 个人菜单设置」、系统设置下的「基本信息 / 菜单设置」)。
70
+
71
+ - `menu list <appId>` **递归展开**整棵树,输出带缩进;末尾会注明含多少个嵌套菜单。**这份列表就是全量**,在它里面找不到某个菜单,才能下结论说「该应用没有这个菜单」。
72
+ - `menu rename <appId> <菜单ID或名称> <新名>` 按 ID 或名称定位,**嵌套里的菜单一样能改**。同名多条时命令会报歧义并列出候选 ID,不会替你挑一条。
73
+ - 改名的命令会**重建写报文**再回读比对:名称变了、且「页面绑定 / 菜单 URL / 可见范围」等字段一个都没动,才算成功。改名只动名字,不会顺带改掉已有的筛选条件或页签配置。
74
+
75
+ **平台系统菜单(回收站、设置及其子项)不能改名** —— 它们由平台维护、指向内置页面,改名没有语义,命令会直接拒绝。
@@ -58,10 +58,17 @@ e10-cli workflow odoc setting set <workflowId> \
58
58
  --request-title-field "公文标题" \
59
59
  --upload-word 1 --upload-pdf 1 --upload-ofd 1 \
60
60
  --text-in-form 1 --column-position 1 \
61
- --attach-area 1 --archive-node "归档"
61
+ --attach-area 1 --archive-node "归档" \
62
+ --open-text-select 2 \
63
+ --edit-text-node "发起节点" \
64
+ --ai-odoc 1 --ai-abstract 1 --ai-format 1
62
65
  ```
63
66
 
64
- 字段参数支持字段名称或字段 ID,节点参数支持节点名称或节点 ID。平台开关值使用 `0` 和 `1`。
67
+ 字段参数支持字段名称或字段 ID,节点参数支持节点名称或节点 ID(名称在流程内重复时报错并给出候选 ID,不擅自挑一个)。平台开关值使用 `0` 和 `1`。
68
+
69
+ - `--open-text-select` 默认打开正文节点的范围编码;`--open-text-node` 配合它指定具体节点(可多个,逗号或空格分隔)。
70
+ - `--edit-text-node` 可编辑正文的节点,可多个。
71
+ - `--ai-odoc` 公文助手总开关;`--ai-abstract` 智能摘要、`--ai-format` 智能排版 是它下面的两项,单独打开它们不会自动把总开关带上,需要一并给。
65
72
 
66
73
  ### 配置结构
67
74
 
@@ -74,3 +81,16 @@ e10-cli workflow odoc setting set <workflowId> \
74
81
  - AI 与格式:`openAiAbstract`、`openAiFormat`、`defaultFormatTemplate`、`showAiAssistant`、`showOfficialDoc`。
75
82
 
76
83
  保存请求携带完整公文设置,其中字段选择值为字段 ID、节点选择值为节点 ID,`signNodeList` 保存节点及其启用、必填状态。
84
+
85
+ **回读的值不能直接写回去。** 平台读回来的形状和保存要的形状不一样,混用会直接被服务端拒掉(`400 Bad Request`):
86
+
87
+ | | 读取 | 保存 |
88
+ |---|---|---|
89
+ | 开关 | 布尔 `true` / `false` | 字符串 `"1"` / `"0"` |
90
+ | 基本类型清单 | 数组 `["id1"]` / `[]` | 逗号串 `"id1"` / 空串 `""` |
91
+ | 签章节点表 | 对象数组 | 对象数组,但**每个对象里的布尔同样要转成串** |
92
+ | 节点清单字段(`editTextNode` 等) | 对象数组 `[{name,id}]` | 逗号串 `"id1,id2"` |
93
+
94
+ 分组的落法也分三种:`odocNumber` / `odocAttachArea` **整组保持嵌套**,`signNode` 组以 `signNodeList` 发出,其余分组的键**平铺**到顶层。这些转换由 CLI 自动完成,`--config` 里也按同样规则给值即可。
95
+
96
+ `setting set` 保存后会**回读比对**,对不上会点名是哪个键没落库 —— 平台对报文形状不合法一律报 400,但对语义问题可能静默收下,读回来才算数。
@@ -297,13 +297,28 @@ e10-cli workflow add-link <workflowId> <fromNodeId> <toNodeId> "退回" --reject
297
297
  e10-cli workflow add-link <workflowId> <fromNodeId> <toNodeId> "主线路" --default
298
298
  ```
299
299
 
300
- 批量添加连线:
300
+ 批量添加连线(出口表混着退回线和默认出口时用这个):
301
301
  ```bash
302
302
  e10-cli workflow add-links <workflowId> @links.json
303
- # links.json: [{"from":"nodeId","to":"nodeId","label":"发起→审批","reject":true,"default":false}]
303
+ # links.json:
304
+ # [
305
+ # {"from":"拟稿","to":"套红", "label":"拟稿 至 套红", "default":true},
306
+ # {"from":"部门经理审稿","to":"拟稿", "label":"部门经理审稿 退回 拟稿","reject":true}
307
+ # ]
304
308
  ```
305
309
 
306
- > **多条连线用 `add-links`**:`add-link` 内部 fetch→修改→save,并行的会覆盖。`add-links` 按顺序逐条执行,每条都从服务端拉最新 XML 再改,不会丢数据。不要用 `&` 或 `parallel` 并跑 add-link。
310
+ > **退回 / 默认出口逐条给**:`reject` / `default` 写在每条连线上;命令行上的 `--reject` / `--default`
311
+ > 是给整批兜底的默认值,逐条给的值优先于它。
312
+ >
313
+ > **默认出口会自动让位**:指定某条为默认出口时,同一源节点上原有的默认出口会被自动取消,
314
+ > 保证一个源节点只有一条默认出口。同一批里给同一源节点指定了两条默认出口会直接报错,
315
+ > 不会静默留下两条。
316
+ >
317
+ > **多条连线用 `add-links`**:`add-link` 内部 read→改→save,并行的会互相覆盖。`add-links` 一次把整批
318
+ > 拼好、一次保存,不会丢数据。不要用 `&` 或 `parallel` 并跑 add-link。
319
+ >
320
+ > 保存后 CLI 会**回读比对**:新连线的退回/默认标志与让位结果都对得上才算成功,
321
+ > 对不上会直接报错退出,不会因为服务端回了「保存成功」就放过。
307
322
 
308
323
  ### 删除连线
309
324