weaver-e10-builder 1.0.2-beta

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 (301) hide show
  1. package/README.md +200 -0
  2. package/dist/commands/app.d.ts +3 -0
  3. package/dist/commands/app.d.ts.map +1 -0
  4. package/dist/commands/app.js +305 -0
  5. package/dist/commands/app.js.map +1 -0
  6. package/dist/commands/auth.d.ts +3 -0
  7. package/dist/commands/auth.d.ts.map +1 -0
  8. package/dist/commands/auth.js +386 -0
  9. package/dist/commands/auth.js.map +1 -0
  10. package/dist/commands/check.d.ts +3 -0
  11. package/dist/commands/check.d.ts.map +1 -0
  12. package/dist/commands/check.js +106 -0
  13. package/dist/commands/check.js.map +1 -0
  14. package/dist/commands/compile.d.ts +3 -0
  15. package/dist/commands/compile.d.ts.map +1 -0
  16. package/dist/commands/compile.js +134 -0
  17. package/dist/commands/compile.js.map +1 -0
  18. package/dist/commands/docx.d.ts +3 -0
  19. package/dist/commands/docx.d.ts.map +1 -0
  20. package/dist/commands/docx.js +54 -0
  21. package/dist/commands/docx.js.map +1 -0
  22. package/dist/commands/form-button.d.ts +3 -0
  23. package/dist/commands/form-button.d.ts.map +1 -0
  24. package/dist/commands/form-button.js +441 -0
  25. package/dist/commands/form-button.js.map +1 -0
  26. package/dist/commands/form-data.d.ts +3 -0
  27. package/dist/commands/form-data.d.ts.map +1 -0
  28. package/dist/commands/form-data.js +197 -0
  29. package/dist/commands/form-data.js.map +1 -0
  30. package/dist/commands/form-ebuilder-columns.d.ts +3 -0
  31. package/dist/commands/form-ebuilder-columns.d.ts.map +1 -0
  32. package/dist/commands/form-ebuilder-columns.js +118 -0
  33. package/dist/commands/form-ebuilder-columns.js.map +1 -0
  34. package/dist/commands/form-ebuilder-filter.d.ts +3 -0
  35. package/dist/commands/form-ebuilder-filter.d.ts.map +1 -0
  36. package/dist/commands/form-ebuilder-filter.js +135 -0
  37. package/dist/commands/form-ebuilder-filter.js.map +1 -0
  38. package/dist/commands/form-ebuilder-scope.d.ts +3 -0
  39. package/dist/commands/form-ebuilder-scope.d.ts.map +1 -0
  40. package/dist/commands/form-ebuilder-scope.js +321 -0
  41. package/dist/commands/form-ebuilder-scope.js.map +1 -0
  42. package/dist/commands/form-ebuilder-search.d.ts +3 -0
  43. package/dist/commands/form-ebuilder-search.d.ts.map +1 -0
  44. package/dist/commands/form-ebuilder-search.js +252 -0
  45. package/dist/commands/form-ebuilder-search.js.map +1 -0
  46. package/dist/commands/form-formula.d.ts +12 -0
  47. package/dist/commands/form-formula.d.ts.map +1 -0
  48. package/dist/commands/form-formula.js +252 -0
  49. package/dist/commands/form-formula.js.map +1 -0
  50. package/dist/commands/form-layout-init.d.ts +15 -0
  51. package/dist/commands/form-layout-init.d.ts.map +1 -0
  52. package/dist/commands/form-layout-init.js +162 -0
  53. package/dist/commands/form-layout-init.js.map +1 -0
  54. package/dist/commands/form-layout.d.ts +3 -0
  55. package/dist/commands/form-layout.d.ts.map +1 -0
  56. package/dist/commands/form-layout.js +236 -0
  57. package/dist/commands/form-layout.js.map +1 -0
  58. package/dist/commands/form-list-click.d.ts +3 -0
  59. package/dist/commands/form-list-click.d.ts.map +1 -0
  60. package/dist/commands/form-list-click.js +154 -0
  61. package/dist/commands/form-list-click.js.map +1 -0
  62. package/dist/commands/form-list-event.d.ts +3 -0
  63. package/dist/commands/form-list-event.d.ts.map +1 -0
  64. package/dist/commands/form-list-event.js +203 -0
  65. package/dist/commands/form-list-event.js.map +1 -0
  66. package/dist/commands/form-list-filter.d.ts +9 -0
  67. package/dist/commands/form-list-filter.d.ts.map +1 -0
  68. package/dist/commands/form-list-filter.js +107 -0
  69. package/dist/commands/form-list-filter.js.map +1 -0
  70. package/dist/commands/form-list-group.d.ts +11 -0
  71. package/dist/commands/form-list-group.d.ts.map +1 -0
  72. package/dist/commands/form-list-group.js +100 -0
  73. package/dist/commands/form-list-group.js.map +1 -0
  74. package/dist/commands/form-list-permission.d.ts +3 -0
  75. package/dist/commands/form-list-permission.d.ts.map +1 -0
  76. package/dist/commands/form-list-permission.js +127 -0
  77. package/dist/commands/form-list-permission.js.map +1 -0
  78. package/dist/commands/form-list-search-group.d.ts +3 -0
  79. package/dist/commands/form-list-search-group.d.ts.map +1 -0
  80. package/dist/commands/form-list-search-group.js +132 -0
  81. package/dist/commands/form-list-search-group.js.map +1 -0
  82. package/dist/commands/form-list-stats.d.ts +11 -0
  83. package/dist/commands/form-list-stats.d.ts.map +1 -0
  84. package/dist/commands/form-list-stats.js +139 -0
  85. package/dist/commands/form-list-stats.js.map +1 -0
  86. package/dist/commands/form-list-unit.d.ts +3 -0
  87. package/dist/commands/form-list-unit.d.ts.map +1 -0
  88. package/dist/commands/form-list-unit.js +95 -0
  89. package/dist/commands/form-list-unit.js.map +1 -0
  90. package/dist/commands/form-list-utils.d.ts +32 -0
  91. package/dist/commands/form-list-utils.d.ts.map +1 -0
  92. package/dist/commands/form-list-utils.js +76 -0
  93. package/dist/commands/form-list-utils.js.map +1 -0
  94. package/dist/commands/form-list.d.ts +3 -0
  95. package/dist/commands/form-list.d.ts.map +1 -0
  96. package/dist/commands/form-list.js +624 -0
  97. package/dist/commands/form-list.js.map +1 -0
  98. package/dist/commands/form-permission.d.ts +3 -0
  99. package/dist/commands/form-permission.d.ts.map +1 -0
  100. package/dist/commands/form-permission.js +193 -0
  101. package/dist/commands/form-permission.js.map +1 -0
  102. package/dist/commands/form-relate.d.ts +14 -0
  103. package/dist/commands/form-relate.d.ts.map +1 -0
  104. package/dist/commands/form-relate.js +140 -0
  105. package/dist/commands/form-relate.js.map +1 -0
  106. package/dist/commands/form-serial-mark.d.ts +18 -0
  107. package/dist/commands/form-serial-mark.d.ts.map +1 -0
  108. package/dist/commands/form-serial-mark.js +167 -0
  109. package/dist/commands/form-serial-mark.js.map +1 -0
  110. package/dist/commands/form-table-view.d.ts +3 -0
  111. package/dist/commands/form-table-view.d.ts.map +1 -0
  112. package/dist/commands/form-table-view.js +217 -0
  113. package/dist/commands/form-table-view.js.map +1 -0
  114. package/dist/commands/form-validate.d.ts +3 -0
  115. package/dist/commands/form-validate.d.ts.map +1 -0
  116. package/dist/commands/form-validate.js +122 -0
  117. package/dist/commands/form-validate.js.map +1 -0
  118. package/dist/commands/form-view-permission.d.ts +3 -0
  119. package/dist/commands/form-view-permission.d.ts.map +1 -0
  120. package/dist/commands/form-view-permission.js +86 -0
  121. package/dist/commands/form-view-permission.js.map +1 -0
  122. package/dist/commands/form-view.d.ts +3 -0
  123. package/dist/commands/form-view.d.ts.map +1 -0
  124. package/dist/commands/form-view.js +145 -0
  125. package/dist/commands/form-view.js.map +1 -0
  126. package/dist/commands/form.d.ts +3 -0
  127. package/dist/commands/form.d.ts.map +1 -0
  128. package/dist/commands/form.js +2467 -0
  129. package/dist/commands/form.js.map +1 -0
  130. package/dist/commands/icon.d.ts +3 -0
  131. package/dist/commands/icon.d.ts.map +1 -0
  132. package/dist/commands/icon.js +82 -0
  133. package/dist/commands/icon.js.map +1 -0
  134. package/dist/commands/matrix.d.ts +3 -0
  135. package/dist/commands/matrix.d.ts.map +1 -0
  136. package/dist/commands/matrix.js +587 -0
  137. package/dist/commands/matrix.js.map +1 -0
  138. package/dist/commands/menu-permission.d.ts +3 -0
  139. package/dist/commands/menu-permission.d.ts.map +1 -0
  140. package/dist/commands/menu-permission.js +188 -0
  141. package/dist/commands/menu-permission.js.map +1 -0
  142. package/dist/commands/menu.d.ts +16 -0
  143. package/dist/commands/menu.d.ts.map +1 -0
  144. package/dist/commands/menu.js +269 -0
  145. package/dist/commands/menu.js.map +1 -0
  146. package/dist/commands/project.d.ts +3 -0
  147. package/dist/commands/project.d.ts.map +1 -0
  148. package/dist/commands/project.js +345 -0
  149. package/dist/commands/project.js.map +1 -0
  150. package/dist/commands/role.d.ts +3 -0
  151. package/dist/commands/role.d.ts.map +1 -0
  152. package/dist/commands/role.js +224 -0
  153. package/dist/commands/role.js.map +1 -0
  154. package/dist/commands/user.d.ts +3 -0
  155. package/dist/commands/user.d.ts.map +1 -0
  156. package/dist/commands/user.js +49 -0
  157. package/dist/commands/user.js.map +1 -0
  158. package/dist/commands/workflow-action.d.ts +3 -0
  159. package/dist/commands/workflow-action.d.ts.map +1 -0
  160. package/dist/commands/workflow-action.js +1821 -0
  161. package/dist/commands/workflow-action.js.map +1 -0
  162. package/dist/commands/workflow-advanced.d.ts +3 -0
  163. package/dist/commands/workflow-advanced.d.ts.map +1 -0
  164. package/dist/commands/workflow-advanced.js +290 -0
  165. package/dist/commands/workflow-advanced.js.map +1 -0
  166. package/dist/commands/workflow-condition.d.ts +7 -0
  167. package/dist/commands/workflow-condition.d.ts.map +1 -0
  168. package/dist/commands/workflow-condition.js +562 -0
  169. package/dist/commands/workflow-condition.js.map +1 -0
  170. package/dist/commands/workflow-message.d.ts +3 -0
  171. package/dist/commands/workflow-message.d.ts.map +1 -0
  172. package/dist/commands/workflow-message.js +399 -0
  173. package/dist/commands/workflow-message.js.map +1 -0
  174. package/dist/commands/workflow-node-overtime.d.ts +3 -0
  175. package/dist/commands/workflow-node-overtime.d.ts.map +1 -0
  176. package/dist/commands/workflow-node-overtime.js +150 -0
  177. package/dist/commands/workflow-node-overtime.js.map +1 -0
  178. package/dist/commands/workflow-node-reject.d.ts +3 -0
  179. package/dist/commands/workflow-node-reject.d.ts.map +1 -0
  180. package/dist/commands/workflow-node-reject.js +115 -0
  181. package/dist/commands/workflow-node-reject.js.map +1 -0
  182. package/dist/commands/workflow-node-sign.d.ts +15 -0
  183. package/dist/commands/workflow-node-sign.d.ts.map +1 -0
  184. package/dist/commands/workflow-node-sign.js +100 -0
  185. package/dist/commands/workflow-node-sign.js.map +1 -0
  186. package/dist/commands/workflow-node-validate.d.ts +16 -0
  187. package/dist/commands/workflow-node-validate.d.ts.map +1 -0
  188. package/dist/commands/workflow-node-validate.js +169 -0
  189. package/dist/commands/workflow-node-validate.js.map +1 -0
  190. package/dist/commands/workflow-node.d.ts +3 -0
  191. package/dist/commands/workflow-node.d.ts.map +1 -0
  192. package/dist/commands/workflow-node.js +347 -0
  193. package/dist/commands/workflow-node.js.map +1 -0
  194. package/dist/commands/workflow-numbering.d.ts +17 -0
  195. package/dist/commands/workflow-numbering.d.ts.map +1 -0
  196. package/dist/commands/workflow-numbering.js +191 -0
  197. package/dist/commands/workflow-numbering.js.map +1 -0
  198. package/dist/commands/workflow-plan-range.d.ts +3 -0
  199. package/dist/commands/workflow-plan-range.d.ts.map +1 -0
  200. package/dist/commands/workflow-plan-range.js +116 -0
  201. package/dist/commands/workflow-plan-range.js.map +1 -0
  202. package/dist/commands/workflow-setting.d.ts +3 -0
  203. package/dist/commands/workflow-setting.d.ts.map +1 -0
  204. package/dist/commands/workflow-setting.js +440 -0
  205. package/dist/commands/workflow-setting.js.map +1 -0
  206. package/dist/commands/workflow-title.d.ts +14 -0
  207. package/dist/commands/workflow-title.d.ts.map +1 -0
  208. package/dist/commands/workflow-title.js +106 -0
  209. package/dist/commands/workflow-title.js.map +1 -0
  210. package/dist/commands/workflow.d.ts +26 -0
  211. package/dist/commands/workflow.d.ts.map +1 -0
  212. package/dist/commands/workflow.js +2359 -0
  213. package/dist/commands/workflow.js.map +1 -0
  214. package/dist/core/auth.d.ts +36 -0
  215. package/dist/core/auth.d.ts.map +1 -0
  216. package/dist/core/auth.js +351 -0
  217. package/dist/core/auth.js.map +1 -0
  218. package/dist/core/client.d.ts +27 -0
  219. package/dist/core/client.d.ts.map +1 -0
  220. package/dist/core/client.js +100 -0
  221. package/dist/core/client.js.map +1 -0
  222. package/dist/core/crypto.d.ts +11 -0
  223. package/dist/core/crypto.d.ts.map +1 -0
  224. package/dist/core/crypto.js +102 -0
  225. package/dist/core/crypto.js.map +1 -0
  226. package/dist/core/edition.d.ts +4 -0
  227. package/dist/core/edition.d.ts.map +1 -0
  228. package/dist/core/edition.js +19 -0
  229. package/dist/core/edition.js.map +1 -0
  230. package/dist/index.d.ts +3 -0
  231. package/dist/index.d.ts.map +1 -0
  232. package/dist/index.js +118 -0
  233. package/dist/index.js.map +1 -0
  234. package/dist/services/action-detail.d.ts +112 -0
  235. package/dist/services/action-detail.d.ts.map +1 -0
  236. package/dist/services/action-detail.js +443 -0
  237. package/dist/services/action-detail.js.map +1 -0
  238. package/dist/services/condition-rules.d.ts +45 -0
  239. package/dist/services/condition-rules.d.ts.map +1 -0
  240. package/dist/services/condition-rules.js +207 -0
  241. package/dist/services/condition-rules.js.map +1 -0
  242. package/dist/services/form-create.d.ts +102 -0
  243. package/dist/services/form-create.d.ts.map +1 -0
  244. package/dist/services/form-create.js +835 -0
  245. package/dist/services/form-create.js.map +1 -0
  246. package/dist/services/form-ebuilder-filter.d.ts +60 -0
  247. package/dist/services/form-ebuilder-filter.d.ts.map +1 -0
  248. package/dist/services/form-ebuilder-filter.js +562 -0
  249. package/dist/services/form-ebuilder-filter.js.map +1 -0
  250. package/dist/services/form-table-view.d.ts +117 -0
  251. package/dist/services/form-table-view.d.ts.map +1 -0
  252. package/dist/services/form-table-view.js +882 -0
  253. package/dist/services/form-table-view.js.map +1 -0
  254. package/dist/services/form-view-permission.d.ts +30 -0
  255. package/dist/services/form-view-permission.d.ts.map +1 -0
  256. package/dist/services/form-view-permission.js +208 -0
  257. package/dist/services/form-view-permission.js.map +1 -0
  258. package/dist/services/form-view.d.ts +41 -0
  259. package/dist/services/form-view.d.ts.map +1 -0
  260. package/dist/services/form-view.js +334 -0
  261. package/dist/services/form-view.js.map +1 -0
  262. package/dist/services/formula-detail.d.ts +31 -0
  263. package/dist/services/formula-detail.d.ts.map +1 -0
  264. package/dist/services/formula-detail.js +66 -0
  265. package/dist/services/formula-detail.js.map +1 -0
  266. package/dist/services/rich-types.d.ts +35 -0
  267. package/dist/services/rich-types.d.ts.map +1 -0
  268. package/dist/services/rich-types.js +105 -0
  269. package/dist/services/rich-types.js.map +1 -0
  270. package/dist/services/workflow-layout.d.ts +118 -0
  271. package/dist/services/workflow-layout.d.ts.map +1 -0
  272. package/dist/services/workflow-layout.js +279 -0
  273. package/dist/services/workflow-layout.js.map +1 -0
  274. package/dist/services/workflow-operator.d.ts +36 -0
  275. package/dist/services/workflow-operator.d.ts.map +1 -0
  276. package/dist/services/workflow-operator.js +65 -0
  277. package/dist/services/workflow-operator.js.map +1 -0
  278. package/dist/types.d.ts +53 -0
  279. package/dist/types.d.ts.map +1 -0
  280. package/dist/types.js +2 -0
  281. package/dist/types.js.map +1 -0
  282. package/dist/utils/column-name.d.ts +13 -0
  283. package/dist/utils/column-name.d.ts.map +1 -0
  284. package/dist/utils/column-name.js +45 -0
  285. package/dist/utils/column-name.js.map +1 -0
  286. package/ecodecmd/package.json +27 -0
  287. package/ecodecmd/src/build.js +709 -0
  288. package/ecodecmd/src/compile.js +81 -0
  289. package/ecodecmd/src/index.js +48 -0
  290. package/ecodecmd/src/init.js +73 -0
  291. package/ecodecmd/src/lib/@babel/plugin-proposal-object-rest-spread@7.5.5/index.js +1795 -0
  292. package/ecodecmd/src/lib/@babel/plugin-proposal-optional-chaining@7.6.0/index.js +135 -0
  293. package/ecodecmd/src/lib/@babel/preset-env-standalone@7.5.5/babel-preset-env.js +76043 -0
  294. package/ecodecmd/src/lib/@babel/standalone@7.5.5/babel.js +90802 -0
  295. package/ecodecmd/src/lib/exec.js +77 -0
  296. package/ecodecmd/src/loaddep.js +154 -0
  297. package/ecodecmd/src/util/compress.js +58 -0
  298. package/ecodecmd/src/util/crypto-util.js +19 -0
  299. package/ecodecmd/src/util/index.js +153 -0
  300. package/ecodecmd/src/util/snowflake.js +144 -0
  301. package/package.json +43 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-formula.d.ts","sourceRoot":"","sources":["../../src/commands/form-formula.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;;GAQG;AAEH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAmPpF"}
@@ -0,0 +1,252 @@
1
+ import { AuthSession } from '../core/auth.js';
2
+ import { ApiClient } from '../core/client.js';
3
+ import { buildFormulaParameters } from '../services/formula-detail.js';
4
+ /**
5
+ * Form formula — 表单字段函数公式。
6
+ *
7
+ * APIs (captured from browser):
8
+ * POST /api/excel/formula/save — 创建/更新公式
9
+ * POST /api/excel/formula/library/saveSourceForm — 绑定公式到字段
10
+ * POST /api/excel/formula/search/temp/list — 查询公式列表
11
+ * POST /api/excel/formula/funcList — 函数目录
12
+ */
13
+ export function registerFormFormulaCommands(formCmd, program) {
14
+ const fml = formCmd.command('formula').description('字段函数公式管理');
15
+ // ─── SET ───────────────────────────────────────────────
16
+ fml.command('set')
17
+ .description('给字段绑定计算公式')
18
+ .argument('<objId>', '表单 objId')
19
+ .argument('<appId>', '应用 ID')
20
+ .requiredOption('--expression <expr>', '公式表达式,支持 "{主表.字段}" 与 "{明细表名.字段}",如 "DAYS({行程明细.行程开始时间},{行程明细.行程结束时间})"')
21
+ .requiredOption('--target <fieldId>', '目标字段 ID(公式结果写入此字段)')
22
+ .option('--name <name>', '公式名称(默认自动生成)')
23
+ .option('--return-type <type>', '返回类型: Number / String / Date', 'Number')
24
+ .action(async (objId, appId, cmdOpts) => {
25
+ const opts = program.opts();
26
+ const auth = await AuthSession.fromOptions(opts);
27
+ if (!auth)
28
+ process.exit(1);
29
+ const client = new ApiClient(auth);
30
+ const baseUrl = auth.getBaseUrl();
31
+ // 1. Get formId
32
+ const formList = await client.get(`${baseUrl}/api/bs/ebuilder/form/obj/getList/${appId}?apid=${appId}`, { ebbusinessid: appId });
33
+ const formInfo = (formList?.data || []).find((f) => f.id === objId || f.objId === objId);
34
+ const formId = formInfo?.formId || '';
35
+ if (!formId) {
36
+ console.error('无法获取 formId,请确认 objId 和 appId 正确');
37
+ process.exit(1);
38
+ }
39
+ // 2-4. 解析引用并构建参数(支持 {主表.x} 与 {明细表名.x},明细带 sFormId/sFormName)
40
+ const parsed = await buildFormulaParameters(client, baseUrl, objId, appId, formId, cmdOpts.expression);
41
+ if (parsed.errors.length > 0) {
42
+ for (const e of parsed.errors)
43
+ console.error(` ❌ ${e}`);
44
+ process.exit(1);
45
+ }
46
+ const parameters = parsed.parameters;
47
+ const refNames = parsed.refNames;
48
+ // 5. 目标字段即 exceptIds(绑定失败时 saveSourceForm 会报错兜底)
49
+ const exceptIds = cmdOpts.target;
50
+ // 6. Save formula
51
+ const formulaName = cmdOpts.name || `公式_${Date.now()}`;
52
+ const savePayload = {
53
+ expressSql: cmdOpts.expression,
54
+ name: formulaName,
55
+ parameters,
56
+ returnType: cmdOpts.returnType,
57
+ validateType: 'normal',
58
+ referenceType: 'assign',
59
+ extendParam: JSON.stringify({ exceptIds, createType: 'once' }),
60
+ formulaId: null,
61
+ dataSources: [],
62
+ formulaType: 'normal',
63
+ mainDataSource: [null],
64
+ tempVariableList: [],
65
+ nameAuto: false,
66
+ module: 'ebuilderform',
67
+ multiFuncSepType: 1,
68
+ };
69
+ const saveRes = await client.post(`${baseUrl}/api/excel/formula/save`, savePayload);
70
+ if (!saveRes?.resultJson?.excute) {
71
+ console.error(`公式保存失败: ${saveRes?.resultJson?.error || saveRes?.msg || '未知错误'}`);
72
+ if (saveRes?.resultJson?.error) {
73
+ const hint = saveRes.resultJson.error.includes('数字')
74
+ ? '\n提示: 请确保表达式中引用的字段为数字类型(Number/Money),且 return-type 为 Number'
75
+ : '';
76
+ console.error(hint);
77
+ }
78
+ process.exit(1);
79
+ }
80
+ const expressId = saveRes.resultJson.id;
81
+ console.error(`公式已创建: ${expressId} (${saveRes.resultJson.formula})`);
82
+ // 7. 绑定公式到目标字段——浏览器实测两步:
83
+ // a) saveFormFieldNew 重存该字段,jsonObj 带 ffExpress(字段↔公式关联)
84
+ // b) saveSourceForm 注册公式源(sourceForms + filter.fieldId 指明目标字段)
85
+ // 只做 b) 字段不会显示公式结果("公式没绑上")。
86
+ try {
87
+ const gf = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/getFormField`, {
88
+ module: 'ebuilderform',
89
+ formTableField: { formField: { id: cmdOpts.target, form: { id: formId } } },
90
+ }, { ebbusinessid: formId });
91
+ const cur = gf?.data || {};
92
+ if (!cur?.fieldId) {
93
+ console.error(` ⚠ 未读到目标字段 ${cmdOpts.target},公式已创建但未绑定`);
94
+ }
95
+ else {
96
+ const bindJson = { ...cur, ffExpress: { id: expressId, name: formulaName } };
97
+ await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/saveFormFieldNew?apid=${appId}`, {
98
+ formId, module: 'ebuilderform',
99
+ customParam: { appId, objId },
100
+ jsonObj: JSON.stringify(bindJson),
101
+ }, { ebbusinessid: formId });
102
+ }
103
+ }
104
+ catch { /* ffExpress 重存失败不阻断,saveSourceForm 仍执行 */ }
105
+ const bindRes = await client.post(`${baseUrl}/api/excel/formula/library/saveSourceForm`, {
106
+ sourceForms: [{ id: formId, module: 'ebuilderform' }],
107
+ expressId,
108
+ filter: { fieldId: cmdOpts.target },
109
+ });
110
+ if (bindRes?.code === 200 || bindRes?.status === true || Object.keys(bindRes || {}).length === 0) {
111
+ const msg = opts.json
112
+ ? JSON.stringify({ success: true, expressId, formula: saveRes.resultJson.formula, targetField: cmdOpts.target })
113
+ : `公式已绑定到字段 ${cmdOpts.target}`;
114
+ console.log(msg);
115
+ }
116
+ else {
117
+ console.error(`公式绑定失败: ${bindRes?.msg || '未知错误'}(公式已创建 expressId=${expressId},但未绑定到字段)`);
118
+ process.exit(1);
119
+ }
120
+ });
121
+ // ─── GET ────────────────────────────────────────────────
122
+ fml.command('get')
123
+ .description('查看公式详情')
124
+ .argument('<formulaId>', '公式 ID (expressId)')
125
+ .action(async (formulaId) => {
126
+ const opts = program.opts();
127
+ const auth = await AuthSession.fromOptions(opts);
128
+ if (!auth)
129
+ process.exit(1);
130
+ const client = new ApiClient(auth);
131
+ const baseUrl = auth.getBaseUrl();
132
+ const res = await client.post(`${baseUrl}/api/excel/formula/detail`, { formulaId });
133
+ const data = res?.resultJson?.data;
134
+ if (!data || !res?.resultJson?.excute) {
135
+ console.error(`查询失败: ${res?.resultJson?.error || res?.msg || '未找到公式'}`);
136
+ process.exit(1);
137
+ }
138
+ if (opts.json) {
139
+ console.log(JSON.stringify(data, null, 2));
140
+ }
141
+ else {
142
+ console.log(`公式 ID: ${data.id}`);
143
+ console.log(`名称: ${data.name}`);
144
+ console.log(`表达式: ${data.expressSql || '-'}`);
145
+ console.log(`返回类型: ${data.returnType || '-'}`);
146
+ console.log(`参数 (${(data.parameters || []).length}):`);
147
+ for (const p of (data.parameters || [])) {
148
+ console.log(` ${p.fieldId} ${p.title || p.name} [${p.properKey}]`);
149
+ }
150
+ }
151
+ });
152
+ // ─── LIST ───────────────────────────────────────────────
153
+ fml.command('list')
154
+ .description('列出表单的所有公式')
155
+ .argument('<objId>', '表单 objId')
156
+ .argument('<appId>', '应用 ID')
157
+ .action(async (objId, appId) => {
158
+ const opts = program.opts();
159
+ const auth = await AuthSession.fromOptions(opts);
160
+ if (!auth)
161
+ process.exit(1);
162
+ const client = new ApiClient(auth);
163
+ const baseUrl = auth.getBaseUrl();
164
+ const formList = await client.get(`${baseUrl}/api/bs/ebuilder/form/obj/getList/${appId}?apid=${appId}`, { ebbusinessid: appId });
165
+ const formInfo = (formList?.data || []).find((f) => f.id === objId);
166
+ const formId = formInfo?.formId || '';
167
+ if (!formId) {
168
+ console.error('无法获取 formId');
169
+ process.exit(1);
170
+ }
171
+ const searchRes = await client.post(`${baseUrl}/api/excel/formula/library/search`, {
172
+ sourceForms: [{ id: formId, module: 'ebuilderform' }],
173
+ });
174
+ const allFormulas = searchRes?.page?.result || [];
175
+ const formulas = allFormulas.filter((f) => {
176
+ try {
177
+ const param = JSON.parse(f.parameter || '{}');
178
+ const vars = JSON.parse(param.formulavars || '[]');
179
+ return vars.some((v) => v.formId === formId);
180
+ }
181
+ catch {
182
+ return false;
183
+ }
184
+ });
185
+ if (opts.json) {
186
+ console.log(JSON.stringify(formulas, null, 2));
187
+ }
188
+ else {
189
+ console.log(`共 ${formulas.length} 个公式 (全租户 ${allFormulas.length} 个):`);
190
+ for (const f of formulas) {
191
+ // Fetch detail for each formula to get expressSql
192
+ let expressSql = '';
193
+ let returnType = f.returnType || '';
194
+ try {
195
+ const detail = await client.post(`${baseUrl}/api/excel/formula/detail`, { formulaId: f.id });
196
+ const d = detail?.resultJson?.data;
197
+ if (d) {
198
+ expressSql = d.expressSql || '';
199
+ returnType = d.returnType || returnType;
200
+ }
201
+ }
202
+ catch { }
203
+ console.log(` [${f.id}] ${f.name}`);
204
+ console.log(` 公式: ${expressSql || f.formula || '-'}`);
205
+ console.log(` 返回: ${returnType}`);
206
+ console.log(` 创建: ${new Date(f.addTime).toISOString().split('T')[0]}`);
207
+ }
208
+ }
209
+ });
210
+ // ─── FUNCTIONS ──────────────────────────────────────────
211
+ fml.command('functions')
212
+ .description('查看可用的函数列表')
213
+ .option('--category <name>', '按分类名或中文名过滤')
214
+ .action(async (cmdOpts) => {
215
+ const opts = program.opts();
216
+ const auth = await AuthSession.fromOptions(opts);
217
+ if (!auth)
218
+ process.exit(1);
219
+ const client = new ApiClient(auth);
220
+ const baseUrl = auth.getBaseUrl();
221
+ const res = await client.post(`${baseUrl}/api/excel/formula/funcList`, {
222
+ extendParam: JSON.stringify({ createType: 'once' }),
223
+ });
224
+ const categories = res?.data || [];
225
+ if (opts.json) {
226
+ console.log(JSON.stringify(categories, null, 2));
227
+ }
228
+ else {
229
+ for (const cat of categories) {
230
+ const catName = cat.chineseName || cat.name || '未分类';
231
+ if (cmdOpts.category && !catName.includes(cmdOpts.category) && catName !== cmdOpts.category)
232
+ continue;
233
+ const children = cat.children || [];
234
+ console.log(`\n📁 ${catName} (${children.length})`);
235
+ for (const fn of children) {
236
+ console.log(` ${fn.name.padEnd(20)} ${fn.chineseName || ''} → ${fn.returnType || '?'}`);
237
+ if (fn.formatString)
238
+ console.log(` ${fn.formatString}`);
239
+ }
240
+ }
241
+ }
242
+ });
243
+ }
244
+ function safeParse(s) {
245
+ try {
246
+ return JSON.parse(s);
247
+ }
248
+ catch {
249
+ return {};
250
+ }
251
+ }
252
+ //# sourceMappingURL=form-formula.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-formula.js","sourceRoot":"","sources":["../../src/commands/form-formula.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Built-in form layout style templates (PC/EXCEL). name → id.
4
+ * Stable list — see references/form/style-templates.md.
5
+ */
6
+ export declare const STYLE_TEMPLATES: Record<string, string>;
7
+ /** Resolve a style template by name or raw id. Defaults to 标准版(007). */
8
+ export declare function resolveStyleTemplate(input?: string): string;
9
+ /**
10
+ * Register `form layout init` as a subcommand of the existing `layout` command
11
+ * (added without touching form-layout.ts). Initializes/rebuilds a form layout via
12
+ * initLayout: pick a style template + override field readOnly/required/disableEdit/singleRow.
13
+ */
14
+ export declare function registerFormLayoutInitCommands(form: Command, program: Command): void;
15
+ //# sourceMappingURL=form-layout-init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-layout-init.d.ts","sourceRoot":"","sources":["../../src/commands/form-layout-init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqBlD,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAK3D;AAoCD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAoFpF"}
@@ -0,0 +1,162 @@
1
+ import { AuthSession } from '../core/auth.js';
2
+ import { ApiClient } from '../core/client.js';
3
+ import { normalizeDetailTableChildren } from '../services/form-create.js';
4
+ /**
5
+ * Built-in form layout style templates (PC/EXCEL). name → id.
6
+ * Stable list — see references/form/style-templates.md.
7
+ */
8
+ export const STYLE_TEMPLATES = {
9
+ '标准版': '700000000000000007',
10
+ '表格版': '700000000000000008',
11
+ '紧凑版': '700000000000000009',
12
+ '轻便版': '700000000000000010',
13
+ '靛青线条': '830421425497325568',
14
+ '简约深蓝': '830662158415355904',
15
+ '极简淡蓝': '830714355284320256',
16
+ '现代简约': '830718787623460864',
17
+ '商务淡蓝': '830722618751066113',
18
+ '极简白': '830743788745531393',
19
+ '极简灰': '830749075757998081',
20
+ '清新蓝绿': '830751622581329920',
21
+ '淡蓝水晶': '830764108161785857',
22
+ '银光浅灰': '830765800429674496',
23
+ '暗夜流光': '831747419499700225',
24
+ '公文样式': '831759140499447809',
25
+ '淡雅丁香': '831897833480421377',
26
+ '商务蓝': '917557790734188546',
27
+ '碧海蓝天': '933871446777094145',
28
+ '青蓝冰水': '1000599952745676801',
29
+ };
30
+ /** Resolve a style template by name or raw id. Defaults to 标准版(007). */
31
+ export function resolveStyleTemplate(input) {
32
+ if (!input)
33
+ return STYLE_TEMPLATES['标准版'];
34
+ if (STYLE_TEMPLATES[input])
35
+ return STYLE_TEMPLATES[input];
36
+ if (/^\d+$/.test(input))
37
+ return input;
38
+ throw new Error(`未知样式模板: ${input}。可用: ${Object.keys(STYLE_TEMPLATES).join(', ')}(或直接传 id)`);
39
+ }
40
+ async function resolveFormId(client, baseUrl, appId, objId) {
41
+ const formList = await client.get(`${baseUrl}/api/bs/ebuilder/form/obj/getList/${appId}?apid=${appId}`, { ebbusinessid: appId });
42
+ const formInfo = (formList?.data || []).find((f) => String(f.id) === String(objId));
43
+ const formId = formInfo?.formId || '';
44
+ if (!formId) {
45
+ console.error(`无法获取 formId,请确认 appId=${appId} objId=${objId}`);
46
+ process.exit(1);
47
+ }
48
+ return formId;
49
+ }
50
+ async function getLayoutMeta(client, baseUrl, formId, viewId) {
51
+ const payload = {
52
+ formId, module: 'ebuilderform', customParam: {}, formTableIdList: [],
53
+ designerParam: { onlyLayout: false, convert: false }, form: { id: formId },
54
+ };
55
+ if (viewId)
56
+ payload.layoutMultiId = viewId;
57
+ const res = await client.post(`${baseUrl}/api/ebuilder/form/builder/getFormLayout`, payload, { ebbusinessid: formId });
58
+ if (res?.code !== 200 || !res?.status) {
59
+ console.error(`获取布局失败: ${res?.msg || '未知错误'}`);
60
+ process.exit(1);
61
+ }
62
+ const fl = res.data?.formLayout || {};
63
+ const flm = res.data?.formLayoutMultiple || {};
64
+ return {
65
+ layoutId: fl.id || viewId || '',
66
+ layoutMultiId: flm.id || viewId || '',
67
+ layoutName: flm.name || '',
68
+ layoutType: flm.layoutType || 'EXCEL',
69
+ };
70
+ }
71
+ /**
72
+ * Register `form layout init` as a subcommand of the existing `layout` command
73
+ * (added without touching form-layout.ts). Initializes/rebuilds a form layout via
74
+ * initLayout: pick a style template + override field readOnly/required/disableEdit/singleRow.
75
+ */
76
+ export function registerFormLayoutInitCommands(form, program) {
77
+ const layoutCmd = form.commands.find((c) => c.name() === 'layout');
78
+ if (!layoutCmd) {
79
+ console.error('[form-layout-init] 未找到 layout 命令,请确保 registerFormLayoutCommands 已注册');
80
+ return;
81
+ }
82
+ layoutCmd.command('init')
83
+ .description('初始化/重建表单布局(initLayout):选样式模板 + 设字段 readOnly/required/disableEdit/singleRow')
84
+ .argument('<objId>', '表单 objId')
85
+ .argument('<appId>', '应用 ID')
86
+ .option('--view-id <id>', '指定视图/布局 ID(不传重建默认布局)')
87
+ .option('--style-template <name|id>', '样式模板(名或 id,默认"标准版",见 form/style-templates.md)')
88
+ .option('--read-only', '字段只读(默认保留已有设置)')
89
+ .option('--required', '字段必填(默认保留已有设置)')
90
+ .option('--disable-edit', '禁止手工编辑(默认保留)')
91
+ .option('--single-row', '独占一行显示(默认保留)')
92
+ .option('--generate-collapse', '生成折叠分组')
93
+ .action(async (objId, appId, cmdOpts) => {
94
+ const opts = program.opts();
95
+ const auth = await AuthSession.fromOptions(opts);
96
+ if (!auth)
97
+ process.exit(1);
98
+ const client = new ApiClient(auth);
99
+ const baseUrl = auth.getBaseUrl();
100
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
101
+ const ebb = { ebbusinessid: formId };
102
+ // 1. getFormLayout → layoutId / layoutMultiId / name / layoutType
103
+ const meta = await getLayoutMeta(client, baseUrl, formId, cmdOpts.viewId);
104
+ if (!meta.layoutId) {
105
+ console.error('无法获取 layoutId');
106
+ process.exit(1);
107
+ }
108
+ // 2. getConfig → configs. Default PRESERVES each field's existing
109
+ // readOnly/required/disableEdit/singleRow from getConfig; flags force the
110
+ // value on ALL business fields when explicitly passed.
111
+ const cfgRes = await client.post(`${baseUrl}/api/ebuilder/form/form/view/relate/getConfig`, {
112
+ formId, module: 'ebuilderform', apiModule: 'ebuilder/form',
113
+ layoutId: meta.layoutId, customParam: { terminal: '', objId: formId },
114
+ initMode: 5, groupFieldIds: [], designerParam: { sourceModule: 'ebuilderform' },
115
+ }, ebb);
116
+ const configs = normalizeDetailTableChildren((cfgRes?.data?.configs || []).map((c) => {
117
+ const isBusiness = !c.system;
118
+ const out = { ...c, display: c.system ? c.display : true, show: c.system ? c.show : true };
119
+ if (isBusiness) {
120
+ if (cmdOpts.readOnly !== undefined)
121
+ out.readOnly = cmdOpts.readOnly;
122
+ if (cmdOpts.required !== undefined)
123
+ out.required = cmdOpts.required;
124
+ if (cmdOpts.disableEdit !== undefined)
125
+ out.disableEdit = cmdOpts.disableEdit;
126
+ if (cmdOpts.singleRow !== undefined)
127
+ out.singleRow = cmdOpts.singleRow;
128
+ }
129
+ return out;
130
+ }));
131
+ // 3. initLayout — 默认模板按布局类型:流式(FLOW)用 820000000000000001,表格(EXCEL)用 008(表格版)
132
+ const styleTemplateId = cmdOpts.styleTemplate
133
+ ? resolveStyleTemplate(cmdOpts.styleTemplate)
134
+ : (meta.layoutType === 'FLOW' ? '820000000000000001' : '700000000000000008');
135
+ const initRes = await client.post(`${baseUrl}/api/ebuilder/form/form/view/relate/initLayout?apid=${encodeURIComponent(appId)}`, {
136
+ formId, module: 'ebuilderform', apiModule: 'ebuilder/form',
137
+ layoutId: meta.layoutId, generateCollapse: cmdOpts.generateCollapse === true,
138
+ styleTemplateId, styleTemplateType: 1,
139
+ configs, addLayout: false, ecodeType: ['js', 'css'],
140
+ initMode: '1', customParam: { terminal: '', objId: formId },
141
+ formLayoutMultiple: { isSys: true, id: meta.layoutMultiId, name: meta.layoutName, terminalType: 'PC', layoutType: meta.layoutType },
142
+ designerParam: { onlyLayout: false },
143
+ }, ebb);
144
+ if (initRes?.code !== 200 || !initRes?.status) {
145
+ console.error(`初始化布局失败: ${initRes?.msg || '未知错误'}`);
146
+ process.exit(1);
147
+ }
148
+ const comps = initRes?.data?.pageLayouts?.[0]?.comps || initRes?.data?.formLayout?.pageLayouts?.[0]?.comps || [];
149
+ const overrides = [];
150
+ if (cmdOpts.readOnly !== undefined)
151
+ overrides.push(`readOnly=${cmdOpts.readOnly}`);
152
+ if (cmdOpts.required !== undefined)
153
+ overrides.push(`required=${cmdOpts.required}`);
154
+ if (cmdOpts.disableEdit !== undefined)
155
+ overrides.push(`disableEdit=${cmdOpts.disableEdit}`);
156
+ if (cmdOpts.singleRow !== undefined)
157
+ overrides.push(`singleRow=${cmdOpts.singleRow}`);
158
+ console.log(`布局已初始化: 模板=${cmdOpts.styleTemplate || '标准版'}(${styleTemplateId}) 视图=${cmdOpts.viewId || '默认'} 组件=${comps.length}`);
159
+ console.log(` 字段覆盖: ${overrides.length ? overrides.join(', ') : '保留已有设置'}`);
160
+ });
161
+ }
162
+ //# sourceMappingURL=form-layout-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-layout-init.js","sourceRoot":"","sources":["../../src/commands/form-layout-init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerFormLayoutCommands(form: Command, program: Command): void;
3
+ //# sourceMappingURL=form-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-layout.d.ts","sourceRoot":"","sources":["../../src/commands/form-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAwNhF"}