weaver-e10-builder 1.2.5 → 1.5.1
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/assets/org-employee-template.xlsx +0 -0
- package/dist/commands/form-button.d.ts.map +1 -1
- package/dist/commands/form-button.js +28 -5
- package/dist/commands/form-button.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts.map +1 -1
- package/dist/commands/form-field-linkage.js +27 -6
- package/dist/commands/form-field-linkage.js.map +1 -1
- package/dist/commands/form-formula-linkage.d.ts +3 -0
- package/dist/commands/form-formula-linkage.d.ts.map +1 -0
- package/dist/commands/form-formula-linkage.js +434 -0
- package/dist/commands/form-formula-linkage.js.map +1 -0
- package/dist/commands/form-formula.d.ts.map +1 -1
- package/dist/commands/form-formula.js +22 -3
- package/dist/commands/form-formula.js.map +1 -1
- package/dist/commands/form-list-click.d.ts.map +1 -1
- package/dist/commands/form-list-click.js +2 -1
- package/dist/commands/form-list-click.js.map +1 -1
- package/dist/commands/form-native.d.ts.map +1 -1
- package/dist/commands/form-native.js +11 -3
- package/dist/commands/form-native.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +247 -173
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/matrix.d.ts.map +1 -1
- package/dist/commands/matrix.js +175 -36
- package/dist/commands/matrix.js.map +1 -1
- package/dist/commands/org.d.ts +10 -0
- package/dist/commands/org.d.ts.map +1 -0
- package/dist/commands/org.js +278 -0
- package/dist/commands/org.js.map +1 -0
- package/dist/commands/role.d.ts.map +1 -1
- package/dist/commands/role.js +106 -62
- package/dist/commands/role.js.map +1 -1
- package/dist/commands/wf-form.d.ts.map +1 -1
- package/dist/commands/wf-form.js +501 -26
- 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 +53 -5
- package/dist/commands/workflow-auth-resp.js.map +1 -1
- package/dist/commands/workflow-create-auth-resp.d.ts.map +1 -1
- package/dist/commands/workflow-create-auth-resp.js +5 -1
- package/dist/commands/workflow-create-auth-resp.js.map +1 -1
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +78 -9
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/services/action-detail.d.ts.map +1 -1
- package/dist/services/action-detail.js +5 -4
- package/dist/services/action-detail.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 +22 -7
- package/dist/services/actionflow/components/action_eb_update_compiler.js.map +1 -1
- package/dist/services/actionflow/components/approve_create.d.ts.map +1 -1
- package/dist/services/actionflow/components/approve_create.js +6 -3
- package/dist/services/actionflow/components/approve_create.js.map +1 -1
- package/dist/services/actionflow/components/custom_set_form.d.ts.map +1 -1
- package/dist/services/actionflow/components/custom_set_form.js +35 -1
- package/dist/services/actionflow/components/custom_set_form.js.map +1 -1
- package/dist/services/actionflow/components/custom_trigger.d.ts.map +1 -1
- package/dist/services/actionflow/components/custom_trigger.js +4 -1
- package/dist/services/actionflow/components/custom_trigger.js.map +1 -1
- package/dist/services/actionflow/components/dml_execute.d.ts.map +1 -1
- package/dist/services/actionflow/components/dml_execute.js +7 -3
- package/dist/services/actionflow/components/dml_execute.js.map +1 -1
- package/dist/services/actionflow/components/document_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/document_actions.js +7 -3
- package/dist/services/actionflow/components/document_actions.js.map +1 -1
- package/dist/services/actionflow/components/hrm_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/hrm_actions.js +7 -3
- package/dist/services/actionflow/components/hrm_actions.js.map +1 -1
- package/dist/services/actionflow/components/multiple_execution.d.ts.map +1 -1
- package/dist/services/actionflow/components/multiple_execution.js +14 -5
- package/dist/services/actionflow/components/multiple_execution.js.map +1 -1
- package/dist/services/actionflow/components/output.js +1 -1
- package/dist/services/actionflow/components/output.js.map +1 -1
- package/dist/services/actionflow/components/send_message.js +2 -2
- package/dist/services/actionflow/components/send_message.js.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.d.ts.map +1 -1
- package/dist/services/actionflow/components/workflow_actions.js +7 -3
- package/dist/services/actionflow/components/workflow_actions.js.map +1 -1
- package/dist/services/actionflow/context_preflight.d.ts.map +1 -1
- package/dist/services/actionflow/context_preflight.js +12 -2
- 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 +21 -2
- package/dist/services/actionflow/context_provider.js.map +1 -1
- package/dist/services/actionflow/custom_trigger_context.d.ts +10 -0
- package/dist/services/actionflow/custom_trigger_context.d.ts.map +1 -0
- package/dist/services/actionflow/custom_trigger_context.js +46 -0
- package/dist/services/actionflow/custom_trigger_context.js.map +1 -0
- package/dist/services/actionflow/filter_rules.js +2 -2
- package/dist/services/actionflow/filter_rules.js.map +1 -1
- package/dist/services/actionflow/formula_service.d.ts +9 -1
- package/dist/services/actionflow/formula_service.d.ts.map +1 -1
- package/dist/services/actionflow/formula_service.js +59 -21
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/id_generator.d.ts +2 -0
- package/dist/services/actionflow/id_generator.d.ts.map +1 -1
- package/dist/services/actionflow/id_generator.js +13 -0
- package/dist/services/actionflow/id_generator.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +6 -1
- 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 +89 -35
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/auth-resp-condition.d.ts +35 -0
- package/dist/services/auth-resp-condition.d.ts.map +1 -0
- package/dist/services/auth-resp-condition.js +111 -0
- package/dist/services/auth-resp-condition.js.map +1 -0
- package/dist/services/condition-rules.d.ts.map +1 -1
- package/dist/services/condition-rules.js +4 -1
- package/dist/services/condition-rules.js.map +1 -1
- package/dist/services/esb-interface/document-parser.d.ts.map +1 -1
- package/dist/services/esb-interface/document-parser.js +62 -5
- package/dist/services/esb-interface/document-parser.js.map +1 -1
- package/dist/services/form-association.d.ts +19 -0
- package/dist/services/form-association.d.ts.map +1 -1
- package/dist/services/form-association.js +64 -0
- package/dist/services/form-association.js.map +1 -1
- package/dist/services/form-button-action.d.ts +7 -0
- package/dist/services/form-button-action.d.ts.map +1 -1
- package/dist/services/form-button-action.js +11 -1
- package/dist/services/form-button-action.js.map +1 -1
- package/dist/services/form-create.d.ts +4 -0
- package/dist/services/form-create.d.ts.map +1 -1
- package/dist/services/form-create.js +18 -12
- package/dist/services/form-create.js.map +1 -1
- package/dist/services/form-field-patch.d.ts +3 -1
- package/dist/services/form-field-patch.d.ts.map +1 -1
- package/dist/services/form-field-patch.js +23 -9
- package/dist/services/form-field-patch.js.map +1 -1
- package/dist/services/form-formula-linkage.d.ts +349 -0
- package/dist/services/form-formula-linkage.d.ts.map +1 -0
- package/dist/services/form-formula-linkage.js +546 -0
- package/dist/services/form-formula-linkage.js.map +1 -0
- package/dist/services/form-layout-insert.d.ts +84 -0
- package/dist/services/form-layout-insert.d.ts.map +1 -0
- package/dist/services/form-layout-insert.js +244 -0
- package/dist/services/form-layout-insert.js.map +1 -0
- package/dist/services/form-linkage-condition.d.ts +159 -0
- package/dist/services/form-linkage-condition.d.ts.map +1 -0
- package/dist/services/form-linkage-condition.js +307 -0
- package/dist/services/form-linkage-condition.js.map +1 -0
- package/dist/services/formula-detail.d.ts +98 -6
- package/dist/services/formula-detail.d.ts.map +1 -1
- package/dist/services/formula-detail.js +208 -26
- package/dist/services/formula-detail.js.map +1 -1
- package/dist/services/matrix-rows.d.ts +43 -0
- package/dist/services/matrix-rows.d.ts.map +1 -0
- package/dist/services/matrix-rows.js +104 -0
- package/dist/services/matrix-rows.js.map +1 -0
- package/dist/services/org-department.d.ts +114 -0
- package/dist/services/org-department.d.ts.map +1 -0
- package/dist/services/org-department.js +209 -0
- package/dist/services/org-department.js.map +1 -0
- package/dist/services/org-employee.d.ts +87 -0
- package/dist/services/org-employee.d.ts.map +1 -0
- package/dist/services/org-employee.js +219 -0
- package/dist/services/org-employee.js.map +1 -0
- package/dist/services/role-member.d.ts +99 -0
- package/dist/services/role-member.d.ts.map +1 -0
- package/dist/services/role-member.js +206 -0
- package/dist/services/role-member.js.map +1 -0
- package/dist/services/workflow-info.d.ts +83 -0
- package/dist/services/workflow-info.d.ts.map +1 -0
- package/dist/services/workflow-info.js +97 -0
- package/dist/services/workflow-info.js.map +1 -0
- package/dist/services/workflow-odoc-setting.d.ts +1 -1
- package/dist/services/workflow-odoc-setting.d.ts.map +1 -1
- package/dist/services/workflow-odoc-setting.js +15 -6
- package/dist/services/workflow-odoc-setting.js.map +1 -1
- package/dist/utils/column-name.d.ts +24 -0
- package/dist/utils/column-name.d.ts.map +1 -1
- package/dist/utils/column-name.js +16 -0
- package/dist/utils/column-name.js.map +1 -1
- package/ecodecmd/package.json +1 -2
- package/ecodecmd/src/loaddep.js +19 -9
- package/package.json +4 -4
- package/skill-docs/SKILL.md +13 -9
- package/skill-docs/_catalog.md +85 -81
- package/skill-docs/actionflows/SKILL.md +173 -170
- package/skill-docs/actionflows/references/components/logic/Output.md +1 -1
- package/skill-docs/actionflows/references/components/trigger/CustomTrigger.md +32 -0
- package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +1 -1
- package/skill-docs/references/common/guide-plan-template.md +9 -3
- package/skill-docs/references/common/ref-cli-commands.md +47 -22
- package/skill-docs/references/esb-interface/guide-import.md +4 -1
- package/skill-docs/references/form/guide-create-form.md +13 -0
- package/skill-docs/references/form/guide-field-linkage.md +2 -0
- package/skill-docs/references/form/guide-form-formula-functions.md +36 -0
- package/skill-docs/references/form/guide-form-layout-incremental.md +75 -0
- package/skill-docs/references/form/guide-form-linkage.md +61 -3
- package/skill-docs/references/form/guide-formula-linkage.md +250 -0
- package/skill-docs/references/form/ref-form-fields.md +6 -0
- package/skill-docs/references/hrm/guide-matrix.md +79 -16
- package/skill-docs/references/hrm/guide-org-employee.md +56 -0
- package/skill-docs/references/workflow/guide-workflow-auth-resp.md +48 -22
- package/skill-docs/references/workflow/guide-workflow-odoc-setting.md +248 -0
- package/skill-docs/references/workflow/guide-workflow-odoc.md +23 -51
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* 对齐 Python 版 core/workflow_compiler.py(黄金参照)。
|
|
4
4
|
* 第 1 期聚焦:ApproveTrigger / ActionEbAdd / ActionEbUpdate / ActionEbDelete / Output 的编译主链。
|
|
5
5
|
*/
|
|
6
|
-
import { genSfId } from './id_generator.js';
|
|
6
|
+
import { genSfId, normalizeNumericFrontId } from './id_generator.js';
|
|
7
7
|
import fs from 'node:fs';
|
|
8
8
|
import { get, getCompiler, getNodePost } from './components/index.js';
|
|
9
9
|
import { findInMetadata, getTargetFormFields, getWorkflowDetailNames, getTargetDetailFields, getWorkflowDetailFields, getWorkflowFieldIds, workflowFieldId, getWorkflowContextFields, getWorkflowContextFieldsByKey } from './runtime_metadata.js';
|
|
10
|
-
import { buildPersonFormula, buildSettingEntry, buildAssignBean, attachEsbAssign, resolveEnumConstant, resolveParamKey, resolveSourceFieldLabel, resolveSourceFieldType, normalizeConstantAssignment, lookupTargetFieldMeta, formulaFixedForAssignSwitch, formulaSystemVar, formulaContext, assignFlatContextDirect, getFormulaFn, formulaFunction, } from './formula_service.js';
|
|
10
|
+
import { buildPersonFormula, buildSettingEntry, buildAssignBean, attachEsbAssign, resolveEnumConstant, resolveParamKey, resolveSourceFieldLabel, resolveSourceFieldType, normalizeConstantAssignment, lookupTargetFieldMeta, formulaFixedForAssignSwitch, formulaSystemVar, formulaContext, assignFlatContextDirect, getFormulaFn, formulaFunction, contextRootForComponent, contextTableNameForRoot, normalizeContextParamKey, } from './formula_service.js';
|
|
11
11
|
import { buildFormulaReference, buildUpdateFieldCondition } from './components/action_eb_update_compiler.js';
|
|
12
|
+
import { resolveCustomTriggerDtoId } from './custom_trigger_context.js';
|
|
12
13
|
import { resolveSystemParameter, isDateSystemParameter } from './system_params.js';
|
|
13
14
|
import { conditionFieldFamily, filterFieldType, normalizeFilterOperator, conditionOperatorOverride, resolveFormCtx, buildFilterContextFormula, } from './filter_rules.js';
|
|
14
15
|
import { getStepBranches } from './step_branches.js';
|
|
@@ -224,7 +225,11 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
|
|
|
224
225
|
if (!wfName)
|
|
225
226
|
wfName = String(meta?._upstream_form_name || '');
|
|
226
227
|
const pn = wfName ? `${wfName}.${label}` : label;
|
|
227
|
-
|
|
228
|
+
const sourceComponent = String(val._resolvedContext?.componentType || val.componentType || '');
|
|
229
|
+
const updateMeta = sourceComponent === 'CustomTrigger'
|
|
230
|
+
? { ...(meta || {}), _context_component_type: sourceComponent }
|
|
231
|
+
: meta;
|
|
232
|
+
result.updateId = assignFlatContextDirect(resolved, label, String(eventId || val.source || '0'), appId, 'string', pn, updateMeta, val._resolvedContext?.fieldId);
|
|
228
233
|
// esbAssign.wId 指向当前数据动作节点(设计器动态赋值定位用),与 filterInput 修复同源。
|
|
229
234
|
attachEsbAssign(result.updateId, meta, String(eventId || val.source || '0'));
|
|
230
235
|
}
|
|
@@ -279,18 +284,25 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
|
|
|
279
284
|
result.filterInput = buildFilterInput(result, val, meta, appId, componentType);
|
|
280
285
|
}
|
|
281
286
|
else if (special === '_bizWorkflowPath' && val && typeof val === 'object') {
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
287
|
+
const workflowRows = Array.isArray(val) ? val : [val];
|
|
288
|
+
result.workflowPath = workflowRows
|
|
289
|
+
.filter((item) => item && typeof item === 'object' && !Array.isArray(item))
|
|
290
|
+
.map((item) => {
|
|
291
|
+
// ApproveCreateDTO 接收前端完整的 WorkflowPathBrowser 对象;只归一化
|
|
292
|
+
// 后端保存必需的别名,不能重建对象后丢掉 version/status/分权等字段。
|
|
293
|
+
const workflow = JSON.parse(JSON.stringify(item));
|
|
294
|
+
const wfId = String(workflow.id || workflow.createFlowId || '');
|
|
295
|
+
let formIds = workflow.formIds;
|
|
296
|
+
if (!Array.isArray(formIds))
|
|
297
|
+
formIds = workflow.formId || workflow.objId ? [String(workflow.formId || workflow.objId)] : [];
|
|
298
|
+
workflow.id = wfId;
|
|
299
|
+
workflow.formIds = formIds.filter(Boolean).map(String);
|
|
300
|
+
workflow.createFlowId = String(workflow.createFlowId || wfId);
|
|
301
|
+
workflow.workflowtype = String(workflow.workflowtype ?? workflow.workflowType ?? appId ?? '');
|
|
302
|
+
workflow.bridgeService ??= 'ebuilder';
|
|
303
|
+
workflow.relateFormTypes ??= ['WEA_EBUILDER'];
|
|
304
|
+
return workflow;
|
|
305
|
+
});
|
|
294
306
|
}
|
|
295
307
|
else if (special === '_bizRequestName') {
|
|
296
308
|
if (typeof val === 'string' && val.trim())
|
|
@@ -306,7 +318,10 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
|
|
|
306
318
|
else {
|
|
307
319
|
const wfId = String(meta?._workflow_id || '');
|
|
308
320
|
const rqKey = resolveParamKey(wfId, String(val.key ?? val.value ?? ''));
|
|
309
|
-
result.requestName = formulaContext('', rqKey, {
|
|
321
|
+
result.requestName = formulaContext('', rqKey, {
|
|
322
|
+
name: String(val.label || ''),
|
|
323
|
+
frontId: val._resolvedContext?.fieldId || val.frontId || val.fieldId,
|
|
324
|
+
});
|
|
310
325
|
attachEsbAssign(result.requestName, meta, String(eventId || ''));
|
|
311
326
|
}
|
|
312
327
|
}
|
|
@@ -375,7 +390,7 @@ function handleBasisValue(val, result, meta, appId, eventId) {
|
|
|
375
390
|
comId: srcId, newParentName: bvParent,
|
|
376
391
|
};
|
|
377
392
|
const bvf = {
|
|
378
|
-
frontId: bvId, formulaType: bvfType, name: bvLabel, businessId: fBiz, id: fId,
|
|
393
|
+
frontId: normalizeNumericFrontId(bvId, '依据值 FormulaBean.frontId'), formulaType: bvfType, name: bvLabel, businessId: fBiz, id: fId,
|
|
379
394
|
source: srcId, type: '3', value: `FormData.${bvKey}`, childs: [], config: bvfConfig, parentId: '0',
|
|
380
395
|
};
|
|
381
396
|
// 依据值公式同样需要 esbAssign.wId 指向当前数据动作节点(设计器动态赋值定位用)。
|
|
@@ -1076,6 +1091,7 @@ function conditionFormulaType(right, shape, sourceId) {
|
|
|
1076
1091
|
name: String(right?.label || right?.name || key),
|
|
1077
1092
|
fieldType: shape.formulaType,
|
|
1078
1093
|
componentType: String(right?.componentType || right?.comType || 'ApproveTrigger'),
|
|
1094
|
+
frontId: right?._resolvedContext?.fieldId || right?._resolvedContext?.rawField?.id || right?.frontId || right?.fieldId,
|
|
1079
1095
|
});
|
|
1080
1096
|
bean.businessId = String(right?.businessId || bean.businessId || '0');
|
|
1081
1097
|
return bean;
|
|
@@ -1297,6 +1313,11 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
|
|
|
1297
1313
|
if (item.basisValue && typeof item.basisValue === 'object') {
|
|
1298
1314
|
const bvVal = item.basisValue;
|
|
1299
1315
|
let bvKey = String(bvVal.paramKey || bvVal.key || '').trim();
|
|
1316
|
+
const isCustomTriggerSource = String(meta?._context_component_type || meta?._upstream_component_type || '') === 'CustomTrigger';
|
|
1317
|
+
const basisContextRoot = isCustomTriggerSource ? contextRootForComponent('CustomTrigger') : 'FormData';
|
|
1318
|
+
const basisTableName = contextTableNameForRoot(basisContextRoot);
|
|
1319
|
+
if (isCustomTriggerSource)
|
|
1320
|
+
bvKey = normalizeContextParamKey(bvKey, 'CustomTrigger');
|
|
1300
1321
|
if (bvKey && !bvKey.includes('[]')) {
|
|
1301
1322
|
const wfId = String(meta?._workflow_id || '');
|
|
1302
1323
|
const keyIndex = wfId ? getWorkflowContextFieldsByKey()[wfId] || {} : {};
|
|
@@ -1314,16 +1335,28 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
|
|
|
1314
1335
|
prefix = String(meta._upstream_form_name || '');
|
|
1315
1336
|
}
|
|
1316
1337
|
const parentName = prefix ? `${prefix}.${bvLabel}[]` : `${bvLabel}[]`;
|
|
1317
|
-
|
|
1338
|
+
// CustomTrigger 的明细依据值也是表维度上下文,frontId 必须取
|
|
1339
|
+
// CustFormTableDto.id,不能把 detail1 这类 paramKey 尾段直接当成 ID。
|
|
1340
|
+
const customTriggerTableId = isCustomTriggerSource
|
|
1341
|
+
? resolveCustomTriggerDtoId(bvKey, meta?._custom_trigger_data, 'table')
|
|
1342
|
+
: '';
|
|
1343
|
+
const legacyBvSubformId = bvKey.includes('[]')
|
|
1344
|
+
? bvKey.split('[]')[0].includes('.')
|
|
1345
|
+
? bvKey.split('[]')[0].slice(bvKey.split('[]')[0].lastIndexOf('.') + 1)
|
|
1346
|
+
: bvKey
|
|
1347
|
+
: bvKey;
|
|
1348
|
+
// CustomTrigger 无法定位 DTO 表对象时按统一规则留空;不能回退到
|
|
1349
|
+
// detail1 这类业务 paramKey,否则既不是真实 ID,也会触发数字校验。
|
|
1350
|
+
const bvSubformId = isCustomTriggerSource ? customTriggerTableId : legacyBvSubformId;
|
|
1318
1351
|
ele.basisValue = {
|
|
1319
|
-
frontId: bvSubformId,
|
|
1352
|
+
frontId: normalizeNumericFrontId(bvSubformId, '明细依据值 FormulaBean.frontId'),
|
|
1320
1353
|
formulaType: bvType,
|
|
1321
1354
|
name: bvLabel,
|
|
1322
1355
|
businessId: appId,
|
|
1323
1356
|
id: genSfId(),
|
|
1324
1357
|
source: String(eventId),
|
|
1325
1358
|
type: '3',
|
|
1326
|
-
value:
|
|
1359
|
+
value: `${basisContextRoot}.${bvKey}`,
|
|
1327
1360
|
childs: [],
|
|
1328
1361
|
config: {
|
|
1329
1362
|
paramKey: bvKey,
|
|
@@ -1335,12 +1368,13 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
|
|
|
1335
1368
|
multKey: '',
|
|
1336
1369
|
multTypeObj: {
|
|
1337
1370
|
allName: parentName, currentName: parentName,
|
|
1338
|
-
currentParamKey:
|
|
1371
|
+
currentParamKey: `${basisContextRoot}.${bvKey}`, allParamKey: `${basisContextRoot}.${bvKey}`,
|
|
1339
1372
|
},
|
|
1340
1373
|
comId: String(eventId),
|
|
1341
|
-
comType: 'ApproveTrigger',
|
|
1374
|
+
comType: isCustomTriggerSource ? 'CustomTrigger' : 'ApproveTrigger',
|
|
1342
1375
|
newParentName: parentName,
|
|
1343
|
-
|
|
1376
|
+
tableName: basisTableName,
|
|
1377
|
+
fieldInfo: { paramKey: bvKey, tablePrimaryKey: basisContextRoot },
|
|
1344
1378
|
},
|
|
1345
1379
|
parentId: '0',
|
|
1346
1380
|
};
|
|
@@ -1506,6 +1540,13 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1506
1540
|
parentId: '0',
|
|
1507
1541
|
};
|
|
1508
1542
|
const nodeData = node.data || {};
|
|
1543
|
+
if (nodeType === 'ApproveCreate') {
|
|
1544
|
+
// ApproveCreateComponent#save 使用这些 DTO 字段;它们不能依赖前端默认值。
|
|
1545
|
+
nodeData.module ??= 'workflow';
|
|
1546
|
+
nodeData.applicationId ??= String(appId);
|
|
1547
|
+
nodeData.dataId ??= [];
|
|
1548
|
+
nodeData.rejectToNodeId ??= [];
|
|
1549
|
+
}
|
|
1509
1550
|
const pendingMapping = nodeData._pending_mapping;
|
|
1510
1551
|
delete nodeData._pending_mapping;
|
|
1511
1552
|
const pendingConstants = nodeData._pending_constants;
|
|
@@ -1525,15 +1566,18 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1525
1566
|
delete nodeData.setting;
|
|
1526
1567
|
const main = (setting || {}).main || {};
|
|
1527
1568
|
const detailOut = (setting || {}).detail || [];
|
|
1528
|
-
nodeData.formData = { main, detail: detailOut, dataDrWithCalc: false };
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
bizFields =
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1569
|
+
nodeData.formData = { main, detail: detailOut, dataDrWithCalc: false, deleteMainFields: [] };
|
|
1570
|
+
// ApproveCreateDTO 没有使用 fields;目标字段仅用于编译 mapping,不能写入保存 DTO。
|
|
1571
|
+
if (nodeType !== 'ApproveCreate') {
|
|
1572
|
+
const fieldsMetaKey = String(formDataPayload.fieldsMetaKey || '_bizFields');
|
|
1573
|
+
let bizFields = meta && typeof meta === 'object' ? (meta[fieldsMetaKey] || {}) : {};
|
|
1574
|
+
if (!bizFields || Object.keys(bizFields).length === 0)
|
|
1575
|
+
bizFields = draftAction.params?.[fieldsMetaKey] || {};
|
|
1576
|
+
nodeData.fields = {
|
|
1577
|
+
main: bizFields && typeof bizFields === 'object' ? (bizFields.main || []) : [],
|
|
1578
|
+
detail: bizFields && typeof bizFields === 'object' ? (bizFields.detail || []) : [],
|
|
1579
|
+
};
|
|
1580
|
+
}
|
|
1537
1581
|
}
|
|
1538
1582
|
else if (pendingDetail && !(pendingMapping || pendingConstants || pendingFormula)) {
|
|
1539
1583
|
// 只有明细表赋值(无主表 mapping/constants):先 _fill_setting 生成空 main + setting,再放回 detail。
|
|
@@ -1543,8 +1587,9 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1543
1587
|
}
|
|
1544
1588
|
else if (formDataPayload && typeof formDataPayload === 'object') {
|
|
1545
1589
|
// 声明 formDataPayload 的组件即使没有字段映射,也显式携带表单数据容器。
|
|
1546
|
-
nodeData.formData ??= { main: {}, detail: [], dataDrWithCalc: false };
|
|
1547
|
-
|
|
1590
|
+
nodeData.formData ??= { main: {}, detail: [], dataDrWithCalc: false, deleteMainFields: [] };
|
|
1591
|
+
if (nodeType !== 'ApproveCreate')
|
|
1592
|
+
nodeData.fields ??= { main: [], detail: [] };
|
|
1548
1593
|
nodeData.formDataId ??= genSfId();
|
|
1549
1594
|
}
|
|
1550
1595
|
else if ((pendingMapping || pendingConstants || pendingFormula) && !('setting' in nodeData)) {
|
|
@@ -1673,7 +1718,9 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1673
1718
|
// saveDesign 需要 fields 明确登记组件配置的可持久化字段。
|
|
1674
1719
|
// 手工添加的 EnquiryForm 等节点都会带这组字段;仅发送 data
|
|
1675
1720
|
// 会导致后端保存后无法按 data.id 读取配置,前端回显为全部必填为空。
|
|
1676
|
-
|
|
1721
|
+
// ApproveCreate 直接对应 ApproveCreateDTO,后端不接收该字段。
|
|
1722
|
+
if (nodeType !== 'ApproveCreate')
|
|
1723
|
+
node.fields = Object.keys(node.data || {});
|
|
1677
1724
|
delete node.componentId;
|
|
1678
1725
|
// 保留上面依据 previousNodeId 建立的 sources。组件目录壳只补前端元数据,
|
|
1679
1726
|
// 不能把非首节点重新变成起始节点,否则平台会拒绝“有两个起始执行组件”。
|
|
@@ -1691,6 +1738,13 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1691
1738
|
if (postNode) {
|
|
1692
1739
|
node = postNode(node, { draftAction, meta: meta || {}, appId, eventNodeId, isEvent });
|
|
1693
1740
|
}
|
|
1741
|
+
// ApproveCreateDTO 的保存请求不需要 fields;同时清掉可能由目录元数据或
|
|
1742
|
+
// 旧编译结果带入的同名字段,避免它出现在最终请求 JSON 中。
|
|
1743
|
+
if (nodeType === 'ApproveCreate') {
|
|
1744
|
+
delete node.fields;
|
|
1745
|
+
if (node.data && typeof node.data === 'object')
|
|
1746
|
+
delete node.data.fields;
|
|
1747
|
+
}
|
|
1694
1748
|
return node;
|
|
1695
1749
|
}
|
|
1696
1750
|
// ── convert_condition ───────────────────────────────────────
|