fix(plugin-flow-engine): resolve tree targets

This commit is contained in:
Zeke Zhang
2026-08-18 08:19:56 +08:00
parent 19c4419ab4
commit 42805909c4
2 changed files with 15 additions and 7 deletions
@@ -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({
@@ -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) {