weaver-e10-builder 1.2.2 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -19
- package/dist/commands/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +14 -1
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/designer-css.d.ts +15 -0
- package/dist/commands/designer-css.d.ts.map +1 -0
- package/dist/commands/designer-css.js +205 -0
- package/dist/commands/designer-css.js.map +1 -0
- package/dist/commands/form-add-detail-table.d.ts.map +1 -1
- package/dist/commands/form-add-detail-table.js +127 -7
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-ebuilder-columns.d.ts +7 -0
- package/dist/commands/form-ebuilder-columns.d.ts.map +1 -1
- package/dist/commands/form-ebuilder-columns.js +2 -24
- package/dist/commands/form-ebuilder-columns.js.map +1 -1
- package/dist/commands/form-field-lang.d.ts.map +1 -1
- package/dist/commands/form-field-lang.js +4 -39
- package/dist/commands/form-field-lang.js.map +1 -1
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +35 -11
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form-layout-init.d.ts.map +1 -1
- package/dist/commands/form-layout-init.js +15 -10
- package/dist/commands/form-layout-init.js.map +1 -1
- package/dist/commands/form-layout.js +24 -21
- package/dist/commands/form-layout.js.map +1 -1
- package/dist/commands/form-native.d.ts.map +1 -1
- package/dist/commands/form-native.js +181 -0
- package/dist/commands/form-native.js.map +1 -1
- package/dist/commands/form-nlist.d.ts +1 -1
- package/dist/commands/form-nlist.d.ts.map +1 -1
- package/dist/commands/form-nlist.js +5 -3
- package/dist/commands/form-nlist.js.map +1 -1
- package/dist/commands/form-validate.d.ts.map +1 -1
- package/dist/commands/form-validate.js +11 -3
- package/dist/commands/form-validate.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +168 -90
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/menu.d.ts.map +1 -1
- package/dist/commands/menu.js +170 -23
- package/dist/commands/menu.js.map +1 -1
- package/dist/commands/wf-form.d.ts +1 -0
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +44 -13
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-auth-resp.d.ts.map +1 -1
- package/dist/commands/workflow-auth-resp.js +69 -8
- package/dist/commands/workflow-auth-resp.js.map +1 -1
- package/dist/commands/workflow-node-assign-flow.d.ts +3 -0
- package/dist/commands/workflow-node-assign-flow.d.ts.map +1 -0
- package/dist/commands/workflow-node-assign-flow.js +341 -0
- package/dist/commands/workflow-node-assign-flow.js.map +1 -0
- package/dist/commands/workflow-node.d.ts +2 -0
- package/dist/commands/workflow-node.d.ts.map +1 -1
- package/dist/commands/workflow-node.js +219 -48
- package/dist/commands/workflow-node.js.map +1 -1
- package/dist/commands/workflow-odoc.d.ts.map +1 -1
- package/dist/commands/workflow-odoc.js +56 -56
- package/dist/commands/workflow-odoc.js.map +1 -1
- package/dist/commands/workflow-setting.d.ts.map +1 -1
- package/dist/commands/workflow-setting.js +77 -1
- package/dist/commands/workflow-setting.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +36 -80
- package/dist/commands/workflow.js.map +1 -1
- package/dist/core/auth.js +1 -1
- package/dist/core/client.d.ts +14 -0
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +28 -12
- package/dist/core/client.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/command_output.d.ts +7 -0
- package/dist/services/actionflow/command_output.d.ts.map +1 -1
- package/dist/services/actionflow/command_output.js +46 -0
- package/dist/services/actionflow/command_output.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +14 -4
- package/dist/services/actionflow/components/action_eb_add.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add_compiler.js +29 -0
- package/dist/services/actionflow/components/action_eb_add_compiler.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update.js +23 -8
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +239 -6
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/assign_var.d.ts +12 -0
- package/dist/services/actionflow/components/assign_var.d.ts.map +1 -0
- package/dist/services/actionflow/components/assign_var.js +133 -0
- package/dist/services/actionflow/components/assign_var.js.map +1 -0
- package/dist/services/actionflow/components/custom_set_form.d.ts +10 -0
- package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -0
- package/dist/services/actionflow/components/custom_set_form.js +65 -0
- package/dist/services/actionflow/components/custom_set_form.js.map +1 -0
- package/dist/services/actionflow/components/custom_trigger.d.ts +2 -2
- package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/components/custom_trigger.js +7 -10
- package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
- package/dist/services/actionflow/components/enquiry_form.js +1 -1
- package/dist/services/actionflow/components/enquiry_form.js.map +1 -1
- package/dist/services/actionflow/components/index.d.ts.map +1 -1
- package/dist/services/actionflow/components/index.js +9 -0
- package/dist/services/actionflow/components/index.js.map +1 -1
- package/dist/services/actionflow/components/output.d.ts.map +1 -1
- package/dist/services/actionflow/components/output.js +6 -1
- package/dist/services/actionflow/components/output.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +13 -6
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/context_provider.d.ts.map +1 -1
- package/dist/services/actionflow/context_provider.js +3 -2
- package/dist/services/actionflow/context_provider.js.map +1 -1
- package/dist/services/actionflow/dynamic_resources.d.ts +7 -1
- package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
- package/dist/services/actionflow/dynamic_resources.js +65 -8
- package/dist/services/actionflow/dynamic_resources.js.map +1 -1
- package/dist/services/actionflow/ebuilder_source.d.ts +19 -0
- package/dist/services/actionflow/ebuilder_source.d.ts.map +1 -0
- package/dist/services/actionflow/ebuilder_source.js +78 -0
- package/dist/services/actionflow/ebuilder_source.js.map +1 -0
- package/dist/services/actionflow/form_source.d.ts +76 -0
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +195 -1
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +4 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +97 -23
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +6 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +211 -3
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +83 -15
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/designer-css.d.ts +89 -0
- package/dist/services/designer-css.d.ts.map +1 -0
- package/dist/services/designer-css.js +163 -0
- package/dist/services/designer-css.js.map +1 -0
- package/dist/services/dom-structure.d.ts +42 -0
- package/dist/services/dom-structure.d.ts.map +1 -0
- package/dist/services/dom-structure.js +251 -0
- package/dist/services/dom-structure.js.map +1 -0
- package/dist/services/form-create.d.ts +2 -1
- package/dist/services/form-create.d.ts.map +1 -1
- package/dist/services/form-create.js.map +1 -1
- package/dist/services/form-ebuilder-columns.d.ts +50 -0
- package/dist/services/form-ebuilder-columns.d.ts.map +1 -0
- package/dist/services/form-ebuilder-columns.js +68 -0
- package/dist/services/form-ebuilder-columns.js.map +1 -0
- package/dist/services/form-field-drop.d.ts +30 -1
- package/dist/services/form-field-drop.d.ts.map +1 -1
- package/dist/services/form-field-drop.js +60 -0
- package/dist/services/form-field-drop.js.map +1 -1
- package/dist/services/form-field-patch.d.ts +69 -0
- package/dist/services/form-field-patch.d.ts.map +1 -0
- package/dist/services/form-field-patch.js +117 -0
- package/dist/services/form-field-patch.js.map +1 -0
- package/dist/services/form-i18n-label.d.ts +48 -0
- package/dist/services/form-i18n-label.d.ts.map +1 -0
- package/dist/services/form-i18n-label.js +91 -0
- package/dist/services/form-i18n-label.js.map +1 -0
- package/dist/services/form-nlist.d.ts +1 -0
- package/dist/services/form-nlist.d.ts.map +1 -1
- package/dist/services/form-nlist.js +32 -5
- package/dist/services/form-nlist.js.map +1 -1
- package/dist/services/form-style-template.d.ts +6 -2
- package/dist/services/form-style-template.d.ts.map +1 -1
- package/dist/services/form-style-template.js +8 -4
- package/dist/services/form-style-template.js.map +1 -1
- package/dist/services/form-sub-detail.d.ts +51 -3
- package/dist/services/form-sub-detail.d.ts.map +1 -1
- package/dist/services/form-sub-detail.js +183 -20
- package/dist/services/form-sub-detail.js.map +1 -1
- package/dist/services/formula-detail.d.ts +68 -5
- package/dist/services/formula-detail.d.ts.map +1 -1
- package/dist/services/formula-detail.js +110 -44
- package/dist/services/formula-detail.js.map +1 -1
- package/dist/services/menu-catalog.d.ts +84 -0
- package/dist/services/menu-catalog.d.ts.map +1 -0
- package/dist/services/menu-catalog.js +183 -0
- package/dist/services/menu-catalog.js.map +1 -0
- package/dist/services/rich-text.d.ts +33 -0
- package/dist/services/rich-text.d.ts.map +1 -0
- package/dist/services/rich-text.js +134 -0
- package/dist/services/rich-text.js.map +1 -0
- package/dist/services/workflow-add-step.d.ts +45 -0
- package/dist/services/workflow-add-step.d.ts.map +1 -0
- package/dist/services/workflow-add-step.js +122 -0
- package/dist/services/workflow-add-step.js.map +1 -0
- package/dist/services/workflow-assign-flow.d.ts +109 -0
- package/dist/services/workflow-assign-flow.d.ts.map +1 -0
- package/dist/services/workflow-assign-flow.js +306 -0
- package/dist/services/workflow-assign-flow.js.map +1 -0
- package/dist/services/workflow-drawback.d.ts +19 -0
- package/dist/services/workflow-drawback.d.ts.map +1 -0
- package/dist/services/workflow-drawback.js +59 -0
- package/dist/services/workflow-drawback.js.map +1 -0
- package/dist/services/workflow-links.d.ts +51 -0
- package/dist/services/workflow-links.d.ts.map +1 -0
- package/dist/services/workflow-links.js +162 -0
- package/dist/services/workflow-links.js.map +1 -0
- package/dist/services/workflow-node-layout.d.ts +45 -4
- package/dist/services/workflow-node-layout.d.ts.map +1 -1
- package/dist/services/workflow-node-layout.js +142 -41
- package/dist/services/workflow-node-layout.js.map +1 -1
- package/dist/services/workflow-node-menu.d.ts +57 -0
- package/dist/services/workflow-node-menu.d.ts.map +1 -0
- package/dist/services/workflow-node-menu.js +144 -0
- package/dist/services/workflow-node-menu.js.map +1 -0
- package/dist/services/workflow-odoc-setting.d.ts +43 -0
- package/dist/services/workflow-odoc-setting.d.ts.map +1 -0
- package/dist/services/workflow-odoc-setting.js +100 -0
- package/dist/services/workflow-odoc-setting.js.map +1 -0
- package/dist/services/workflow-tab-config.d.ts +54 -0
- package/dist/services/workflow-tab-config.d.ts.map +1 -0
- package/dist/services/workflow-tab-config.js +137 -0
- package/dist/services/workflow-tab-config.js.map +1 -0
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +8 -7
- package/skill-docs/_catalog.md +81 -77
- package/skill-docs/actionflows/SKILL.md +170 -167
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +39 -2
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +42 -0
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -33
- package/skill-docs/actionflows/references/components/logic/Output.md +2 -0
- package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +16 -11
- package/skill-docs/assets/dom-structure/Bar.json +341 -0
- package/skill-docs/assets/dom-structure/BarStack.json +341 -0
- package/skill-docs/assets/dom-structure/Bubble.json +323 -0
- package/skill-docs/assets/dom-structure/Calendar.json +515 -0
- package/skill-docs/assets/dom-structure/Circular.json +337 -0
- package/skill-docs/assets/dom-structure/CollapsePanel.json +289 -0
- package/skill-docs/assets/dom-structure/Comment.json +617 -0
- package/skill-docs/assets/dom-structure/CountDown.json +755 -0
- package/skill-docs/assets/dom-structure/DigitalPanel.json +191 -0
- package/skill-docs/assets/dom-structure/EbButton.json +387 -0
- package/skill-docs/assets/dom-structure/FastCreate.json +242 -0
- package/skill-docs/assets/dom-structure/Gauge.json +282 -0
- package/skill-docs/assets/dom-structure/HBar.json +336 -0
- package/skill-docs/assets/dom-structure/HBarStack.json +337 -0
- package/skill-docs/assets/dom-structure/Line.json +341 -0
- package/skill-docs/assets/dom-structure/NList.json +712 -0
- package/skill-docs/assets/dom-structure/NavBar.json +274 -0
- package/skill-docs/assets/dom-structure/NavPanel.json +390 -0
- package/skill-docs/assets/dom-structure/NewTab.json +606 -0
- package/skill-docs/assets/dom-structure/Nightingale.json +336 -0
- package/skill-docs/assets/dom-structure/PageHeader.json +205 -0
- package/skill-docs/assets/dom-structure/Picture.json +209 -0
- package/skill-docs/assets/dom-structure/Pie.json +338 -0
- package/skill-docs/assets/dom-structure/ProgressChart.json +299 -0
- package/skill-docs/assets/dom-structure/SearchGlobal.json +628 -0
- package/skill-docs/assets/dom-structure/Slide.json +489 -0
- package/skill-docs/assets/dom-structure/Treemap.json +324 -0
- package/skill-docs/references/common/guide-plan-template.md +254 -251
- package/skill-docs/references/common/ref-cli-commands.md +537 -519
- package/skill-docs/references/ebuilder-designer/guide-designer-components.md +12 -1
- package/skill-docs/references/ebuilder-designer/guide-designer-css.md +127 -0
- package/skill-docs/references/ebuilder-designer/guide-designer.md +6 -5
- package/skill-docs/references/form/guide-create-form.md +233 -232
- package/skill-docs/references/form/guide-form-formula-functions.md +11 -1
- package/skill-docs/references/form/guide-form-layout-planning.md +1 -1
- package/skill-docs/references/form/guide-form-linkage.md +28 -2
- package/skill-docs/references/form/guide-form-sub-detail.md +82 -0
- package/skill-docs/references/form/guide-list-custom-text.md +52 -0
- package/skill-docs/references/menu/system-menus.md +12 -0
- package/skill-docs/references/workflow/guide-workflow-auth-resp.md +198 -190
- package/skill-docs/references/workflow/guide-workflow-odoc.md +22 -2
- package/skill-docs/references/workflow/guide-workflow.md +25 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-sub-detail.d.ts","sourceRoot":"","sources":["../../src/services/form-sub-detail.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"form-sub-detail.d.ts","sourceRoot":"","sources":["../../src/services/form-sub-detail.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,32 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
+
/**
|
|
3
|
+
* 列出表单下的**全部**明细子表。
|
|
4
|
+
*
|
|
5
|
+
* 这是全仓**唯一**能看见「空明细表」的读接口,务必走这条找子表:
|
|
6
|
+
* 子表一旦一个字段都不剩,`getEbField.detail`、`getFields.detailFields`、
|
|
7
|
+
* `getConfig.configs` 会把它整条隐去 —— 按字段走的路全都够不着它。
|
|
8
|
+
* 历史事故:按 `getEbField` 找子表,用户把明细字段删光后,同一张表再也加不回字段
|
|
9
|
+
* (报「未找到明细表 subFormId=…」,而表明明还在)。
|
|
10
|
+
*
|
|
11
|
+
* 注意返回的 `dataKey` 是**物理表名**(如 `uf_fxmx_5439`),不是物理表记录 id;
|
|
12
|
+
* 空表连物理表记录 id 都拿不到(`otherProperties` 里没有 `formTableId`)。
|
|
13
|
+
*
|
|
14
|
+
* **删除是软删**:删掉的子表仍留在返回里,只是 `deleteType != 0` / `delete:true`。
|
|
15
|
+
* 所以这里必须按 `deleteType` 过滤,否则删完还能被当成「存在的表」找到。
|
|
16
|
+
*/
|
|
17
|
+
export async function listSubForms(client, baseUrl, appId, formId) {
|
|
18
|
+
const res = success(await client.postForm(`${baseUrl}/api/ebuilder/form/form/builder/querySubForms?apid=${encodeURIComponent(appId)}`, new URLSearchParams({ formId, module: 'ebuilderform' }).toString(), { ebbusinessid: formId }), '读取明细表');
|
|
19
|
+
return (res?.data?.subForms || []).filter((raw) => {
|
|
20
|
+
const dt = Number(raw?.deleteType ?? 0);
|
|
21
|
+
return dt === 0 && raw?.delete !== true;
|
|
22
|
+
}).map((raw) => {
|
|
23
|
+
const props = parseProps(raw.otherProperties);
|
|
24
|
+
return {
|
|
25
|
+
id: String(raw.id), title: String(raw.title || props.title || ''),
|
|
26
|
+
dataKey: String(raw.dataKey || props.dataKey || props.tableName || ''), props, raw,
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
}
|
|
2
30
|
function success(value, operation) {
|
|
3
31
|
if (value?.code !== 200 || value?.status === false || value?.fail === true) {
|
|
4
32
|
throw new Error(value?.msg || `${operation}失败`);
|
|
@@ -17,6 +45,37 @@ function parseProps(value) {
|
|
|
17
45
|
return {};
|
|
18
46
|
}
|
|
19
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* 按 subFormId 解析明细表 —— **空表也能解析出来**。
|
|
50
|
+
*
|
|
51
|
+
* 顺序有讲究:先 `getEbField`(命中时能顺带拿到子字段的 formTableId),
|
|
52
|
+
* 再退 `querySubForms`。反过来每次都得多打一次接口。
|
|
53
|
+
*
|
|
54
|
+
* 为什么必须有这层兜底:`getEbField.detail` 只列**有字段的**明细表。
|
|
55
|
+
* 用户把某张明细表的字段删光后,那张表就从 detail 里消失,调用方若只看 getEbField
|
|
56
|
+
* 就会判「未找到明细表」—— 而实际上它好端端地还在,只是空着。删字段恰恰是本 CLI
|
|
57
|
+
* 引导用户做的操作,删完却再也加不回去,属于不可逆事故。
|
|
58
|
+
*/
|
|
59
|
+
export async function resolveDetailTable(client, baseUrl, appId, objId, formId, subFormId) {
|
|
60
|
+
try {
|
|
61
|
+
const eb = await client.post(`${baseUrl}/api/bs/esb/setting/component/getEbField`, { tableId: objId, appId });
|
|
62
|
+
const dt = (eb?.data?.detail || []).find((d) => String(d.detailTableId) === String(subFormId));
|
|
63
|
+
if (dt) {
|
|
64
|
+
return {
|
|
65
|
+
subFormId: String(dt.detailTableId),
|
|
66
|
+
title: String(dt.tableName || ''),
|
|
67
|
+
empty: false,
|
|
68
|
+
formTableId: String(dt.fields?.[0]?.formTableId || ''),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch { /* 拉取失败则由下面的 querySubForms 兜底 */ }
|
|
73
|
+
const hit = (await listSubForms(client, baseUrl, appId, formId))
|
|
74
|
+
.find((s) => s.id === String(subFormId));
|
|
75
|
+
if (!hit)
|
|
76
|
+
return null;
|
|
77
|
+
return { subFormId: hit.id, title: hit.title, empty: true, formTableId: String(hit.props.formTableId || '') };
|
|
78
|
+
}
|
|
20
79
|
export class FormSubDetailService {
|
|
21
80
|
client;
|
|
22
81
|
baseUrl;
|
|
@@ -31,14 +90,7 @@ export class FormSubDetailService {
|
|
|
31
90
|
this.formId = formId;
|
|
32
91
|
}
|
|
33
92
|
async list() {
|
|
34
|
-
|
|
35
|
-
return (res?.data?.subForms || []).map((raw) => {
|
|
36
|
-
const props = parseProps(raw.otherProperties);
|
|
37
|
-
return {
|
|
38
|
-
id: String(raw.id), title: String(raw.title || props.title || ''),
|
|
39
|
-
dataKey: String(raw.dataKey || props.dataKey || props.tableName || ''), props, raw,
|
|
40
|
-
};
|
|
41
|
-
});
|
|
93
|
+
return listSubForms(this.client, this.baseUrl, this.appId, this.formId);
|
|
42
94
|
}
|
|
43
95
|
resolve(ref, rows) {
|
|
44
96
|
const matches = rows.filter((r) => r.id === String(ref) || r.title === ref);
|
|
@@ -46,12 +98,99 @@ export class FormSubDetailService {
|
|
|
46
98
|
throw new Error(matches.length ? `明细表名称不唯一: ${ref}` : `未找到明细表: ${ref}`);
|
|
47
99
|
return matches[0];
|
|
48
100
|
}
|
|
49
|
-
async
|
|
101
|
+
async fieldsOf(subForm) {
|
|
50
102
|
const res = success(await this.client.postForm(`${this.baseUrl}/api/ebuilder/form/form/builder/queryBySubFormId?apid=${encodeURIComponent(this.appId)}`, new URLSearchParams({ subFormId: subForm.id, module: 'ebuilderform' }).toString(), { ebbusinessid: this.formId }), '读取明细字段');
|
|
51
|
-
|
|
103
|
+
return (res?.data?.formFields || []).map((field) => {
|
|
104
|
+
const props = parseProps(field.otherProperties);
|
|
105
|
+
return {
|
|
106
|
+
id: String(field.id || field.fieldId || props.fieldId || ''),
|
|
107
|
+
title: String(field.title || props.title || ''),
|
|
108
|
+
componentKey: String(field.componentKey || props.componentKey || field.type || props.type || ''),
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
async resolveField(subForm, ref) {
|
|
113
|
+
const matches = (await this.fieldsOf(subForm)).filter((f) => f.id === String(ref) || f.title === ref);
|
|
52
114
|
if (matches.length !== 1)
|
|
53
115
|
throw new Error(matches.length ? `明细字段名称不唯一: ${ref}` : `在 ${subForm.title} 中未找到字段: ${ref}`);
|
|
54
|
-
return
|
|
116
|
+
return matches[0];
|
|
117
|
+
}
|
|
118
|
+
assertChildMark(field, subForm) {
|
|
119
|
+
if (field.componentKey !== 'Text') {
|
|
120
|
+
throw new Error(`子明细表「${subForm.title}」的行标识「${field.title}」必须是单行文本(Text)`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async resolveParentMark(parent, link) {
|
|
124
|
+
const ref = link.parentField || link.parentMark || 'rowId';
|
|
125
|
+
if (ref === 'rowId')
|
|
126
|
+
return 'rowId';
|
|
127
|
+
const field = await this.resolveField(parent, ref);
|
|
128
|
+
if (!['Text', 'Select', 'RadioBox'].includes(field.componentKey)) {
|
|
129
|
+
throw new Error(`父明细表「${parent.title}」的行标识「${field.title}」仅支持单行文本、单选框或下拉单选框`);
|
|
130
|
+
}
|
|
131
|
+
return field.id;
|
|
132
|
+
}
|
|
133
|
+
reachable(start, target, edges) {
|
|
134
|
+
const seen = new Set();
|
|
135
|
+
const stack = [start];
|
|
136
|
+
while (stack.length) {
|
|
137
|
+
const current = stack.pop();
|
|
138
|
+
if (current === target)
|
|
139
|
+
return true;
|
|
140
|
+
if (seen.has(current))
|
|
141
|
+
continue;
|
|
142
|
+
seen.add(current);
|
|
143
|
+
for (const next of edges.get(current) || [])
|
|
144
|
+
stack.push(next);
|
|
145
|
+
}
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
edgeMap(rows, omitParentId) {
|
|
149
|
+
const edges = new Map();
|
|
150
|
+
for (const row of rows) {
|
|
151
|
+
if (row.id === omitParentId)
|
|
152
|
+
continue;
|
|
153
|
+
for (const config of (Array.isArray(row.props.subDetailConfig) ? row.props.subDetailConfig : [])) {
|
|
154
|
+
const child = String(config.subFormId || '');
|
|
155
|
+
if (!child)
|
|
156
|
+
continue;
|
|
157
|
+
if (!edges.has(row.id))
|
|
158
|
+
edges.set(row.id, new Set());
|
|
159
|
+
edges.get(row.id).add(child);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return edges;
|
|
163
|
+
}
|
|
164
|
+
candidateRows(parent, rows, edges = this.edgeMap(rows)) {
|
|
165
|
+
return rows.filter((candidate) => candidate.id !== parent.id && !this.reachable(candidate.id, parent.id, edges));
|
|
166
|
+
}
|
|
167
|
+
async buildConfigs(parent, rows, links, baseConfigs) {
|
|
168
|
+
const configs = [...baseConfigs];
|
|
169
|
+
const edges = this.edgeMap(rows, parent.id);
|
|
170
|
+
edges.set(parent.id, new Set(configs.map((item) => String(item.subFormId))));
|
|
171
|
+
for (const link of links) {
|
|
172
|
+
const target = this.resolve(link.subForm, rows);
|
|
173
|
+
const candidateIds = new Set(this.candidateRows(parent, rows, edges).map((row) => row.id));
|
|
174
|
+
if (!candidateIds.has(target.id)) {
|
|
175
|
+
throw new Error(`「${target.title}」不在「${parent.title}」的可选子明细列表中;不能选择自身、直属父级或祖先。需要反转父子关系时,先删除原父级上的关系,再重新查询候选列表并新增反向关系`);
|
|
176
|
+
}
|
|
177
|
+
const field = await this.resolveField(target, link.subField);
|
|
178
|
+
this.assertChildMark(field, target);
|
|
179
|
+
const parentMark = await this.resolveParentMark(parent, link);
|
|
180
|
+
const existingIndex = configs.findIndex((c) => String(c.subFormId) === target.id);
|
|
181
|
+
const existing = existingIndex >= 0 ? configs[existingIndex] : undefined;
|
|
182
|
+
const config = {
|
|
183
|
+
id: existing?.id || randomUUID(), subFormId: target.id, parentMark,
|
|
184
|
+
displayMode: link.displayMode || existing?.displayMode || 'inside',
|
|
185
|
+
filterType: link.filterType || existing?.filterType || 'single', subMark: field.id,
|
|
186
|
+
};
|
|
187
|
+
if (existingIndex >= 0)
|
|
188
|
+
configs[existingIndex] = config;
|
|
189
|
+
else
|
|
190
|
+
configs.push(config);
|
|
191
|
+
edges.get(parent.id).add(target.id);
|
|
192
|
+
}
|
|
193
|
+
return configs;
|
|
55
194
|
}
|
|
56
195
|
async formTableIdOf(subForm) {
|
|
57
196
|
if (subForm.props.formTableId)
|
|
@@ -76,18 +215,42 @@ export class FormSubDetailService {
|
|
|
76
215
|
const rows = await this.list();
|
|
77
216
|
const parent = this.resolve(parentRef, rows);
|
|
78
217
|
const oldConfigs = Array.isArray(parent.props.subDetailConfig) ? parent.props.subDetailConfig : [];
|
|
79
|
-
const configs = [];
|
|
80
|
-
for (const
|
|
81
|
-
const
|
|
82
|
-
if (
|
|
83
|
-
|
|
84
|
-
const field = await this.resolveField(target, link.subField);
|
|
85
|
-
const existing = oldConfigs.find((c) => String(c.subFormId) === target.id && String(c.subMark) === field.id);
|
|
86
|
-
configs.push({ id: existing?.id || randomUUID(), subFormId: target.id, parentMark: link.parentMark || 'rowId',
|
|
87
|
-
displayMode: link.displayMode || 'inside', filterType: link.filterType || 'single', subMark: field.id });
|
|
218
|
+
const configs = await this.buildConfigs(parent, rows, links, []);
|
|
219
|
+
for (const config of configs) {
|
|
220
|
+
const existing = oldConfigs.find((item) => String(item.subFormId) === String(config.subFormId));
|
|
221
|
+
if (existing?.id)
|
|
222
|
+
config.id = existing.id;
|
|
88
223
|
}
|
|
89
224
|
return this.save(parent, true, configs, defaultExpandRow ?? Boolean(parent.props.defaultExpandRow));
|
|
90
225
|
}
|
|
226
|
+
async add(parentRef, links, defaultExpandRow) {
|
|
227
|
+
if (!links.length)
|
|
228
|
+
throw new Error('新增的二级明细配置不能为空');
|
|
229
|
+
const rows = await this.list();
|
|
230
|
+
const parent = this.resolve(parentRef, rows);
|
|
231
|
+
const oldConfigs = Array.isArray(parent.props.subDetailConfig) ? parent.props.subDetailConfig : [];
|
|
232
|
+
const configs = await this.buildConfigs(parent, rows, links, oldConfigs);
|
|
233
|
+
return this.save(parent, true, configs, defaultExpandRow ?? Boolean(parent.props.defaultExpandRow));
|
|
234
|
+
}
|
|
235
|
+
async remove(parentRef, targetRef) {
|
|
236
|
+
const rows = await this.list();
|
|
237
|
+
const parent = this.resolve(parentRef, rows);
|
|
238
|
+
const target = this.resolve(targetRef, rows);
|
|
239
|
+
const oldConfigs = Array.isArray(parent.props.subDetailConfig) ? parent.props.subDetailConfig : [];
|
|
240
|
+
const configs = oldConfigs.filter((config) => String(config.subFormId) !== target.id);
|
|
241
|
+
if (configs.length === oldConfigs.length)
|
|
242
|
+
throw new Error(`「${parent.title}」未关联子明细表「${target.title}」`);
|
|
243
|
+
return this.save(parent, configs.length > 0, configs, configs.length > 0 && Boolean(parent.props.defaultExpandRow));
|
|
244
|
+
}
|
|
245
|
+
async candidates(parentRef) {
|
|
246
|
+
const rows = await this.list();
|
|
247
|
+
const parent = this.resolve(parentRef, rows);
|
|
248
|
+
const edges = this.edgeMap(rows);
|
|
249
|
+
return {
|
|
250
|
+
parent: { subFormId: parent.id, name: parent.title },
|
|
251
|
+
candidates: this.candidateRows(parent, rows, edges).map((row) => ({ subFormId: row.id, name: row.title })),
|
|
252
|
+
};
|
|
253
|
+
}
|
|
91
254
|
async enable(parentRef) {
|
|
92
255
|
const rows = await this.list();
|
|
93
256
|
const parent = this.resolve(parentRef, rows);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-sub-detail.js","sourceRoot":"","sources":["../../src/services/form-sub-detail.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"form-sub-detail.js","sourceRoot":"","sources":["../../src/services/form-sub-detail.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 公式表达式引用解析(主表 + 明细表)。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* - `{主表.字段名}` — 主表字段
|
|
6
|
-
* - `{明细表名.字段名}` — 明细表字段(如 `{行程明细.行程开始时间}`)
|
|
4
|
+
* ## 引用语法:两套写法,一套存储
|
|
7
5
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* 平台**存**的是花括号:`{主表.字段名}` / `{明细表名.字段名}`,配一份 `parameters` 参数表。
|
|
7
|
+
* 而设计器的公式编辑器**显示和输入**用的是方括号:`[字段名]`(截图对照:
|
|
8
|
+
* `CONCAT([通知], 当前日期)`),保存时由编辑器自己转回花括号 + 参数。
|
|
9
|
+
*
|
|
10
|
+
* 所以方括号是**编辑器那层的写法**,不是服务端语法。直接把它发给保存接口的后果实测如下:
|
|
11
|
+
*
|
|
12
|
+
* | 发送 | 参数表 | 结果 |
|
|
13
|
+
* |---|---|---|
|
|
14
|
+
* | `[主表名称]` | 带上 | ❌「参数列表与执行语句不一致」 |
|
|
15
|
+
* | `[主表名称]` | 空 | ⚠️ 保存成功,但平台记录的参数数 = 0 —— **字段其实没接上,静默失效** |
|
|
16
|
+
* | `{主表.主表名称}` | 带上 | ✅ 参数数 = 1 |
|
|
17
|
+
*
|
|
18
|
+
* 第二行是最坑的:看着保存成功,实际是个死引用。因此本模块**只接受方括号作为输入写法,
|
|
19
|
+
* 一律归一化成花括号后再下发**,绝不把 `[x]` 原样发给平台。
|
|
20
|
+
*
|
|
21
|
+
* ## 参数必须逐个出现位置各一份(不去重)
|
|
22
|
+
*
|
|
23
|
+
* 同一字段在表达式里出现两次,就必须给**两个**参数对象:
|
|
24
|
+
*
|
|
25
|
+
* ```
|
|
26
|
+
* CONCAT({主表.主表名称}, "—", {主表.主表名称})
|
|
27
|
+
* 参数 1 个 → ❌ 参数列表与执行语句不一致
|
|
28
|
+
* 参数 2 个 → ✅ 平台记录参数数 = 2
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* 早期版本在这里做了去重,等于「同一字段引用两次」必失败。
|
|
32
|
+
*
|
|
33
|
+
* ## 明细引用
|
|
34
|
+
*
|
|
35
|
+
* 明细引用的参数对象需带 `sFormId`(明细表 id) + `sFormName`(明细表名)。
|
|
36
|
+
* 字段结构统一从 getEbField 取(主表 main + 明细 detail)。
|
|
10
37
|
*/
|
|
11
38
|
import type { ApiClient } from '../core/client.js';
|
|
12
39
|
export interface FormulaParam {
|
|
@@ -22,10 +49,46 @@ export interface FormulaParam {
|
|
|
22
49
|
appId: string;
|
|
23
50
|
id: null;
|
|
24
51
|
}
|
|
52
|
+
/** 一处字段引用。 */
|
|
53
|
+
export interface FormulaRef {
|
|
54
|
+
/** 表名。`{主表.x}` → `'主表'`;`[x]` 这种不带表名的写法 → `null`(待按字段名反查)。 */
|
|
55
|
+
table: string | null;
|
|
56
|
+
field: string;
|
|
57
|
+
/** 原文,报错回显用。 */
|
|
58
|
+
raw: string;
|
|
59
|
+
/** 在表达式中的起止位置,供归一化改写。 */
|
|
60
|
+
index: number;
|
|
61
|
+
length: number;
|
|
62
|
+
}
|
|
25
63
|
export interface FormulaParseResult {
|
|
26
64
|
parameters: FormulaParam[];
|
|
27
65
|
refNames: string[];
|
|
28
66
|
errors: string[];
|
|
67
|
+
/** 不阻断保存、但该让用户知道的(如零引用的纯常量公式)。 */
|
|
68
|
+
warnings: string[];
|
|
69
|
+
/**
|
|
70
|
+
* 归一化后的表达式:方括号引用已改写成 `{表.字段}`。
|
|
71
|
+
* **保存时必须用这个**,不能用用户原样输入。
|
|
72
|
+
*/
|
|
73
|
+
normalizedExpression: string;
|
|
29
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* 扫出表达式里的全部字段引用,**两种写法都认**:
|
|
77
|
+
* - `{主表.字段名}` / `{明细表名.字段名}` —— 平台存储格式
|
|
78
|
+
* - `[字段名]` / `[表名.字段名]` —— 设计器编辑器的写法
|
|
79
|
+
*
|
|
80
|
+
* 重复出现**不去重** —— 每个出现位置都要单独一个参数(见文件头说明)。
|
|
81
|
+
* 不做字符串字面量剔除:公式里写 `"["` 这种极端情况不在支持范围,误判会在解析阶段
|
|
82
|
+
* 报「未找到字段」,比静默错绑安全。
|
|
83
|
+
*/
|
|
84
|
+
export declare function parseFormulaRefs(expression: string): FormulaRef[];
|
|
85
|
+
/**
|
|
86
|
+
* 按目标字段的类型给出合适的公式返回类型。
|
|
87
|
+
*
|
|
88
|
+
* 此前 fields.json 里 `formula` 写成字符串时**一律按 `Number` 提交**,
|
|
89
|
+
* 于是「给单行文本挂公式」必然被平台拒(「公式计算结果必须为: 数字」)——
|
|
90
|
+
* 报错说的是真话:我们替用户要了个数字。
|
|
91
|
+
*/
|
|
92
|
+
export declare function defaultReturnType(fieldKey: string | undefined): string;
|
|
30
93
|
export declare function buildFormulaParameters(client: ApiClient, baseUrl: string, objId: string, appId: string, formId: string, expression: string): Promise<FormulaParseResult>;
|
|
31
94
|
//# sourceMappingURL=formula-detail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-detail.d.ts","sourceRoot":"","sources":["../../src/services/formula-detail.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"formula-detail.d.ts","sourceRoot":"","sources":["../../src/services/formula-detail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,IAAI,CAAC;CACV;AAED,cAAc;AACd,MAAM,WAAW,UAAU;IACzB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE,CAkBjE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKtE;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAClC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAgG7B"}
|
|
@@ -1,66 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 扫出表达式里的全部字段引用,**两种写法都认**:
|
|
3
|
+
* - `{主表.字段名}` / `{明细表名.字段名}` —— 平台存储格式
|
|
4
|
+
* - `[字段名]` / `[表名.字段名]` —— 设计器编辑器的写法
|
|
5
|
+
*
|
|
6
|
+
* 重复出现**不去重** —— 每个出现位置都要单独一个参数(见文件头说明)。
|
|
7
|
+
* 不做字符串字面量剔除:公式里写 `"["` 这种极端情况不在支持范围,误判会在解析阶段
|
|
8
|
+
* 报「未找到字段」,比静默错绑安全。
|
|
9
|
+
*/
|
|
10
|
+
export function parseFormulaRefs(expression) {
|
|
11
|
+
const refs = [];
|
|
12
|
+
const re = /\{([^{}]+)\}|\[([^\[\]]+)\]/g;
|
|
13
|
+
let m;
|
|
14
|
+
while ((m = re.exec(expression)) !== null) {
|
|
15
|
+
const inner = (m[1] ?? m[2] ?? '').trim();
|
|
16
|
+
if (!inner)
|
|
17
|
+
continue;
|
|
18
|
+
const dot = inner.indexOf('.');
|
|
19
|
+
const hasTable = dot > 0 && dot < inner.length - 1;
|
|
20
|
+
refs.push({
|
|
21
|
+
table: hasTable ? inner.slice(0, dot).trim() : null,
|
|
22
|
+
field: (hasTable ? inner.slice(dot + 1) : inner).trim(),
|
|
23
|
+
raw: m[0],
|
|
24
|
+
index: m.index,
|
|
25
|
+
length: m[0].length,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return refs;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 按目标字段的类型给出合适的公式返回类型。
|
|
32
|
+
*
|
|
33
|
+
* 此前 fields.json 里 `formula` 写成字符串时**一律按 `Number` 提交**,
|
|
34
|
+
* 于是「给单行文本挂公式」必然被平台拒(「公式计算结果必须为: 数字」)——
|
|
35
|
+
* 报错说的是真话:我们替用户要了个数字。
|
|
36
|
+
*/
|
|
37
|
+
export function defaultReturnType(fieldKey) {
|
|
38
|
+
const k = String(fieldKey || '');
|
|
39
|
+
if (/^(Number|Money|Percentage)/.test(k))
|
|
40
|
+
return 'Number';
|
|
41
|
+
if (/^(Date|DateTime|Time)/.test(k))
|
|
42
|
+
return 'Date';
|
|
43
|
+
return 'String';
|
|
44
|
+
}
|
|
1
45
|
export async function buildFormulaParameters(client, baseUrl, objId, appId, formId, expression) {
|
|
2
46
|
const errors = [];
|
|
47
|
+
const warnings = [];
|
|
3
48
|
const parameters = [];
|
|
4
49
|
const refNames = [];
|
|
5
|
-
|
|
6
|
-
const refRegex = /\{(?:主表|([^.}]+))\.([^}]+)\}/g;
|
|
7
|
-
const refs = [];
|
|
8
|
-
let m;
|
|
9
|
-
while ((m = refRegex.exec(expression)) !== null) {
|
|
10
|
-
const table = m[1] ? m[1].trim() : '主表';
|
|
11
|
-
const field = m[2].trim();
|
|
12
|
-
if (!refs.some((r) => r.table === table && r.field === field))
|
|
13
|
-
refs.push({ table, field });
|
|
14
|
-
}
|
|
50
|
+
const refs = parseFormulaRefs(expression);
|
|
15
51
|
if (refs.length === 0) {
|
|
16
|
-
|
|
17
|
-
|
|
52
|
+
// 纯常量公式(如 CONCAT("甲","乙"))平台**接受**,实测保存成功且参数为空。
|
|
53
|
+
// 早期版本在这里直接报错退出,把「平台允许的用法」当成非法输入拦掉了。
|
|
54
|
+
warnings.push('表达式中没有字段引用(纯常量公式)。平台允许这种写法,将按原样保存。');
|
|
18
55
|
}
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
56
|
+
// getEbField 取主表 + 明细结构(主表字段用于反查不带表名的 `[字段]`)
|
|
57
|
+
let mainFields = [];
|
|
58
|
+
let detailTables = [];
|
|
22
59
|
try {
|
|
23
60
|
const eb = await client.post(`${baseUrl}/api/bs/esb/setting/component/getEbField`, { tableId: objId, appId });
|
|
24
|
-
mainFields
|
|
25
|
-
detailTables
|
|
61
|
+
mainFields = eb?.data?.main || [];
|
|
62
|
+
detailTables = eb?.data?.detail || [];
|
|
26
63
|
}
|
|
27
64
|
catch { /* 拉取失败由解析报错兜底 */ }
|
|
28
65
|
const mainFind = (name) => mainFields.find((f) => String(f.id) === name || f.showName === name || f.dataKey === name);
|
|
66
|
+
const detailOf = (table) => detailTables.find((d) => d.tableName === table || String(d.detailTableId) === table);
|
|
67
|
+
const fieldIn = (dt, name) => (dt?.fields || []).find((x) => String(x.id) === name || x.showName === name || x.dataKey === name);
|
|
68
|
+
/** 归一化:把每个引用改写成 `{表.字段}`。反查不到时保留原文(后续会报错)。 */
|
|
69
|
+
const pieces = [];
|
|
70
|
+
let cursor = 0;
|
|
29
71
|
for (const ref of refs) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
72
|
+
let table = ref.table;
|
|
73
|
+
let resolved;
|
|
74
|
+
if (table === '主表' || table === null) {
|
|
75
|
+
resolved = mainFind(ref.field);
|
|
76
|
+
if (!resolved && table === null) {
|
|
77
|
+
// 不带表名的 `[字段]`:主表没有就找明细表
|
|
78
|
+
const owners = detailTables.filter((d) => fieldIn(d, ref.field));
|
|
79
|
+
if (owners.length > 1) {
|
|
80
|
+
errors.push(`字段「${ref.field}」在多个明细表中存在(${owners.map((d) => d.tableName).join('、')}),请写成 [明细表名.${ref.field}] 指明是哪个`);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (owners.length === 1) {
|
|
84
|
+
table = owners[0].tableName;
|
|
85
|
+
resolved = fieldIn(owners[0], ref.field);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (resolved && (table === null || table === '主表')) {
|
|
89
|
+
table = '主表';
|
|
36
90
|
}
|
|
37
|
-
parameters.push({
|
|
38
|
-
dataTemplateId: '', fieldId: String(f.id), formId, module: 'ebuilderform',
|
|
39
|
-
properKey: f.componentKey || 'Text',
|
|
40
|
-
title: f.showName || ref.field, name: f.showName || ref.field,
|
|
41
|
-
appId, id: null,
|
|
42
|
-
});
|
|
43
91
|
}
|
|
44
92
|
else {
|
|
45
|
-
const dt =
|
|
93
|
+
const dt = detailOf(table);
|
|
46
94
|
if (!dt) {
|
|
47
|
-
errors.push(`未找到明细表: "${
|
|
95
|
+
errors.push(`未找到明细表: "${table}",可用: ${detailTables.map((d) => d.tableName).join(', ')}`);
|
|
48
96
|
continue;
|
|
49
97
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
appId, id: null,
|
|
61
|
-
});
|
|
98
|
+
resolved = fieldIn(dt, ref.field);
|
|
99
|
+
table = dt.tableName;
|
|
100
|
+
}
|
|
101
|
+
if (!resolved) {
|
|
102
|
+
const where = ref.table === '主表' ? '主表' : ref.table ? `明细表「${ref.table}」` : '主表或任一明细表';
|
|
103
|
+
const avail = ref.table && ref.table !== '主表'
|
|
104
|
+
? (detailOf(ref.table)?.fields || []).map((x) => x.showName).join(', ')
|
|
105
|
+
: mainFields.map((x) => x.showName).join(', ');
|
|
106
|
+
errors.push(`在${where}中未找到字段: "${ref.field}",可用: ${avail}`);
|
|
107
|
+
continue;
|
|
62
108
|
}
|
|
109
|
+
// 走到这里 table 必然已定型:要么 '主表',要么是某个明细表名(带表名的引用校验过、不带表名的已反查过)
|
|
110
|
+
const tableName = table;
|
|
111
|
+
const isDetail = tableName !== '主表';
|
|
112
|
+
const dt = isDetail ? detailOf(tableName) : null;
|
|
113
|
+
parameters.push({
|
|
114
|
+
dataTemplateId: '', fieldId: String(resolved.id), formId, module: 'ebuilderform',
|
|
115
|
+
properKey: resolved.componentKey || resolved.fieldKey || 'Text',
|
|
116
|
+
...(dt ? { sFormId: String(dt.detailTableId), sFormName: dt.tableName } : {}),
|
|
117
|
+
title: resolved.showName || resolved.title || ref.field,
|
|
118
|
+
name: resolved.showName || resolved.field || ref.field,
|
|
119
|
+
appId, id: null,
|
|
120
|
+
});
|
|
121
|
+
refNames.push(`${table}.${ref.field}`);
|
|
122
|
+
pieces.push(expression.slice(cursor, ref.index));
|
|
123
|
+
pieces.push(`{${table}.${ref.field}}`);
|
|
124
|
+
cursor = ref.index + ref.length;
|
|
63
125
|
}
|
|
64
|
-
|
|
126
|
+
pieces.push(expression.slice(cursor));
|
|
127
|
+
return {
|
|
128
|
+
parameters, refNames, errors, warnings,
|
|
129
|
+
normalizedExpression: errors.length ? expression : pieces.join(''),
|
|
130
|
+
};
|
|
65
131
|
}
|
|
66
132
|
//# sourceMappingURL=formula-detail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula-detail.js","sourceRoot":"","sources":["../../src/services/formula-detail.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formula-detail.js","sourceRoot":"","sources":["../../src/services/formula-detail.ts"],"names":[],"mappings":"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"}
|