diff --git a/packages/core/client/src/modules/fields/component/SubTable/subTablePopoverComponentFieldSettings.tsx b/packages/core/client/src/modules/fields/component/SubTable/subTablePopoverComponentFieldSettings.tsx index d5b5ae25d3..cbd84f38e9 100644 --- a/packages/core/client/src/modules/fields/component/SubTable/subTablePopoverComponentFieldSettings.tsx +++ b/packages/core/client/src/modules/fields/component/SubTable/subTablePopoverComponentFieldSettings.tsx @@ -28,6 +28,7 @@ import { isSubMode } from '../../../../schema-component/antd/association-field/u import { useIsAssociationField } from '../../../../schema-component/antd/form-item'; import { FormLinkageRules } from '../../../../schema-settings/LinkageRules'; import { SchemaSettingsLinkageRules } from '../../../../schema-settings/SchemaSettings'; +import { useColumnSchema } from '../../../../schema-component'; const fieldComponent: any = { name: 'fieldComponent', @@ -312,7 +313,9 @@ export const linkageRules = { Component: SchemaSettingsLinkageRules, useComponentProps() { const field = useField(); - const fieldSchema = useFieldSchema(); + const schema = useFieldSchema(); + const { fieldSchema: columnSchema } = useColumnSchema(); + const fieldSchema = columnSchema || schema; const cm = useCollectionManager(); const collectionField = cm.getCollectionField(fieldSchema['x-collection-field']); const { rerenderDataBlock } = useRerenderDataBlock(); diff --git a/packages/core/client/src/schema-component/antd/form-item/hooks/useLinkageRulesForSubTableOrSubForm.ts b/packages/core/client/src/schema-component/antd/form-item/hooks/useLinkageRulesForSubTableOrSubForm.ts index 2fc7a4b2a8..9c04c30185 100644 --- a/packages/core/client/src/schema-component/antd/form-item/hooks/useLinkageRulesForSubTableOrSubForm.ts +++ b/packages/core/client/src/schema-component/antd/form-item/hooks/useLinkageRulesForSubTableOrSubForm.ts @@ -104,6 +104,7 @@ function getLinkageRules(fieldSchema) { if (!fieldSchema) { return; } + const result = fieldSchema['x-linkage-rules'] || fieldSchema?.parent?.['x-linkage-rules'] || []; - return fieldSchema['x-linkage-rules']?.filter((k) => !k.disabled); + return result?.filter((k) => !k.disabled); }