From 42805909c49fabf0d1d136e304451f8083e0665e Mon Sep 17 00:00:00 2001 From: Zeke Zhang <958414905@qq.com> Date: Tue, 18 Aug 2026 08:19:56 +0800 Subject: [PATCH] fix(plugin-flow-engine): resolve tree targets --- ...ow-surfaces.field-binding-registry.unit.test.ts | 14 ++++++++++++++ .../server/flow-surfaces/field-binding-registry.ts | 8 +------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-flow-engine/src/server/__tests__/flow-surfaces.field-binding-registry.unit.test.ts b/packages/plugins/@nocobase/plugin-flow-engine/src/server/__tests__/flow-surfaces.field-binding-registry.unit.test.ts index 113e75e2c65..5dd5f985ed0 100644 --- a/packages/plugins/@nocobase/plugin-flow-engine/src/server/__tests__/flow-surfaces.field-binding-registry.unit.test.ts +++ b/packages/plugins/@nocobase/plugin-flow-engine/src/server/__tests__/flow-surfaces.field-binding-registry.unit.test.ts @@ -333,6 +333,14 @@ describe('flowSurfaces field binding registry', () => { template: 'tree', }, }; + const runtimeTreeToOneField = { + interface: 'm2o', + targetCollection: () => ({ + options: { + template: 'tree', + }, + }), + }; const generalToOneField = { interface: 'm2o', targetCollection: { @@ -369,6 +377,12 @@ describe('flowSurfaces field binding registry', () => { field: treeToOneField, })?.has('CascadeSelectFieldModel'), ).toBe(true); + expect( + resolveSupportedFieldCapability({ + containerUse: 'FilterFormBlockModel', + field: runtimeTreeToOneField, + }).fieldUse, + ).toBe('CascadeSelectFieldModel'); expect( resolveSupportedFieldCapability({ diff --git a/packages/plugins/@nocobase/plugin-flow-engine/src/server/flow-surfaces/field-binding-registry.ts b/packages/plugins/@nocobase/plugin-flow-engine/src/server/flow-surfaces/field-binding-registry.ts index 781b0fd6f32..649fbc9fc9e 100644 --- a/packages/plugins/@nocobase/plugin-flow-engine/src/server/flow-surfaces/field-binding-registry.ts +++ b/packages/plugins/@nocobase/plugin-flow-engine/src/server/flow-surfaces/field-binding-registry.ts @@ -70,13 +70,7 @@ function isNumericFormulaDataType(dataType: any) { } function resolveTargetCollection(input: FlowSurfaceResolvedFieldBindingInput) { - if (input.field?.targetCollection) { - return input.field.targetCollection; - } - if (!input.getCollection || !input.dataSourceKey) { - return null; - } - return resolveFieldTargetCollection(input.field, input.dataSourceKey, input.getCollection); + return resolveFieldTargetCollection(input.field, input.dataSourceKey || 'main', input.getCollection || (() => null)); } function normalizeBindingContainerUse(containerUse?: string) {