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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerListSearchGroupCommand(form: Command, program: Command): void;
3
+ //# sourceMappingURL=form-list-search-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-search-group.d.ts","sourceRoot":"","sources":["../../src/commands/form-list-search-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4CpC,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAyEpF"}
@@ -0,0 +1,132 @@
1
+ import { AuthSession } from '../core/auth.js';
2
+ import { ApiClient } from '../core/client.js';
3
+ import { loadMobileConfig } from './form-list-utils.js';
4
+ /**
5
+ * 分类搜索(list-search-group)命令。
6
+ * 走 saveNListConfig config.searchConditions.groupFilters(视图级,明文;非同事说的页面级 layout/save)。
7
+ * sjr 实测(2026-08-20 抓包):groupFilter 条目结构——
8
+ * id/fieldId=字段id, name/fieldName=field_<id>, compType/componentKey/fieldType/type=组件类型,
9
+ * showName/fieldShowName/text=中文名, objId, expandMethod:"0", showPosition:"0", tabStyle:"select",
10
+ * config{formId(=tableField.browserParams.formId), hideScore:true, groupId:"-1", dataType:["dataOptionObj"],
11
+ * title, type, dataCount:0, selectedNum:"", dataKey(=physicalField), columnName(=physicalField),
12
+ * systemField:true, labelObj:{}, columnTypeSwitch:false, showOrder, placeholder:"", componentKey, fieldId},
13
+ * listFilterDefaultSets{listGroupSets:[], multiSelect:true, enableShowCountNum:1, showCountNumType:"notUpdate",
14
+ * enableShowCountNumLimit:0, enableBrowserFilter:0, showArchiveOption:"1"}
15
+ * **产品边界**:分类搜索**不支持明细字段**(条目无 subTableId,仅主表字段)。传入明细字段 fieldId 会报错。
16
+ * listGroupSets 留空数组(平台运行时据字段 options 生成,CLI 不造)。
17
+ * 仅支持选项类字段(Select/RadioBox/CheckBox,dataType:["dataOptionObj"]);其他类型需抓包确认 dataType。
18
+ */
19
+ const OPTION_COMP = new Set(['Select', 'RadioBox', 'CheckBox']);
20
+ function buildGroupFilter(t, objId) {
21
+ const id = String(t.id);
22
+ return {
23
+ id, fieldId: id,
24
+ name: `field_${id}`, fieldName: `field_${id}`,
25
+ compType: t.compType, componentKey: t.compType,
26
+ showName: t.text, fieldShowName: t.text, text: t.text,
27
+ objId: t.objId || objId,
28
+ fieldType: t.type, type: t.type,
29
+ expandMethod: '0', showPosition: '0', tabStyle: 'select',
30
+ config: {
31
+ formId: t.browserParams?.formId, hideScore: true, groupId: '-1',
32
+ dataType: ['dataOptionObj'], title: t.text, type: t.type,
33
+ dataCount: 0, selectedNum: '', dataKey: t.physicalField, columnName: t.physicalField,
34
+ systemField: true, labelObj: {}, columnTypeSwitch: false, showOrder: t.showOrder || 0, placeholder: '',
35
+ componentKey: t.compType, fieldId: id,
36
+ },
37
+ listFilterDefaultSets: { listGroupSets: [], multiSelect: true, enableShowCountNum: 1, showCountNumType: 'notUpdate', enableShowCountNumLimit: 0, enableBrowserFilter: 0, showArchiveOption: '1' },
38
+ };
39
+ }
40
+ export function registerListSearchGroupCommand(form, program) {
41
+ form.command('list-search-group')
42
+ .description('查看/配置台账分类搜索(按选项字段分类筛选;仅主表字段,不支持明细)')
43
+ .argument('<objId>', '表单 objId')
44
+ .argument('<appId>', '应用 ID')
45
+ .argument('<listId>', '台账列表 ID')
46
+ .option('--add <fieldId>', '添加分类搜索字段(须为主表选项类字段:Select/RadioBox/CheckBox)')
47
+ .option('--remove <fieldId>', '按字段 ID 移除一条分类搜索')
48
+ .option('--clear', '清空所有分类搜索')
49
+ .option('--pc-only', '目标明确只使用 PC;移动端配置不存在时允许继续')
50
+ .option('--json', 'JSON 格式输出当前分类搜索')
51
+ .action(async (objId, appId, listId, cmdOpts) => {
52
+ const opts = program.opts();
53
+ const auth = await AuthSession.fromOptions(opts);
54
+ if (!auth)
55
+ process.exit(1);
56
+ const client = new ApiClient(auth);
57
+ const baseUrl = auth.getBaseUrl();
58
+ const isJson = cmdOpts.json || opts.json;
59
+ const getRes = await client.get(`${baseUrl}/api/bs/ebuilder/form/list/getNListConfig/${listId}?apid=${appId}&tpaid=${listId}&terminalType=PC`);
60
+ if (getRes?.code !== 200 || !getRes?.status) {
61
+ console.error(`查询配置失败: ${getRes?.msg}`);
62
+ process.exit(1);
63
+ }
64
+ const cfg = getRes?.data || {};
65
+ const sc = cfg.searchConditions || {};
66
+ const groupFilters = sc.groupFilters || [];
67
+ if (!cmdOpts.add && !cmdOpts.remove && !cmdOpts.clear) {
68
+ if (isJson) {
69
+ console.log(JSON.stringify(groupFilters, null, 2));
70
+ return;
71
+ }
72
+ if (groupFilters.length === 0) {
73
+ console.log('当前无分类搜索');
74
+ return;
75
+ }
76
+ console.log(`分类搜索 (${groupFilters.length}):`);
77
+ for (const g of groupFilters)
78
+ console.log(` - ${g.showName || g.text} (fieldId=${g.fieldId}, type=${g.type})`);
79
+ return;
80
+ }
81
+ if (cmdOpts.clear) {
82
+ sc.groupFilters = [];
83
+ }
84
+ else if (cmdOpts.remove) {
85
+ const before = groupFilters.length;
86
+ sc.groupFilters = groupFilters.filter((g) => String(g.fieldId) !== String(cmdOpts.remove));
87
+ if (sc.groupFilters.length === before) {
88
+ console.error(`分类搜索字段 ${cmdOpts.remove} 不存在`);
89
+ process.exit(1);
90
+ }
91
+ }
92
+ else if (cmdOpts.add) {
93
+ // 边界:仅主表选项类字段
94
+ const tableField = cfg.tableField || [];
95
+ const t = tableField.find((f) => String(f.id) === String(cmdOpts.add));
96
+ if (!t) {
97
+ console.error(`字段 ${cmdOpts.add} 不在显示列中(分类搜索需先加入显示列:form list-columns --add)`);
98
+ process.exit(1);
99
+ }
100
+ if (t.subTableId && String(t.subTableId) !== '') {
101
+ console.error(`字段「${t.text}」是明细字段,分类搜索不支持明细字段(产品边界,仅主表)`);
102
+ process.exit(1);
103
+ }
104
+ if (!OPTION_COMP.has(t.compType || t.type)) {
105
+ console.error(`字段「${t.text}」类型 ${t.compType || t.type} 不支持分类搜索(仅选项类:Select/RadioBox/CheckBox)`);
106
+ process.exit(1);
107
+ }
108
+ if (groupFilters.find((g) => String(g.fieldId) === String(cmdOpts.add))) {
109
+ console.error(`字段 ${cmdOpts.add} 已在分类搜索中`);
110
+ process.exit(1);
111
+ }
112
+ sc.groupFilters = [...groupFilters, buildGroupFilter(t, objId)];
113
+ }
114
+ // 保存前读回真实移动端 mConfig 原样回传(仅改 PC config.searchConditions,移动端保持原样)
115
+ const { mobileConfig, mobilePreserved } = await loadMobileConfig(client, baseUrl, appId, listId, cmdOpts.pcOnly);
116
+ const saveRes = await client.post(`${baseUrl}/api/bs/ebuilder/form/list/saveNListConfig?apid=${appId}`, {
117
+ listId, appId, terminalType: 'PC', config: { ...cfg, searchConditions: sc }, mConfig: mobileConfig,
118
+ });
119
+ if (saveRes?.code === 200 && saveRes?.status) {
120
+ const gf = sc.groupFilters;
121
+ console.log(isJson ? JSON.stringify({ success: true, listId, count: gf.length }) : `分类搜索已保存 (${gf.length} 条)`);
122
+ for (const g of gf)
123
+ console.log(` - ${g.showName || g.text} (fieldId=${g.fieldId})`);
124
+ console.log(` 移动端配置: ${mobilePreserved ? '保持原样' : '目标为 PC-only'}`);
125
+ }
126
+ else {
127
+ console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
128
+ process.exit(1);
129
+ }
130
+ });
131
+ }
132
+ //# sourceMappingURL=form-list-search-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-search-group.js","sourceRoot":"","sources":["../../src/commands/form-list-search-group.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * 台账顶部统计(list-stats)命令。
4
+ * 走 saveNListConfig config.listStatistics:
5
+ * - 阶段1:千分位 / 单位(万/亿) / 小数位 / 5 种聚合(sum/count/avg/max/min)
6
+ * - 阶段2:条件统计 —— rootdata 直接发明文 JSON 条件树(读回也是明文,无需 LZW 编码,
7
+ * 同事 e10-list-view skill 实证)
8
+ * 平台 statisticsList 是 upsert 语义:删除需标 operation:DELETE(实测 splice 不删、DELETE 删)。
9
+ */
10
+ export declare function registerListStatsCommand(form: Command, program: Command): void;
11
+ //# sourceMappingURL=form-list-stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-stats.d.ts","sourceRoot":"","sources":["../../src/commands/form-list-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA4G9E"}
@@ -0,0 +1,139 @@
1
+ import { AuthSession } from '../core/auth.js';
2
+ import { ApiClient } from '../core/client.js';
3
+ import { fetchFields, loadMobileConfig, buildConditionTree } from './form-list-utils.js';
4
+ /**
5
+ * 台账顶部统计(list-stats)命令。
6
+ * 走 saveNListConfig config.listStatistics:
7
+ * - 阶段1:千分位 / 单位(万/亿) / 小数位 / 5 种聚合(sum/count/avg/max/min)
8
+ * - 阶段2:条件统计 —— rootdata 直接发明文 JSON 条件树(读回也是明文,无需 LZW 编码,
9
+ * 同事 e10-list-view skill 实证)
10
+ * 平台 statisticsList 是 upsert 语义:删除需标 operation:DELETE(实测 splice 不删、DELETE 删)。
11
+ */
12
+ export function registerListStatsCommand(form, program) {
13
+ form.command('list-stats')
14
+ .description('查看/配置台账顶部统计')
15
+ .argument('<objId>', '表单 objId')
16
+ .argument('<appId>', '应用 ID')
17
+ .argument('<listId>', '台账列表 ID')
18
+ .option('--add <json>', '新增统计项: \'{"fieldId":"...","type":"sum","name":"合计","thousandths":true,"decimalPlaces":"2","unit":"万","conditions":[{"fieldId":"...","func":"eq","value":"...","text":"研发"}]}\' type=sum|count|avg|max|min')
19
+ .option('--remove <statId>', '移除统计项 ID')
20
+ .option('--pc-only', '目标明确只使用 PC;移动端配置不存在时允许继续')
21
+ .option('--json', 'JSON 格式输出当前统计配置')
22
+ .action(async (objId, appId, listId, cmdOpts) => {
23
+ const opts = program.opts();
24
+ const auth = await AuthSession.fromOptions(opts);
25
+ if (!auth)
26
+ process.exit(1);
27
+ const client = new ApiClient(auth);
28
+ const baseUrl = auth.getBaseUrl();
29
+ const isJson = cmdOpts.json || opts.json;
30
+ const getRes = await client.get(`${baseUrl}/api/bs/ebuilder/form/list/getNListConfig/${listId}?apid=${appId}&tpaid=${listId}&terminalType=PC`);
31
+ if (getRes?.code !== 200 || !getRes?.status) {
32
+ console.error(`查询配置失败: ${getRes?.msg}`);
33
+ process.exit(1);
34
+ }
35
+ const cfg = getRes?.data || {};
36
+ const ls = cfg.listStatistics || {};
37
+ const statsList = ls.statisticsList || [];
38
+ if (!cmdOpts.add && !cmdOpts.remove) {
39
+ if (isJson) {
40
+ console.log(JSON.stringify(ls, null, 2));
41
+ return;
42
+ }
43
+ console.log(`统计位置: ${ls.statisticsPosition || 'top'} (${statsList.length} 项):`);
44
+ for (const s of statsList) {
45
+ console.log(` [${s.id}] ${s.statisticsName || s.fieldIdSpan || '(未命名)'} ${s.statisticsType}(${s.statisticsTypeSpan}) fieldId=${s.fieldId}`);
46
+ }
47
+ return;
48
+ }
49
+ if (cmdOpts.add) {
50
+ let rule;
51
+ try {
52
+ rule = JSON.parse(cmdOpts.add);
53
+ }
54
+ catch {
55
+ console.error('--add JSON 解析失败');
56
+ process.exit(1);
57
+ }
58
+ if (!rule.fieldId || !rule.type) {
59
+ console.error('--add JSON 需要 fieldId 和 type 字段');
60
+ process.exit(1);
61
+ }
62
+ const fields = await fetchFields(client, baseUrl, objId);
63
+ const target = fields.find((f) => String(f.id) === String(rule.fieldId));
64
+ if (!target) {
65
+ console.error(`字段 ${rule.fieldId} 在表单 ${objId} 中不存在`);
66
+ process.exit(1);
67
+ }
68
+ const typeMap = { sum: '求和', count: '计数', avg: '平均值', max: '最大值', min: '最小值' };
69
+ // 单位中文 → unitType 枚举(抓包确认:万=tenThousand / 亿=hundredMillion;其余单位待补)
70
+ const unitMap = { '万': 'tenThousand', '亿': 'hundredMillion' };
71
+ const unitType = rule.unitType || (rule.unit ? (unitMap[rule.unit] || rule.unit) : 'none');
72
+ const thousandths = rule.thousandths === true;
73
+ const decimalPlaces = rule.decimalPlaces != null ? String(rule.decimalPlaces) : '-1';
74
+ // showUnit:不开单位=最小 3 字段;开单位=补全模板默认(抓包对齐设计器千分位+单位版)
75
+ const showUnit = unitType === 'none'
76
+ ? { formatType: 'divide', formatValue: 1, unitType: 'none' }
77
+ : {
78
+ formatType: 'divide', formatValue: 1, unitType,
79
+ unitSetType: 'fixedUnit', baseTimeType: 'millisecond',
80
+ timeFormatType: [
81
+ { type: 'year', enable: false, name: '' }, { type: 'month', enable: false, name: '' },
82
+ { type: 'day', enable: false, name: '' }, { type: 'hour', enable: false, name: '' },
83
+ { type: 'minute', enable: false, name: '' }, { type: 'second', enable: false, name: '' },
84
+ ],
85
+ dynamicUnitType: 'memory', unitBenchmark: 'B', isNew: true,
86
+ };
87
+ // 条件统计:rootdata 直接发明文 JSON 条件树(读回也是明文,无需 LZW 编码——同事 e10-list-view skill 实证)
88
+ const rootdata = buildConditionTree(rule.conditions, fields, objId, false);
89
+ // 统计项 id:18 位以内数字避免超 JS 安全整数
90
+ const id = String(Math.floor(Math.random() * 9000000000000) + 1000000000000);
91
+ statsList.push({
92
+ id,
93
+ listId,
94
+ statisticsName: rule.name || typeMap[rule.type] || '统计',
95
+ statisticsEnable: '1', formType: 'self', formTypeSpan: '本表单',
96
+ statisticsType: rule.type || 'count', statisticsTypeSpan: typeMap[rule.type] || rule.type,
97
+ fieldId: rule.fieldId, fieldIdSpan: target.text, subFormId: '',
98
+ showOrder: statsList.length, decimalPlaces,
99
+ joinField: { joinObj: {}, joinFields: [] },
100
+ isRichText: '0',
101
+ showFormat: thousandths ? 'thousandths' : 'none',
102
+ showUnit,
103
+ operation: 'CREATE', encryptField: false, rootdata,
104
+ });
105
+ ls.statisticsPosition = ls.statisticsPosition || 'top';
106
+ ls.statisticsPositionSpan = ls.statisticsPositionSpan || '顶部显示';
107
+ // 抓包确认设计器带这两个开关,缺省补默认
108
+ if (ls.enableStatisticsFilterData === undefined)
109
+ ls.enableStatisticsFilterData = false;
110
+ if (ls.statisticsManualLoad === undefined)
111
+ ls.statisticsManualLoad = false;
112
+ }
113
+ if (cmdOpts.remove) {
114
+ const idx = statsList.findIndex((s) => String(s.id) === String(cmdOpts.remove));
115
+ if (idx < 0) {
116
+ console.error(`统计项 ${cmdOpts.remove} 不在当前配置中`);
117
+ process.exit(1);
118
+ }
119
+ // 平台对 statisticsList 是 upsert 语义(不在列表里发送的 id 不会被删),删除需把该项标 operation:DELETE 保留在列表里(实测确认)
120
+ statsList[idx].operation = 'DELETE';
121
+ }
122
+ ls.statisticsList = statsList;
123
+ // 保存前读回真实移动端 mConfig 原样回传,避免把移动端台账统计配置清空
124
+ const { mobileConfig, mobilePreserved } = await loadMobileConfig(client, baseUrl, appId, listId, cmdOpts.pcOnly);
125
+ const saveCfg = { ...cfg, listStatistics: ls };
126
+ const saveRes = await client.post(`${baseUrl}/api/bs/ebuilder/form/list/saveNListConfig?apid=${appId}`, {
127
+ listId, appId, terminalType: 'PC', config: saveCfg, mConfig: mobileConfig,
128
+ });
129
+ if (saveRes?.code === 200 && saveRes?.status) {
130
+ console.log(isJson ? JSON.stringify({ success: true, listId }) : '统计配置已保存');
131
+ console.log(` 移动端配置: ${mobilePreserved ? '保持原样' : '目标为 PC-only'}`);
132
+ }
133
+ else {
134
+ console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
135
+ process.exit(1);
136
+ }
137
+ });
138
+ }
139
+ //# sourceMappingURL=form-list-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-stats.js","sourceRoot":"","sources":["../../src/commands/form-list-stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerFormListUnitCommands(form: Command, program: Command): void;
3
+ //# sourceMappingURL=form-list-unit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-unit.d.ts","sourceRoot":"","sources":["../../src/commands/form-list-unit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8CpC,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAgElF"}
@@ -0,0 +1,95 @@
1
+ import { AuthSession } from '../core/auth.js';
2
+ import { ApiClient } from '../core/client.js';
3
+ /**
4
+ * form list-unit — 台账列显示单位(后缀/前缀)。
5
+ *
6
+ * 平台没有字段级"单位"属性(单位只能写进字段名,如 工时单价(元))。
7
+ * 要在台账列表里显示单位,走列表列配置的 `showTrans[].ruleConfig.suffix/prefix`
8
+ * (浏览器实测:极简结构平台即接受并自动补齐其余格式字段,无需携带完整 format 配置)。
9
+ * 保存走 saveNListConfig:config→PC、mConfig→移动端(与 list-columns 一致,移动端原样回传)。
10
+ */
11
+ /** 读取 MOBILE 端 nList 配置,保存 PC 改动时原样回传为 mConfig(与 list-columns 同款逻辑) */
12
+ async function loadMobileConfig(client, baseUrl, appId, listId, pcOnly) {
13
+ try {
14
+ const res = await client.get(`${baseUrl}/api/bs/ebuilder/form/list/getNListConfig/${listId}?apid=${appId}&tpaid=${listId}&terminalType=MOBILE`);
15
+ if (res?.code !== 200 || !res?.status || !res?.data || typeof res.data !== 'object') {
16
+ throw new Error(res?.msg || '移动端配置不存在');
17
+ }
18
+ return { mobileConfig: res.data, mobilePreserved: true };
19
+ }
20
+ catch (error) {
21
+ if (!pcOnly)
22
+ throw error;
23
+ return { mobileConfig: {}, mobilePreserved: false };
24
+ }
25
+ }
26
+ /** 构造最小可用的 showTrans(仅后缀/前缀,平台自动补齐其余格式字段) */
27
+ function buildShowTrans(prefix, suffix) {
28
+ return [{
29
+ ruleShow: { ruleTitle: '', ruleContent: '' },
30
+ index: 0,
31
+ dataSetIdMap: {},
32
+ ruleConfig: { prefix, suffix },
33
+ }];
34
+ }
35
+ export function registerFormListUnitCommands(form, program) {
36
+ form.command('list-unit')
37
+ .description('设置台账列显示单位(后缀/前缀)')
38
+ .argument('<objId>', '表单 objId')
39
+ .argument('<appId>', '应用 ID')
40
+ .argument('<listId>', '台账列表 ID')
41
+ .argument('<fieldId>', '列对应字段 ID')
42
+ .argument('[suffix]', '单位后缀,如 "(元)" / "天"(--clear 时省略)')
43
+ .option('--prefix <text>', '前缀,如 "¥"')
44
+ .option('--clear', '清除该列的后缀/前缀')
45
+ .option('--pc-only', '目标明确只使用 PC;移动端配置不存在时允许继续')
46
+ .action(async (objId, appId, listId, fieldId, suffix, cmdOpts) => {
47
+ const opts = program.opts();
48
+ const auth = await AuthSession.fromOptions(opts);
49
+ if (!auth)
50
+ process.exit(1);
51
+ const client = new ApiClient(auth);
52
+ const baseUrl = auth.getBaseUrl();
53
+ if (!cmdOpts.clear && !suffix) {
54
+ console.error('需要 <suffix> 单位后缀,或用 --clear 清除');
55
+ process.exit(1);
56
+ }
57
+ const getRes = await client.get(`${baseUrl}/api/bs/ebuilder/form/list/getNListConfig/${listId}?apid=${appId}&tpaid=${listId}&terminalType=PC`);
58
+ if (getRes?.code !== 200 || !getRes?.status) {
59
+ console.error(`查询配置失败: ${getRes?.msg || '未知错误'}`);
60
+ process.exit(1);
61
+ }
62
+ const cfg = getRes?.data || {};
63
+ const tableField = cfg.tableField || [];
64
+ const col = tableField.find((f) => String(f.id) === String(fieldId));
65
+ if (!col) {
66
+ console.error(`未找到列 fieldId=${fieldId}。可用列: ${tableField.map((f) => `${f.id}(${f.text || f.name})`).join(', ')}`);
67
+ process.exit(1);
68
+ }
69
+ if (cmdOpts.clear) {
70
+ if (Array.isArray(col.showTrans) && col.showTrans[0]?.ruleConfig) {
71
+ col.showTrans[0].ruleConfig.prefix = '';
72
+ col.showTrans[0].ruleConfig.suffix = '';
73
+ }
74
+ }
75
+ else {
76
+ col.showTrans = buildShowTrans(cmdOpts.prefix || '', suffix);
77
+ }
78
+ const { mobileConfig, mobilePreserved } = await loadMobileConfig(client, baseUrl, appId, listId, cmdOpts.pcOnly);
79
+ const saveRes = await client.post(`${baseUrl}/api/bs/ebuilder/form/list/saveNListConfig?apid=${appId}`, {
80
+ listId, appId, terminalType: 'PC', config: cfg, mConfig: mobileConfig,
81
+ });
82
+ if (saveRes?.code === 200 && saveRes?.status) {
83
+ const action = cmdOpts.clear
84
+ ? `已清除列 ${fieldId} 的单位`
85
+ : `列 ${fieldId} 单位已设为: ${cmdOpts.prefix || ''}${suffix}`;
86
+ console.log(action);
87
+ console.log(` 移动端配置: ${mobilePreserved ? '保持原样' : '目标为 PC-only'}`);
88
+ }
89
+ else {
90
+ console.error(`保存失败: ${saveRes?.msg || '未知错误'}`);
91
+ process.exit(1);
92
+ }
93
+ });
94
+ }
95
+ //# sourceMappingURL=form-list-unit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-unit.js","sourceRoot":"","sources":["../../src/commands/form-list-unit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { ApiClient } from '../core/client.js';
2
+ /**
3
+ * 通过 multipart/form-data 的 ds/fields 接口拉取表单字段元数据。
4
+ * 供 list-columns / list-search / list-stats / list-filter 等命令共用。
5
+ */
6
+ export declare function fetchFields(client: ApiClient, baseUrl: string, objId: string): Promise<any[]>;
7
+ /**
8
+ * 读取当前 MOBILE 端 nList 配置,保存 PC 改动时原样回传为 mConfig,避免把移动端台账清空。
9
+ * 抓包确认:同一 saveNListConfig 里 config→PC 端、mConfig→移动端;移动端列集合/uid 与 PC 各自独立,
10
+ * 所以必须回传真实 mConfig(表单设计页就是这么发的),不能写死 {}。
11
+ */
12
+ export declare function loadMobileConfig(client: ApiClient, baseUrl: string, appId: string, listId: string, pcOnly?: boolean): Promise<{
13
+ mobileConfig: Record<string, any>;
14
+ mobilePreserved: boolean;
15
+ }>;
16
+ export interface CondInput {
17
+ fieldId: string;
18
+ func?: string;
19
+ value?: any;
20
+ text?: string;
21
+ }
22
+ /**
23
+ * 构造明文 JSON 条件树(平台 rootdata / config.filter 都用此结构)。
24
+ * 实测:可直接发明文保存,读回也是明文,无需 LZW 编码(同事 e10-list-view skill 实证)。
25
+ * @param conditions 条件数组(多条件默认 AND,relationship:'1')
26
+ * @param fields fetchFields 返回的字段表,用于补 fieldType/text/compType
27
+ * @param objId 表单 objId
28
+ * @param filterIsNull 统计 rootdata 用 false、视图数据条件 filter 用 true
29
+ * @returns JSON 字符串(空条件返回 '')
30
+ */
31
+ export declare function buildConditionTree(conditions: CondInput[], fields: any[], objId: string, filterIsNull: boolean): string;
32
+ //# sourceMappingURL=form-list-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-utils.d.ts","sourceRoot":"","sources":["../../src/commands/form-list-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C;;;GAGG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAYnG;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CAa1E;AAUD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,GAAG,EAAE,EACb,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,OAAO,GACpB,MAAM,CAuBR"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * 通过 multipart/form-data 的 ds/fields 接口拉取表单字段元数据。
3
+ * 供 list-columns / list-search / list-stats / list-filter 等命令共用。
4
+ */
5
+ export async function fetchFields(client, baseUrl, objId) {
6
+ const body = new URLSearchParams({
7
+ groupId: 'weaver-ebuilder-form-service',
8
+ sourceId: objId,
9
+ sourceType: 'LOGIC',
10
+ detailFieldsGroup: 'true',
11
+ enableMerge: 'true',
12
+ needTableName: 'true',
13
+ params: '[]',
14
+ }).toString();
15
+ const res = await client.postForm(`${baseUrl}/api/ebuilder/common/ds/fields`, body);
16
+ return res?.data?.[0]?.fields || [];
17
+ }
18
+ /**
19
+ * 读取当前 MOBILE 端 nList 配置,保存 PC 改动时原样回传为 mConfig,避免把移动端台账清空。
20
+ * 抓包确认:同一 saveNListConfig 里 config→PC 端、mConfig→移动端;移动端列集合/uid 与 PC 各自独立,
21
+ * 所以必须回传真实 mConfig(表单设计页就是这么发的),不能写死 {}。
22
+ */
23
+ export async function loadMobileConfig(client, baseUrl, appId, listId, pcOnly) {
24
+ try {
25
+ const res = await client.get(`${baseUrl}/api/bs/ebuilder/form/list/getNListConfig/${listId}?apid=${appId}&tpaid=${listId}&terminalType=MOBILE`);
26
+ if (res?.code !== 200 || !res?.status || !res?.data || typeof res.data !== 'object') {
27
+ throw new Error(res?.msg || '移动端配置不存在');
28
+ }
29
+ return { mobileConfig: res.data, mobilePreserved: true };
30
+ }
31
+ catch (error) {
32
+ if (!pcOnly)
33
+ throw error;
34
+ return { mobileConfig: {}, mobilePreserved: false };
35
+ }
36
+ }
37
+ /** func 中文映射(rootStr 展示用)。注意:in=属于 / notIn=不属于(选项类 Browser 族算子),
38
+ * like=包含 / notLike=不包含(文本匹配)。原误把 in 标成"包含"导致与 like 合并显示、平台不识别。 */
39
+ const FUNC_CN = {
40
+ eq: '等于', notEq: '不等于', ne: '不等于', in: '属于', notIn: '不属于',
41
+ like: '包含', notLike: '不包含', gt: '大于', lt: '小于', between: '介于',
42
+ isNull: '为空', isNotNull: '不为空', startWith: '以...开头', endWith: '以...结尾',
43
+ };
44
+ /**
45
+ * 构造明文 JSON 条件树(平台 rootdata / config.filter 都用此结构)。
46
+ * 实测:可直接发明文保存,读回也是明文,无需 LZW 编码(同事 e10-list-view skill 实证)。
47
+ * @param conditions 条件数组(多条件默认 AND,relationship:'1')
48
+ * @param fields fetchFields 返回的字段表,用于补 fieldType/text/compType
49
+ * @param objId 表单 objId
50
+ * @param filterIsNull 统计 rootdata 用 false、视图数据条件 filter 用 true
51
+ * @returns JSON 字符串(空条件返回 '')
52
+ */
53
+ export function buildConditionTree(conditions, fields, objId, filterIsNull) {
54
+ if (!Array.isArray(conditions) || conditions.length === 0)
55
+ return '';
56
+ const topKey = String(Date.now());
57
+ const datas = conditions.map((c, i) => {
58
+ const cf = fields.find((x) => String(x.id) === String(c.fieldId));
59
+ return {
60
+ isParent: false, parentNode: topKey, key: topKey + (i + 1),
61
+ id: c.fieldId, fieldName: 'field_' + c.fieldId,
62
+ fieldType: cf?.type || 'String', text: cf?.text || c.fieldId,
63
+ objId, compType: cf?.compType || 'Select', type: 'condition',
64
+ conditions: { func: c.func || 'eq', value: String(c.value ?? ''), type: '', text: c.text || '', isEsb: false },
65
+ multiSelect: 'false', formInfo: { fieldId: c.fieldId },
66
+ module: 'ebuilderform', mainField: true, subTableId: '', dbFieldType: 'STRING',
67
+ config: { options: [], fieldId: c.fieldId },
68
+ };
69
+ });
70
+ const rootStr = '( ' + datas.map((d) => `${d.text} ${FUNC_CN[d.conditions.func] || d.conditions.func} '${d.conditions.text || d.conditions.value}'`).join(' 并且 ') + ' )';
71
+ return JSON.stringify({
72
+ key: topKey, relationship: '1', isParent: true, isNewFilter: true, parentNode: '',
73
+ datas, version: 1, filterIsNull, isFilterSub: false, rootStr,
74
+ });
75
+ }
76
+ //# sourceMappingURL=form-list-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list-utils.js","sourceRoot":"","sources":["../../src/commands/form-list-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerFormListCommands(form: Command, program: Command): void;
3
+ //# sourceMappingURL=form-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-list.d.ts","sourceRoot":"","sources":["../../src/commands/form-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwEpC,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAmgB9E"}