From fe005e091a744b62768dc24afde3d031994f68af Mon Sep 17 00:00:00 2001 From: Katherine Date: Wed, 30 Apr 2025 09:35:26 +0800 Subject: [PATCH 1/2] fix: ssue with configuring linkage rules in subform (popup) within subtable (#6803) --- .../SubTable/subTablePopoverComponentFieldSettings.tsx | 5 ++++- .../form-item/hooks/useLinkageRulesForSubTableOrSubForm.ts | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) 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); } From fd8606e69ecf7ae7611b193c6b7870ec8b6d70d8 Mon Sep 17 00:00:00 2001 From: Katherine Date: Wed, 30 Apr 2025 09:36:05 +0800 Subject: [PATCH 2/2] fix: duplicate validation error messages for rule violations in form field (#6805) --- packages/core/client/src/block-provider/FormBlockProvider.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core/client/src/block-provider/FormBlockProvider.tsx b/packages/core/client/src/block-provider/FormBlockProvider.tsx index f5e9da87cb..48a9e017ff 100644 --- a/packages/core/client/src/block-provider/FormBlockProvider.tsx +++ b/packages/core/client/src/block-provider/FormBlockProvider.tsx @@ -50,6 +50,7 @@ const InternalFormBlockProvider = (props) => { const form = useMemo( () => createForm({ + validateFirst: true, readPretty, }), [readPretty],