weaver-e10-builder 1.5.1 → 1.5.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/dist/commands/form-add-detail-table.js +3 -3
- package/dist/commands/form-add-detail-table.js.map +1 -1
- package/dist/commands/form-add-physical-field.d.ts +3 -0
- package/dist/commands/form-add-physical-field.d.ts.map +1 -0
- package/dist/commands/form-add-physical-field.js +126 -0
- package/dist/commands/form-add-physical-field.js.map +1 -0
- package/dist/commands/form-data.d.ts.map +1 -1
- package/dist/commands/form-data.js +125 -0
- package/dist/commands/form-data.js.map +1 -1
- package/dist/commands/form-ebuilder-columns.d.ts.map +1 -1
- package/dist/commands/form-ebuilder-columns.js +3 -3
- package/dist/commands/form-ebuilder-columns.js.map +1 -1
- package/dist/commands/form-ebuilder-scope.d.ts.map +1 -1
- package/dist/commands/form-ebuilder-scope.js +3 -4
- package/dist/commands/form-ebuilder-scope.js.map +1 -1
- package/dist/commands/form-field-lang.d.ts.map +1 -1
- package/dist/commands/form-field-lang.js +3 -4
- package/dist/commands/form-field-lang.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts.map +1 -1
- package/dist/commands/form-field-linkage.js +4 -3
- package/dist/commands/form-field-linkage.js.map +1 -1
- package/dist/commands/form-formula-linkage.d.ts.map +1 -1
- package/dist/commands/form-formula-linkage.js +4 -2
- package/dist/commands/form-formula-linkage.js.map +1 -1
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +5 -5
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form-layout.d.ts.map +1 -1
- package/dist/commands/form-layout.js +6 -0
- package/dist/commands/form-layout.js.map +1 -1
- package/dist/commands/form-list-click.d.ts.map +1 -1
- package/dist/commands/form-list-click.js +3 -2
- package/dist/commands/form-list-click.js.map +1 -1
- package/dist/commands/form-list-permission.js +1 -1
- package/dist/commands/form-list-permission.js.map +1 -1
- package/dist/commands/form-physical-table.d.ts +3 -0
- package/dist/commands/form-physical-table.d.ts.map +1 -0
- package/dist/commands/form-physical-table.js +195 -0
- package/dist/commands/form-physical-table.js.map +1 -0
- package/dist/commands/form-relate.d.ts.map +1 -1
- package/dist/commands/form-relate.js +3 -2
- package/dist/commands/form-relate.js.map +1 -1
- package/dist/commands/form-validate.d.ts.map +1 -1
- package/dist/commands/form-validate.js +3 -3
- package/dist/commands/form-validate.js.map +1 -1
- package/dist/commands/form-view.d.ts.map +1 -1
- package/dist/commands/form-view.js +2 -0
- package/dist/commands/form-view.js.map +1 -1
- package/dist/commands/form.d.ts +9 -3
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +150 -571
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/org.d.ts.map +1 -1
- package/dist/commands/org.js +131 -7
- package/dist/commands/org.js.map +1 -1
- package/dist/commands/special.d.ts +24 -0
- package/dist/commands/special.d.ts.map +1 -0
- package/dist/commands/special.js +487 -0
- package/dist/commands/special.js.map +1 -0
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +4 -4
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-message.d.ts.map +1 -1
- package/dist/commands/workflow-message.js +1 -2
- package/dist/commands/workflow-message.js.map +1 -1
- package/dist/commands/workflow-operator-sign.js +1 -1
- package/dist/commands/workflow-operator-sign.js.map +1 -1
- package/dist/index.js +28 -0
- package/dist/index.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 +54 -12
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/index.d.ts.map +1 -1
- package/dist/services/actionflow/components/index.js +6 -0
- package/dist/services/actionflow/components/index.js.map +1 -1
- package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
- package/dist/services/actionflow/components/multiple_execution.js +73 -13
- package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
- package/dist/services/actionflow/components/output.d.ts.map +1 -1
- package/dist/services/actionflow/components/output.js +144 -5
- package/dist/services/actionflow/components/output.js.map +1 -1
- package/dist/services/actionflow/components/send_message.d.ts.map +1 -1
- package/dist/services/actionflow/components/send_message.js +60 -32
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/components/serverless_action.d.ts +5 -0
- package/dist/services/actionflow/components/serverless_action.d.ts.map +1 -0
- package/dist/services/actionflow/components/serverless_action.js +134 -0
- package/dist/services/actionflow/components/serverless_action.js.map +1 -0
- package/dist/services/actionflow/components/webhook_trigger.d.ts +5 -0
- package/dist/services/actionflow/components/webhook_trigger.d.ts.map +1 -0
- package/dist/services/actionflow/components/webhook_trigger.js +85 -0
- package/dist/services/actionflow/components/webhook_trigger.js.map +1 -0
- package/dist/services/actionflow/context_preflight.d.ts +6 -0
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +247 -7
- 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 +67 -3
- package/dist/services/actionflow/context_provider.js.map +1 -1
- package/dist/services/actionflow/custom_trigger_context.d.ts.map +1 -1
- package/dist/services/actionflow/custom_trigger_context.js +9 -2
- package/dist/services/actionflow/custom_trigger_context.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +2 -0
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +381 -63
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/generation_service.d.ts.map +1 -1
- package/dist/services/actionflow/generation_service.js +9 -0
- package/dist/services/actionflow/generation_service.js.map +1 -1
- package/dist/services/actionflow/param_group_dto.d.ts +5 -0
- package/dist/services/actionflow/param_group_dto.d.ts.map +1 -0
- package/dist/services/actionflow/param_group_dto.js +181 -0
- package/dist/services/actionflow/param_group_dto.js.map +1 -0
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +53 -11
- package/dist/services/actionflow/preflight_service.js.map +1 -1
- package/dist/services/actionflow/readback_verifier.d.ts.map +1 -1
- package/dist/services/actionflow/readback_verifier.js +14 -1
- package/dist/services/actionflow/readback_verifier.js.map +1 -1
- package/dist/services/actionflow/update_service.d.ts.map +1 -1
- package/dist/services/actionflow/update_service.js +14 -8
- package/dist/services/actionflow/update_service.js.map +1 -1
- package/dist/services/actionflow/webhook_source.d.ts +4 -0
- package/dist/services/actionflow/webhook_source.d.ts.map +1 -0
- package/dist/services/actionflow/webhook_source.js +99 -0
- package/dist/services/actionflow/webhook_source.js.map +1 -0
- package/dist/services/actionflow/workflow_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/workflow_compiler.js +1 -0
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/form-create.d.ts +45 -2
- package/dist/services/form-create.d.ts.map +1 -1
- package/dist/services/form-create.js +78 -8
- package/dist/services/form-create.js.map +1 -1
- package/dist/services/form-data-openapi.d.ts +142 -0
- package/dist/services/form-data-openapi.d.ts.map +1 -0
- package/dist/services/form-data-openapi.js +363 -0
- package/dist/services/form-data-openapi.js.map +1 -0
- package/dist/services/form-field-build.d.ts +71 -0
- package/dist/services/form-field-build.d.ts.map +1 -0
- package/dist/services/form-field-build.js +436 -0
- package/dist/services/form-field-build.js.map +1 -0
- package/dist/services/form-field-template.d.ts +71 -0
- package/dist/services/form-field-template.d.ts.map +1 -0
- package/dist/services/form-field-template.js +103 -0
- package/dist/services/form-field-template.js.map +1 -0
- package/dist/services/form-field-validate.d.ts +26 -0
- package/dist/services/form-field-validate.d.ts.map +1 -0
- package/dist/services/form-field-validate.js +121 -0
- package/dist/services/form-field-validate.js.map +1 -0
- package/dist/services/form-id.d.ts +50 -0
- package/dist/services/form-id.d.ts.map +1 -0
- package/dist/services/form-id.js +110 -0
- package/dist/services/form-id.js.map +1 -0
- package/dist/services/form-layout-grid.d.ts +123 -0
- package/dist/services/form-layout-grid.d.ts.map +1 -0
- package/dist/services/form-layout-grid.js +177 -0
- package/dist/services/form-layout-grid.js.map +1 -0
- package/dist/services/form-layout-insert.d.ts +24 -1
- package/dist/services/form-layout-insert.d.ts.map +1 -1
- package/dist/services/form-layout-insert.js +192 -27
- package/dist/services/form-layout-insert.js.map +1 -1
- package/dist/services/form-physical-table.d.ts +115 -0
- package/dist/services/form-physical-table.d.ts.map +1 -0
- package/dist/services/form-physical-table.js +153 -0
- package/dist/services/form-physical-table.js.map +1 -0
- package/dist/services/form-table-view.d.ts.map +1 -1
- package/dist/services/form-table-view.js +2 -11
- package/dist/services/form-table-view.js.map +1 -1
- package/dist/services/form-view.d.ts +2 -0
- package/dist/services/form-view.d.ts.map +1 -1
- package/dist/services/form-view.js +57 -7
- package/dist/services/form-view.js.map +1 -1
- package/dist/services/form-virtual.d.ts.map +1 -1
- package/dist/services/form-virtual.js +6 -1
- package/dist/services/form-virtual.js.map +1 -1
- package/dist/services/org-employee.d.ts +105 -1
- package/dist/services/org-employee.d.ts.map +1 -1
- package/dist/services/org-employee.js +186 -5
- package/dist/services/org-employee.js.map +1 -1
- package/dist/services/special-page.d.ts +85 -0
- package/dist/services/special-page.d.ts.map +1 -0
- package/dist/services/special-page.js +129 -0
- package/dist/services/special-page.js.map +1 -0
- package/dist/services/special-route.d.ts +92 -0
- package/dist/services/special-route.d.ts.map +1 -0
- package/dist/services/special-route.js +93 -0
- package/dist/services/special-route.js.map +1 -0
- package/dist/services/workflow-node-layout.d.ts +13 -1
- package/dist/services/workflow-node-layout.d.ts.map +1 -1
- package/dist/services/workflow-node-layout.js +11 -3
- package/dist/services/workflow-node-layout.js.map +1 -1
- package/package.json +1 -1
- package/skill-docs/SKILL.md +5 -5
- package/skill-docs/_catalog.md +1 -0
- package/skill-docs/actionflows/SKILL.md +5 -4
- package/skill-docs/actionflows/references/components/logic/MultipleExecution.md +38 -38
- package/skill-docs/actionflows/references/components/logic/Output.md +9 -2
- package/skill-docs/actionflows/references/components/message/SendMessage.md +3 -3
- package/skill-docs/actionflows/references/components/serverless/ServerlessAction.md +42 -0
- package/skill-docs/actionflows/references/components/trigger/WebHookTrigger.md +89 -0
- package/skill-docs/actionflows/references/dynamic_capability_matrix.md +2 -2
- package/skill-docs/references/common/ref-cli-commands.md +11 -3
- package/skill-docs/references/form/guide-form-association.md +1 -1
- package/skill-docs/references/form/guide-form-data.md +30 -0
- package/skill-docs/references/form/guide-form-layout-incremental.md +18 -3
- package/skill-docs/references/form/guide-form-linkage.md +2 -2
- package/skill-docs/references/form/guide-form-physical-table.md +146 -0
- package/skill-docs/references/form/ref-form-fields.md +1 -1
- package/skill-docs/references/hrm/guide-org-employee.md +71 -3
- package/skill-docs/references/report/cell-config-echo-guide.md +1 -1
- package/skill-docs/references/report/dataset-query-filter-guide.md +3 -3
- package/skill-docs/references/report/date-range-query-reference.md +2 -2
- package/skill-docs/references/report/query-condition-api-guide.md +11 -11
- package/skill-docs/references/report/report-designer-feature-map.md +1 -1
- package/skill-docs/references/report/report-permission-guide.md +2 -2
- package/skill-docs/references/workflow/guide-workflow-odoc-setting.md +6 -6
- package/skill-docs/references/workflow/guide-workflow.md +1 -1
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 表单数据 OpenAPI —— 批量增改、按 ID 读(可带明细)、分页。
|
|
3
|
+
*
|
|
4
|
+
* ## 与 `form/core/saveFormData` 的关系
|
|
5
|
+
*
|
|
6
|
+
* 那一条(`commands/form-data.ts` 的 `data add` 在用)是**设计器保存**时打的:
|
|
7
|
+
* **一次一条、且只写主表**。这一族是独立的**表单数据 OpenAPI**,`datas` 是数组、
|
|
8
|
+
* 每条可带 `detail1/detail2…`,并且能按 ID 读回**含明细**的数据。
|
|
9
|
+
*
|
|
10
|
+
* | 用途 | 端点 |
|
|
11
|
+
* |---|---|
|
|
12
|
+
* | 批量新增 | `POST /api/ebuilder/form/dataset/v2/saveFormData` |
|
|
13
|
+
* | 修改 | `POST /api/ebuilder/form/dataset/v2/updateFormData` |
|
|
14
|
+
* | 详情(可带明细) | `POST /api/ebuilder/form/dataset/v2/getDataById` |
|
|
15
|
+
* | 分页(可带明细) | `POST /api/ebuilder/form/dataset/v2/getAllData` |
|
|
16
|
+
* | 主表/明细 ↔ 请求节点 | `GET /api/ebuilder/form/dataset/v1/getTableMapping` |
|
|
17
|
+
* | 字段定义 | `POST /api/ebuilder/common/ds/fields`(multipart) |
|
|
18
|
+
* | 选择类字段选项 | `GET /api/ebuilder/common/ds/options` |
|
|
19
|
+
*
|
|
20
|
+
* ## 四个静默坑(全部实测踩出来的)
|
|
21
|
+
*
|
|
22
|
+
* 1. **自定义字段的请求键必须用 `config.dataKey`,不能用 `name`。**
|
|
23
|
+
* 实测自定义字段的 `name` **就等于它的字段 id**,真实数据键在 `dataKey`。
|
|
24
|
+
* 用 `name` 平台**照样回成功、但值静默丢失** —— 最难发现的一种失败。
|
|
25
|
+
* 系统字段(`name`/`creator`/`data_status`…)反过来:`name` 即数据键、`dataKey` 为空。
|
|
26
|
+
* 2. **主表字段要包一层 `mainTable`**(不是平铺在 `datas[]` 那层),
|
|
27
|
+
* 否则平台回 `DataError:mainTable不能为空`。
|
|
28
|
+
* 3. **多值选择字段要发逗号串 `"1,3"`,不能发数组** ——
|
|
29
|
+
* 发数组会被按字符串逗号硬切,落库成 `"[1"` 和 `" 3]"` 两个垃圾选项。
|
|
30
|
+
* 4. **明细表的显示名要另外取一次**:`sourceType=FORM` 给的嵌套条目 `name` 是平台占位名
|
|
31
|
+
* (实测 `明细子表1`),只有 `sourceType=LOGIC` 才给真名(`物料明细`)。
|
|
32
|
+
*
|
|
33
|
+
* 另外:响应的外层 `code` 可能是 `undefined`,**判成功要看 `data.datajson.status` 与 `dataIds`**。
|
|
34
|
+
*/
|
|
35
|
+
const TABLE_MAPPING_PATH = '/api/ebuilder/form/dataset/v1/getTableMapping';
|
|
36
|
+
const SAVE_DATA_PATH = '/api/ebuilder/form/dataset/v2/saveFormData';
|
|
37
|
+
const UPDATE_DATA_PATH = '/api/ebuilder/form/dataset/v2/updateFormData';
|
|
38
|
+
const GET_BY_ID_PATH = '/api/ebuilder/form/dataset/v2/getDataById';
|
|
39
|
+
const GET_ALL_DATA_PATH = '/api/ebuilder/form/dataset/v2/getAllData';
|
|
40
|
+
const DS_FIELDS_PATH = '/api/ebuilder/common/ds/fields';
|
|
41
|
+
const DS_OPTIONS_PATH = '/api/ebuilder/common/ds/options';
|
|
42
|
+
/** 选择类组件 —— 值要转成选项 id。 */
|
|
43
|
+
const OPTION_COMP_TYPES = new Set(['Select', 'RadioBox', 'CheckBox']);
|
|
44
|
+
function toFieldMeta(raw) {
|
|
45
|
+
return {
|
|
46
|
+
id: String(raw?.id ?? ''),
|
|
47
|
+
text: String(raw?.text ?? ''),
|
|
48
|
+
name: String(raw?.name ?? ''),
|
|
49
|
+
dataKey: String(raw?.config?.dataKey ?? ''),
|
|
50
|
+
compType: String(raw?.compType ?? raw?.type ?? ''),
|
|
51
|
+
type: String(raw?.type ?? ''),
|
|
52
|
+
multiSelect: raw?.multiSelect === true || String(raw?.multiSelect) === 'true',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* 组装请求体里该用的字段键。
|
|
57
|
+
*
|
|
58
|
+
* ⚠ 这就是那个「静默丢值」的坑:自定义字段 `name === id`,必须改用 `dataKey`。
|
|
59
|
+
*/
|
|
60
|
+
export function requestKeyOf(field) {
|
|
61
|
+
if (field.name === field.id && field.dataKey)
|
|
62
|
+
return field.dataKey;
|
|
63
|
+
return field.name || field.dataKey || field.id;
|
|
64
|
+
}
|
|
65
|
+
/** 调一次 `ds/fields`,摊平成一个分组里的全部字段(含嵌套的明细条目)。 */
|
|
66
|
+
async function callDsFields(client, baseUrl, appId, objId, sourceType) {
|
|
67
|
+
const form = new FormData();
|
|
68
|
+
for (const [k, v] of Object.entries({
|
|
69
|
+
groupId: sourceType === 'LOGIC' ? 'weaver-ebuilder-form-service' : String(appId),
|
|
70
|
+
sourceId: String(objId),
|
|
71
|
+
sourceType,
|
|
72
|
+
detailFieldsGroup: 'true',
|
|
73
|
+
enableMerge: 'true',
|
|
74
|
+
...(sourceType === 'LOGIC' ? { needTableName: 'true' } : { customParam: '{"terminal":""}' }),
|
|
75
|
+
params: '[]',
|
|
76
|
+
}))
|
|
77
|
+
form.append(k, v);
|
|
78
|
+
const res = await client.postMultipart(`${baseUrl}${DS_FIELDS_PATH}`, form, { ebbusinessid: appId });
|
|
79
|
+
const groups = Array.isArray(res?.data) ? res.data : [];
|
|
80
|
+
return groups.flatMap((g) => (Array.isArray(g?.fields) ? g.fields : []));
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 拉表单字段定义。明细表嵌套在主组的 `fields[]` 里(`isDetailtable:true`),明细字段在它的内层。
|
|
84
|
+
*
|
|
85
|
+
* ⚠ **明细表的显示名要另外取一次**:`sourceType=FORM` 返回的嵌套条目 `name` 是平台占位名
|
|
86
|
+
* (实测是 `明细子表1`),只有 `sourceType=LOGIC` 才给真名(`物料明细`)。
|
|
87
|
+
* 用户写数据时用的是真名,所以这里补一次 LOGIC 调用做 `subFormId → 显示名` 的映射;
|
|
88
|
+
* 补不上就退回 FORM 那个名字,不阻断。
|
|
89
|
+
*/
|
|
90
|
+
export async function fetchFormSchema(client, baseUrl, appId, objId) {
|
|
91
|
+
const all = await callDsFields(client, baseUrl, appId, objId, 'FORM');
|
|
92
|
+
const nameBySubForm = new Map();
|
|
93
|
+
try {
|
|
94
|
+
for (const f of await callDsFields(client, baseUrl, appId, objId, 'LOGIC')) {
|
|
95
|
+
if (f?.isDetailtable && f?.name)
|
|
96
|
+
nameBySubForm.set(String(f.id ?? ''), String(f.name));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch { /* 补名失败不阻断 —— 退回 FORM 的名字,用户仍可用 subFormId 指定 */ }
|
|
100
|
+
const main = [];
|
|
101
|
+
const details = [];
|
|
102
|
+
for (const f of all) {
|
|
103
|
+
if (f?.isDetailtable) {
|
|
104
|
+
const subFormId = String(f.id ?? '');
|
|
105
|
+
details.push({
|
|
106
|
+
subFormId,
|
|
107
|
+
name: nameBySubForm.get(subFormId) || String(f.name ?? ''),
|
|
108
|
+
fields: (Array.isArray(f.fields) ? f.fields : []).map(toFieldMeta),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
main.push(toFieldMeta(f));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return { main, details };
|
|
116
|
+
}
|
|
117
|
+
/** `mainTable` / `detailN` → subFormId(或主表标识)。 */
|
|
118
|
+
export async function fetchTableMapping(client, baseUrl, appId, objId) {
|
|
119
|
+
const res = await client.get(`${baseUrl}${TABLE_MAPPING_PATH}?objId=${encodeURIComponent(objId)}&reverse=false`, { ebbusinessid: appId });
|
|
120
|
+
const data = res?.data;
|
|
121
|
+
return data && typeof data === 'object' ? data : {};
|
|
122
|
+
}
|
|
123
|
+
/** `subFormId → detailN`(从 mapping 反推)。 */
|
|
124
|
+
export function detailNodeMap(mapping) {
|
|
125
|
+
const out = new Map();
|
|
126
|
+
for (const [node, subFormId] of Object.entries(mapping)) {
|
|
127
|
+
if (node !== 'mainTable')
|
|
128
|
+
out.set(String(subFormId), node);
|
|
129
|
+
}
|
|
130
|
+
return out;
|
|
131
|
+
}
|
|
132
|
+
export function makeOptionFetcher(client, baseUrl, appId, objId) {
|
|
133
|
+
const cache = new Map();
|
|
134
|
+
return async (field) => {
|
|
135
|
+
const hit = cache.get(field.id);
|
|
136
|
+
if (hit)
|
|
137
|
+
return hit;
|
|
138
|
+
const res = await client.get(`${baseUrl}${DS_OPTIONS_PATH}?fieldName=${encodeURIComponent(field.id)}&objId=${encodeURIComponent(objId)}`
|
|
139
|
+
+ `&sourceType=FORM&groupId=${encodeURIComponent(appId)}&optionLevel=1`, { ebbusinessid: appId });
|
|
140
|
+
const rows = Array.isArray(res?.data) ? res.data : [];
|
|
141
|
+
const opts = rows.map((o) => ({ id: String(o?.id ?? ''), name: String(o?.name ?? '') }));
|
|
142
|
+
cache.set(field.id, opts);
|
|
143
|
+
return opts;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/** 在字段清单里按「显示名 → dataKey → name → id」找一个字段;重名/找不到都报错。 */
|
|
147
|
+
export function pickField(fields, key, where) {
|
|
148
|
+
const k = String(key);
|
|
149
|
+
for (const probe of [
|
|
150
|
+
(f) => f.text === k,
|
|
151
|
+
(f) => f.dataKey === k,
|
|
152
|
+
(f) => f.name === k,
|
|
153
|
+
(f) => f.id === k,
|
|
154
|
+
]) {
|
|
155
|
+
const hits = fields.filter(probe);
|
|
156
|
+
if (hits.length > 1) {
|
|
157
|
+
throw new Error(`${where}里「${key}」匹配到 ${hits.length} 个字段,请改用更精确的名称`);
|
|
158
|
+
}
|
|
159
|
+
if (hits.length === 1)
|
|
160
|
+
return hits[0];
|
|
161
|
+
}
|
|
162
|
+
throw new Error(`${where}里没有字段「${key}」。可选:${fields.filter((f) => f.text).map((f) => f.text).join('、')}`);
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* 把一条用户数据(键用显示名)转成 `mainTable` / `detailN` 的请求体。
|
|
166
|
+
*
|
|
167
|
+
* 纯函数 —— 选项转换由 `fetchOptions` 注入,便于单测。
|
|
168
|
+
*/
|
|
169
|
+
export async function buildOneData(row, schema, mapping, fetchOptions) {
|
|
170
|
+
const detailNodeOf = detailNodeMap(mapping);
|
|
171
|
+
// ⚠ 主表字段**要包一层 `mainTable`**(不是平铺在 datas[] 那层)——
|
|
172
|
+
// 平铺会被平台回 `DataError:mainTable不能为空`。
|
|
173
|
+
const mainObj = {};
|
|
174
|
+
const detailRows = new Map();
|
|
175
|
+
for (const [key, value] of Object.entries(row)) {
|
|
176
|
+
// 先看是不是「某张明细表」
|
|
177
|
+
const detail = schema.details.find((d) => d.name === key || d.subFormId === key);
|
|
178
|
+
if (detail) {
|
|
179
|
+
if (!Array.isArray(value))
|
|
180
|
+
throw new Error(`「${key}」是明细表,值必须是数组`);
|
|
181
|
+
const node = detailNodeOf.get(detail.subFormId);
|
|
182
|
+
if (!node) {
|
|
183
|
+
throw new Error(`明细表「${detail.name}」(${detail.subFormId}) 在 getTableMapping 里没有对应的请求节点`);
|
|
184
|
+
}
|
|
185
|
+
const built = [];
|
|
186
|
+
for (const [i, line] of value.entries()) {
|
|
187
|
+
built.push(await buildFields(line, detail.fields, fetchOptions, `明细「${detail.name}」第 ${i + 1} 行`));
|
|
188
|
+
}
|
|
189
|
+
detailRows.set(node, built);
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
// 其余按主表字段
|
|
193
|
+
const field = pickField(schema.main, key, '主表');
|
|
194
|
+
mainObj[requestKeyOf(field)] = await convertValue(field, value, fetchOptions);
|
|
195
|
+
}
|
|
196
|
+
const out = { mainTable: mainObj };
|
|
197
|
+
for (const [node, lines] of detailRows)
|
|
198
|
+
out[node] = lines;
|
|
199
|
+
return out;
|
|
200
|
+
}
|
|
201
|
+
/** 一组 字段-值 → 请求键值对(主表一行 / 明细一行共用)。 */
|
|
202
|
+
async function buildFields(row, fields, fetchOptions, where) {
|
|
203
|
+
const out = {};
|
|
204
|
+
for (const [key, value] of Object.entries(row)) {
|
|
205
|
+
const field = pickField(fields, key, where);
|
|
206
|
+
out[requestKeyOf(field)] = await convertValue(field, value, fetchOptions);
|
|
207
|
+
}
|
|
208
|
+
return out;
|
|
209
|
+
}
|
|
210
|
+
/** 选择类字段把「选项名或 id」换成选项 id;其余原样。 */
|
|
211
|
+
async function convertValue(field, value, fetchOptions) {
|
|
212
|
+
if (!OPTION_COMP_TYPES.has(field.compType))
|
|
213
|
+
return value;
|
|
214
|
+
const opts = await fetchOptions(field);
|
|
215
|
+
const toId = (v) => {
|
|
216
|
+
const s = String(v);
|
|
217
|
+
const hit = opts.find((o) => o.name === s || o.id === s);
|
|
218
|
+
if (!hit) {
|
|
219
|
+
throw new Error(`字段「${field.text}」没有选项「${v}」。可选:${opts.map((o) => o.name).join('、')}`);
|
|
220
|
+
}
|
|
221
|
+
return hit.id;
|
|
222
|
+
};
|
|
223
|
+
// ⚠ 多值**不能用数组**发:平台会把它当字符串按逗号硬切,
|
|
224
|
+
// 实测发 `["1","3"]` 落库成 `"[1"` 和 `" 3]"` 两个垃圾选项。
|
|
225
|
+
// 必须是逗号串 `"1,3"`。
|
|
226
|
+
return Array.isArray(value) ? value.map(toId).join(',') : toId(value);
|
|
227
|
+
}
|
|
228
|
+
function toWriteResult(res) {
|
|
229
|
+
const inner = res?.data?.datajson || {};
|
|
230
|
+
return {
|
|
231
|
+
dataIds: Array.isArray(inner.dataIds)
|
|
232
|
+
? inner.dataIds.map((x) => String(x))
|
|
233
|
+
: String(inner.dataIds ?? '').split(',').filter(Boolean),
|
|
234
|
+
status: inner.status === true,
|
|
235
|
+
message: String(inner.message || res?.message?.msg || res?.msg || ''),
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* 批量新增。**一次请求带上全部行**(这正是 `dataset/v2` 的意义)。
|
|
240
|
+
*
|
|
241
|
+
* ⚠ 平台对单次条数有上限,超了可能只落一部分 —— 所以调用方必须拿 `dataIds.length`
|
|
242
|
+
* 跟预期条数比对,不能只看 HTTP 200。
|
|
243
|
+
*/
|
|
244
|
+
export async function saveDataBatch(client, baseUrl, appId, objId, datas) {
|
|
245
|
+
const res = await client.post(`${baseUrl}${SAVE_DATA_PATH}`, {
|
|
246
|
+
datajson: {
|
|
247
|
+
header: { objId: String(objId) },
|
|
248
|
+
datas,
|
|
249
|
+
// 字段找不到时静默忽略(默认行为,显式写出来),且不触发数据动作 ——
|
|
250
|
+
// 初始化业务数据不该顺带把流程/动作跑起来。
|
|
251
|
+
operationinfo: { fieldNoFindIgnore: 'true', doAction: 'false' },
|
|
252
|
+
},
|
|
253
|
+
}, { ebbusinessid: appId });
|
|
254
|
+
return toWriteResult(res);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* 按数据 ID 修改。`datas[].mainTable.id` 必填(走 `updateType=ids`)。
|
|
258
|
+
*
|
|
259
|
+
* @param detailMode `cover` = 覆盖对应明细表的全部行(`operateType:{detailN:'cover'}`);
|
|
260
|
+
* 不传 = 平台默认行为(追加式),**明细行只增不删**。
|
|
261
|
+
*/
|
|
262
|
+
export async function updateDataBatch(client, baseUrl, appId, objId, datas, detailMode) {
|
|
263
|
+
const operateType = {};
|
|
264
|
+
if (detailMode === 'cover') {
|
|
265
|
+
for (const d of datas) {
|
|
266
|
+
for (const k of Object.keys(d))
|
|
267
|
+
if (k.startsWith('detail'))
|
|
268
|
+
operateType[k] = 'cover';
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
const res = await client.post(`${baseUrl}${UPDATE_DATA_PATH}`, {
|
|
272
|
+
datajson: {
|
|
273
|
+
header: { objId: String(objId) },
|
|
274
|
+
datas,
|
|
275
|
+
operationinfo: {
|
|
276
|
+
updateType: 'ids',
|
|
277
|
+
needAdd: 'false',
|
|
278
|
+
doAction: 'false',
|
|
279
|
+
fieldNoFindIgnore: 'false',
|
|
280
|
+
...(detailMode === 'cover' ? { operateType } : {}),
|
|
281
|
+
},
|
|
282
|
+
},
|
|
283
|
+
}, { ebbusinessid: appId });
|
|
284
|
+
return toWriteResult(res);
|
|
285
|
+
}
|
|
286
|
+
function toRecord(row) {
|
|
287
|
+
const details = {};
|
|
288
|
+
for (const [k, v] of Object.entries(row || {})) {
|
|
289
|
+
if (k.startsWith('detail') && Array.isArray(v))
|
|
290
|
+
details[k] = v;
|
|
291
|
+
}
|
|
292
|
+
const mainTable = row?.mainTable || {};
|
|
293
|
+
return { id: String(mainTable?.id?.fieldValue ?? mainTable?.id ?? ''), mainTable, details };
|
|
294
|
+
}
|
|
295
|
+
/** 按数据 ID 读一条,可选带明细(`isReturnDetail`)。 */
|
|
296
|
+
export async function fetchDataById(client, baseUrl, appId, objId, dataId, opts = {}) {
|
|
297
|
+
const res = await client.post(`${baseUrl}${GET_BY_ID_PATH}`, {
|
|
298
|
+
datajson: {
|
|
299
|
+
header: { objId: String(objId) },
|
|
300
|
+
mainTable: { id: String(dataId) },
|
|
301
|
+
operationinfo: {
|
|
302
|
+
...(opts.withDetail ? { isReturnDetail: 'y' } : {}),
|
|
303
|
+
fieldNoFindIgnore: 'false',
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
}, { ebbusinessid: appId });
|
|
307
|
+
const rows = res?.data?.datajson?.datas || [];
|
|
308
|
+
return rows.length ? toRecord(rows[0]) : null;
|
|
309
|
+
}
|
|
310
|
+
/** 按条件分页读(`mainTable` 里的多个条件之间是 AND)。 */
|
|
311
|
+
export async function fetchDataPage(client, baseUrl, appId, objId, opts = {}) {
|
|
312
|
+
const res = await client.post(`${baseUrl}${GET_ALL_DATA_PATH}`, {
|
|
313
|
+
datajson: {
|
|
314
|
+
header: { objId: String(objId) },
|
|
315
|
+
...(opts.filter && Object.keys(opts.filter).length ? { mainTable: opts.filter } : {}),
|
|
316
|
+
pageInfo: { pageNo: opts.pageNo ?? 1, pageSize: opts.pageSize ?? 100 },
|
|
317
|
+
operationinfo: {
|
|
318
|
+
...(opts.withDetail ? { isReturnDetail: 'y' } : {}),
|
|
319
|
+
fieldNoFindIgnore: 'false',
|
|
320
|
+
},
|
|
321
|
+
},
|
|
322
|
+
}, { ebbusinessid: appId });
|
|
323
|
+
const inner = res?.data?.datajson || {};
|
|
324
|
+
const rows = Array.isArray(inner.datas) ? inner.datas : [];
|
|
325
|
+
return {
|
|
326
|
+
records: rows.map(toRecord),
|
|
327
|
+
status: inner.status === true,
|
|
328
|
+
message: String(inner.message || res?.message?.msg || res?.msg || ''),
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* 把一条读回的记录摊平成「显示名 → 值」和「明细表名 → 行」。
|
|
333
|
+
*
|
|
334
|
+
* 读回的字段值是**带类型信息的对象**(`{fieldId, fieldType, fieldValue, fieldTextValue,
|
|
335
|
+
* fieldOptionId, fieldOptionName}`),单值字段是对象、多值/选择类字段是数组。
|
|
336
|
+
* 展示要挑真正带内容的那个键,不能直接当字符串用。
|
|
337
|
+
*/
|
|
338
|
+
export function fieldValueOf(cell) {
|
|
339
|
+
if (cell === null || cell === undefined)
|
|
340
|
+
return '';
|
|
341
|
+
if (Array.isArray(cell))
|
|
342
|
+
return cell.map(fieldValueOf).filter(Boolean).join(',');
|
|
343
|
+
if (typeof cell !== 'object')
|
|
344
|
+
return String(cell);
|
|
345
|
+
for (const k of ['fieldValue', 'fieldTextValue', 'fieldOptionName', 'fieldOptionId']) {
|
|
346
|
+
const v = cell[k];
|
|
347
|
+
if (v !== undefined && v !== null && v !== '')
|
|
348
|
+
return String(v);
|
|
349
|
+
}
|
|
350
|
+
return '';
|
|
351
|
+
}
|
|
352
|
+
/** 记录 → `{ 显示名: 值 }`(主表)。 */
|
|
353
|
+
export function flattenMain(record, schema) {
|
|
354
|
+
const byKey = new Map();
|
|
355
|
+
for (const f of schema.main)
|
|
356
|
+
byKey.set(requestKeyOf(f), f);
|
|
357
|
+
const out = {};
|
|
358
|
+
for (const [k, v] of Object.entries(record.mainTable)) {
|
|
359
|
+
out[byKey.get(k)?.text || k] = fieldValueOf(v);
|
|
360
|
+
}
|
|
361
|
+
return out;
|
|
362
|
+
}
|
|
363
|
+
//# sourceMappingURL=form-data-openapi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-data-openapi.js","sourceRoot":"","sources":["../../src/services/form-data-openapi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { ApiClient } from '../core/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* 「字段定义 → 平台 jsonObj」的构造器。
|
|
4
|
+
*
|
|
5
|
+
* **这是唯一一份**。`form add-field` 与按物理表加字段的命令(`form add-physical-field`)都走它 ——
|
|
6
|
+
* 此前这段逻辑内联在 `commands/form.ts` 的 add-field action 里(约 340 行),
|
|
7
|
+
* 一旦要出第二个入口就会变成两处真相,所以原样搬到这里,行为一字未改。
|
|
8
|
+
*
|
|
9
|
+
* 搬动时只做了三处**等价**改写:
|
|
10
|
+
* 1. `client/baseUrl/...` 改为从入参取(原来是闭包变量)
|
|
11
|
+
* 2. `auth.userId` / `auth.tenantKey` → 入参 `userId` / `tenantKey`
|
|
12
|
+
* 3. `console.error(...) + process.exit(1)` → `throw new Error(...)`,
|
|
13
|
+
* 由调用方接住后打印并 `process.exit(1)`。**库函数不该直接退进程。**
|
|
14
|
+
*
|
|
15
|
+
* 字段落点由 `formTableId` 决定:主表的 id = 主表;某张附属物理表的 id = 落到「字段管理 → 其他」
|
|
16
|
+
* 里那张表上。
|
|
17
|
+
*/
|
|
18
|
+
/** 平台系统字段 id(非业务字段)。`defaultEBuilderDataTitle` 用来筛业务字段。 */
|
|
19
|
+
export declare const SYSTEM_FIELD_IDS: Set<string>;
|
|
20
|
+
export declare function defaultEBuilderDataTitle(fields: any[]): string;
|
|
21
|
+
/** add-field 的选项袋(与命令行的 `cmdOpts` 同形)。 */
|
|
22
|
+
export interface FieldBuildOptions {
|
|
23
|
+
sformId?: string;
|
|
24
|
+
dataTitle?: string;
|
|
25
|
+
formName?: string;
|
|
26
|
+
format?: string;
|
|
27
|
+
precision?: string;
|
|
28
|
+
browserType?: string;
|
|
29
|
+
browserFormSource?: string;
|
|
30
|
+
percent?: boolean;
|
|
31
|
+
default?: string;
|
|
32
|
+
subFormId?: string;
|
|
33
|
+
multiple?: boolean;
|
|
34
|
+
singleRow?: boolean;
|
|
35
|
+
minField?: string;
|
|
36
|
+
maxField?: string;
|
|
37
|
+
delimiter?: boolean;
|
|
38
|
+
capital?: boolean;
|
|
39
|
+
maxLen?: string;
|
|
40
|
+
optionTemplate?: string;
|
|
41
|
+
dataKey?: string;
|
|
42
|
+
columnName?: string;
|
|
43
|
+
desc?: string;
|
|
44
|
+
reinit?: boolean;
|
|
45
|
+
required?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface FieldBuildContext {
|
|
48
|
+
client: ApiClient;
|
|
49
|
+
baseUrl: string;
|
|
50
|
+
appId: string;
|
|
51
|
+
objId: string;
|
|
52
|
+
userId: string;
|
|
53
|
+
tenantKey: string;
|
|
54
|
+
/** 已归一化的字段类型(调用方用 canonComponentKey 处理过)。 */
|
|
55
|
+
fieldType: string;
|
|
56
|
+
fieldName: string;
|
|
57
|
+
title?: string;
|
|
58
|
+
formId: string;
|
|
59
|
+
/** 字段落点:主表 id,或某张附属物理表的 formTableId。 */
|
|
60
|
+
formTableId: string;
|
|
61
|
+
fieldId: string;
|
|
62
|
+
/** DateRange / DateInterval 的起止字段 id。 */
|
|
63
|
+
startId: string;
|
|
64
|
+
endId: string;
|
|
65
|
+
dataKey: string;
|
|
66
|
+
columnName: string;
|
|
67
|
+
opts: FieldBuildOptions;
|
|
68
|
+
}
|
|
69
|
+
/** 构造字段的 jsonObj。致命错误一律抛出(不退出进程)。 */
|
|
70
|
+
export declare function buildFieldJsonObject(ctx: FieldBuildContext): Promise<Record<string, unknown>>;
|
|
71
|
+
//# sourceMappingURL=form-field-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-field-build.d.ts","sourceRoot":"","sources":["../../src/services/form-field-build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AASnD;;;;;;;;;;;;;;;GAeG;AAEH,2DAA2D;AAC3D,eAAO,MAAM,gBAAgB,aAK3B,CAAC;AAIH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAK9D;AAED,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC9F,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,qCAAqC;AACrC,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA6VnG"}
|