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
package/README.md CHANGED
@@ -91,19 +91,18 @@ e10-cli workflow create <appId> <formObjId> 会议室审批
91
91
 
92
92
  ## 4. 认证与安全
93
93
 
94
- ### 4.1 设计原则(参考飞书 CLI)
94
+ ### 4.1 设计原则
95
95
 
96
96
  > **命令行参数中永不出现凭证。**
97
97
 
98
- 飞书 CLI(`lark-cli`)的做法:凭证加密存储在系统密钥链中,CLI 参数只传 `--profile`,实际 token 在进程内存中解密后通过 HTTPS Header 发送。
99
-
100
- `e10-cli` 沿用相同理念,适配我们的技术栈:
98
+ 凭证加密存储在操作系统密钥链中,CLI 参数只传 `--profile`(环境名)或 `--auth <文件路径>`,实际 token 在进程内存中解密后通过 HTTPS Header 发送。
101
99
 
102
100
  | 层面 | 实现 |
103
101
  |------|------|
104
102
  | **静态存储** | `.eteams-auth.json` 文件内容使用 AES-256-GCM 加密 |
105
- | **密钥派生** | `SHA-256(固定种子)` → 32 字节 AES 密钥,硬编码在源码中 |
106
- | **CLI 参数** | 只接受 `--auth <文件路径>`,不接受任何形式的 token/密码 |
103
+ | **密钥来源** | 32 字节随机密钥存操作系统密钥链,**每台机器一把,源码与仓库中不含任何密钥材料** |
104
+ | **无密钥链时** | 回退到本地密钥文件(文件权限 `0600`),密钥仍是随机生成、非源码内置 |
105
+ | **CLI 参数** | 只接受 `--profile` / `--auth <文件路径>`,不接受任何形式的 token/密码 |
107
106
  | **内存中** | 运行时解密到进程内存,通过 HTTPS Header 发送 |
108
107
  | **传输** | 全程 HTTPS,ETEAMSID 作为 HTTP Header 发送 |
109
108
 
@@ -137,10 +136,10 @@ e10-cli workflow create <appId> <formObjId> 会议室审批
137
136
  ```
138
137
  攻击者能做什么 → 防护措施
139
138
  ─────────────────────────────────────────────
140
- 读取磁盘上的 auth 文件 → AES-256-GCM 加密,无密钥无法解密
141
- 查看进程命令行 (ps aux) → 命令行从不出现在何凭证
139
+ 读取磁盘上的 auth 文件 → AES-256-GCM 加密,密钥不在文件里
140
+ 查看进程命令行 (ps aux) → 命令行从不出现任何凭证
142
141
  拦截网络传输 → 全程 HTTPS
143
- 拿到源码 → 密钥是固定种子,需额外逆向才能提取
142
+ 拿到源码或整个仓库 → 密钥在本机密钥链里,源码中没有任何密钥材料
144
143
  获取内存 dump → ETEAMSID 有时效性,过期自动失效
145
144
  ```
146
145
 
@@ -163,16 +162,6 @@ Web 登录 (SSO / 账号密码)
163
162
  │ (未设置则提示用户通过 Web 页面重新登录)
164
163
  ```
165
164
 
166
- ### 4.5 与飞书 CLI 的对应关系
167
-
168
- | 飞书 CLI | e10-cli |
169
- |----------|---------|
170
- | 凭证存 macOS Keychain / Windows DPAPI | 凭证 AES-256-GCM 加密存本地文件 |
171
- | `--profile` 切换账号 | `--auth <path>` 指定认证文件 |
172
- | token 在 SDK 内存中,注入 HTTP Header | ETEAMSID 在进程内存中,注入 `eteamsid` Header |
173
- | CLI 参数无凭证 | CLI 参数无凭证 |
174
- | `lark-cli config init --app-secret-stdin` | Web 登录自动保存加密文件 |
175
-
176
165
  ## 5. 安装使用
177
166
 
178
167
  ```bash
@@ -1 +1 @@
1
- {"version":3,"file":"actionflow.d.ts","sourceRoot":"","sources":["../../src/commands/actionflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsEpC;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAkLpE"}
1
+ {"version":3,"file":"actionflow.d.ts","sourceRoot":"","sources":["../../src/commands/actionflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsEpC;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAoMpE"}
@@ -14,7 +14,7 @@ import * as dynamic from '../services/actionflow/dynamic_resources.js';
14
14
  import { runGenerate } from '../services/actionflow/generation_service.js';
15
15
  import { runUpdate } from '../services/actionflow/update_service.js';
16
16
  import { get as getComponent, getAll as getAllComponents } from '../services/actionflow/components/index.js';
17
- import { summarizeContextFields, summarizeDesign, summarizeDynamicResources, summarizeGenerate, summarizeHttpDiscovery, summarizeUpdate, writeRawJson } from '../services/actionflow/command_output.js';
17
+ import { summarizeContextFields, summarizeDesign, summarizeDynamicResources, summarizeFormSearch, summarizeGenerate, summarizeHttpDiscovery, summarizeUpdate, writeRawJson } from '../services/actionflow/command_output.js';
18
18
  /** 读取命令的 JSON 参数。支持内联、@文件、stdin 三种方式(绕开 Windows cmd 传参中文乱码)。
19
19
  * stdin 兜底带防挂死保护(见 readStdinJson);无需参数的命令传 noStdin=true 直接跳过。 */
20
20
  async function loadPayload(jsonArg, noStdin = false) {
@@ -110,6 +110,19 @@ export function registerActionflowCommands(program) {
110
110
  return form.dsList(c, groupId);
111
111
  });
112
112
  addCommand('form-fields', '表单字段(主表+明细)', (c, p) => form.getEbField(c, String(p.tableId), String(p.appId)));
113
+ // 跨应用按名字/objId 找表单。服务端只做模糊匹配,所以这里**如实列出候选**并标明
114
+ // 是否唯一 —— 不替调用方挑(同名表横跨多个应用很常见,猜错就是绑错表)。
115
+ // 命中数一律以服务端 total 为准:结果可能被 max 截断,摘要必须说清楚。
116
+ addCommand('form-search', '跨应用搜表单(按表名或 objId)。默认最多返回 100 条并报告服务端总数与是否截断;'
117
+ + '同名表用 appName/appId 收窄,确需全部传 {"max":0}', (c, p) => form.searchForms(c, String(p.keyword || p.name || ''), {
118
+ appName: p.appName ? String(p.appName) : undefined,
119
+ appId: p.appId ? String(p.appId) : undefined,
120
+ // 用 === undefined 判空:真值判断会吞掉合法的 0
121
+ pageNo: p.pageNo === undefined ? undefined : Number(p.pageNo),
122
+ pageSize: p.pageSize === undefined ? undefined : Number(p.pageSize),
123
+ // max 原样透传,由 normalizeMax 解释 0 = 不限;别用 || 兜底
124
+ max: p.max,
125
+ }), summarizeFormSearch);
113
126
  addCommand('form-buttons', '表单可绑定按钮列表(EventButton 触发器)', (c, p) => {
114
127
  const tableId = String(p.tableId || p.objId || '').trim();
115
128
  const appId = String(p.appId || p.groupId || '').trim();
@@ -1 +1 @@
1
- {"version":3,"file":"actionflow.js","sourceRoot":"","sources":["../../src/commands/actionflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actionflow.js","sourceRoot":"","sources":["../../src/commands/actionflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * designer css / designer dom —— 组件自定义 CSS 的读写,以及写 CSS 要用的 DOM 结构查询。
3
+ *
4
+ * 落点与职责边界:
5
+ * 读布局 → 改 `comp.config.styles` 里**自由 CSS 记录**的 `customStyle.base.codeSource` → `/layout/save` 整包保存。
6
+ * 本命令**只负责写**:写对、写稳、写后回读比对。样式在页面上渲染/编译是平台的事,这里不做判断也不承诺。
7
+ *
8
+ * 两个真机确认的事实决定了这里的形态:
9
+ * 1. 设计器自己就是**双端同写**(写一次,PC/MOBILE 两端 `codeSource` 一模一样)→ 默认 `--terminal both`。
10
+ * 2. 干净组件的 `styles` 是空数组;Picture/CountDown 之类自带**主题绑定记录**(`useComStyle:true`),
11
+ * 与自由 CSS 记录是两回事,**绝不能碰**。
12
+ */
13
+ import { Command } from 'commander';
14
+ export declare function registerDesignerCssCommands(program: Command): void;
15
+ //# sourceMappingURL=designer-css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designer-css.d.ts","sourceRoot":"","sources":["../../src/commands/designer-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0DpC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8KlE"}
@@ -0,0 +1,205 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { AuthSession } from '../core/auth.js';
3
+ import { ApiClient } from '../core/client.js';
4
+ import { fetchLayouts, saveLayouts } from './designer-common.js';
5
+ import { buildCustomCssPatch, describeComp, readCustomCss, resolveCssTargets, sameCss, terminalConflict, } from '../services/designer-css.js';
6
+ import { deref, domRoots, listDomStructures, readDomStructure, sectionOf } from '../services/dom-structure.js';
7
+ /** Git Bash MSYS 路径转换坑:`/build/x.png` 会被转成 `D:/Program Files/Git/build/x.png`。 */
8
+ function msysFix(value) {
9
+ const m = value.match(/^[A-Za-z]:[/\\](?:Program Files[/\\]Git)?[/\\]*(\/.+)$/);
10
+ return m ? m[1] : value;
11
+ }
12
+ function readCssArg(o) {
13
+ if (o.clear)
14
+ return '';
15
+ if (o.css !== undefined && o.cssFile !== undefined) {
16
+ throw new Error('--css 与 --css-file 只能给一个');
17
+ }
18
+ if (o.cssFile !== undefined) {
19
+ try {
20
+ return readFileSync(msysFix(o.cssFile), 'utf-8');
21
+ }
22
+ catch (e) {
23
+ throw new Error(`读取 CSS 文件失败:${o.cssFile}(${e?.message || e})`);
24
+ }
25
+ }
26
+ return msysFix(o.css ?? '');
27
+ }
28
+ function terminalArg(value) {
29
+ const t = String(value || 'both').toLowerCase();
30
+ if (t !== 'pc' && t !== 'mobile' && t !== 'both')
31
+ throw new Error('--terminal 只支持 pc / mobile / both');
32
+ return t;
33
+ }
34
+ /** 逐端汇报当前自定义 CSS(读命令与写后回读共用)。 */
35
+ function describeTargets(targets) {
36
+ return targets.map((t) => ({
37
+ terminal: t.terminal,
38
+ compId: String(t.comp.id || ''),
39
+ type: String(t.comp.type || ''),
40
+ styles: Array.isArray(t.comp.config?.styles) ? t.comp.config.styles.length : 0,
41
+ bytes: Buffer.byteLength(readCustomCss(t.comp), 'utf-8'),
42
+ codeSource: readCustomCss(t.comp),
43
+ }));
44
+ }
45
+ export function registerDesignerCssCommands(program) {
46
+ const designer = program.commands.find((c) => c.name() === 'designer');
47
+ if (!designer)
48
+ return;
49
+ // ================= css =================
50
+ const css = designer
51
+ .command('css')
52
+ .description('组件自定义 CSS(写进组件样式记录;PC/MOBILE 默认双端同写)');
53
+ css.command('read')
54
+ .description('读组件的自定义 CSS')
55
+ .argument('<pageId>', '页面 ID')
56
+ .argument('<compId>', '组件 ID(PC 或 MOBILE 任一端的都行)')
57
+ .option('--terminal <pc|mobile|both>', '读哪一端', 'both')
58
+ .option('--json', 'JSON 输出')
59
+ .action(async (pageId, compId, o) => {
60
+ const opts = program.opts();
61
+ const auth = await AuthSession.fromOptions(opts);
62
+ if (!auth)
63
+ process.exit(1);
64
+ const client = new ApiClient(auth);
65
+ const layouts = await fetchLayouts(client, auth.getBaseUrl(), pageId);
66
+ const targets = resolveCssTargets(layouts, compId, terminalArg(o.terminal));
67
+ const rows = describeTargets(targets);
68
+ if (opts.json || o.json) {
69
+ console.log(JSON.stringify({ pageId, targets: rows }, null, 2));
70
+ return;
71
+ }
72
+ console.log(`页面 ${pageId} 组件 ${compId} 的自定义 CSS:`);
73
+ for (const r of rows) {
74
+ console.log(`\n[${r.terminal}] ${r.type} ${r.compId.slice(0, 12)} styles=${r.styles} 条 自定义 CSS ${r.bytes} 字节`);
75
+ console.log(r.codeSource.trim() ? r.codeSource : ' (空)');
76
+ }
77
+ });
78
+ css.command('write')
79
+ .description('写组件的自定义 CSS(默认双端;默认整段替换,--append 追加)')
80
+ .argument('<pageId>', '页面 ID')
81
+ .argument('<compId>', '组件 ID(PC 或 MOBILE 任一端的都行)')
82
+ .option('--css <text>', 'CSS 文本(含 @media 等以 @ 开头的写法请用 --css-file)')
83
+ .option('--css-file <path>', '从文件读取 CSS')
84
+ .option('--append', '追加到现有自定义 CSS 之后(非幂等)')
85
+ .option('--clear', '清空自定义 CSS(保留记录,不动其它样式块)')
86
+ .option('--terminal <pc|mobile|both>', '写哪一端', 'both')
87
+ .option('--yes', '两端现有 CSS 已分叉时仍然覆盖')
88
+ .option('--json', 'JSON 输出')
89
+ .action(async (pageId, compId, o) => {
90
+ const opts = program.opts();
91
+ const auth = await AuthSession.fromOptions(opts);
92
+ if (!auth)
93
+ process.exit(1);
94
+ const client = new ApiClient(auth);
95
+ const baseUrl = auth.getBaseUrl();
96
+ if (o.append && o.clear)
97
+ throw new Error('--append 与 --clear 不能同时给');
98
+ const payload = readCssArg(o);
99
+ if (!payload.trim() && !o.clear)
100
+ throw new Error('CSS 内容为空。要清空请显式传 --clear');
101
+ const terminal = terminalArg(o.terminal);
102
+ const layouts = await fetchLayouts(client, baseUrl, pageId);
103
+ const targets = resolveCssTargets(layouts, compId, terminal);
104
+ // 两端都非空且不一致 = 有人单独改过某一端,双端同写会覆盖掉它
105
+ const conflict = terminalConflict(targets);
106
+ if (conflict.conflict && !o.yes) {
107
+ throw new Error(`PC/MOBILE 两端现有自定义 CSS 不一致(${conflict.detail}),双端同写会覆盖其中一端。\n`
108
+ + '确认要覆盖请加 --yes;只想改一端请用 --terminal pc|mobile。');
109
+ }
110
+ const before = describeTargets(targets);
111
+ // 期望值必须在改动 comp 之前算好 —— 改完再算会拿"已追加过"的内容再追加一遍
112
+ const expected = [];
113
+ for (const t of targets) {
114
+ const patch = buildCustomCssPatch(t.comp, payload, { append: o.append, clear: o.clear });
115
+ expected.push(patch.after);
116
+ t.comp.config = t.comp.config || {};
117
+ t.comp.config.styles = patch.styles;
118
+ }
119
+ await saveLayouts(client, baseUrl, pageId, layouts);
120
+ // 回读比对:确认我们的写入确实落库、且形状没被服务端改动
121
+ const after = resolveCssTargets((await fetchLayouts(client, baseUrl, pageId)), compId, terminal);
122
+ const mismatched = targets.filter((t, i) => !sameCss(expected[i], readCustomCss(after[i]?.comp)));
123
+ const result = {
124
+ success: mismatched.length === 0,
125
+ pageId,
126
+ compId,
127
+ terminal,
128
+ action: o.clear ? 'clear' : o.append ? 'append' : 'replace',
129
+ before,
130
+ targets: describeTargets(after),
131
+ };
132
+ if (opts.json || o.json) {
133
+ console.log(JSON.stringify(result, null, 2));
134
+ }
135
+ else {
136
+ for (const r of result.targets) {
137
+ console.log(` [${r.terminal}] ${r.type} ${r.compId.slice(0, 12)} → 自定义 CSS ${r.bytes} 字节(styles ${r.styles} 条)`);
138
+ }
139
+ }
140
+ if (mismatched.length) {
141
+ const names = mismatched.map((t) => t.terminal).join('、');
142
+ throw new Error(`已保存,但 ${names} 端回读的自定义 CSS 与写入内容不一致(用 designer css read 查看实际值)`);
143
+ }
144
+ if (!opts.json && !o.json) {
145
+ console.log(`\n✅ 组件 ${describeComp(targets[0]?.comp)} 的自定义 CSS 已保存(${targets.map((t) => t.terminal).join(' + ')})`);
146
+ }
147
+ });
148
+ // ================= dom =================
149
+ designer
150
+ .command('dom-list')
151
+ .description('列出内置的组件 DOM 结构文档(designer dom 用)')
152
+ .option('--json', 'JSON 输出')
153
+ .action(async (o) => {
154
+ const opts = program.opts();
155
+ const list = listDomStructures();
156
+ if (opts.json || o.json) {
157
+ console.log(JSON.stringify({
158
+ count: list.length,
159
+ items: list.map((x) => ({ type: x.type, display: x.display, bytes: x.bytes, sections: x.sections.map((s) => s.key) })),
160
+ }, null, 2));
161
+ return;
162
+ }
163
+ console.log(`内置组件 DOM 结构文档 ${list.length} 份(写组件自定义 CSS 时用来找选择器):`);
164
+ for (const x of list) {
165
+ // 少数文档的 component 是长段落,列表里截断;全文用 designer dom <type> --keys 看
166
+ const brief = x.display.length > 28 ? `${x.display.slice(0, 28)}…` : x.display;
167
+ console.log(` ${x.type.padEnd(16)} ${String(Math.round(x.bytes / 1024)).padStart(3)} KB ${brief}`);
168
+ }
169
+ console.log('\n用 e10-cli designer dom <type> 查看;先跑 --keys 看骨架,再用 --section 取需要的子树。');
170
+ });
171
+ designer
172
+ .command('dom')
173
+ .description('查某组件的 DOM 结构索引(写自定义 CSS 找选择器用)')
174
+ .argument('<type>', '组件类型(designer dom-list 查全表)')
175
+ .option('--keys', '只列顶层区块与说明,不输出整棵树')
176
+ .option('--section <path>', '只取某个区块,如 shared.title / branches.btn-pc')
177
+ .option('--refs', '展开 {"ref":"shared.x"} 引用')
178
+ .option('--json', 'JSON 输出')
179
+ .action(async (type, o) => {
180
+ const opts = program.opts();
181
+ const doc = readDomStructure(type);
182
+ if (o.keys) {
183
+ const meta = {
184
+ type: doc.type,
185
+ component: doc.display,
186
+ bytes: doc.bytes,
187
+ usage: doc.doc?.usage,
188
+ pickTree: doc.doc?.pickTree,
189
+ legend: doc.doc?.legend,
190
+ sections: doc.sections.map((s) => `${s.key}(${s.bytes} 字节)`),
191
+ roots: domRoots(doc.doc).map((r) => r.name),
192
+ notes: doc.doc?.notes,
193
+ };
194
+ console.log(JSON.stringify(meta, null, 2));
195
+ return;
196
+ }
197
+ let payload = doc.doc;
198
+ if (o.section)
199
+ payload = sectionOf(doc.doc, o.section);
200
+ if (o.refs)
201
+ payload = deref(payload, doc.doc?.shared);
202
+ console.log(JSON.stringify(payload, null, 2));
203
+ });
204
+ }
205
+ //# sourceMappingURL=designer-css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"designer-css.js","sourceRoot":"","sources":["../../src/commands/designer-css.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"form-add-detail-table.d.ts","sourceRoot":"","sources":["../../src/commands/form-add-detail-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2EpC,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAoHxF"}
1
+ {"version":3,"file":"form-add-detail-table.d.ts","sourceRoot":"","sources":["../../src/commands/form-add-detail-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiFpC,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAwNxF"}
@@ -2,14 +2,18 @@ import { AuthSession } from '../core/auth.js';
2
2
  import { ApiClient } from '../core/client.js';
3
3
  import { toSubTableName } from '../utils/column-name.js';
4
4
  import { normalizeDetailTableChildren } from '../services/form-create.js';
5
- import { FormSubDetailService } from '../services/form-sub-detail.js';
5
+ import { FormSubDetailService, listSubForms } from '../services/form-sub-detail.js';
6
+ import { dropDetailTableComponents, prepareLayoutForSave } from '../services/form-field-drop.js';
6
7
  /**
7
8
  * form add-detail-table — 在**已存在**的表上添加明细子表。
8
9
  *
9
10
  * 机制(抓包+实测 2026-08-24,mulinquan objId 1306406206799339521):
10
11
  * 明细子表必须走 saveSubForm 建子表定义(saveFormFieldNew 不是建子表端点,见 form.ts:455 注释)。
11
- * 但 saveSubForm 只建子表定义,**空子表 getConfig/getEbField 都读不到**(平台过滤空子表)。
12
+ * 但 saveSubForm 只建子表定义,**空子表 getConfig/getEbField/getFields 都读不到**(平台按字段过滤)。
12
13
  * 所以必须先加至少一个字段进子表,子表才在 getConfig 出现,initLayout 才能放 DetailTable 组件。
14
+ * 注:`--init` 之前必须先有字段 —— 布局是按「有字段的子表」生成的,顺序反了 DetailTable 不会进布局。
15
+ * 这也意味着**子表被删空后,它同时从布局里消失**;此时再 add-field 能救回来(见 form-sub-detail.ts
16
+ * 的 resolveDetailTable),字段一落进去,子表重新可见,随后的布局重建会把 DetailTable 放回原位。
13
17
  *
14
18
  * 三步:
15
19
  * 1. generatorIds(size=1) → subFormId
@@ -23,7 +27,9 @@ import { FormSubDetailService } from '../services/form-sub-detail.js';
23
27
  * body: {formId, module:"ebuilderform", customParam:{appId,objId}, jsonObj: stringify({type:"Text", fieldId, subFormId, ...无formTableId})}
24
28
  * 4.(可选 --init)form layout init:getFormLayout→getConfig(现含 DetailTable)→initLayout 自动放 DetailTable 组件(EXCEL 结构平台生成,不用手抠)
25
29
  *
26
- * 后续字段用 `form add-field --sub-form-id <subFormId>`(子表有字段后 getEbField 能查到,发空 formTableId 也 200)。
30
+ * 后续字段用 `form add-field --sub-form-id <subFormId>`。
31
+ * **空子表也能加** —— 子表字段被删光后 getEbField 就看不见它了,add-field 会退到 querySubForms 兜底,
32
+ * 不必先手动补一个字段。发空 formTableId 一样 200。
27
33
  */
28
34
  const FIELD_MANAGE = '/api/ebuilder/form/form/field/manage';
29
35
  async function resolveFormId(client, baseUrl, appId, objId) {
@@ -101,20 +107,59 @@ export function registerFormAddDetailTableCommands(form, program) {
101
107
  process.exitCode = 1;
102
108
  }
103
109
  });
104
- const subDetail = detail.command('sub-detail').description('设置、启用、停用或清空二级明细');
105
- subDetail.command('set').argument('<objId>').argument('<appId>').argument('<parentSubForm>')
110
+ const subDetail = detail.command('sub-detail').description('查询候选项,设置、增删和启停二级明细关系');
111
+ const addLinkOptions = (command) => command
106
112
  .requiredOption('--target <subForm>').requiredOption('--target-field <field>')
107
- .option('--default-expand', '默认展开二级明细')
113
+ .option('--parent-field <field>', '父级行标识字段;缺省使用 rowId')
114
+ .option('--default-expand', '默认展开二级明细');
115
+ addLinkOptions(subDetail.command('set').description('完整替换父明细的子明细配置')
116
+ .argument('<objId>').argument('<appId>').argument('<parentSubForm>'))
108
117
  .action(async (objId, appId, parent, o) => {
109
118
  try {
110
119
  const { service } = await withService(objId, appId);
111
- console.log(JSON.stringify(await service.set(parent, [{ subForm: o.target, subField: o.targetField }], Boolean(o.defaultExpand)), null, 2));
120
+ console.log(JSON.stringify(await service.set(parent, [{ subForm: o.target, subField: o.targetField, parentField: o.parentField }], o.defaultExpand ? true : undefined), null, 2));
112
121
  }
113
122
  catch (e) {
114
123
  console.error(`设置二级明细失败: ${e.message}`);
115
124
  process.exitCode = 1;
116
125
  }
117
126
  });
127
+ addLinkOptions(subDetail.command('add').description('保留原配置并新增或更新一条子明细关系')
128
+ .argument('<objId>').argument('<appId>').argument('<parentSubForm>'))
129
+ .action(async (objId, appId, parent, o) => {
130
+ try {
131
+ const { service } = await withService(objId, appId);
132
+ console.log(JSON.stringify(await service.add(parent, [{ subForm: o.target, subField: o.targetField, parentField: o.parentField }], o.defaultExpand ? true : undefined), null, 2));
133
+ }
134
+ catch (e) {
135
+ console.error(`新增二级明细失败: ${e.message}`);
136
+ process.exitCode = 1;
137
+ }
138
+ });
139
+ subDetail.command('remove').description('删除父明细到指定子明细的一条关系')
140
+ .argument('<objId>').argument('<appId>').argument('<parentSubForm>').requiredOption('--target <subForm>')
141
+ .action(async (objId, appId, parent, o) => {
142
+ try {
143
+ const { service } = await withService(objId, appId);
144
+ console.log(JSON.stringify(await service.remove(parent, o.target), null, 2));
145
+ }
146
+ catch (e) {
147
+ console.error(`删除二级明细关系失败: ${e.message}`);
148
+ process.exitCode = 1;
149
+ }
150
+ });
151
+ subDetail.command('candidates').description('查询指定父明细可选择的子明细')
152
+ .argument('<objId>').argument('<appId>').argument('<parentSubForm>')
153
+ .action(async (objId, appId, parent) => {
154
+ try {
155
+ const { service } = await withService(objId, appId);
156
+ console.log(JSON.stringify(await service.candidates(parent), null, 2));
157
+ }
158
+ catch (e) {
159
+ console.error(`读取可选子明细失败: ${e.message}`);
160
+ process.exitCode = 1;
161
+ }
162
+ });
118
163
  for (const action of ['enable', 'disable', 'clear']) {
119
164
  subDetail.command(action).argument('<objId>').argument('<appId>').argument('<parentSubForm>')
120
165
  .action(async (objId, appId, parent) => {
@@ -208,5 +253,80 @@ export function registerFormAddDetailTableCommands(form, program) {
208
253
  process.exitCode = 1;
209
254
  }
210
255
  });
256
+ // ─── delete-detail-table ────────────────────────────────
257
+ form.command('delete-detail-table')
258
+ .description('删除明细表(连带表里的字段)。**仍被表单布局引用时删不掉**,需先从布局移除')
259
+ .argument('<objId>', '表单 objId')
260
+ .argument('<appId>', '应用 ID')
261
+ .argument('<subFormId|明细表名>', '明细表 subFormId 或名称')
262
+ .option('--force', '仍被布局引用时,先把这张明细表的组件从布局移除再删(写操作,失败会中止)')
263
+ .action(async (objId, appId, key, o) => {
264
+ try {
265
+ const opts = program.opts();
266
+ const auth = await AuthSession.fromOptions(opts);
267
+ if (!auth)
268
+ process.exit(1);
269
+ const client = new ApiClient(auth);
270
+ const baseUrl = auth.getBaseUrl();
271
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
272
+ const ebb = { ebbusinessid: formId };
273
+ // 参数可以是 subFormId,也可以是明细表名(表名重复时报错,不擅自挑一个)
274
+ let subFormId = key;
275
+ if (!/^\d{15,}$/.test(key)) {
276
+ const hit = (await listSubForms(client, baseUrl, appId, formId)).filter((s) => s.title === key);
277
+ if (!hit.length)
278
+ throw new Error(`表单里没有名为「${key}」的明细表(明细表列表用 form detail-table list)`);
279
+ if (hit.length > 1)
280
+ throw new Error(`有 ${hit.length} 张明细表都叫「${key}」,请改用 subFormId:${hit.map((s) => s.id).join(' / ')}`);
281
+ subFormId = hit[0].id;
282
+ }
283
+ const del = async () => client.post(`${baseUrl}${FIELD_MANAGE}/delSubForm?apid=${encodeURIComponent(appId)}`, { module: 'ebuilderform', formTable: { id: formId, form: { id: subFormId } }, customParam: { appId, objId } }, ebb);
284
+ let res = await del();
285
+ // 被布局引用的明细表平台拒删(「当前【X】明细表已被布局引用,不允许删除」)。
286
+ // --force 时先把这张表的组件从布局摘掉再重试,同 form delete-field --force 的套路。
287
+ if (o.force && (res?.code !== 200 || !res?.status)) {
288
+ const layoutRes = await client.post(`${baseUrl}/api/ebuilder/form/builder/getFormLayout`, {
289
+ formId, module: 'ebuilderform', customParam: {}, formTableIdList: [],
290
+ designerParam: { onlyLayout: false, convert: false }, form: { id: formId },
291
+ }, ebb);
292
+ if (layoutRes?.code !== 200 || !layoutRes?.status) {
293
+ throw new Error(`读取布局失败,未继续删除: ${layoutRes?.msg || '未知错误'}`);
294
+ }
295
+ const snapshot = layoutRes.data || {};
296
+ const pageLayouts = snapshot.formLayout?.pageLayouts;
297
+ if (!Array.isArray(pageLayouts))
298
+ throw new Error('布局数据格式异常(无 formLayout.pageLayouts),未继续删除');
299
+ const removed = dropDetailTableComponents(pageLayouts, subFormId);
300
+ if (!removed) {
301
+ throw new Error('布局里没找到这张明细表的组件,无法自动移除;请到设计器里手动删除后重试');
302
+ }
303
+ const saveRes = await client.post(`${baseUrl}/api/ebuilder/form/builder/saveFormAndLayout`, {
304
+ module: 'ebuilderform', customParam: {},
305
+ designerParam: { onlyLayout: false, convert: false },
306
+ form: JSON.parse(JSON.stringify(snapshot.form || {})),
307
+ formLayout: prepareLayoutForSave(snapshot.formLayout, formId),
308
+ }, ebb);
309
+ if (saveRes?.code !== 200 || !saveRes?.status) {
310
+ throw new Error(`从布局移除失败,未继续删除: ${saveRes?.msg || '未知错误'}`);
311
+ }
312
+ console.error(` 已从布局移除 ${removed} 个组件`);
313
+ res = await del();
314
+ }
315
+ if (res?.code === 200 && res?.status) {
316
+ console.log(opts.json
317
+ ? JSON.stringify({ success: true, subFormId })
318
+ : `明细表已删除: ${subFormId}`);
319
+ }
320
+ else {
321
+ console.error(`删除失败: ${res?.msg || '未知错误'}`);
322
+ console.error(' 提示: 明细表在布局里时平台不允许删除,加 --force 让 CLI 先把它从布局移除。');
323
+ process.exitCode = 1;
324
+ }
325
+ }
326
+ catch (e) {
327
+ console.error(`删除明细表失败: ${e.message}`);
328
+ process.exitCode = 1;
329
+ }
330
+ });
211
331
  }
212
332
  //# sourceMappingURL=form-add-detail-table.js.map