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,321 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { AuthSession } from '../core/auth.js';
3
+ import { ApiClient } from '../core/client.js';
4
+ const DATA_SCOPE_BASE = '/api/bcw/browserDataScope';
5
+ /** 源表 objId → formId 反查(getList 接口每个表单含 formId) */
6
+ async function resolveFormId(client, baseUrl, appId, objId) {
7
+ const resp = await client.get(`${baseUrl}/api/bs/ebuilder/form/obj/getList/${appId}?apid=${appId}`, { ebbusinessid: appId });
8
+ const forms = Array.isArray(resp?.data) ? resp.data : [];
9
+ const form = forms.find((f) => String(f.id) === String(objId));
10
+ const formId = String(form?.formId ?? '');
11
+ if (!formId)
12
+ throw new Error(`应用 ${appId} 中未找到表单 ${objId} 的 formId`);
13
+ return formId;
14
+ }
15
+ /** 取 EBuilder 字段配置(含 sformId 目标表 objId) */
16
+ async function getEbFieldConfig(client, baseUrl, formId, fieldId) {
17
+ const gf = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/getFormField`, { module: 'ebuilderform', formTableField: { formField: { id: fieldId, form: { id: formId } } } }, { ebbusinessid: formId });
18
+ const d = gf?.data || {};
19
+ if (!d.fieldId)
20
+ throw new Error('未读到 EBuilder 字段配置');
21
+ return d;
22
+ }
23
+ /** 取目标表单字段(含选项)。系统字段 fieldId 非数字,业务字段为数字 */
24
+ async function getTargetFields(client, baseUrl, objId, userId, tenantKey) {
25
+ const res = await client.post(`${baseUrl}/api/ebuilder/form/dataset/v1/getFields`, {
26
+ objId, userid: userId, tenantKey, isReturnDetail: 'y',
27
+ });
28
+ const mains = res?.data?.mainFields || [];
29
+ return mains.map((f) => ({
30
+ id: String(f.fieldId),
31
+ name: String(f.fieldName || f.title || ''),
32
+ fieldType: String(f.fieldType || ''),
33
+ componentKey: String(f.fieldKey || f.componentKey || f.fieldType || ''),
34
+ }));
35
+ }
36
+ /** 取选项字段的可选项(含 valueKey/id/name) */
37
+ async function getFieldOptions(client, baseUrl, formId, fieldId) {
38
+ const gf = await client.post(`${baseUrl}/api/ebuilder/form/form/field/manage/getFormField`, { module: 'ebuilderform', formTableField: { formField: { id: fieldId, form: { id: formId } } } }, { ebbusinessid: formId });
39
+ const opts = gf?.data?.options;
40
+ return Array.isArray(opts)
41
+ ? opts.map((o) => ({ id: String(o.valueKey ?? o.selectionId ?? o.id ?? ''), name: String(o.name ?? o.content ?? '') }))
42
+ : [];
43
+ }
44
+ function resolveField(fields, selector) {
45
+ const byId = fields.filter((f) => f.id === selector);
46
+ if (byId.length === 1)
47
+ return byId[0];
48
+ const byName = fields.filter((f) => f.name === selector);
49
+ if (byName.length === 1)
50
+ return byName[0];
51
+ if (byName.length > 1)
52
+ throw new Error(`目标字段名 "${selector}" 不唯一,请改用 fieldId`);
53
+ throw new Error(`目标表中不存在字段 "${selector}"`);
54
+ }
55
+ function tempKey(prefix) {
56
+ return `${prefix}${Math.floor(Math.random() * 1e13)}`;
57
+ }
58
+ const SELECT_TYPE = 'SELECTION_OPTION';
59
+ /** 编译单条规则为条件树 datas 元素 */
60
+ async function compileRule(client, baseUrl, targetFormId, fields, rule) {
61
+ if (!rule.field)
62
+ throw new Error('规则 field 不能为空');
63
+ if (!rule.operator)
64
+ throw new Error(`字段 ${rule.field} 的 operator 不能为空`);
65
+ const field = resolveField(fields, rule.field);
66
+ const rootKey = tempKey('1786944084');
67
+ const nodeKey = tempKey('1786944084');
68
+ const fieldType = field.fieldType || field.componentKey || 'String';
69
+ const compType = field.componentKey || field.fieldType || 'String';
70
+ const operator = String(rule.operator);
71
+ const conditions = { func: operator, customValue: '' };
72
+ const config = { name: field.name, title: field.name };
73
+ if (operator === 'isnull' || operator === 'notnull') {
74
+ if (rule.value !== undefined && rule.value !== null && rule.value !== '') {
75
+ throw new Error(`条件 ${operator} 不接受 value`);
76
+ }
77
+ }
78
+ else if (rule.value === undefined) {
79
+ throw new Error(`字段 ${field.name} 的条件 ${operator} 必须提供 value`);
80
+ }
81
+ // 选项类:value=选项名 → 解析出 valueKey,填 selectValue + customBrowserValue + config.options
82
+ if (/^(Select|RadioBox|Radio|CheckBox|Checkbox|ComboSelect|Switch)$/i.test(compType)) {
83
+ const requested = (Array.isArray(rule.value) ? rule.value : [rule.value]).map(String);
84
+ const options = await getFieldOptions(client, baseUrl, targetFormId, field.id);
85
+ const matched = requested.map((nameOrId) => {
86
+ const hits = options.filter((o) => o.id === nameOrId || o.name === nameOrId);
87
+ if (hits.length > 1)
88
+ throw new Error(`字段 ${field.name} 的选项 "${nameOrId}" 不唯一,请改用 valueKey`);
89
+ if (hits.length === 1)
90
+ return hits[0];
91
+ throw new Error(`字段 ${field.name} 找不到选项 "${nameOrId}";可选: ${options.map((o) => `${o.name}(${o.id})`).join('、') || '(无)'}`);
92
+ });
93
+ conditions.value = matched.map((m) => m.name).join(',');
94
+ conditions.selectValue = { id: matched[0].id, content: matched[0].name, type: SELECT_TYPE };
95
+ conditions.customBrowserValue = matched.map((m) => ({ id: m.id, content: m.name, type: SELECT_TYPE }));
96
+ config.options = options.map((o) => ({ name: o.name, id: o.id }));
97
+ }
98
+ else {
99
+ // 文本/数字/日期:value=字面值
100
+ conditions.value = String(rule.value);
101
+ conditions.selectValue = '';
102
+ conditions.customBrowserValue = [];
103
+ }
104
+ return {
105
+ isParent: false,
106
+ parentNode: rootKey,
107
+ id: `field_${field.id}`,
108
+ fieldName: `field_${field.id}`,
109
+ fieldType,
110
+ text: field.name,
111
+ compType,
112
+ type: 'condition',
113
+ conditions,
114
+ config,
115
+ subTableId: '',
116
+ key: nodeKey,
117
+ _rootKey: rootKey,
118
+ };
119
+ }
120
+ /** 读取已存的 scope 配置(selectPage → records[].scopeInfoRender 解析) */
121
+ async function readScope(client, baseUrl, formId, fieldId) {
122
+ const resp = await client.post(`${baseUrl}${DATA_SCOPE_BASE}/selectPage`, {
123
+ businessId: formId, businessModule: 'ebuilderform', controlId: fieldId,
124
+ browserType: 'ebuilder/form_ebuilder', formId, module: 'ebuilderform',
125
+ });
126
+ const records = resp?.data?.records || [];
127
+ const record = records.length ? records[0] : null;
128
+ let tree = null;
129
+ if (record?.scopeInfoRender) {
130
+ try {
131
+ tree = JSON.parse(record.scopeInfoRender);
132
+ }
133
+ catch {
134
+ tree = null;
135
+ }
136
+ }
137
+ return { record, tree };
138
+ }
139
+ /** batchSave 保存(set 带条件树 / clear 带空条件树 + id) */
140
+ async function saveScope(client, baseUrl, formId, fieldId, tree, existingId) {
141
+ const item = {
142
+ businessId: formId,
143
+ businessModule: 'ebuilderform',
144
+ controlId: fieldId,
145
+ browserType: 'ebuilder/form_ebuilder',
146
+ formId,
147
+ module: 'ebuilderform',
148
+ scopeInfoRender: JSON.stringify(tree),
149
+ scopeType: 'scopeSql',
150
+ };
151
+ if (existingId)
152
+ item.id = existingId;
153
+ return client.post(`${baseUrl}${DATA_SCOPE_BASE}/batchSave`, [item]);
154
+ }
155
+ /** 解析条件树为可读规则 */
156
+ function decodeRules(tree) {
157
+ if (!tree)
158
+ return [];
159
+ const datas = Array.isArray(tree.datas) ? tree.datas : [];
160
+ return datas
161
+ .filter((d) => d && d.type === 'condition')
162
+ .map((d) => {
163
+ const c = d.conditions || {};
164
+ const sel = c.selectValue;
165
+ const val = sel && typeof sel === 'object' ? sel.content : c.value;
166
+ return {
167
+ field: d.text || '',
168
+ fieldId: String(d.id || '').replace(/^field_/, ''),
169
+ operator: c.func || '',
170
+ value: val ?? '',
171
+ };
172
+ });
173
+ }
174
+ export function registerFormEBuilderScopeCommands(form, program) {
175
+ const scope = form.command('ebuilder-scope')
176
+ .description('浏览数据定义 → 数据范围设置(关联浏览字段,限定被关联数据的筛选条件)');
177
+ scope.command('get')
178
+ .description('读取关联浏览字段的数据范围配置')
179
+ .argument('<objId>', '源表单 objId(含关联浏览字段的表单)')
180
+ .argument('<appId>', '应用 ID')
181
+ .argument('<fieldId>', '关联浏览字段 ID')
182
+ .action(async (objId, appId, fieldId) => {
183
+ try {
184
+ const opts = program.opts();
185
+ const auth = await AuthSession.fromOptions(opts);
186
+ if (!auth)
187
+ throw new Error('无法加载认证');
188
+ const client = new ApiClient(auth);
189
+ const baseUrl = auth.getBaseUrl();
190
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
191
+ const { tree } = await readScope(client, baseUrl, formId, fieldId);
192
+ const rules = decodeRules(tree);
193
+ if (opts.json) {
194
+ console.log(JSON.stringify({ success: true, fieldId, rules, showFilterIsNull: tree?.showFilterIsNull ?? false, raw: tree }, null, 2));
195
+ }
196
+ else {
197
+ console.log(`关联浏览字段 ${fieldId} 数据范围配置:`);
198
+ if (!rules.length) {
199
+ console.log(' (未设置,关联浏览时显示全部被关联数据)');
200
+ }
201
+ else {
202
+ for (const r of rules)
203
+ console.log(` - ${r.field} (${r.fieldId}) ${r.operator} ${JSON.stringify(r.value)}`);
204
+ }
205
+ if (tree?.showFilterIsNull)
206
+ console.log(' [关联字段为空时填充: 开启]');
207
+ }
208
+ }
209
+ catch (e) {
210
+ console.error(`读取数据范围失败: ${e.message}`);
211
+ process.exitCode = 1;
212
+ }
213
+ });
214
+ scope.command('set')
215
+ .description('设置关联浏览字段的数据范围(被关联数据须满足条件才可选)')
216
+ .argument('<objId>', '源表单 objId')
217
+ .argument('<appId>', '应用 ID')
218
+ .argument('<fieldId>', '关联浏览字段 ID')
219
+ .requiredOption('--rules <json>', '规则数组 JSON 或 @文件;每项 {field,operator,value}')
220
+ .option('--logic <and|or>', '多规则关系;默认保留现值', 'and')
221
+ .option('--fill-null', '关联字段为空时是否填充(默认 false)')
222
+ .action(async (objId, appId, fieldId, raw) => {
223
+ try {
224
+ const opts = program.opts();
225
+ const auth = await AuthSession.fromOptions(opts);
226
+ if (!auth)
227
+ throw new Error('无法加载认证');
228
+ const client = new ApiClient(auth);
229
+ const baseUrl = auth.getBaseUrl();
230
+ let rulesStr = raw.rules;
231
+ if (rulesStr.startsWith('@'))
232
+ rulesStr = readFileSync(rulesStr.slice(1), 'utf-8');
233
+ let inputs;
234
+ try {
235
+ inputs = JSON.parse(rulesStr);
236
+ }
237
+ catch {
238
+ throw new Error('--rules 不是有效 JSON');
239
+ }
240
+ if (!Array.isArray(inputs))
241
+ throw new Error('--rules 必须是 JSON 数组');
242
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
243
+ const fieldCfg = await getEbFieldConfig(client, baseUrl, formId, fieldId);
244
+ const targetObjId = String(fieldCfg.sformId || fieldCfg.formTableId || '');
245
+ if (!targetObjId)
246
+ throw new Error('字段缺少 sformId,不是有效的关联浏览字段');
247
+ const targetFields = await getTargetFields(client, baseUrl, targetObjId, auth.userId, auth.tenantKey);
248
+ const targetFormId = await resolveFormId(client, baseUrl, appId, targetObjId);
249
+ const { record } = await readScope(client, baseUrl, formId, fieldId);
250
+ const logic = (raw.logic === 'or' ? 'or' : 'and');
251
+ const compiled = [];
252
+ for (const r of inputs)
253
+ compiled.push(await compileRule(client, baseUrl, targetFormId, targetFields, r));
254
+ const rootKey = compiled[0]?._rootKey || tempKey('1786944084');
255
+ for (const c of compiled)
256
+ c.parentNode = rootKey;
257
+ const tree = {
258
+ key: rootKey,
259
+ relationship: logic === 'or' ? '2' : '1',
260
+ isParent: true,
261
+ isNewFilter: true,
262
+ parentNode: '',
263
+ datas: compiled.map(({ _rootKey, ...rest }) => rest),
264
+ version: 1,
265
+ showFilterIsNull: !!raw.fillNull,
266
+ };
267
+ await saveScope(client, baseUrl, formId, fieldId, tree, record?.id);
268
+ const after = await readScope(client, baseUrl, formId, fieldId);
269
+ const afterRules = decodeRules(after.tree);
270
+ if (afterRules.length !== inputs.length)
271
+ throw new Error(`保存后回读规则数不一致: 期望 ${inputs.length}, 实际 ${afterRules.length}`);
272
+ if (opts.json) {
273
+ console.log(JSON.stringify({ success: true, fieldId, rules: afterRules, logic }, null, 2));
274
+ }
275
+ else {
276
+ console.log('数据范围已保存并回读验证');
277
+ console.log(` 字段: ${fieldId} → 目标表 ${targetObjId}`);
278
+ console.log(` 条件逻辑: ${logic}`);
279
+ console.log(` 规则数: ${afterRules.length}`);
280
+ for (const r of afterRules)
281
+ console.log(` - ${r.field} ${r.operator} ${JSON.stringify(r.value)}`);
282
+ }
283
+ }
284
+ catch (e) {
285
+ console.error(`设置数据范围失败: ${e.message}`);
286
+ process.exitCode = 1;
287
+ }
288
+ });
289
+ scope.command('clear')
290
+ .description('清空关联浏览字段的数据范围配置')
291
+ .argument('<objId>', '源表单 objId')
292
+ .argument('<appId>', '应用 ID')
293
+ .argument('<fieldId>', '关联浏览字段 ID')
294
+ .action(async (objId, appId, fieldId) => {
295
+ try {
296
+ const opts = program.opts();
297
+ const auth = await AuthSession.fromOptions(opts);
298
+ if (!auth)
299
+ throw new Error('无法加载认证');
300
+ const client = new ApiClient(auth);
301
+ const baseUrl = auth.getBaseUrl();
302
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
303
+ const { record } = await readScope(client, baseUrl, formId, fieldId);
304
+ if (!record?.id) {
305
+ console.log(`字段 ${fieldId} 无数据范围配置,无需清空`);
306
+ return;
307
+ }
308
+ await saveScope(client, baseUrl, formId, fieldId, { showFilterIsNull: false }, String(record.id));
309
+ const after = await readScope(client, baseUrl, formId, fieldId);
310
+ const remaining = decodeRules(after.tree);
311
+ if (remaining.length)
312
+ throw new Error(`清空后仍存在 ${remaining.length} 条规则`);
313
+ console.log(opts.json ? JSON.stringify({ success: true, fieldId }) : `已清空字段 ${fieldId} 的数据范围配置`);
314
+ }
315
+ catch (e) {
316
+ console.error(`清空数据范围失败: ${e.message}`);
317
+ process.exitCode = 1;
318
+ }
319
+ });
320
+ }
321
+ //# sourceMappingURL=form-ebuilder-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-ebuilder-scope.js","sourceRoot":"","sources":["../../src/commands/form-ebuilder-scope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerFormEBuilderSearchCommands(form: Command, program: Command): void;
3
+ //# sourceMappingURL=form-ebuilder-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-ebuilder-search.d.ts","sourceRoot":"","sources":["../../src/commands/form-ebuilder-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiJpC,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA8GxF"}
@@ -0,0 +1,252 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { AuthSession } from '../core/auth.js';
3
+ import { ApiClient } from '../core/client.js';
4
+ /**
5
+ * form ebuilder-search — 浏览数据定义 → 高级搜索条件设置(关联浏览字段的搜索过滤)。
6
+ *
7
+ * 与 `ebuilder-scope`(数据范围设置 browserDataScope)是**两个面板**:
8
+ * - ebuilder-scope:数据范围设置 → browserDataScope(仅 EBuilder 有)
9
+ * - ebuilder-search:高级搜索条件设置 → saveAdvanceSearchConfig(EBuilder 和 Flow(浏览-流程) 都有)
10
+ *
11
+ * 接口(高级搜索配置):
12
+ * - GET: GET /api/bcw/common/browser/searchConfig/getAdvanceSearchConfig?fromModule&businessId&controlId&targetModule
13
+ * - SET: POST /api/bcw/common/browser/searchConfig/saveAdvanceSearchConfig (commonLines/commonCells)
14
+ * - CLEAR: 同上,清空 commonLines 各条件 value
15
+ *
16
+ * 字段浏览类型经 queryBrowserFieldList 检测(browserSourceType + browserSourceModule):
17
+ * - browserSourceModule 即 targetModule(EBuilder=ebuilder/form,Flow=workflow/list)
18
+ */
19
+ const SRCH_BASE = '/api/bcw/common/browser/searchConfig';
20
+ /** 高级搜索条件:itemName → 中文名(workflow 高级搜索项;EBuilder 表单搜索项名也可能同构) */
21
+ const ADVANCE_CONDITIONS = {
22
+ requestname: '流程名称',
23
+ requestmark: '流程编号',
24
+ creator: '发起人',
25
+ createdatetime: '创建时间',
26
+ finishdatetime: '完成时间',
27
+ personaltag: '个人标签',
28
+ publictag: '公共标签',
29
+ creatordept: '发起人部门',
30
+ creatorsubcom: '发起人子公司',
31
+ workflowtype: '流程类型',
32
+ requestlevel: '紧急程度',
33
+ nodeid: '当前节点',
34
+ relatedoc: '关联文档',
35
+ relatehrm: '关联人员',
36
+ relatecrm: '关联客户',
37
+ relateprj: '关联项目',
38
+ workflowStatus: '流程状态',
39
+ flowstatus: '流程状态',
40
+ requestId: '流程ID',
41
+ };
42
+ /** 源表 objId → formId 反查 */
43
+ async function resolveFormId(client, baseUrl, appId, objId) {
44
+ const resp = await client.get(`${baseUrl}/api/bs/ebuilder/form/obj/getList/${appId}?apid=${appId}`, { ebbusinessid: appId });
45
+ const forms = Array.isArray(resp?.data) ? resp.data : [];
46
+ const form = forms.find((f) => String(f.id) === String(objId));
47
+ const formId = String(form?.formId ?? '');
48
+ if (!formId)
49
+ throw new Error(`应用 ${appId} 中未找到表单 ${objId} 的 formId`);
50
+ return formId;
51
+ }
52
+ /** 检测浏览字段:queryBrowserFieldList → { browserSourceType, browserSourceModule } */
53
+ async function detectBrowserField(client, baseUrl, appId, objId, formId, fieldId) {
54
+ const resp = await client.post(`${baseUrl}/api/ebuilder/form/form/browserConfig/queryBrowserFieldList?apid=${appId}`, { pageNo: 1, pageSize: 50, module: 'ebuilderform', targetId: formId, keywords: '',
55
+ customParam: { appId, objId } }, { ebbusinessid: formId });
56
+ const list = resp?.data?.result || [];
57
+ const field = list.find((f) => String(f.id) === String(fieldId));
58
+ if (!field)
59
+ throw new Error(`表单中找不到浏览字段 ${fieldId}(可能不是关联浏览字段)`);
60
+ return { type: String(field.browserSourceType || 'ebuilder'), module: String(field.browserSourceModule || '') };
61
+ }
62
+ /** 读取高级搜索配置 */
63
+ async function getAdvanceConfig(client, baseUrl, formId, fieldId, targetModule) {
64
+ const url = `${baseUrl}${SRCH_BASE}/getAdvanceSearchConfig`
65
+ + `?fromModule=ebuilderform&businessId=${formId}&controlId=${fieldId}&targetModule=${encodeURIComponent(targetModule)}`;
66
+ const resp = await client.get(url, { ebbusinessid: formId });
67
+ return resp?.data || null;
68
+ }
69
+ /** 保存高级搜索配置(对齐浏览器 payload) */
70
+ async function saveAdvanceConfig(client, baseUrl, formId, fieldId, config, targetModule) {
71
+ const payload = {
72
+ filterIsNull: config.filterIsNull ?? false,
73
+ lines: config.lines ?? [],
74
+ cells: config.cells ?? '{}',
75
+ commonCells: config.commonCells ?? '{}',
76
+ commonLines: config.commonLines ?? [],
77
+ browserType: config.browserType ?? 'wflRequest',
78
+ searchValue: config.searchValue ?? '{"formDatas":{}}',
79
+ aliasName: config.aliasName ?? '{}',
80
+ disableList: config.disableList ?? '{}',
81
+ config: config.config ?? '{"enableQuickSearch":true}',
82
+ fromModule: 'ebuilderform',
83
+ businessId: formId,
84
+ controlId: fieldId,
85
+ targetModule,
86
+ };
87
+ return client.post(`${baseUrl}${SRCH_BASE}/saveAdvanceSearchConfig`, payload, { ebbusinessid: formId });
88
+ }
89
+ /** 解析 commonLines → 可读规则(只列非空值条件) */
90
+ function decodeAdvanceRules(config) {
91
+ const lines = typeof config?.commonLines === 'string' ? JSON.parse(config.commonLines) : (config?.commonLines || []);
92
+ if (!Array.isArray(lines))
93
+ return [];
94
+ return lines
95
+ .filter((l) => l?.value !== undefined && l.value !== null && l.value !== '')
96
+ .map((l) => ({
97
+ field: ADVANCE_CONDITIONS[l.itemName] || l.itemName || '',
98
+ itemName: l.itemName || '',
99
+ operator: l.operateValue || l.operateKey || '',
100
+ value: String(l.value),
101
+ }));
102
+ }
103
+ /** 编译 set 规则 → 更新 commonLines(按中文名或 itemName 匹配,写 value) */
104
+ function applyAdvanceRules(config, inputs) {
105
+ const lines = typeof config?.commonLines === 'string' ? JSON.parse(config.commonLines) : (config?.commonLines || []);
106
+ if (!Array.isArray(lines))
107
+ throw new Error('高级搜索配置无 commonLines');
108
+ const nameToItem = Object.entries(ADVANCE_CONDITIONS).reduce((m, [item, name]) => { m[name] = item; return m; }, {});
109
+ for (const input of inputs) {
110
+ const item = nameToItem[input.field] || (ADVANCE_CONDITIONS[input.field] ? input.field : '');
111
+ if (!item)
112
+ throw new Error(`没有可配条件 "${input.field}";可配: ${Object.values(ADVANCE_CONDITIONS).join('/')}`);
113
+ const line = lines.find((l) => l.itemName === item);
114
+ if (!line)
115
+ throw new Error(`高级搜索配置里找不到条件 "${item}"`);
116
+ line.value = input.value === undefined || input.value === null ? '' : String(input.value);
117
+ }
118
+ if (typeof config?.commonLines === 'string')
119
+ config.commonLines = JSON.stringify(lines);
120
+ else
121
+ config.commonLines = lines;
122
+ }
123
+ export function registerFormEBuilderSearchCommands(form, program) {
124
+ const search = form.command('ebuilder-search')
125
+ .description('浏览数据定义 → 高级搜索条件设置(关联浏览字段的搜索过滤;EBuilder 和 Flow 通用)');
126
+ search.command('get')
127
+ .description('读取关联浏览字段的高级搜索条件配置')
128
+ .argument('<objId>', '源表单 objId(含关联浏览字段的表单)')
129
+ .argument('<appId>', '应用 ID')
130
+ .argument('<fieldId>', '关联浏览字段 ID')
131
+ .action(async (objId, appId, fieldId) => {
132
+ try {
133
+ const opts = program.opts();
134
+ const auth = await AuthSession.fromOptions(opts);
135
+ if (!auth)
136
+ throw new Error('无法加载认证');
137
+ const client = new ApiClient(auth);
138
+ const baseUrl = auth.getBaseUrl();
139
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
140
+ const { module } = await detectBrowserField(client, baseUrl, appId, objId, formId, fieldId);
141
+ const cfg = await getAdvanceConfig(client, baseUrl, formId, fieldId, module);
142
+ const rules = decodeAdvanceRules(cfg);
143
+ if (opts.json) {
144
+ console.log(JSON.stringify({ success: true, fieldId, rules }, null, 2));
145
+ }
146
+ else {
147
+ console.log(`浏览字段 ${fieldId} 高级搜索条件配置:`);
148
+ if (!rules.length) {
149
+ console.log(' (未设置,浏览时显示全部数据)');
150
+ }
151
+ else {
152
+ for (const r of rules)
153
+ console.log(` - ${r.field} (${r.itemName}) ${r.operator} ${JSON.stringify(r.value)}`);
154
+ }
155
+ }
156
+ }
157
+ catch (e) {
158
+ console.error(`读取高级搜索条件失败: ${e.message}`);
159
+ process.exitCode = 1;
160
+ }
161
+ });
162
+ search.command('set')
163
+ .description('设置关联浏览字段的高级搜索条件')
164
+ .argument('<objId>', '源表单 objId')
165
+ .argument('<appId>', '应用 ID')
166
+ .argument('<fieldId>', '关联浏览字段 ID')
167
+ .requiredOption('--rules <json>', '条件数组 JSON 或 @文件;每项 {field,value}(field=中文名或 itemName)')
168
+ .action(async (objId, appId, fieldId, raw) => {
169
+ try {
170
+ const opts = program.opts();
171
+ const auth = await AuthSession.fromOptions(opts);
172
+ if (!auth)
173
+ throw new Error('无法加载认证');
174
+ const client = new ApiClient(auth);
175
+ const baseUrl = auth.getBaseUrl();
176
+ let rulesStr = raw.rules;
177
+ if (rulesStr.startsWith('@'))
178
+ rulesStr = readFileSync(rulesStr.slice(1), 'utf-8');
179
+ let inputs;
180
+ try {
181
+ inputs = JSON.parse(rulesStr);
182
+ }
183
+ catch {
184
+ throw new Error('--rules 不是有效 JSON');
185
+ }
186
+ if (!Array.isArray(inputs))
187
+ throw new Error('--rules 必须是 JSON 数组');
188
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
189
+ const { module } = await detectBrowserField(client, baseUrl, appId, objId, formId, fieldId);
190
+ const cfg = await getAdvanceConfig(client, baseUrl, formId, fieldId, module);
191
+ if (!cfg)
192
+ throw new Error('读取高级搜索配置失败');
193
+ applyAdvanceRules(cfg, inputs);
194
+ await saveAdvanceConfig(client, baseUrl, formId, fieldId, cfg, module);
195
+ const after = await getAdvanceConfig(client, baseUrl, formId, fieldId, module);
196
+ const afterRules = decodeAdvanceRules(after);
197
+ const expected = inputs.filter((i) => i.value !== undefined && i.value !== null && i.value !== '').length;
198
+ if (afterRules.length !== expected)
199
+ throw new Error(`保存后回读条件数不一致: 期望 ${expected}, 实际 ${afterRules.length}`);
200
+ if (opts.json) {
201
+ console.log(JSON.stringify({ success: true, fieldId, rules: afterRules }, null, 2));
202
+ }
203
+ else {
204
+ console.log('高级搜索条件已保存并回读验证');
205
+ console.log(` 字段: ${fieldId}`);
206
+ for (const r of afterRules)
207
+ console.log(` - ${r.field} ${r.operator} ${JSON.stringify(r.value)}`);
208
+ }
209
+ }
210
+ catch (e) {
211
+ console.error(`设置高级搜索条件失败: ${e.message}`);
212
+ process.exitCode = 1;
213
+ }
214
+ });
215
+ search.command('clear')
216
+ .description('清空关联浏览字段的高级搜索条件')
217
+ .argument('<objId>', '源表单 objId')
218
+ .argument('<appId>', '应用 ID')
219
+ .argument('<fieldId>', '关联浏览字段 ID')
220
+ .action(async (objId, appId, fieldId) => {
221
+ try {
222
+ const opts = program.opts();
223
+ const auth = await AuthSession.fromOptions(opts);
224
+ if (!auth)
225
+ throw new Error('无法加载认证');
226
+ const client = new ApiClient(auth);
227
+ const baseUrl = auth.getBaseUrl();
228
+ const formId = await resolveFormId(client, baseUrl, appId, objId);
229
+ const { module } = await detectBrowserField(client, baseUrl, appId, objId, formId, fieldId);
230
+ const cfg = await getAdvanceConfig(client, baseUrl, formId, fieldId, module);
231
+ if (!cfg)
232
+ throw new Error('读取高级搜索配置失败');
233
+ const cl = typeof cfg.commonLines === 'string' ? JSON.parse(cfg.commonLines) : (cfg.commonLines || []);
234
+ if (Array.isArray(cl)) {
235
+ for (const line of cl)
236
+ line.value = '';
237
+ cfg.commonLines = typeof cfg.commonLines === 'string' ? JSON.stringify(cl) : cl;
238
+ }
239
+ await saveAdvanceConfig(client, baseUrl, formId, fieldId, cfg, module);
240
+ const after = await getAdvanceConfig(client, baseUrl, formId, fieldId, module);
241
+ const remaining = decodeAdvanceRules(after);
242
+ if (remaining.length)
243
+ throw new Error(`清空后仍存在 ${remaining.length} 个条件`);
244
+ console.log(opts.json ? JSON.stringify({ success: true, fieldId }) : `已清空字段 ${fieldId} 的高级搜索条件配置`);
245
+ }
246
+ catch (e) {
247
+ console.error(`清空高级搜索条件失败: ${e.message}`);
248
+ process.exitCode = 1;
249
+ }
250
+ });
251
+ }
252
+ //# sourceMappingURL=form-ebuilder-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-ebuilder-search.js","sourceRoot":"","sources":["../../src/commands/form-ebuilder-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * Form formula — 表单字段函数公式。
4
+ *
5
+ * APIs (captured from browser):
6
+ * POST /api/excel/formula/save — 创建/更新公式
7
+ * POST /api/excel/formula/library/saveSourceForm — 绑定公式到字段
8
+ * POST /api/excel/formula/search/temp/list — 查询公式列表
9
+ * POST /api/excel/formula/funcList — 函数目录
10
+ */
11
+ export declare function registerFormFormulaCommands(formCmd: Command, program: Command): void;
12
+ //# sourceMappingURL=form-formula.d.ts.map