weaver-e10-builder 1.6.0 → 1.6.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/dist/commands/actionflow.d.ts.map +1 -1
- package/dist/commands/actionflow.js +2 -0
- package/dist/commands/actionflow.js.map +1 -1
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +109 -51
- package/dist/commands/check.js.map +1 -1
- 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-attachment-setting.d.ts +3 -0
- package/dist/commands/form-attachment-setting.d.ts.map +1 -0
- package/dist/commands/form-attachment-setting.js +422 -0
- package/dist/commands/form-attachment-setting.js.map +1 -0
- package/dist/commands/form-browser-definition.js +8 -8
- package/dist/commands/form-browser-definition.js.map +1 -1
- package/dist/commands/form-code.js +7 -7
- package/dist/commands/form-code.js.map +1 -1
- package/dist/commands/form-data.d.ts.map +1 -1
- package/dist/commands/form-data.js +50 -2
- package/dist/commands/form-data.js.map +1 -1
- package/dist/commands/form-ebuilder-scope.js +8 -8
- package/dist/commands/form-ebuilder-scope.js.map +1 -1
- package/dist/commands/form-engine-linkage.js +12 -12
- package/dist/commands/form-engine-linkage.js.map +1 -1
- package/dist/commands/form-field-linkage.d.ts +6 -1
- package/dist/commands/form-field-linkage.d.ts.map +1 -1
- package/dist/commands/form-field-linkage.js +138 -31
- package/dist/commands/form-field-linkage.js.map +1 -1
- package/dist/commands/form-layout-diff.js +1 -1
- package/dist/commands/form-layout-diff.js.map +1 -1
- package/dist/commands/form-layout-edit.js +1 -1
- package/dist/commands/form-layout-edit.js.map +1 -1
- package/dist/commands/form-layout-init-reviewed.js +1 -1
- package/dist/commands/form-layout-init-reviewed.js.map +1 -1
- package/dist/commands/form-layout-init.js +2 -2
- package/dist/commands/form-layout-init.js.map +1 -1
- package/dist/commands/form-layout-template-easy.js +1 -1
- package/dist/commands/form-layout-template-easy.js.map +1 -1
- package/dist/commands/form-layout.js +4 -4
- package/dist/commands/form-layout.js.map +1 -1
- package/dist/commands/form-view.d.ts.map +1 -1
- package/dist/commands/form-view.js +1 -2
- package/dist/commands/form-view.js.map +1 -1
- package/dist/commands/form.d.ts.map +1 -1
- package/dist/commands/form.js +50 -5
- package/dist/commands/form.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +39 -6
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/report-admin.js +1 -1
- package/dist/commands/report-admin.js.map +1 -1
- package/dist/commands/report-query.js +1 -1
- package/dist/commands/report-query.js.map +1 -1
- package/dist/commands/report.js +1 -1
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/wf-form-layout-init-reviewed.d.ts +3 -0
- package/dist/commands/wf-form-layout-init-reviewed.d.ts.map +1 -0
- package/dist/commands/wf-form-layout-init-reviewed.js +71 -0
- package/dist/commands/wf-form-layout-init-reviewed.js.map +1 -0
- 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 +16 -16
- package/dist/commands/wf-form.js.map +1 -1
- package/dist/commands/workflow-advanced.js +1 -1
- package/dist/commands/workflow-advanced.js.map +1 -1
- package/dist/commands/workflow-basic-info.js +4 -4
- package/dist/commands/workflow-basic-info.js.map +1 -1
- package/dist/commands/workflow.js +6 -6
- package/dist/commands/workflow.js.map +1 -1
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/services/actionflow/classified_protection_source.d.ts +10 -0
- package/dist/services/actionflow/classified_protection_source.d.ts.map +1 -0
- package/dist/services/actionflow/classified_protection_source.js +27 -0
- package/dist/services/actionflow/classified_protection_source.js.map +1 -0
- package/dist/services/actionflow/components/action_eb_add.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_add.js +4 -5
- package/dist/services/actionflow/components/action_eb_add.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 +13 -1
- package/dist/services/actionflow/components/action_eb_update.js.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts +12 -0
- package/dist/services/actionflow/components/action_eb_update_compiler.d.ts.map +1 -1
- package/dist/services/actionflow/components/action_eb_update_compiler.js +88 -3
- 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 -10
- package/dist/services/actionflow/components/approve_create.js.map +1 -1
- package/dist/services/actionflow/components/condition.d.ts.map +1 -1
- package/dist/services/actionflow/components/condition.js +3 -2
- package/dist/services/actionflow/components/condition.js.map +1 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.d.ts.map +1 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.js +9 -1
- package/dist/services/actionflow/components/eb_get_data_by_id.js.map +1 -1
- package/dist/services/actionflow/components/send_message.js +1 -1
- 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 +20 -11
- 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 +9 -1
- package/dist/services/actionflow/context_preflight.js.map +1 -1
- package/dist/services/actionflow/design_client.d.ts +4 -0
- package/dist/services/actionflow/design_client.d.ts.map +1 -1
- package/dist/services/actionflow/design_client.js +65 -0
- package/dist/services/actionflow/design_client.js.map +1 -1
- package/dist/services/actionflow/form_source.d.ts +9 -2
- package/dist/services/actionflow/form_source.d.ts.map +1 -1
- package/dist/services/actionflow/form_source.js +21 -6
- 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 +153 -37
- package/dist/services/actionflow/formula_service.js.map +1 -1
- package/dist/services/actionflow/preflight_service.d.ts +14 -3
- package/dist/services/actionflow/preflight_service.d.ts.map +1 -1
- package/dist/services/actionflow/preflight_service.js +276 -42
- 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 +154 -23
- package/dist/services/actionflow/workflow_compiler.js.map +1 -1
- package/dist/services/form-attachment-settings.d.ts +110 -0
- package/dist/services/form-attachment-settings.d.ts.map +1 -0
- package/dist/services/form-attachment-settings.js +332 -0
- package/dist/services/form-attachment-settings.js.map +1 -0
- package/dist/services/form-attachment-upload.d.ts +30 -0
- package/dist/services/form-attachment-upload.d.ts.map +1 -0
- package/dist/services/form-attachment-upload.js +76 -0
- package/dist/services/form-attachment-upload.js.map +1 -0
- package/dist/services/form-data-openapi.d.ts +2 -0
- package/dist/services/form-data-openapi.d.ts.map +1 -1
- package/dist/services/form-data-openapi.js +1 -0
- package/dist/services/form-data-openapi.js.map +1 -1
- package/dist/services/workflow-layout-init-reviewed.d.ts +35 -0
- package/dist/services/workflow-layout-init-reviewed.d.ts.map +1 -0
- package/dist/services/workflow-layout-init-reviewed.js +120 -0
- package/dist/services/workflow-layout-init-reviewed.js.map +1 -0
- package/package.json +1 -1
- package/skill-docs/SKILL.md +163 -160
- package/skill-docs/_catalog.md +6 -4
- package/skill-docs/actionflows/SKILL.md +2 -0
- package/skill-docs/actionflows/references/components/ebuilder/ActionEbUpdate.md +2 -0
- package/skill-docs/actionflows/references/components/ebuilder/EventButton.md +1 -1
- package/skill-docs/actionflows/references/components/logic/Condition.md +2 -0
- package/skill-docs/actionflows/references/components/message/SendMessage.md +2 -2
- package/skill-docs/actionflows/references/components/workflow/ApproveCommit.md +17 -17
- package/skill-docs/actionflows/references/components/workflow/ApproveCreate.md +1 -1
- package/skill-docs/actionflows/references/components/workflow/ApproveSave.md +1 -1
- package/skill-docs/actionflows/references/components/workflow/ApproveSendBack.md +17 -17
- package/skill-docs/assets/sample/api/formApi.js +689 -510
- package/skill-docs/assets/sample/app/config.js +4 -0
- package/skill-docs/assets/sample/app/fields.js +25 -0
- package/skill-docs/assets/sample/entry.js +24 -22
- package/skill-docs/assets/sample/eslint.config.cjs +1 -0
- package/skill-docs/assets/sample/pages/Items.js +247 -0
- package/skill-docs/assets/sample/styles/prototypeStyles.js +137 -0
- package/skill-docs/references/coding/guide-edit-backfill.md +102 -150
- package/skill-docs/references/coding/guide-form-crud.md +195 -172
- package/skill-docs/references/coding/guide-html-to-react.md +250 -0
- package/skill-docs/references/coding/guide-page-code.md +194 -167
- package/skill-docs/references/coding/guide-page-export.md +27 -18
- package/skill-docs/references/coding/ref-compile-rules.md +7 -7
- package/skill-docs/references/common/map.md +2 -1
- package/skill-docs/references/common/ref-cli-commands.md +14 -6
- package/skill-docs/references/components/display-FilePreview.md +5 -4
- package/skill-docs/references/form/guide-browser-definition.md +73 -40
- package/skill-docs/references/form/guide-field-linkage.md +4 -1
- package/skill-docs/references/form/guide-form-attachment-setting.md +95 -0
- package/skill-docs/references/form/guide-form-data.md +22 -1
- package/skill-docs/references/form/layout/code-block/layout-css.md +41 -0
- package/skill-docs/references/form/layout/initialization.md +2 -0
- package/skill-docs/references/form/layout/layout-overview.md +8 -0
- package/skill-docs/references/form/layout/template/advanced.md +21 -0
- package/skill-docs/references/form/layout/template/easy.md +2 -0
- package/skill-docs/references/form/layout/template/flow.md +2 -0
- package/skill-docs/references/form/layout/template/template-guide.md +3 -1
- package/skill-docs/references/form/layout/workflow-layout.md +13 -1
- package/skill-docs/references/form/ref-form-fields.md +18 -4
- package/skill-docs/references/workflow/guide-workflow-odoc.md +1 -1
- package/skill-docs/assets/sample/config/config.js +0 -0
- package/skill-docs/assets/sample/config/configLoad.js +0 -0
- package/skill-docs/assets/sample/config/configLoad_default.js +0 -0
- package/skill-docs/assets/sample/config/config_default.js +0 -0
- package/skill-docs/assets/sample/memo.md +0 -0
- package/skill-docs/assets/sample/readme.js +0 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow_compiler.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/workflow_compiler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AA+H7D;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAChD,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,IAAI,CAeN;AAID,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,eAAe,EACpB,YAAY,UAAQ,GACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA4DrB;
|
|
1
|
+
{"version":3,"file":"workflow_compiler.d.ts","sourceRoot":"","sources":["../../../src/services/actionflow/workflow_compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { get, getCompiler, getNodePost } from './components/index.js';
|
|
|
9
9
|
import { applyFormFieldSettingOptions, buildEsbFormDataDto, buildEsbFormField, } from './components/form_data_builder.js';
|
|
10
10
|
import { findInMetadata, getTargetFormFields, getTargetDataSourceFields, getWorkflowDetailNames, getTargetDetailFields, getWorkflowDetailFields, getWorkflowFieldIds, workflowFieldId, getWorkflowContextFields, getWorkflowContextFieldsByKey } from './runtime_metadata.js';
|
|
11
11
|
import { buildPersonFormula, buildAssignBean, attachEsbAssign, resolveEnumConstant, resolveParamKey, resolveSourceFieldLabel, resolveSourceFieldType, normalizeConstantAssignment, lookupTargetFieldMeta, formulaFixedForAssignSwitch, formulaSystemVar, formulaContext, assignFlatContextDirect, getFormulaFn, formulaFunction, contextTableNameForRoot, normalizeContextParamKey, resolveFormSettingBasisParentName, contextMetaForReference, resolvedContextRoot, protocolParamKey, } from './formula_service.js';
|
|
12
|
-
import { buildFormulaReference, buildUpdateFieldCondition } from './components/action_eb_update_compiler.js';
|
|
12
|
+
import { buildFormulaReference, buildUpdateFieldCondition, resolveUpdateBasisChild } from './components/action_eb_update_compiler.js';
|
|
13
13
|
import { resolveCustomTriggerDtoId } from './custom_trigger_context.js';
|
|
14
14
|
import { resolveSystemParameter, isDateSystemParameter } from './system_params.js';
|
|
15
15
|
import { conditionFieldFamily, filterFieldType, normalizeFilterOperator, conditionOperatorOverride, resolveFormCtx, buildFilterContextFormula, } from './filter_rules.js';
|
|
@@ -180,7 +180,7 @@ export function compileComponentData(draftParams, componentType, ctx, skipCompil
|
|
|
180
180
|
for (const t of targets) {
|
|
181
181
|
if (t.startsWith('_')) {
|
|
182
182
|
try {
|
|
183
|
-
handleSpecial(draftKey, t, val, result, meta, appId, actionIndex, eventNodeId, componentType, eventName, hasBasisValue);
|
|
183
|
+
handleSpecial(draftKey, t, val, result, meta, appId, actionIndex, eventNodeId, componentType, eventName, hasBasisValue, params.basisValue);
|
|
184
184
|
}
|
|
185
185
|
catch (e) {
|
|
186
186
|
if (!lenient)
|
|
@@ -258,7 +258,7 @@ function normalizeEventFormDataTrigger(result, params, componentType) {
|
|
|
258
258
|
result.triggerType = 'sequence';
|
|
259
259
|
}
|
|
260
260
|
// ── _handle_special ─────────────────────────────────────────
|
|
261
|
-
function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId, componentType, eventName, hasBasisValue = false) {
|
|
261
|
+
function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId, componentType, eventName, hasBasisValue = false, basisValue = undefined) {
|
|
262
262
|
if (special === '_person' && val && typeof val === 'object' && !Array.isArray(val)) {
|
|
263
263
|
const contract = get(componentType) || {};
|
|
264
264
|
const personTarget = contract.personTarget ?? 'person';
|
|
@@ -278,6 +278,16 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
|
|
|
278
278
|
attachEsbAssign(result.updateId, meta, String(eventId || ''));
|
|
279
279
|
return;
|
|
280
280
|
}
|
|
281
|
+
const basisChild = resolveUpdateBasisChild(val, basisValue);
|
|
282
|
+
if (basisChild) {
|
|
283
|
+
result.updateId = buildAssignBean({
|
|
284
|
+
...val,
|
|
285
|
+
basisParamKey: basisChild.basisParamKey,
|
|
286
|
+
basisType: basisChild.basisType,
|
|
287
|
+
}, 'updateId', String(val?.fieldType || val?.valueType || 'string'), meta, appId, eventId);
|
|
288
|
+
attachEsbAssign(result.updateId, meta, String(eventId || val?.source || '0'));
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
281
291
|
const wfId = String(meta?._workflow_id || '');
|
|
282
292
|
if (val && typeof val === 'object' && (val.kind === 'context' || val.key || val.paramKey)) {
|
|
283
293
|
const key = String(val.paramKey || val.key || val.fieldKey || '');
|
|
@@ -319,7 +329,7 @@ function handleSpecial(draftKey, special, val, result, meta, appId, idx, eventId
|
|
|
319
329
|
}
|
|
320
330
|
}
|
|
321
331
|
else if (special === '_updateFieldCondition') {
|
|
322
|
-
const condition = buildUpdateFieldCondition(val, { meta, appId, eventId, componentType });
|
|
332
|
+
const condition = buildUpdateFieldCondition(val, { meta, appId, eventId, componentType, basisValue });
|
|
323
333
|
result.updateFieldCondition = condition;
|
|
324
334
|
(result.setting ??= {}).updateFieldCondition = JSON.parse(JSON.stringify(condition));
|
|
325
335
|
result.updateCondition = (condition.updateField || []).filter((it) => it && typeof it === 'object' && it.fieldKey).map((it) => String(it.fieldKey));
|
|
@@ -843,7 +853,9 @@ export function buildFilterInput(result, val, meta, appId, componentType = '', a
|
|
|
843
853
|
const fieldIndex = {};
|
|
844
854
|
// ActionEbDelete 的前端 ConditionSet 与查询/定时组件共用 dataSource
|
|
845
855
|
// 字段选择器;条件左值必须来自 ds/fields,不能仅依赖 getEbField。
|
|
846
|
-
const strictDataSourceCondition = [
|
|
856
|
+
const strictDataSourceCondition = [
|
|
857
|
+
'ActionEbDelete', 'ActionEbUpdate', 'EnquiryForm', 'TimeBatchTrigger', 'DateTrigger',
|
|
858
|
+
].includes(componentType);
|
|
847
859
|
if (!strictDataSourceCondition) {
|
|
848
860
|
for (const f of form.fields || [])
|
|
849
861
|
fieldIndex[String(f.id || '')] = f;
|
|
@@ -1173,6 +1185,62 @@ function conditionFieldShape(workflowId, fieldKey, fieldLabel) {
|
|
|
1173
1185
|
return { family: 'list', prefix: 'List', formulaType: 'json' };
|
|
1174
1186
|
return { family: 'string', prefix: 'String', formulaType: 'string' };
|
|
1175
1187
|
}
|
|
1188
|
+
function conditionFormulaShape(left, workflowId, fieldKey, fieldLabel) {
|
|
1189
|
+
const kind = String(left?.kind || left?.assignmentKind || left?.type || '').trim().toLowerCase();
|
|
1190
|
+
if (kind !== 'function' && kind !== 'formula')
|
|
1191
|
+
return conditionFieldShape(workflowId, fieldKey, fieldLabel);
|
|
1192
|
+
const resultType = String(left?.resultType || left?.fieldType || left?.valueType || '').trim().toLowerCase();
|
|
1193
|
+
if (['int', 'integer', 'number', 'double', 'float', 'money', 'decimal'].includes(resultType)) {
|
|
1194
|
+
return { family: 'number', prefix: 'Number', formulaType: 'double' };
|
|
1195
|
+
}
|
|
1196
|
+
if (['datetime', 'date', 'time'].includes(resultType)) {
|
|
1197
|
+
const prefix = resultType === 'datetime' ? 'DateTime' : resultType[0].toUpperCase() + resultType.slice(1);
|
|
1198
|
+
return { family: resultType, prefix, formulaType: resultType };
|
|
1199
|
+
}
|
|
1200
|
+
if (['bool', 'boolean'].includes(resultType))
|
|
1201
|
+
return { family: 'bool', prefix: 'Bool', formulaType: 'bool' };
|
|
1202
|
+
return { family: 'string', prefix: 'String', formulaType: 'string' };
|
|
1203
|
+
}
|
|
1204
|
+
function conditionFunctionBean(left, fieldLabel, shape, meta, sourceId) {
|
|
1205
|
+
const bean = buildAssignBean(left, fieldLabel, shape.formulaType, meta, String(meta?._app_id || ''), sourceId);
|
|
1206
|
+
// 条件编辑器的 FunctionItem 与普通赋值 FormulaBean 使用同一棵 childs
|
|
1207
|
+
// 树,但前端保留 config 为对象、resultType 为结果类型;普通赋值组件则
|
|
1208
|
+
// 会把 config 序列化成字符串。saveCondition 只会持久化前者,后者会被
|
|
1209
|
+
// 接受但在 getExpressionBean 回读时丢掉整个叶子。
|
|
1210
|
+
let config = {};
|
|
1211
|
+
if (typeof bean.config === 'string') {
|
|
1212
|
+
try {
|
|
1213
|
+
config = JSON.parse(bean.config);
|
|
1214
|
+
}
|
|
1215
|
+
catch {
|
|
1216
|
+
config = {};
|
|
1217
|
+
}
|
|
1218
|
+
}
|
|
1219
|
+
else if (bean.config && typeof bean.config === 'object') {
|
|
1220
|
+
config = { ...bean.config };
|
|
1221
|
+
}
|
|
1222
|
+
const conditionType = shape.family === 'number' ? 'number' : shape.formulaType;
|
|
1223
|
+
const normalized = {
|
|
1224
|
+
...bean,
|
|
1225
|
+
formulaType: conditionType,
|
|
1226
|
+
resultType: conditionType,
|
|
1227
|
+
fieldType: conditionType,
|
|
1228
|
+
config: {
|
|
1229
|
+
originId: String(config.originId || ''),
|
|
1230
|
+
paramSize: String(config.paramSize ?? bean.childs?.length ?? 0),
|
|
1231
|
+
paramType: conditionType,
|
|
1232
|
+
functionType: config.functionType || conditionType,
|
|
1233
|
+
detail: Array.isArray(bean.detail) ? bean.detail : [],
|
|
1234
|
+
},
|
|
1235
|
+
};
|
|
1236
|
+
if (config.excelFunc && typeof config.excelFunc === 'object')
|
|
1237
|
+
normalized.config.excelFunc = config.excelFunc;
|
|
1238
|
+
delete normalized.configObject;
|
|
1239
|
+
delete normalized.applicationId;
|
|
1240
|
+
delete normalized.parentId;
|
|
1241
|
+
delete normalized.sortWeight;
|
|
1242
|
+
return normalized;
|
|
1243
|
+
}
|
|
1176
1244
|
function conditionRelationCode(value) {
|
|
1177
1245
|
const relation = String(value ?? 'and').trim().toLowerCase();
|
|
1178
1246
|
return ['2', 'or', '||', '或'].includes(relation) ? 2 : 1;
|
|
@@ -1240,8 +1308,14 @@ function buildSingleConditionDetail(condition, sourceId, meta = null) {
|
|
|
1240
1308
|
if (!condition || typeof condition !== 'object')
|
|
1241
1309
|
return {};
|
|
1242
1310
|
const left = condition.left || {};
|
|
1243
|
-
const
|
|
1244
|
-
const
|
|
1311
|
+
const leftKind = String(left.kind || left.assignmentKind || left.type || '').trim().toLowerCase();
|
|
1312
|
+
const functionLeft = leftKind === 'function' || leftKind === 'formula';
|
|
1313
|
+
const leftArgs = Array.isArray(left.args) ? left.args : (Array.isArray(left.arguments) ? left.arguments : []);
|
|
1314
|
+
const contextArg = functionLeft
|
|
1315
|
+
? leftArgs.find((arg) => ['context', 'dynamic', 'formfield', 'form_field'].includes(String(arg?.kind || arg?.assignmentKind || arg?.type || '').toLowerCase()))
|
|
1316
|
+
: null;
|
|
1317
|
+
const requestedFieldKey = String(contextArg?.paramKey || contextArg?.key || left.key || left.value || '').trim();
|
|
1318
|
+
const requestedLabel = String(contextArg?.label || contextArg?.name || left.label || left.name || requestedFieldKey || '').trim();
|
|
1245
1319
|
const operator = String(condition.operator || '').trim().toLowerCase();
|
|
1246
1320
|
const workflowId = meta && typeof meta === 'object' ? String(meta._workflow_id || '') : '';
|
|
1247
1321
|
// 条件计划允许使用完整 paramKey、paramName、真实字段 id 或界面显示名;统一回到
|
|
@@ -1262,7 +1336,7 @@ function buildSingleConditionDetail(condition, sourceId, meta = null) {
|
|
|
1262
1336
|
throw new Error(`Condition.left.key='${requestedFieldKey}' 未在流程 '${workflowId}' 的实时上下文中找到。请传完整 paramKey、字段显示名或 getComponentContext 返回的字段对象。`);
|
|
1263
1337
|
}
|
|
1264
1338
|
}
|
|
1265
|
-
const shape =
|
|
1339
|
+
const shape = conditionFormulaShape(left, workflowId, fieldKey, fieldLabel);
|
|
1266
1340
|
const opt = CONDITION_OPT_CODE_MAP[operator];
|
|
1267
1341
|
if (!opt)
|
|
1268
1342
|
throw new Error(`Condition 操作符 '${condition.operator}' 不支持`);
|
|
@@ -1309,10 +1383,13 @@ function buildSingleConditionDetail(condition, sourceId, meta = null) {
|
|
|
1309
1383
|
const customFieldBiz = genSfId();
|
|
1310
1384
|
// 流程字段需保留“流程 ID.字段名”的上下文显示路径,规则编辑器才能定位来源。
|
|
1311
1385
|
const contextDisplayName = rawField && workflowId ? `${workflowId}.${fieldLabel}` : fieldLabel;
|
|
1386
|
+
const leftFormula = functionLeft
|
|
1387
|
+
? conditionFunctionBean(left, fieldLabel, shape, meta || {}, contextWId)
|
|
1388
|
+
: null;
|
|
1312
1389
|
const leftOperand = {
|
|
1313
1390
|
expressionBaseId: baseId, [`${shape.prefix}CompareOptionLeft`]: opt, dataValueId: dvId,
|
|
1314
1391
|
elementValue2Id: ev2, elementValue1Id: ev1, selectType: 97,
|
|
1315
|
-
customFieldType: {
|
|
1392
|
+
customFieldType: leftFormula || {
|
|
1316
1393
|
paramType: shape.formulaType, formulaType: shape.formulaType, name: fieldLabel, businessId: customFieldBiz,
|
|
1317
1394
|
selectType: '-1', id: customFieldId, source: contextWId, type: '3', value: valueId,
|
|
1318
1395
|
config: {
|
|
@@ -1422,6 +1499,7 @@ function buildDetailRowId(value, meta, appId, eventId, nodeType) {
|
|
|
1422
1499
|
export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId, nodeType) {
|
|
1423
1500
|
if (!Array.isArray(detailItems))
|
|
1424
1501
|
return;
|
|
1502
|
+
const assignmentMode = String((get(nodeType) || {}).assignmentContextMode || '');
|
|
1425
1503
|
const detailOut = [];
|
|
1426
1504
|
for (const item of detailItems) {
|
|
1427
1505
|
if (!item || typeof item !== 'object' || !item.detailTableId)
|
|
@@ -1435,7 +1513,9 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
|
|
|
1435
1513
|
}
|
|
1436
1514
|
const ele = { detailTableId: String(item.detailTableId) };
|
|
1437
1515
|
if (item.updateFieldCondition && typeof item.updateFieldCondition === 'object') {
|
|
1438
|
-
ele.updateFieldCondition = buildUpdateFieldCondition(item.updateFieldCondition, {
|
|
1516
|
+
ele.updateFieldCondition = buildUpdateFieldCondition(item.updateFieldCondition, {
|
|
1517
|
+
meta, appId, eventId: String(eventId), componentType: nodeType, basisValue: item.basisValue,
|
|
1518
|
+
});
|
|
1439
1519
|
}
|
|
1440
1520
|
else {
|
|
1441
1521
|
ele.updateFieldCondition = { updateField: [] };
|
|
@@ -1525,6 +1605,10 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
|
|
|
1525
1605
|
}
|
|
1526
1606
|
const mapping = item.mapping || {};
|
|
1527
1607
|
const constants = item.constants || {};
|
|
1608
|
+
const detailBasisParamKey = String(item.basisValue?.paramKey || item.basisValue?.key || '').trim();
|
|
1609
|
+
const detailBasisType = String(item.basisValue?.basisType || 'formSetting');
|
|
1610
|
+
const isDetailBasisDescendant = (sourceParamKey) => Boolean(detailBasisParamKey && (sourceParamKey === detailBasisParamKey
|
|
1611
|
+
|| sourceParamKey.startsWith(`${detailBasisParamKey}.`)));
|
|
1528
1612
|
const detailTargetFormId = String((nodeData.targetForm || {}).id || '');
|
|
1529
1613
|
const targetDetailFields = detailTargetFormId
|
|
1530
1614
|
? (getTargetDetailFields()[detailTargetFormId] || {})[String(item.detailTableId)] || {}
|
|
@@ -1553,16 +1637,39 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
|
|
|
1553
1637
|
const refKey = String(targetFieldId.paramKey || sourceKey);
|
|
1554
1638
|
const refLabel = String(targetFieldId.label || sourceKey);
|
|
1555
1639
|
const refDetail = String(targetFieldId.detailLabel || '');
|
|
1640
|
+
const basisDescendant = isDetailBasisDescendant(refKey);
|
|
1556
1641
|
const declaredKind = String(targetFieldId.kind || targetFieldId.assignmentKind || 'context');
|
|
1557
1642
|
assignment = {
|
|
1558
1643
|
...(targetFieldId.assignment && typeof targetFieldId.assignment === 'object' ? targetFieldId.assignment : {}),
|
|
1559
1644
|
kind: declaredKind, paramKey: refKey, label: refLabel,
|
|
1560
1645
|
};
|
|
1646
|
+
// 明细字段同样必须沿用 getComponentContext 的真实来源元数据。
|
|
1647
|
+
// 不能因为进入 detail 分支就只保留 paramKey;否则
|
|
1648
|
+
// assignFlatEsbChild 无法得到 WebHook 的 Body 根和真实字段 ID。
|
|
1649
|
+
for (const key of ['scope', 'contextScope', 'componentType', 'tablePrimaryKey', 'tableName', 'frontId', 'fieldType', 'valueType']) {
|
|
1650
|
+
if (targetFieldId[key] !== undefined)
|
|
1651
|
+
assignment[key] = targetFieldId[key];
|
|
1652
|
+
}
|
|
1653
|
+
if (targetFieldId._resolvedContext && typeof targetFieldId._resolvedContext === 'object') {
|
|
1654
|
+
assignment._resolvedContext = { ...targetFieldId._resolvedContext };
|
|
1655
|
+
}
|
|
1656
|
+
if (targetFieldId.source !== undefined)
|
|
1657
|
+
assignment.source = targetFieldId.source;
|
|
1658
|
+
if (targetFieldId.comId !== undefined)
|
|
1659
|
+
assignment.comId = targetFieldId.comId;
|
|
1660
|
+
if (targetFieldId.fieldId !== undefined)
|
|
1661
|
+
assignment.fieldId = targetFieldId.fieldId;
|
|
1662
|
+
if (targetFieldId.parentName !== undefined)
|
|
1663
|
+
assignment.parentName = targetFieldId.parentName;
|
|
1561
1664
|
if (refDetail)
|
|
1562
1665
|
assignment.detailLabel = refDetail;
|
|
1666
|
+
if (basisDescendant) {
|
|
1667
|
+
assignment.basisParamKey = detailBasisParamKey;
|
|
1668
|
+
assignment.basisType = detailBasisType;
|
|
1669
|
+
}
|
|
1563
1670
|
const targetMeta = targetDetailFields[raw] || {};
|
|
1564
1671
|
const targetType = String(targetMeta.componentKey || targetMeta.type || 'Text');
|
|
1565
|
-
eleData[raw] = buildEsbFormField(raw, assignment, targetType, meta, appId, eventId, operate, nodeType, true, '', options);
|
|
1672
|
+
eleData[raw] = buildEsbFormField(raw, assignment, targetType, meta, appId, eventId, operate, nodeType, true, basisDescendant ? assignmentMode : '', options);
|
|
1566
1673
|
}
|
|
1567
1674
|
else {
|
|
1568
1675
|
let raw = String(targetFieldId);
|
|
@@ -1575,9 +1682,14 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
|
|
|
1575
1682
|
raw = raw.slice(1);
|
|
1576
1683
|
}
|
|
1577
1684
|
assignment = { kind: 'context', paramKey: String(sourceKey), label: resolveSourceFieldLabel(String(sourceKey), meta, String(sourceKey)) };
|
|
1685
|
+
const basisDescendant = isDetailBasisDescendant(String(sourceKey));
|
|
1686
|
+
if (basisDescendant) {
|
|
1687
|
+
assignment.basisParamKey = detailBasisParamKey;
|
|
1688
|
+
assignment.basisType = detailBasisType;
|
|
1689
|
+
}
|
|
1578
1690
|
const targetMeta = targetDetailFields[raw] || {};
|
|
1579
1691
|
const targetType = String(targetMeta.componentKey || targetMeta.type || 'Text');
|
|
1580
|
-
eleData[raw] = buildEsbFormField(raw, assignment, targetType, meta, appId, eventId, operate, nodeType, true, '');
|
|
1692
|
+
eleData[raw] = buildEsbFormField(raw, assignment, targetType, meta, appId, eventId, operate, nodeType, true, basisDescendant ? assignmentMode : '');
|
|
1581
1693
|
}
|
|
1582
1694
|
}
|
|
1583
1695
|
}
|
|
@@ -1625,6 +1737,8 @@ export function buildSettingDetail(nodeData, detailItems, meta, appId, eventId,
|
|
|
1625
1737
|
// 组件按新增明细处理。ActionEbUpdate 则保留用户明确选择的策略。
|
|
1626
1738
|
if (item.operateType)
|
|
1627
1739
|
ele.operateType = String(item.operateType);
|
|
1740
|
+
else if (['ApproveSave', 'ApproveCommit', 'ApproveSendBack'].includes(nodeType))
|
|
1741
|
+
ele.operateType = 'default';
|
|
1628
1742
|
else if (nodeType !== 'ActionEbAdd' && nodeType !== 'ActionEbUpdate')
|
|
1629
1743
|
ele.operateType = 'insert';
|
|
1630
1744
|
if (item.updateType)
|
|
@@ -1727,8 +1841,7 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1727
1841
|
// ApproveCreateComponent#save 使用这些 DTO 字段;它们不能依赖前端默认值。
|
|
1728
1842
|
nodeData.module ??= 'workflow';
|
|
1729
1843
|
nodeData.applicationId ??= String(appId);
|
|
1730
|
-
nodeData.
|
|
1731
|
-
nodeData.rejectToNodeId ??= [];
|
|
1844
|
+
nodeData.isNextFlow ??= '1';
|
|
1732
1845
|
}
|
|
1733
1846
|
const pendingMapping = nodeData._pending_mapping;
|
|
1734
1847
|
delete nodeData._pending_mapping;
|
|
@@ -1749,7 +1862,10 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1749
1862
|
delete nodeData.setting;
|
|
1750
1863
|
const main = (setting || {}).main || {};
|
|
1751
1864
|
const detailOut = (setting || {}).detail || [];
|
|
1752
|
-
|
|
1865
|
+
// 表单设置的 dataDrWithCalc 属于 EsbFormDataDto,不是 ApproveSaveDto 顶层字段。
|
|
1866
|
+
const dataDrWithCalc = nodeData.dataDrWithCalc ?? false;
|
|
1867
|
+
delete nodeData.dataDrWithCalc;
|
|
1868
|
+
nodeData.formData = buildEsbFormDataDto(main, detailOut, { dataDrWithCalc: Boolean(dataDrWithCalc) });
|
|
1753
1869
|
// ApproveCreateDTO 没有使用 fields;目标字段仅用于编译 mapping,不能写入保存 DTO。
|
|
1754
1870
|
if (nodeType !== 'ApproveCreate') {
|
|
1755
1871
|
const fieldsMetaKey = String(formDataPayload.fieldsMetaKey || '_bizFields');
|
|
@@ -1770,7 +1886,10 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1770
1886
|
}
|
|
1771
1887
|
else if (formDataPayload && typeof formDataPayload === 'object') {
|
|
1772
1888
|
// 声明 formDataPayload 的组件即使没有字段映射,也显式携带表单数据容器。
|
|
1773
|
-
nodeData.
|
|
1889
|
+
const dataDrWithCalc = nodeData.dataDrWithCalc ?? false;
|
|
1890
|
+
delete nodeData.dataDrWithCalc;
|
|
1891
|
+
nodeData.formData ??= buildEsbFormDataDto({}, [], { dataDrWithCalc: Boolean(dataDrWithCalc) });
|
|
1892
|
+
nodeData.formData.dataDrWithCalc = Boolean(dataDrWithCalc);
|
|
1774
1893
|
if (nodeType !== 'ApproveCreate')
|
|
1775
1894
|
nodeData.fields ??= { main: [], detail: [] };
|
|
1776
1895
|
nodeData.formDataId ??= genSfId();
|
|
@@ -1940,11 +2059,12 @@ export function convertNode(draftAction, isEvent = false, meta = null, appId = '
|
|
|
1940
2059
|
export function convertCondition(draftAction, meta = null, appId = '', actionIndex = 0, eventId = '', previousNodeId = '0', lenient = false) {
|
|
1941
2060
|
const node = convertNode(draftAction, false, meta, appId, actionIndex, eventId, '', previousNodeId, lenient);
|
|
1942
2061
|
const branches = getStepBranches(draftAction);
|
|
2062
|
+
const executeMethod = String(draftAction.params?.executeMethod ?? node.data.executeMethod ?? '1');
|
|
2063
|
+
if (!['1', '2'].includes(executeMethod))
|
|
2064
|
+
throw new Error(`Condition.executeMethod 不支持 '${executeMethod}',请使用 1 或 2`);
|
|
2065
|
+
node.data.executeMethod = executeMethod;
|
|
1943
2066
|
if (!branches || branches.length === 0) {
|
|
1944
|
-
|
|
1945
|
-
node.data.falseBranchActions = [];
|
|
1946
|
-
node.data.otherConditionBranch = [];
|
|
1947
|
-
return node;
|
|
2067
|
+
throw new Error('Condition.branches 不能为空');
|
|
1948
2068
|
}
|
|
1949
2069
|
const conditionalBranches = [];
|
|
1950
2070
|
let elseBranchActions = null;
|
|
@@ -1955,12 +2075,20 @@ export function convertCondition(draftAction, meta = null, appId = '', actionInd
|
|
|
1955
2075
|
cond = {};
|
|
1956
2076
|
const isElse = cond.type === 'else';
|
|
1957
2077
|
const hasRealCond = !isElse && hasConditionExpression(cond);
|
|
2078
|
+
if (hasRealCond && elseBranchActions !== null)
|
|
2079
|
+
throw new Error(`Condition.branches[${i}] 条件分支不能位于其他情况之后`);
|
|
2080
|
+
if (!hasRealCond && elseBranchActions !== null)
|
|
2081
|
+
throw new Error(`Condition.branches[${i}] 只允许一个其他情况分支`);
|
|
2082
|
+
if (!hasRealCond && !isElse && Object.keys(cond).length)
|
|
2083
|
+
throw new Error(`Condition.branches[${i}] 条件为空或不完整`);
|
|
1958
2084
|
const bacts = [];
|
|
1959
2085
|
let branchPreviousId = '0';
|
|
1960
2086
|
for (const a of branch.actions || []) {
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
2087
|
+
const branchNode = a?.type === 'Condition'
|
|
2088
|
+
? convertCondition(a, meta, appId, i, eventId, branchPreviousId, lenient)
|
|
2089
|
+
: a?.type === 'MultipleExecution'
|
|
2090
|
+
? convertMultipleExecution(a, meta, appId, i, eventId, '', branchPreviousId, lenient)
|
|
2091
|
+
: convertNode(a, false, meta, appId, i, eventId, '', branchPreviousId, lenient);
|
|
1964
2092
|
bacts.push(branchNode);
|
|
1965
2093
|
branchPreviousId = branchNode.wId;
|
|
1966
2094
|
}
|
|
@@ -1972,6 +2100,8 @@ export function convertCondition(draftAction, meta = null, appId = '', actionInd
|
|
|
1972
2100
|
elseBranchActions = bacts;
|
|
1973
2101
|
}
|
|
1974
2102
|
}
|
|
2103
|
+
if (!conditionalBranches.length)
|
|
2104
|
+
throw new Error('Condition 排他或包容分支至少需要一个有效条件');
|
|
1975
2105
|
const trueBranchActions = conditionalBranches.length ? conditionalBranches[0][1] : [];
|
|
1976
2106
|
const falseBranchActions = elseBranchActions || [];
|
|
1977
2107
|
const otherBranchActions = [];
|
|
@@ -2125,6 +2255,7 @@ export function convert(draft, appId = '', sceneId = '', metadataPath = '', leni
|
|
|
2125
2255
|
let draftEvent = draft.event || {};
|
|
2126
2256
|
let draftActions = draft.actions || [];
|
|
2127
2257
|
meta._scene_id = String(sceneId || '');
|
|
2258
|
+
meta._app_id = String(appId || '');
|
|
2128
2259
|
meta._http_response_fields = collectHttpResponseFields(draft.actions || []);
|
|
2129
2260
|
meta._componentOptions = draft._componentOptions && typeof draft._componentOptions === 'object'
|
|
2130
2261
|
? draft._componentOptions
|