weaver-e10-builder 1.2.5 → 1.5.2

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 (230) hide show
  1. package/assets/org-employee-template.xlsx +0 -0
  2. package/dist/commands/form-add-physical-field.d.ts +3 -0
  3. package/dist/commands/form-add-physical-field.d.ts.map +1 -0
  4. package/dist/commands/form-add-physical-field.js +125 -0
  5. package/dist/commands/form-add-physical-field.js.map +1 -0
  6. package/dist/commands/form-button.d.ts.map +1 -1
  7. package/dist/commands/form-button.js +28 -5
  8. package/dist/commands/form-button.js.map +1 -1
  9. package/dist/commands/form-field-linkage.d.ts.map +1 -1
  10. package/dist/commands/form-field-linkage.js +27 -6
  11. package/dist/commands/form-field-linkage.js.map +1 -1
  12. package/dist/commands/form-formula-linkage.d.ts +3 -0
  13. package/dist/commands/form-formula-linkage.d.ts.map +1 -0
  14. package/dist/commands/form-formula-linkage.js +434 -0
  15. package/dist/commands/form-formula-linkage.js.map +1 -0
  16. package/dist/commands/form-formula.d.ts.map +1 -1
  17. package/dist/commands/form-formula.js +22 -3
  18. package/dist/commands/form-formula.js.map +1 -1
  19. package/dist/commands/form-list-click.d.ts.map +1 -1
  20. package/dist/commands/form-list-click.js +2 -1
  21. package/dist/commands/form-list-click.js.map +1 -1
  22. package/dist/commands/form-list-permission.js +1 -1
  23. package/dist/commands/form-list-permission.js.map +1 -1
  24. package/dist/commands/form-native.d.ts.map +1 -1
  25. package/dist/commands/form-native.js +11 -3
  26. package/dist/commands/form-native.js.map +1 -1
  27. package/dist/commands/form-physical-table.d.ts +3 -0
  28. package/dist/commands/form-physical-table.d.ts.map +1 -0
  29. package/dist/commands/form-physical-table.js +195 -0
  30. package/dist/commands/form-physical-table.js.map +1 -0
  31. package/dist/commands/form.d.ts.map +1 -1
  32. package/dist/commands/form.js +246 -549
  33. package/dist/commands/form.js.map +1 -1
  34. package/dist/commands/matrix.d.ts.map +1 -1
  35. package/dist/commands/matrix.js +175 -36
  36. package/dist/commands/matrix.js.map +1 -1
  37. package/dist/commands/org.d.ts +10 -0
  38. package/dist/commands/org.d.ts.map +1 -0
  39. package/dist/commands/org.js +402 -0
  40. package/dist/commands/org.js.map +1 -0
  41. package/dist/commands/role.d.ts.map +1 -1
  42. package/dist/commands/role.js +106 -62
  43. package/dist/commands/role.js.map +1 -1
  44. package/dist/commands/wf-form.d.ts.map +1 -1
  45. package/dist/commands/wf-form.js +501 -26
  46. package/dist/commands/wf-form.js.map +1 -1
  47. package/dist/commands/workflow-auth-resp.d.ts.map +1 -1
  48. package/dist/commands/workflow-auth-resp.js +53 -5
  49. package/dist/commands/workflow-auth-resp.js.map +1 -1
  50. package/dist/commands/workflow-create-auth-resp.d.ts.map +1 -1
  51. package/dist/commands/workflow-create-auth-resp.js +5 -1
  52. package/dist/commands/workflow-create-auth-resp.js.map +1 -1
  53. package/dist/commands/workflow-operator-sign.js +1 -1
  54. package/dist/commands/workflow-operator-sign.js.map +1 -1
  55. package/dist/commands/workflow.d.ts.map +1 -1
  56. package/dist/commands/workflow.js +78 -9
  57. package/dist/commands/workflow.js.map +1 -1
  58. package/dist/index.js +8 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/services/action-detail.d.ts.map +1 -1
  61. package/dist/services/action-detail.js +5 -4
  62. package/dist/services/action-detail.js.map +1 -1
  63. package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
  64. package/dist/services/actionflow/components/action_eb_update_compiler.js +22 -7
  65. package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
  66. package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
  67. package/dist/services/actionflow/components/approve_create.js +6 -3
  68. package/dist/services/actionflow/components/approve_create.js.map +1 -1
  69. package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -1
  70. package/dist/services/actionflow/components/custom_set_form.js +35 -1
  71. package/dist/services/actionflow/components/custom_set_form.js.map +1 -1
  72. package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
  73. package/dist/services/actionflow/components/custom_trigger.js +4 -1
  74. package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
  75. package/dist/services/actionflow/components/dml_execute.d.ts.map +1 -1
  76. package/dist/services/actionflow/components/dml_execute.js +7 -3
  77. package/dist/services/actionflow/components/dml_execute.js.map +1 -1
  78. package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
  79. package/dist/services/actionflow/components/document_actions.js +7 -3
  80. package/dist/services/actionflow/components/document_actions.js.map +1 -1
  81. package/dist/services/actionflow/components/hrm_actions.d.ts.map +1 -1
  82. package/dist/services/actionflow/components/hrm_actions.js +7 -3
  83. package/dist/services/actionflow/components/hrm_actions.js.map +1 -1
  84. package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
  85. package/dist/services/actionflow/components/multiple_execution.js +14 -5
  86. package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
  87. package/dist/services/actionflow/components/output.js +1 -1
  88. package/dist/services/actionflow/components/output.js.map +1 -1
  89. package/dist/services/actionflow/components/send_message.js +2 -2
  90. package/dist/services/actionflow/components/send_message.js.map +1 -1
  91. package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
  92. package/dist/services/actionflow/components/workflow_actions.js +7 -3
  93. package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
  94. package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
  95. package/dist/services/actionflow/context_preflight.js +12 -2
  96. package/dist/services/actionflow/context_preflight.js.map +1 -1
  97. package/dist/services/actionflow/context_provider.d.ts.map +1 -1
  98. package/dist/services/actionflow/context_provider.js +21 -2
  99. package/dist/services/actionflow/context_provider.js.map +1 -1
  100. package/dist/services/actionflow/custom_trigger_context.d.ts +10 -0
  101. package/dist/services/actionflow/custom_trigger_context.d.ts.map +1 -0
  102. package/dist/services/actionflow/custom_trigger_context.js +46 -0
  103. package/dist/services/actionflow/custom_trigger_context.js.map +1 -0
  104. package/dist/services/actionflow/filter_rules.js +2 -2
  105. package/dist/services/actionflow/filter_rules.js.map +1 -1
  106. package/dist/services/actionflow/formula_service.d.ts +9 -1
  107. package/dist/services/actionflow/formula_service.d.ts.map +1 -1
  108. package/dist/services/actionflow/formula_service.js +59 -21
  109. package/dist/services/actionflow/formula_service.js.map +1 -1
  110. package/dist/services/actionflow/id_generator.d.ts +2 -0
  111. package/dist/services/actionflow/id_generator.d.ts.map +1 -1
  112. package/dist/services/actionflow/id_generator.js +13 -0
  113. package/dist/services/actionflow/id_generator.js.map +1 -1
  114. package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
  115. package/dist/services/actionflow/preflight_service.js +6 -1
  116. package/dist/services/actionflow/preflight_service.js.map +1 -1
  117. package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
  118. package/dist/services/actionflow/workflow_compiler.js +89 -35
  119. package/dist/services/actionflow/workflow_compiler.js.map +1 -1
  120. package/dist/services/auth-resp-condition.d.ts +35 -0
  121. package/dist/services/auth-resp-condition.d.ts.map +1 -0
  122. package/dist/services/auth-resp-condition.js +111 -0
  123. package/dist/services/auth-resp-condition.js.map +1 -0
  124. package/dist/services/condition-rules.d.ts.map +1 -1
  125. package/dist/services/condition-rules.js +4 -1
  126. package/dist/services/condition-rules.js.map +1 -1
  127. package/dist/services/esb-interface/document-parser.d.ts.map +1 -1
  128. package/dist/services/esb-interface/document-parser.js +62 -5
  129. package/dist/services/esb-interface/document-parser.js.map +1 -1
  130. package/dist/services/form-association.d.ts +19 -0
  131. package/dist/services/form-association.d.ts.map +1 -1
  132. package/dist/services/form-association.js +64 -0
  133. package/dist/services/form-association.js.map +1 -1
  134. package/dist/services/form-button-action.d.ts +7 -0
  135. package/dist/services/form-button-action.d.ts.map +1 -1
  136. package/dist/services/form-button-action.js +11 -1
  137. package/dist/services/form-button-action.js.map +1 -1
  138. package/dist/services/form-create.d.ts +4 -0
  139. package/dist/services/form-create.d.ts.map +1 -1
  140. package/dist/services/form-create.js +18 -12
  141. package/dist/services/form-create.js.map +1 -1
  142. package/dist/services/form-field-build.d.ts +71 -0
  143. package/dist/services/form-field-build.d.ts.map +1 -0
  144. package/dist/services/form-field-build.js +436 -0
  145. package/dist/services/form-field-build.js.map +1 -0
  146. package/dist/services/form-field-patch.d.ts +3 -1
  147. package/dist/services/form-field-patch.d.ts.map +1 -1
  148. package/dist/services/form-field-patch.js +23 -9
  149. package/dist/services/form-field-patch.js.map +1 -1
  150. package/dist/services/form-formula-linkage.d.ts +349 -0
  151. package/dist/services/form-formula-linkage.d.ts.map +1 -0
  152. package/dist/services/form-formula-linkage.js +546 -0
  153. package/dist/services/form-formula-linkage.js.map +1 -0
  154. package/dist/services/form-layout-insert.d.ts +84 -0
  155. package/dist/services/form-layout-insert.d.ts.map +1 -0
  156. package/dist/services/form-layout-insert.js +244 -0
  157. package/dist/services/form-layout-insert.js.map +1 -0
  158. package/dist/services/form-linkage-condition.d.ts +159 -0
  159. package/dist/services/form-linkage-condition.d.ts.map +1 -0
  160. package/dist/services/form-linkage-condition.js +307 -0
  161. package/dist/services/form-linkage-condition.js.map +1 -0
  162. package/dist/services/form-physical-table.d.ts +115 -0
  163. package/dist/services/form-physical-table.d.ts.map +1 -0
  164. package/dist/services/form-physical-table.js +153 -0
  165. package/dist/services/form-physical-table.js.map +1 -0
  166. package/dist/services/formula-detail.d.ts +98 -6
  167. package/dist/services/formula-detail.d.ts.map +1 -1
  168. package/dist/services/formula-detail.js +208 -26
  169. package/dist/services/formula-detail.js.map +1 -1
  170. package/dist/services/matrix-rows.d.ts +43 -0
  171. package/dist/services/matrix-rows.d.ts.map +1 -0
  172. package/dist/services/matrix-rows.js +104 -0
  173. package/dist/services/matrix-rows.js.map +1 -0
  174. package/dist/services/org-department.d.ts +114 -0
  175. package/dist/services/org-department.d.ts.map +1 -0
  176. package/dist/services/org-department.js +209 -0
  177. package/dist/services/org-department.js.map +1 -0
  178. package/dist/services/org-employee.d.ts +191 -0
  179. package/dist/services/org-employee.d.ts.map +1 -0
  180. package/dist/services/org-employee.js +400 -0
  181. package/dist/services/org-employee.js.map +1 -0
  182. package/dist/services/role-member.d.ts +99 -0
  183. package/dist/services/role-member.d.ts.map +1 -0
  184. package/dist/services/role-member.js +206 -0
  185. package/dist/services/role-member.js.map +1 -0
  186. package/dist/services/workflow-info.d.ts +83 -0
  187. package/dist/services/workflow-info.d.ts.map +1 -0
  188. package/dist/services/workflow-info.js +97 -0
  189. package/dist/services/workflow-info.js.map +1 -0
  190. package/dist/services/workflow-odoc-setting.d.ts +1 -1
  191. package/dist/services/workflow-odoc-setting.d.ts.map +1 -1
  192. package/dist/services/workflow-odoc-setting.js +15 -6
  193. package/dist/services/workflow-odoc-setting.js.map +1 -1
  194. package/dist/utils/column-name.d.ts +24 -0
  195. package/dist/utils/column-name.d.ts.map +1 -1
  196. package/dist/utils/column-name.js +16 -0
  197. package/dist/utils/column-name.js.map +1 -1
  198. package/ecodecmd/package.json +1 -2
  199. package/ecodecmd/src/loaddep.js +19 -9
  200. package/package.json +4 -4
  201. package/skill-docs/SKILL.md +13 -9
  202. package/skill-docs/_catalog.md +86 -81
  203. package/skill-docs/actionflows/SKILL.md +173 -170
  204. package/skill-docs/actionflows/references/components/logic/Output.md +1 -1
  205. package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +32 -0
  206. package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +1 -1
  207. package/skill-docs/references/common/guide-plan-template.md +9 -3
  208. package/skill-docs/references/common/ref-cli-commands.md +54 -23
  209. package/skill-docs/references/esb-interface/guide-import.md +4 -1
  210. package/skill-docs/references/form/guide-create-form.md +13 -0
  211. package/skill-docs/references/form/guide-field-linkage.md +2 -0
  212. package/skill-docs/references/form/guide-form-association.md +1 -1
  213. package/skill-docs/references/form/guide-form-formula-functions.md +36 -0
  214. package/skill-docs/references/form/guide-form-layout-incremental.md +75 -0
  215. package/skill-docs/references/form/guide-form-linkage.md +62 -4
  216. package/skill-docs/references/form/guide-form-physical-table.md +146 -0
  217. package/skill-docs/references/form/guide-formula-linkage.md +250 -0
  218. package/skill-docs/references/form/ref-form-fields.md +6 -0
  219. package/skill-docs/references/hrm/guide-matrix.md +79 -16
  220. package/skill-docs/references/hrm/guide-org-employee.md +124 -0
  221. package/skill-docs/references/report/cell-config-echo-guide.md +1 -1
  222. package/skill-docs/references/report/dataset-query-filter-guide.md +3 -3
  223. package/skill-docs/references/report/date-range-query-reference.md +2 -2
  224. package/skill-docs/references/report/query-condition-api-guide.md +11 -11
  225. package/skill-docs/references/report/report-designer-feature-map.md +1 -1
  226. package/skill-docs/references/report/report-permission-guide.md +2 -2
  227. package/skill-docs/references/workflow/guide-workflow-auth-resp.md +48 -22
  228. package/skill-docs/references/workflow/guide-workflow-odoc-setting.md +248 -0
  229. package/skill-docs/references/workflow/guide-workflow-odoc.md +23 -51
  230. package/skill-docs/references/workflow/guide-workflow.md +1 -1
@@ -0,0 +1,349 @@
1
+ /**
2
+ * 函数联动(`linkageType='excel'`)—— 表单字段之间的公式赋值式联动。
3
+ *
4
+ * ## 它是什么
5
+ *
6
+ * 设计器里「函数联动」面板配出来的规则:**在哪儿生效 + 什么时候触发 + 谁触发 + 赋值给谁**。
7
+ * 落库是一条 **FormDataLinkage**,`linkageType: 'excel'` —— 与 `form field-linkage`
8
+ * (`linkageType: 'template'`,ESB 跨表带出)**共用同一个保存端点** `saveFormDataLinkage`,
9
+ * 区别只在这几个键:
10
+ *
11
+ * | | field-linkage(跨表带出) | 函数联动(本模块) |
12
+ * |---|---|---|
13
+ * | `linkageType` | `template` | `excel` |
14
+ * | 数据源 | `dataSources[].sourceEsb` + `dataSourceId` | `dataSources[].sourceExcel.{excelId, excelName}` |
15
+ * | `linkageExt.subFormAddType` | `override` | `append` |
16
+ * | 取值靠 | ESB 应用(application/save + saveDesign) | 一张公式(`/api/excel/formula/save`) |
17
+ *
18
+ * 因为取值靠公式,所以建联动前要**先建公式**,`sourceExcel.excelId` 就是那个公式的 id。
19
+ *
20
+ * ## 两条容易踩的
21
+ *
22
+ * 1. **赋值式**:公式的 `expressSql` 不是纯函数体,是 `{主表.目标}=<函数体>`,且
23
+ * `returnType` / `validateType` 都是 `EqualAssign`(普通字段公式是 `Number|String|Date` / `normal`)。
24
+ * 用户给的通常只有右侧函数体,由 `buildAssignExpression` 拼出左侧。
25
+ * 2. **模块字段不能作赋值目标**:平台在 `extendParam.unSupportTargets` 里列了 21 个语义键,
26
+ * 实测**正好等于** `findFormDrivingColumns` 的模块字段桶。那些字段可以出现在公式右侧、
27
+ * 也可以当触发字段,但**不能**出现在 `=` 左边。判据见 `MODULE_FIELD_KEYS`。
28
+ */
29
+ import type { LinkageEffect } from './form-linkage-condition.js';
30
+ export declare const LINKAGE_API = "/api/ebuilder/form/form/linkage";
31
+ /**
32
+ * 模块字段(系统字段)语义键 —— 平台在 `extendParam.unSupportTargets` 里原样给出的 21 项。
33
+ *
34
+ * 它同时是两条判据:① 哪些列是模块字段(`id` 落在这个集合里);
35
+ * ② 哪些字段**不能**作为赋值目标(就是这 21 个)。
36
+ */
37
+ export declare const MODULE_FIELD_KEYS: readonly string[];
38
+ /** 流程表单那条路由的端点前缀。eb 表是 `LINKAGE_API`。 */
39
+ export declare const FLOW_LINKAGE_API = "/api/ebuilder/flow/form/linkage";
40
+ /**
41
+ * 流程表单驱动列里的模块字段(32 个)。
42
+ * ⚠ 它与下面的「不可作赋值目标」清单**不相等** —— 别拿这一份当判据,见 `FLOW_ASSIGNABLE_SYSTEM_KEYS`。
43
+ */
44
+ export declare const FLOW_MODULE_FIELD_KEYS: readonly string[];
45
+ /** 流程表单里**不可作赋值目标**的系统字段(30 个)—— 就是平台的 `unSupportTargets`。 */
46
+ export declare const FLOW_UNSUPPORTED_TARGET_KEYS: readonly string[];
47
+ /**
48
+ * **是模块字段、却可以作赋值目标**的两个例外:`流程标题` 与 `紧急程度`。
49
+ *
50
+ * 这两条是从 `FLOW_MODULE_FIELD_KEYS` 与 `FLOW_UNSUPPORTED_TARGET_KEYS` 的差集里来的 ——
51
+ * eb 表那边两份清单恰好都是 21、完全一致,所以「是模块字段就不能当目标」这个粗判据当时看不出问题;
52
+ * 到了流程表单会**误拒**这两个能用的字段。`columns` 命令的漂移告警要豁免它们。
53
+ */
54
+ export declare const FLOW_ASSIGNABLE_SYSTEM_KEYS: readonly string[];
55
+ /**
56
+ * 一条「函数联动」路由。平台上是两条平行路由(eb 表 / 流程表单),报文形状几乎一样,
57
+ * 差异就集中在下面这些字段上 —— 用一份实现参数化,免得将来只改一边。
58
+ */
59
+ export interface LinkageRoute {
60
+ /** 联动端点前缀,拼 `${apiBase}/saveFormDataLinkage` 等。 */
61
+ apiBase: string;
62
+ /** 公式与联动的 module,也是 `fdEffect.effectModule` / `linkageModule`。 */
63
+ module: string;
64
+ /** 调联动接口要不要带 `?apid=`。eb 表带,流程表单不带。 */
65
+ useApid: boolean;
66
+ /** 请求体里的 `customParam`。 */
67
+ customParam: (ctx: {
68
+ appId?: string;
69
+ objId?: string;
70
+ }) => Record<string, unknown>;
71
+ /** 报文体要不要顶层 `refId`(流程表单 = workflowId)。 */
72
+ requiresRefId: boolean;
73
+ /** **不可作赋值目标**的语义键 —— 唯一判据,同时就是要发给平台的 `unSupportTargets`。 */
74
+ unsupportedTargets: readonly string[];
75
+ /** 已知的模块字段语义键,用于识别「哪些列是系统字段」。 */
76
+ moduleFieldKeys: readonly string[];
77
+ /** 是模块字段、却可以作赋值目标的例外(漂移告警豁免它们)。 */
78
+ assignableSystemKeys: readonly string[];
79
+ /** 报错里指路的命令名。 */
80
+ columnsHint: string;
81
+ }
82
+ /** eb 表那条路由。`unsupportedTargets` 与 `moduleFieldKeys` 恰好同为 21 项。 */
83
+ export declare const EB_ROUTE: LinkageRoute;
84
+ /** 流程表单那条路由。`refId` 是 workflowId,`customParam` 是 `{scene:'workflow'}`。 */
85
+ export declare const FLOW_ROUTE: LinkageRoute;
86
+ /**
87
+ * 拼联动接口的 URL。两条路由的差别就在「带不带 `?apid=`」这一处,
88
+ * 集中在这里而不是散在命令文件里拼字符串。
89
+ */
90
+ export declare function buildLinkageApiUrl(route: LinkageRoute, op: string, ctx?: {
91
+ appId?: string;
92
+ }): string;
93
+ /**
94
+ * 读侧几个请求体。做成纯函数而不是散在命令里拼,是因为两条路由的差异(`refId`、`customParam`)
95
+ * 正好落在这些体里 —— 集中一处才能被单测钉住。
96
+ */
97
+ interface RouteCtx {
98
+ formId: string;
99
+ refId?: string;
100
+ appId?: string;
101
+ objId?: string;
102
+ }
103
+ export declare function buildLinkageListBody(route: LinkageRoute, ctx: RouteCtx & {
104
+ keyword?: string;
105
+ pageNo?: number;
106
+ pageSize?: number;
107
+ }): any;
108
+ export declare function buildLinkageQueryBody(route: LinkageRoute, ctx: RouteCtx & {
109
+ id: string;
110
+ }): any;
111
+ export declare function buildLinkageDeleteBody(route: LinkageRoute, ctx: RouteCtx & {
112
+ ids: string[];
113
+ }): any;
114
+ export declare function buildPreCheckBody(route: LinkageRoute, ctx: RouteCtx & {
115
+ linkageIds: string[];
116
+ }): any;
117
+ export declare function buildDrivingEventsBody(route: LinkageRoute, ctx: RouteCtx): any;
118
+ /**
119
+ * 驱动列的请求体。**故意不带** `notComponentKeyList` —— 平台上那个列表是一大串组件名,
120
+ * 内容未知、硬编风险更大。判据:返回的列与设计器里能看到的源字段对得上,就说明它不影响我们。
121
+ */
122
+ export declare function buildDrivingColumnsBody(route: LinkageRoute, ctx: RouteCtx): any;
123
+ /** 一个触发事件(`findFormDrivingEvents` 的一条)。 */
124
+ export interface DrivingEvent {
125
+ groupId: string;
126
+ groupName: string;
127
+ name: string;
128
+ type: string;
129
+ /** 为真表示这个事件要指定触发字段(字段组 5 个);为假是表单级事件,不需要。 */
130
+ selectColumn: boolean;
131
+ }
132
+ /** 一个可作来源/目标的列(`findFormDrivingColumns` 的一条)。 */
133
+ export interface DrivingColumn {
134
+ id: string;
135
+ name: string;
136
+ groupId?: string;
137
+ groupName?: string;
138
+ address?: string;
139
+ addressType?: string;
140
+ desc?: string;
141
+ /** 业务字段是驼峰(`Text`/`Money`),模块字段是全大写(`TEXT`/`DATE`)——同时是公式参数的 `properKey`。 */
142
+ descType?: string;
143
+ dataKey?: string;
144
+ type?: string;
145
+ }
146
+ /**
147
+ * 一个列是不是模块字段(系统字段)。
148
+ *
149
+ * ⚠ **只回答「它是不是系统字段」,不回答「能不能作赋值目标」** —— 那两个概念在流程表单上**不重合**
150
+ * (见 `FLOW_ASSIGNABLE_SYSTEM_KEYS`)。本函数用于公式引用识别与展示分桶,别拿它当拒绝判据。
151
+ */
152
+ export declare function isModuleColumn(col: DrivingColumn, route?: LinkageRoute): boolean;
153
+ /**
154
+ * 形状自检:模块字段的 `descType` 是全大写、业务字段是驼峰。
155
+ * 用来发现「平台新增了模块字段但 `MODULE_FIELD_KEYS` 没跟上」——
156
+ * 只看 `id` 会漏掉它们,`columns` 命令会把这类列标出来。
157
+ */
158
+ export declare function looksLikeModuleColumn(col: DrivingColumn): boolean;
159
+ /** 列的裸标签:`主表.订单编号` → `订单编号`;模块字段本来就是裸标签(`主表数据id`),原样返回。 */
160
+ export declare function toBareLabel(col: DrivingColumn): string;
161
+ /**
162
+ * 打印一行列,`columns` 命令与歧义报错共用。
163
+ *
164
+ * 标注按「能不能作目标」走,不是按「是不是系统字段」—— 流程表单有两个系统字段是能作目标的。
165
+ */
166
+ export declare function describeColumn(col: DrivingColumn, route?: LinkageRoute): string;
167
+ /**
168
+ * 按用户输入找事件:先认 `type`,再认中文名。都不中就把可选项全列出来。
169
+ */
170
+ export declare function resolveDrivingEvent(events: DrivingEvent[], input: string): DrivingEvent;
171
+ /**
172
+ * 按用户输入找列。分级匹配:字段 id → 完整列名(`主表.订单编号`)→ 裸标签(`订单编号`)→ dataKey。
173
+ *
174
+ * **同一级命中多条一律报错并列出候选**,不取首条 —— 两张明细表里各有一个「金额」是常态,
175
+ * 猜错等于把公式接到别的字段上,而且回读时看不出问题。
176
+ */
177
+ export declare function resolveDrivingColumn(columns: DrivingColumn[], input: string, route?: LinkageRoute): DrivingColumn;
178
+ /** 按 id 找列,找不到返回 undefined(update 时读回的触发字段可能已经被删了)。 */
179
+ export declare function findColumnById(columns: DrivingColumn[], id: string): DrivingColumn | undefined;
180
+ /**
181
+ * 能不能作赋值目标。**唯一判据 = 该路由的 `unsupportedTargets`**(这份清单同时就是要发给平台的
182
+ * `extendParam.unSupportTargets`,读写同一份,不会出现「CLI 放行、报文里却写着不可赋值」的自相矛盾)。
183
+ *
184
+ * ⚠ **别用「是不是模块字段」判**:流程表单的模块字段桶 32 项、不可作目标的 30 项,
185
+ * 「流程标题」「紧急程度」这两个系统字段是**可以**赋值的。
186
+ */
187
+ export declare function isAssignableTarget(col: DrivingColumn, route?: LinkageRoute): boolean;
188
+ /** 目标字段不能落在该路由的不可赋值清单里。 */
189
+ export declare function assertAssignableTarget(col: DrivingColumn, route?: LinkageRoute): void;
190
+ /**
191
+ * 非阻断诊断:是系统字段、但既不在不可赋值清单里、也不在已知例外里 —— 说明平台的模块字段桶变了。
192
+ *
193
+ * **只提示、不拦**。理由是失败的时机很安全:公式保存发生在联动保存**之前**,放行后若平台真拒,
194
+ * 是在 `/api/excel/formula/save` 处中止,**此时还没有创建任何联动**,不会留下半条规则。
195
+ * 而硬拦的代价是无解的 —— 「流程标题」这类字段就是反例,用户没有任何绕法。
196
+ */
197
+ export declare function targetDriftWarning(col: DrivingColumn, route?: LinkageRoute): string | undefined;
198
+ /**
199
+ * 从驱动列里挑出模块字段,喂给 `resolveFormulaRefs` 的 `moduleColumns`。
200
+ * 判据同时看语义键与形状,这样平台新增模块字段时公式引用也不会报「未找到字段」。
201
+ */
202
+ export declare function moduleColumnsOf(columns: DrivingColumn[], route?: LinkageRoute): Array<{
203
+ id: string;
204
+ name: string;
205
+ descType: string;
206
+ }>;
207
+ /** 按「可作目标 / 不可作目标 / 漂移」把驱动列分桶,`columns` 命令用。 */
208
+ export declare function partitionDrivingColumns(columns: DrivingColumn[], route?: LinkageRoute): {
209
+ assignable: DrivingColumn[];
210
+ unassignable: DrivingColumn[];
211
+ drifted: DrivingColumn[];
212
+ };
213
+ /**
214
+ * 找表达式里**顶层**的赋值等号,返回下标;-1 表示这压根不是赋值式(用户给的是纯函数体)。
215
+ *
216
+ * 要排除比较运算符:`>=` `<=` `!=` `==` `<>`。它们的 `=` 要么前面是 `>` `<` `!`,
217
+ * 要么紧跟着另一个 `=`,都不算赋值。
218
+ */
219
+ export declare function findAssignEquals(expression: string): number;
220
+ /**
221
+ * 拼出下发给平台的赋值式 `{主表.目标}=<右侧>`。
222
+ *
223
+ * 用户给的通常只有右侧函数体;但**从设计器里整段复制**的话会带上左侧,所以两种都收:
224
+ * - 没带左侧 → 拼上 `--target` 指定的目标;
225
+ * - 带了左侧且与 `--target` 指向同一字段 → 沿用右侧,不重复拼;
226
+ * - 带了左侧但指向**别的**字段 → 报错。**不静默改目标** —— 用户可能根本不知道自己在改哪条规则。
227
+ *
228
+ * @returns `stripped` 为真表示输入本身已是赋值式、左侧被剥掉了。
229
+ */
230
+ export declare function buildAssignExpression(targetCol: DrivingColumn, body: string): {
231
+ expression: string;
232
+ stripped: boolean;
233
+ };
234
+ /**
235
+ * 触发动作。形状是**一个触发字段一条 action**,不是一条 action 里塞多个 `monitorFields`
236
+ * —— 这是实测的平台形状,多个字段时浏览器就是发多条。
237
+ *
238
+ * 表单级事件(`selectColumn: false`,如「载入时」)不需要触发字段,返回空数组。
239
+ */
240
+ export declare function buildMonitorActions(event: DrivingEvent, triggerCols: DrivingColumn[]): any[];
241
+ /**
242
+ * 生效范围。缺省「当前表单」(在所有布局、所有关联了该表单的工作流上都生效);
243
+ * 也可以给「表单布局」(只对某个布局生效)。
244
+ *
245
+ * 维度的取值由 `resolveEffect`(`services/form-linkage-condition.ts`)解析 —— 显隐联动那条链路
246
+ * 用的同一套,**别在这里另写一份**:布局维度要的是 `multipleLayoutId` 而不是 `formLayout.id`,
247
+ * 这两个值在同一张表上相邻但不同,发错不报错、只是指向另一个布局。
248
+ */
249
+ export declare function buildFdEffect(formId: string, effect?: LinkageEffect, effectModule?: string): any;
250
+ /**
251
+ * 从读回的记录里还原当前的生效维度 —— `update` 没给 `--effect` 时用它原样续用。
252
+ * 读回的 `fdEffect` 是服务端形状(带 `id`/`refId`/`tenantKey`/嵌套 id),这里只挑出那 4 个语义值。
253
+ */
254
+ export declare function extractEffect(record: any): LinkageEffect | undefined;
255
+ /** 明细表的写入方式。函数联动用 `append`(跨表带出那条链路用的是 `override`)。 */
256
+ export declare function buildLinkageExt(overrides?: Partial<{
257
+ subFormLikeType: string;
258
+ subFormAddType: string;
259
+ effectContent: string;
260
+ fissionState: number;
261
+ }>): any;
262
+ /**
263
+ * 建公式的报文。与 `form formula set` 的差别就是 `returnType`/`validateType`(`EqualAssign`)
264
+ * 与 `extendParam`(`isFdLinkage`)这两处 —— 别把这里当成字段公式发出去。
265
+ *
266
+ * `formulaId` 传已有 id 就是**原地更新**那张公式(实测:传了不新建,excelId 不变)。
267
+ */
268
+ export declare function buildFormulaSavePayload(p: {
269
+ expression: string;
270
+ name: string;
271
+ parameters: any[];
272
+ formulaId?: string | null;
273
+ /** 缺省 eb 表路由。流程表单传 `FLOW_ROUTE`。 */
274
+ route?: LinkageRoute;
275
+ }): any;
276
+ /** 建联动的报文(新建走 `saveFormDataLinkage`)。 */
277
+ export declare function buildLinkageSavePayload(p: {
278
+ formId: string;
279
+ appId: string;
280
+ objId: string;
281
+ linkageName: string;
282
+ excelId: string;
283
+ excelName: string;
284
+ monitorActions: any[];
285
+ linkageExt?: any;
286
+ /** 默认 true(新建即启用)。改联动时要由 update 传当前状态,否则「停用」改不动。 */
287
+ linkageState?: boolean;
288
+ /** 生效维度,缺省「当前表单」。 */
289
+ effect?: LinkageEffect;
290
+ /** 缺省 eb 表路由。流程表单传 `FLOW_ROUTE`。 */
291
+ route?: LinkageRoute;
292
+ /** 流程表单那条路由要的顶层 `refId`(= workflowId)。eb 表不产出这个键。 */
293
+ refId?: string;
294
+ }): any;
295
+ /** 从读回的记录里还原当前的「事件 + 触发字段」,给 `update` 当默认值用。 */
296
+ export declare function extractTriggerState(record: any): {
297
+ eventType: string;
298
+ triggerIds: string[];
299
+ };
300
+ /**
301
+ * 改联动的报文(走 `updateFormDataLinkage`)—— 形状 = 新建报文 + `id`,
302
+ * 但 `dataSources` 要换成**读回的那份**(带上 `id`/`entityId`/`inFields`/`outFields`),
303
+ * 否则平台会当成新建一个数据源。
304
+ *
305
+ * 两处**不能照抄读回值**,得重建:
306
+ * - `fdEffect`:读回的是服务端形状(一堆嵌套 id、`refId`、`tenantKey`),下发要的是干净的 5 个键
307
+ * - `linkageExt`:同理,只要那 4 个业务键
308
+ * - `customParam`:读回里压根没有,得从调用方参数补
309
+ */
310
+ export declare function buildLinkageUpdatePayload(record: any, p: {
311
+ appId: string;
312
+ objId: string;
313
+ linkageName: string;
314
+ linkageState: boolean;
315
+ monitorActions: any[];
316
+ /** 不传则沿用记录里的维度(`extractEffect(record)`)。 */
317
+ effect?: LinkageEffect;
318
+ /** 缺省 eb 表路由。流程表单传 `FLOW_ROUTE`。 */
319
+ route?: LinkageRoute;
320
+ /** 不传就用读回记录里的 `refId`。 */
321
+ refId?: string;
322
+ }): any;
323
+ /** 本地时间 `yyyy-MM-dd HH:mm:ss`。平台的联动名用的是这个格式,不是 ISO。 */
324
+ export declare function formatLocalTimestamp(d: Date): string;
325
+ /** 联动的默认名,与设计器里生成的一致:`<公式名> - 公式_<时间戳>`。 */
326
+ export declare function buildFormulaLinkageName(excelName: string, at: Date): string;
327
+ export interface LinkageSummary {
328
+ id: string;
329
+ name: string;
330
+ state: boolean;
331
+ type: string;
332
+ /** 生效维度。没读到就是 undefined,打印时按缺省的「当前表单」算。 */
333
+ effect?: LinkageEffect;
334
+ eventNames: string[];
335
+ triggerIds: string[];
336
+ triggerNames: string[];
337
+ excelId: string;
338
+ excelName: string;
339
+ expression: string;
340
+ parameters: any[];
341
+ }
342
+ /**
343
+ * 把列表/详情记录压成一份统一形状 —— 列表与详情**都能用**:
344
+ * `fullPageQueryByFormId` 的 `sourceExcel` 不带 `data`(没有公式正文),
345
+ * 所以那边的 `expression` 会是空串,这是正常的。
346
+ */
347
+ export declare function summarizeLinkage(record: any): LinkageSummary;
348
+ export {};
349
+ //# sourceMappingURL=form-formula-linkage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-formula-linkage.d.ts","sourceRoot":"","sources":["../../src/services/form-formula-linkage.ts"],"names":[],"mappings":"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"}