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
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/commands/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAgB9C;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAClF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4CxB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GACtF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmCxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2K3D"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../src/commands/menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAgF9C;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAClF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4CxB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GACtF,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmCxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmS3D"}
@@ -1,5 +1,40 @@
1
1
  import { AuthSession } from '../core/auth.js';
2
2
  import { ApiClient } from '../core/client.js';
3
+ import { buildRenameNavigation, diffMenuGuard, findMenus, isSystemMenu, nestedCount, pickMenuBucket, similarMenus, } from '../services/menu-catalog.js';
4
+ /**
5
+ * 拉全量菜单树并展开。**必须是全量**:分页或只取顶层会把嵌套菜单漏掉,
6
+ * 调用方据此说「这个应用没有这个菜单」就是假否定。
7
+ */
8
+ async function fetchMenuTree(client, baseUrl, appId) {
9
+ const url = `${baseUrl}/api/cusapp/app/allMenus?appId=${appId}&terminalType=PC&isFront=0&domain=${encodeURIComponent(baseUrl)}`;
10
+ const data = await client.get(url, { ebbusinessid: appId });
11
+ if (data?.code !== 200)
12
+ return { ok: false, msg: data?.msg || '未知错误' };
13
+ const { nodes, bucket } = pickMenuBucket(data?.data || {});
14
+ return { ok: true, nodes, bucket };
15
+ }
16
+ async function confirmMenuCreated(client, baseUrl, appId, match) {
17
+ const tree = await fetchMenuTree(client, baseUrl, appId);
18
+ if (!tree.ok)
19
+ return { state: 'unreadable', msg: tree.msg };
20
+ const hit = tree.nodes.filter(match);
21
+ if (!hit.length)
22
+ return { state: 'missing' };
23
+ return { state: 'found', node: hit[hit.length - 1] };
24
+ }
25
+ /** 回读确认的统一文案与退出码:只有 `found` 才算成功,另两态各自说清「为什么不能算成功」。 */
26
+ function requireMenuConfirmed(confirm, label) {
27
+ if (confirm.state === 'missing') {
28
+ console.error(`已提交,但回读不到${label} —— 该应用的菜单里没有它,请不要当作添加成功。`);
29
+ console.error(' 可能原因:该应用本身不是可挂菜单的应用(有些应用连菜单列表都读不出来)。请在设计器里核对。');
30
+ process.exit(1);
31
+ }
32
+ if (confirm.state === 'unreadable') {
33
+ console.error(`已提交,但该应用的菜单读不回来(${confirm.msg}),无法回读确认 —— 请在设计器里核对${label}是否真的加上了。`);
34
+ process.exit(1);
35
+ }
36
+ return confirm.node;
37
+ }
3
38
  /** Shared "所有人" shareMap block for menu navigation. */
4
39
  function allShareMap() {
5
40
  return [{
@@ -112,30 +147,129 @@ export function registerMenuCommands(program) {
112
147
  if (!auth)
113
148
  process.exit(1);
114
149
  const client = new ApiClient(auth);
115
- const url = `${auth.getBaseUrl()}/api/cusapp/app/allMenus?appId=${appId}&terminalType=PC&isFront=0&domain=${encodeURIComponent(auth.getBaseUrl())}`;
116
- const data = await client.get(url, { ebbusinessid: appId });
117
- if (data?.code !== 200) {
118
- console.error(`查询失败: ${data?.msg || '未知错误'}`);
150
+ const tree = await fetchMenuTree(client, auth.getBaseUrl(), appId);
151
+ if (!tree.ok) {
152
+ console.error(`查询失败: ${tree.msg}`);
119
153
  process.exit(1);
120
154
  }
121
- const inner = data?.data || {};
122
- const menus = inner.ebAppMenus || inner.cusAppMenus || [];
123
- const items = menus.map((m) => ({
124
- id: m.id || '',
125
- name: m.content || m.menuName || m.alias || '',
126
- pageType: m.pageType || '',
127
- url: m.menuUrl || m.pageId || '',
155
+ const { nodes } = tree;
156
+ // **递归展开**:菜单是棵树(实测嵌套到三层)。只列顶层会让调用方误判「没有这个菜单」。
157
+ const items = nodes.map((n) => ({
158
+ id: n.id,
159
+ name: n.name,
160
+ pageType: n.pageType,
161
+ url: n.menuUrl || n.pageId,
162
+ // 新增键;上面四个保持原样,既有消费方不受影响
163
+ parentId: n.parentId,
164
+ depth: n.depth,
128
165
  }));
129
166
  if (opts.json) {
130
167
  console.log(JSON.stringify(items, null, 2));
131
168
  }
169
+ else if (!items.length) {
170
+ console.log(`应用 ${appId} 下没有任何菜单。`);
171
+ }
132
172
  else {
133
- console.log(`共 ${items.length} 个菜单:`);
134
- for (const m of items) {
135
- console.log(` ${m.id.padEnd(22)} ${m.name.padEnd(20)} ${m.pageType.padEnd(8)} ${m.url}`);
173
+ const nested = nestedCount(nodes);
174
+ console.log(`共 ${items.length} 个菜单${nested ? `(含 ${nested} 个嵌套)` : ''}:`);
175
+ for (const n of nodes) {
176
+ const indent = ' '.repeat(n.depth + 1);
177
+ console.log(`${indent}${n.id.padEnd(22)} ${n.name.padEnd(20)} ${n.pageType.padEnd(8)} ${n.menuUrl || n.pageId}`);
136
178
  }
137
179
  }
138
180
  });
181
+ menu.command('rename')
182
+ .description('重命名已有菜单(菜单是棵树,名称在嵌套里也能改)')
183
+ .argument('<appId>', '应用 ID')
184
+ .argument('<menu>', '菜单 ID 或名称(名称在同一应用内重复时必须改用 ID)')
185
+ .argument('<newName>', '新名称')
186
+ .action(async (appId, menuRef, newName) => {
187
+ const opts = program.opts();
188
+ const auth = await AuthSession.fromOptions(opts);
189
+ if (!auth)
190
+ process.exit(1);
191
+ const client = new ApiClient(auth);
192
+ const baseUrl = auth.getBaseUrl();
193
+ const tree = await fetchMenuTree(client, baseUrl, appId);
194
+ if (!tree.ok) {
195
+ console.error(`查询失败: ${tree.msg}`);
196
+ process.exit(1);
197
+ }
198
+ const { nodes } = tree;
199
+ const hits = findMenus(nodes, menuRef);
200
+ if (!hits.length) {
201
+ // 这里能断言「没有」是因为上面拿的是**全量递归**结果 —— 没取到才等于不存在
202
+ console.error(`应用 ${appId} 下找不到菜单「${menuRef}」(已在整个菜单树里查找,共 ${nodes.length} 个节点,含嵌套)。`);
203
+ const like = similarMenus(nodes, menuRef);
204
+ if (like.length) {
205
+ console.error(' 名称相近的有:');
206
+ for (const n of like)
207
+ console.error(` ${n.id} ${n.name} [${n.pageType}]`);
208
+ }
209
+ process.exit(1);
210
+ }
211
+ if (hits.length > 1) {
212
+ console.error(`名称「${menuRef}」在同一应用下有 ${hits.length} 条,无法确定改哪一个,请改用菜单 ID。`);
213
+ for (const n of hits)
214
+ console.error(` ${n.id} [${n.pageType}] ${n.menuUrl || n.pageId}`);
215
+ process.exit(1);
216
+ }
217
+ const target = hits[0];
218
+ if (isSystemMenu(target)) {
219
+ console.error(`「${target.name}」是平台系统菜单(pageType=${target.pageType}),不支持改名。`);
220
+ process.exit(1);
221
+ }
222
+ if (!target.pageType || target.pageType === 'EMPTY') {
223
+ console.error(`菜单「${target.name}」没有绑定页面(pageType=${target.pageType || '空'}),改名没有意义,已中止。`);
224
+ process.exit(1);
225
+ }
226
+ if (target.name === newName) {
227
+ console.log(opts.json ? JSON.stringify({ success: true, unchanged: true, id: target.id, name: newName }) : `菜单「${newName}」名称本来就是它,无需改动。`);
228
+ return;
229
+ }
230
+ const navigation = buildRenameNavigation(target, newName, appId);
231
+ const { body, boundary } = ApiClient.buildMultipart({
232
+ appId,
233
+ navigation: JSON.stringify(navigation),
234
+ isThirdParty: 'true',
235
+ terminalType: 'PC',
236
+ });
237
+ const res = await client.post(`${baseUrl}/api/cusapp/app/savePublishMenu`, body, {
238
+ 'content-type': `multipart/form-data; boundary=${boundary}`,
239
+ ebbusinessid: appId,
240
+ referer: `${baseUrl}/sp/ebdapp/build/${appId}`,
241
+ });
242
+ if (res?.code !== 200) {
243
+ console.error(`改名失败: ${res?.msg || '未知错误'}`);
244
+ process.exit(1);
245
+ }
246
+ // 回读校验:**名字变了**且**别的字段一个都没动**,两条都成立才算成功。
247
+ // 只认「返回 200」曾经放过写坏菜单的报文(LINK 被写成 EMPTY)。
248
+ const after = await fetchMenuTree(client, baseUrl, appId);
249
+ if (!after.ok) {
250
+ console.error('改名已提交,但回读失败,无法确认结果 —— 请在页面上核对菜单。');
251
+ process.exit(1);
252
+ }
253
+ const nowNode = after.nodes.find((n) => n.id === target.id);
254
+ if (!nowNode) {
255
+ console.error('改名已提交,但回读时该菜单不见了 —— 请在页面上核对。');
256
+ process.exit(1);
257
+ }
258
+ if (nowNode.name !== newName) {
259
+ console.error(`改名未生效: 回读仍是「${nowNode.name}」。`);
260
+ process.exit(1);
261
+ }
262
+ const broken = diffMenuGuard(target, nowNode);
263
+ if (broken.length) {
264
+ console.error('⚠ 改名生效了,但以下字段被服务端改动了(可能已影响菜单可用性):');
265
+ for (const b of broken)
266
+ console.error(` ${b}`);
267
+ process.exit(1);
268
+ }
269
+ console.log(opts.json
270
+ ? JSON.stringify({ success: true, id: target.id, from: target.name, to: newName })
271
+ : `菜单已改名: 「${target.name}」→「${newName}」 (id=${target.id})\n 回读校验: 名称已生效,其余字段无变化`);
272
+ });
139
273
  menu.command('add')
140
274
  .description('添加菜单项')
141
275
  .argument('<name>', '菜单名称')
@@ -190,14 +324,15 @@ export function registerMenuCommands(program) {
190
324
  ebbusinessid: appId,
191
325
  referer: `${auth.getBaseUrl()}/sp/ebdapp/build/${appId}/viewport/`,
192
326
  });
193
- if (data?.code === 200) {
194
- const msg = opts.json ? JSON.stringify({ success: true, name, path: pagePath }) : `菜单「${name}」已添加 → ${pagePath}`;
195
- console.log(msg);
196
- }
197
- else {
327
+ if (data?.code !== 200) {
198
328
  console.error(`添加失败: ${data?.msg || '未知错误'}`);
199
329
  process.exit(1);
200
330
  }
331
+ const confirm = await confirmMenuCreated(client, auth.getBaseUrl(), appId, (n) => n.name === name);
332
+ const n = requireMenuConfirmed(confirm, `菜单「${name}」`);
333
+ console.log(opts.json
334
+ ? JSON.stringify({ success: true, name, path: pagePath, menuId: n.id, parentId: n.parentId, depth: n.depth })
335
+ : `菜单「${name}」已添加 → ${pagePath} (id=${n.id}${n.depth > 0 ? `, 位于第 ${n.depth} 层` : ''})`);
201
336
  });
202
337
  menu.command('delete')
203
338
  .description('删除菜单项')
@@ -236,8 +371,14 @@ export function registerMenuCommands(program) {
236
371
  const client = new ApiClient(auth);
237
372
  try {
238
373
  const menuId = await addFormTableViewMenu(client, auth.getBaseUrl(), appId, objId, name);
239
- const msg = opts.json ? JSON.stringify({ success: true, menuId, appId, objId }) : `台账菜单已添加${menuId ? ` (id=${menuId})` : ''}`;
240
- console.log(msg);
374
+ if (!menuId) {
375
+ console.error('已提交,但服务端没有返回菜单 ID,无法回读确认 —— 请在设计器里核对台账菜单是否加上了。');
376
+ process.exit(1);
377
+ }
378
+ const n = requireMenuConfirmed(await confirmMenuCreated(client, auth.getBaseUrl(), appId, (x) => x.id === String(menuId)), `台账菜单 (id=${menuId})`);
379
+ console.log(opts.json
380
+ ? JSON.stringify({ success: true, menuId: n.id, appId, objId, name: n.name })
381
+ : `台账菜单已添加: ${n.name} (id=${n.id})`);
241
382
  }
242
383
  catch (e) {
243
384
  console.error(`添加失败: ${e.message}`);
@@ -257,8 +398,14 @@ export function registerMenuCommands(program) {
257
398
  const client = new ApiClient(auth);
258
399
  try {
259
400
  const menuId = await addFormStartMenu(client, auth.getBaseUrl(), appId, formObjId, name);
260
- const msg = opts.json ? JSON.stringify({ success: true, menuId, appId, formObjId }) : `发起菜单已添加${menuId ? ` (id=${menuId})` : ''}`;
261
- console.log(msg);
401
+ if (!menuId) {
402
+ console.error('已提交,但服务端没有返回菜单 ID,无法回读确认 —— 请在设计器里核对发起菜单是否加上了。');
403
+ process.exit(1);
404
+ }
405
+ const n = requireMenuConfirmed(await confirmMenuCreated(client, auth.getBaseUrl(), appId, (x) => x.id === String(menuId)), `发起菜单 (id=${menuId})`);
406
+ console.log(opts.json
407
+ ? JSON.stringify({ success: true, menuId: n.id, appId, formObjId, name: n.name })
408
+ : `发起菜单已添加: ${n.name} (id=${n.id})`);
262
409
  }
263
410
  catch (e) {
264
411
  console.error(`添加失败: ${e.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/commands/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/commands/menu.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { ApiClient } from '../core/client.js';
5
5
  * 供 `wf-form layout init` 与 `workflow create-workflow` 建后自动解锁、`wf-form add-field/add-fields/add-detail-table` 末尾重排复用。
6
6
  * hooks.preLayout: 在合并运行时 singleRow 之后、applyLoneSingleRows 之前介入(add-field --single-row 用此给新字段单标 singleRow)。 */
7
7
  export declare function initWorkflowFormLayout(client: ApiClient, baseUrl: string, formId: string, o?: {
8
+ layoutId?: string;
8
9
  styleTemplate?: string;
9
10
  readOnly?: boolean;
10
11
  required?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"wf-form.d.ts","sourceRoot":"","sources":["../../src/commands/wf-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA+K9C;;;gHAGgH;AAChH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAClD,CAAC,GAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,EAC3H,KAAK,GAAE;IAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAAO,GACnD,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAsDzE;AAWD,yCAAyC;AACzC,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxE,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,aAG1B,CAAC;AAEH;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EACtF,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GACvE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwGlC;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA+5CtE"}
1
+ {"version":3,"file":"wf-form.d.ts","sourceRoot":"","sources":["../../src/commands/wf-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmM9C;;;gHAGgH;AAChH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAClD,CAAC,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,EAC9I,KAAK,GAAE;IAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAAO,GACnD,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAiEzE;AAWD,yCAAyC;AACzC,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxE,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,aAG1B,CAAC;AAEH;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EACtF,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GACvE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwGlC;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAg6CtE"}
@@ -41,15 +41,30 @@ function canon(ck) {
41
41
  };
42
42
  return m[ck.toLowerCase()] || ck;
43
43
  }
44
- async function getLayoutMeta(client, baseUrl, formId) {
45
- const res = await client.post(`${baseUrl}${ROUTE}/builder/getFormLayout`, {
44
+ /**
45
+ * 读布局元信息。不传 `layoutMultiId` 读**默认布局**;传了则定位到那一套。
46
+ *
47
+ * 注意返回的两个 id 不是一回事:`layoutMultiId` 是布局列表里的 id(对外用它),
48
+ * `layoutId` 是**运行时 id**(initLayout 的 `layoutId` 要的是这个,实测等于 multiId+1)。
49
+ */
50
+ async function getLayoutMeta(client, baseUrl, formId, layoutMultiId) {
51
+ const body = {
46
52
  formId, module: MODULE, customParam: {}, formTableIdList: [],
47
53
  designerParam: { onlyLayout: false, convert: false }, form: { id: formId },
48
- }, { ebbusinessid: formId });
54
+ };
55
+ if (layoutMultiId)
56
+ body.layoutMultiId = layoutMultiId;
57
+ const res = await client.post(`${baseUrl}${ROUTE}/builder/getFormLayout`, body, { ebbusinessid: formId });
49
58
  if (res?.code !== 200 || !res?.status)
50
59
  throw new Error(`getFormLayout 失败: ${res?.msg}`);
51
60
  const fl = res.data?.formLayout || {}, flm = res.data?.formLayoutMultiple || {};
52
- return { layoutId: fl.id || '', layoutMultiId: flm.id || '', layoutName: flm.name || '', layoutType: flm.layoutType || 'FLOW' };
61
+ if (layoutMultiId && String(flm.id || '') !== String(layoutMultiId)) {
62
+ throw new Error(`按 layoutMultiId=${layoutMultiId} 定位不到布局(返回 ${flm.id || '空'})。为避免误改默认布局,已中止。`);
63
+ }
64
+ return {
65
+ layoutId: fl.id || '', layoutMultiId: flm.id || '', layoutName: flm.name || '',
66
+ layoutType: flm.layoutType || 'FLOW', terminalType: flm.terminalType || 'PC',
67
+ };
53
68
  }
54
69
  async function readConfigs(client, baseUrl, formId) {
55
70
  const meta = await getLayoutMeta(client, baseUrl, formId);
@@ -65,14 +80,17 @@ async function readConfigs(client, baseUrl, formId) {
65
80
  /** 读取运行时布局(getFormLayout pageLayouts comps),返回 singleRow=true 的字段 ID 集合。
66
81
  * getConfig 的 configs 不带已保存的 singleRow(设计视图默认 false);field-prop/group/layout init
67
82
  * 重排前若不从运行时合并回来,独占一行字段会被 initLayout 冲掉(实测:group initLayout 后 客户地址 singleRow 丢失)。 */
68
- async function fetchRuntimeSingleRows(client, baseUrl, formId) {
83
+ async function fetchRuntimeSingleRows(client, baseUrl, formId, layoutMultiId) {
69
84
  // 读失败**必须抛错**:这里返回空 Set 等于「运行时一个 singleRow 都没有」,
70
85
  // 后面的 initLayout 就会把用户已配的「独占一行」整批冲掉(历史上出过这个事故)。
71
86
  // 宁可整条命令失败,也不静默丢配置。
72
- const res = await client.post(`${baseUrl}${ROUTE}/builder/getFormLayout`, {
87
+ const body = {
73
88
  formId, module: MODULE, customParam: {}, formTableIdList: [],
74
89
  designerParam: { onlyLayout: false, convert: false }, form: { id: formId },
75
- }, { ebbusinessid: formId });
90
+ };
91
+ if (layoutMultiId)
92
+ body.layoutMultiId = layoutMultiId;
93
+ const res = await client.post(`${baseUrl}${ROUTE}/builder/getFormLayout`, body, { ebbusinessid: formId });
76
94
  if (res?.code !== 200 || !res?.status) {
77
95
  throw new Error(`读取运行时布局失败(getFormLayout): ${res?.msg || '未知错误'};已中止,未改动布局`);
78
96
  }
@@ -182,13 +200,19 @@ async function fetchFormGroups(client, baseUrl, formId) {
182
200
  * hooks.preLayout: 在合并运行时 singleRow 之后、applyLoneSingleRows 之前介入(add-field --single-row 用此给新字段单标 singleRow)。 */
183
201
  export async function initWorkflowFormLayout(client, baseUrl, formId, o = {}, hooks = {}) {
184
202
  const ebb = { ebbusinessid: formId };
185
- const meta = await getLayoutMeta(client, baseUrl, formId);
203
+ const defMeta = await getLayoutMeta(client, baseUrl, formId);
204
+ // 目标布局:`--layout-id` 指定则写那一套,否则就是默认布局本身
205
+ const meta = o.layoutId ? await getLayoutMeta(client, baseUrl, formId, o.layoutId) : defMeta;
186
206
  if (!meta.layoutId)
187
207
  throw new Error('无法获取 layoutId');
188
208
  // 保留字段分组:getConfig/initLayout 带 groupFieldIds,否则 Collapse 折叠被冲掉
189
209
  const groupIds = await fetchFormGroups(client, baseUrl, formId);
210
+ // ⚠️ configs **一律从默认布局取**,哪怕这次要写的是另一套布局。
211
+ // 实测:拿目标布局自己的 runtime id 去 getConfig 也能回一份 configs(字段数看着一样),
212
+ // 但拿它 initLayout **写不进目标布局** —— 接口回 200、回读 `comps: 0`,静默失败。
213
+ // 换成默认布局那份立刻落库。别改成 meta.layoutId。
190
214
  const cfgRes = await client.post(`${baseUrl}${ROUTE}/view/relate/getConfig`, {
191
- formId, module: MODULE, apiModule: 'workflow/form', layoutId: meta.layoutId,
215
+ formId, module: MODULE, apiModule: 'workflow/form', layoutId: defMeta.layoutId,
192
216
  customParam: { terminal: '', objId: formId }, initMode: 5, groupFieldIds: groupIds,
193
217
  designerParam: { sourceModule: MODULE },
194
218
  }, ebb);
@@ -211,8 +235,14 @@ export async function initWorkflowFormLayout(client, baseUrl, formId, o = {}, ho
211
235
  }
212
236
  return out;
213
237
  }));
214
- // 合并运行时已保存的 singleRow(getConfig 不带,防 initLayout 冲掉独占一行)
238
+ // 合并运行时已保存的 singleRow(getConfig 不带,防 initLayout 冲掉独占一行)。
239
+ // 默认布局与目标布局**两份都并进来**:configs 取自默认布局,但独占一行可能任一侧配过,
240
+ // 只读一份就会把另一侧已配的冲掉。多并一份没有副作用(singleRow 只是布局属性)。
215
241
  const initSrSet = await fetchRuntimeSingleRows(client, baseUrl, formId);
242
+ if (meta.layoutMultiId && meta.layoutMultiId !== defMeta.layoutMultiId) {
243
+ for (const id of await fetchRuntimeSingleRows(client, baseUrl, formId, meta.layoutMultiId))
244
+ initSrSet.add(id);
245
+ }
216
246
  mergeRuntimeSingleRow(configs, initSrSet);
217
247
  // 介入点:add-field --single-row 在此给新加字段单标 singleRow(早于 applyLoneSingleRows,让其 orphan 逻辑接得住)
218
248
  if (hooks.preLayout)
@@ -228,7 +258,7 @@ export async function initWorkflowFormLayout(client, baseUrl, formId, o = {}, ho
228
258
  configs: finalConfigs, addLayout: false, ecodeType: ['js', 'css'], initMode: '1',
229
259
  groupFieldIds: groupIds,
230
260
  customParam: { terminal: '', objId: formId },
231
- formLayoutMultiple: { isSys: true, id: meta.layoutMultiId, name: meta.layoutName, terminalType: 'PC', layoutType: meta.layoutType },
261
+ formLayoutMultiple: { isSys: true, id: meta.layoutMultiId, name: meta.layoutName, terminalType: meta.terminalType, layoutType: meta.layoutType },
232
262
  designerParam: { onlyLayout: false },
233
263
  }, ebb);
234
264
  if (initRes?.code !== 200 || !initRes?.status)
@@ -1780,7 +1810,7 @@ export function registerWorkflowFormCommands(program) {
1780
1810
  configs: finalConfigs, addLayout: false, ecodeType: ['js', 'css'], initMode: '1',
1781
1811
  groupFieldIds,
1782
1812
  customParam: { terminal: '', objId: formId },
1783
- formLayoutMultiple: { isSys: true, id: meta.layoutMultiId, name: meta.layoutName, terminalType: 'PC', layoutType: meta.layoutType },
1813
+ formLayoutMultiple: { isSys: true, id: meta.layoutMultiId, name: meta.layoutName, terminalType: meta.terminalType, layoutType: meta.layoutType },
1784
1814
  designerParam: { onlyLayout: false },
1785
1815
  }, ebb);
1786
1816
  if (initRes?.code !== 200 || !initRes?.status)
@@ -1880,6 +1910,7 @@ export function registerWorkflowFormCommands(program) {
1880
1910
  layoutCmd.command('init')
1881
1911
  .description('初始化/重建流程表单布局(initLayout):按 layoutType 选模板(FLOW 默认)+ 设字段 readOnly/required/singleRow')
1882
1912
  .argument('<formId>', '流程表单 formId')
1913
+ .option('--layout-id <id>', '要重建哪一套布局(formLayoutMultiple.id,即节点独立布局的 layoutId);不传 = 默认布局')
1883
1914
  .option('--style-template <name|id>', '样式模板 id(默认按 layoutType:FLOW=820...01 / EXCEL=700...08)')
1884
1915
  .option('--read-only', '字段只读')
1885
1916
  .option('--required', '字段必填')
@@ -1985,7 +2016,7 @@ export function registerWorkflowFormCommands(program) {
1985
2016
  configs: finalConfigs, addLayout: false, ecodeType: ['js', 'css'], initMode: '1',
1986
2017
  groupFieldIds: groupIds,
1987
2018
  customParam: { terminal: '', objId: formId },
1988
- formLayoutMultiple: { isSys: true, id: meta.layoutMultiId, name: meta.layoutName, terminalType: 'PC', layoutType: meta.layoutType },
2019
+ formLayoutMultiple: { isSys: true, id: meta.layoutMultiId, name: meta.layoutName, terminalType: meta.terminalType, layoutType: meta.layoutType },
1989
2020
  designerParam: { onlyLayout: false },
1990
2021
  }, ebb);
1991
2022
  if (initRes?.code !== 200 || !initRes?.status)