weaver-e10-builder 1.2.2 → 1.2.3
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 +26 -0
- package/dist/commands/actionflow.js.map +1 -1
- 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-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-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.d.ts.map +1 -1
- package/dist/commands/form.js +93 -72
- package/dist/commands/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 +342 -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 +75 -49
- package/dist/commands/workflow-node.js.map +1 -1
- package/dist/core/auth.js +1 -1
- package/dist/index.js +2 -0
- package/dist/index.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/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/dynamic_resources.d.ts +7 -1
- package/dist/services/actionflow/dynamic_resources.d.ts.map +1 -1
- package/dist/services/actionflow/dynamic_resources.js +64 -7
- package/dist/services/actionflow/dynamic_resources.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +35 -0
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +50 -0
- package/dist/services/actionflow/form_source.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +51 -1
- package/dist/services/actionflow/formula_service.js.map +1 -1
- 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 +47 -0
- package/dist/services/form-field-patch.d.ts.map +1 -0
- package/dist/services/form-field-patch.js +88 -0
- package/dist/services/form-field-patch.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-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/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-assign-flow.d.ts +114 -0
- package/dist/services/workflow-assign-flow.d.ts.map +1 -0
- package/dist/services/workflow-assign-flow.js +311 -0
- package/dist/services/workflow-assign-flow.js.map +1 -0
- 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/package.json +48 -48
- package/skill-docs/SKILL.md +6 -5
- package/skill-docs/_catalog.md +79 -77
- package/skill-docs/actionflows/SKILL.md +168 -167
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbAdd.md +1 -1
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +33 -33
- package/skill-docs/references/common/guide-plan-template.md +254 -251
- package/skill-docs/references/common/ref-cli-commands.md +529 -519
- 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-sub-detail.md +82 -0
- package/skill-docs/references/form/guide-list-custom-text.md +52 -0
- package/skill-docs/references/workflow/guide-workflow-auth-resp.md +198 -190
- package/skill-docs/references/workflow/guide-workflow.md +7 -0
|
@@ -3,17 +3,56 @@ export type SubDetailClient = Pick<ApiClient, 'post' | 'postForm'>;
|
|
|
3
3
|
export interface SubDetailLinkInput {
|
|
4
4
|
subForm: string;
|
|
5
5
|
subField: string;
|
|
6
|
-
|
|
6
|
+
/** 父级行标识:缺省 rowId;也可传父明细字段名称或 ID。 */
|
|
7
|
+
parentField?: string;
|
|
8
|
+
/** 兼容 fields.json 旧键;值可为 rowId 或父明细字段名称/ID。 */
|
|
9
|
+
parentMark?: string;
|
|
7
10
|
displayMode?: 'inside';
|
|
8
11
|
filterType?: 'single';
|
|
9
12
|
}
|
|
10
|
-
interface SubFormInfo {
|
|
13
|
+
export interface SubFormInfo {
|
|
11
14
|
id: string;
|
|
12
15
|
title: string;
|
|
13
16
|
dataKey: string;
|
|
14
17
|
props: Record<string, any>;
|
|
15
18
|
raw: any;
|
|
16
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* 列出表单下的**全部**明细子表。
|
|
22
|
+
*
|
|
23
|
+
* 这是全仓**唯一**能看见「空明细表」的读接口,务必走这条找子表:
|
|
24
|
+
* 子表一旦一个字段都不剩,`getEbField.detail`、`getFields.detailFields`、
|
|
25
|
+
* `getConfig.configs` 会把它整条隐去 —— 按字段走的路全都够不着它。
|
|
26
|
+
* 历史事故:按 `getEbField` 找子表,用户把明细字段删光后,同一张表再也加不回字段
|
|
27
|
+
* (报「未找到明细表 subFormId=…」,而表明明还在)。
|
|
28
|
+
*
|
|
29
|
+
* 注意返回的 `dataKey` 是**物理表名**(如 `uf_fxmx_5439`),不是物理表记录 id;
|
|
30
|
+
* 空表连物理表记录 id 都拿不到(`otherProperties` 里没有 `formTableId`)。
|
|
31
|
+
*
|
|
32
|
+
* **删除是软删**:删掉的子表仍留在返回里,只是 `deleteType != 0` / `delete:true`。
|
|
33
|
+
* 所以这里必须按 `deleteType` 过滤,否则删完还能被当成「存在的表」找到。
|
|
34
|
+
*/
|
|
35
|
+
export declare function listSubForms(client: SubDetailClient, baseUrl: string, appId: string, formId: string): Promise<SubFormInfo[]>;
|
|
36
|
+
export interface ResolvedDetailTable {
|
|
37
|
+
subFormId: string;
|
|
38
|
+
title: string;
|
|
39
|
+
/** true = 只从 querySubForms 命中,即这是张**空明细表**(getEbField 看不见它)。 */
|
|
40
|
+
empty: boolean;
|
|
41
|
+
/** 明细表物理表记录 id。空表取不到(平台不给),为空串。 */
|
|
42
|
+
formTableId: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 按 subFormId 解析明细表 —— **空表也能解析出来**。
|
|
46
|
+
*
|
|
47
|
+
* 顺序有讲究:先 `getEbField`(命中时能顺带拿到子字段的 formTableId),
|
|
48
|
+
* 再退 `querySubForms`。反过来每次都得多打一次接口。
|
|
49
|
+
*
|
|
50
|
+
* 为什么必须有这层兜底:`getEbField.detail` 只列**有字段的**明细表。
|
|
51
|
+
* 用户把某张明细表的字段删光后,那张表就从 detail 里消失,调用方若只看 getEbField
|
|
52
|
+
* 就会判「未找到明细表」—— 而实际上它好端端地还在,只是空着。删字段恰恰是本 CLI
|
|
53
|
+
* 引导用户做的操作,删完却再也加不回去,属于不可逆事故。
|
|
54
|
+
*/
|
|
55
|
+
export declare function resolveDetailTable(client: SubDetailClient, baseUrl: string, appId: string, objId: string, formId: string, subFormId: string): Promise<ResolvedDetailTable | null>;
|
|
17
56
|
export declare class FormSubDetailService {
|
|
18
57
|
private client;
|
|
19
58
|
private baseUrl;
|
|
@@ -23,14 +62,23 @@ export declare class FormSubDetailService {
|
|
|
23
62
|
constructor(client: SubDetailClient, baseUrl: string, appId: string, objId: string, formId: string);
|
|
24
63
|
list(): Promise<SubFormInfo[]>;
|
|
25
64
|
private resolve;
|
|
65
|
+
private fieldsOf;
|
|
26
66
|
private resolveField;
|
|
67
|
+
private assertChildMark;
|
|
68
|
+
private resolveParentMark;
|
|
69
|
+
private reachable;
|
|
70
|
+
private edgeMap;
|
|
71
|
+
private candidateRows;
|
|
72
|
+
private buildConfigs;
|
|
27
73
|
private formTableIdOf;
|
|
28
74
|
read(parentRef: string): Promise<any>;
|
|
29
75
|
set(parentRef: string, links: SubDetailLinkInput[], defaultExpandRow?: boolean): Promise<any>;
|
|
76
|
+
add(parentRef: string, links: SubDetailLinkInput[], defaultExpandRow?: boolean): Promise<any>;
|
|
77
|
+
remove(parentRef: string, targetRef: string): Promise<any>;
|
|
78
|
+
candidates(parentRef: string): Promise<any>;
|
|
30
79
|
enable(parentRef: string): Promise<any>;
|
|
31
80
|
disable(parentRef: string): Promise<any>;
|
|
32
81
|
clear(parentRef: string): Promise<any>;
|
|
33
82
|
private save;
|
|
34
83
|
}
|
|
35
|
-
export {};
|
|
36
84
|
//# sourceMappingURL=form-sub-detail.d.ts.map
|
|
@@ -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"}
|