From 17df74126d071adcf88350ab2169c0444d07e97f Mon Sep 17 00:00:00 2001 From: chanx <1243304602@qq.com> Date: Fri, 12 Dec 2025 16:11:51 +0800 Subject: [PATCH] Fix: Component optimization - Enhanced form reference interface functionality and optimized implementation - Optimized modal title area layout and close button position --- web/src/components/dynamic-form.tsx | 8 ++++-- web/src/components/ui/modal/modal.tsx | 41 ++++++++++++++------------- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/web/src/components/dynamic-form.tsx b/web/src/components/dynamic-form.tsx index 2926f32b6..b87ca6a7b 100644 --- a/web/src/components/dynamic-form.tsx +++ b/web/src/components/dynamic-form.tsx @@ -11,6 +11,7 @@ import { DefaultValues, FieldValues, SubmitHandler, + UseFormTrigger, useForm, useFormContext, } from 'react-hook-form'; @@ -99,8 +100,9 @@ interface DynamicFormProps { // Form ref interface export interface DynamicFormRef { submit: () => void; - getValues: () => any; + getValues: (name?: string) => any; reset: (values?: any) => void; + trigger: UseFormTrigger; watch: (field: string, callback: (value: any) => void) => () => void; updateFieldType: (fieldName: string, newType: FormFieldType) => void; onFieldUpdate: ( @@ -704,8 +706,8 @@ const DynamicForm = { useImperativeHandle( ref, () => ({ - submit: () => form.handleSubmit(onSubmit)(), - getValues: () => form.getValues(), + submit: form.handleSubmit, + getValues: form.getValues, reset: (values?: T) => { if (values) { form.reset(values); diff --git a/web/src/components/ui/modal/modal.tsx b/web/src/components/ui/modal/modal.tsx index 13de06cf8..c856e1dd6 100644 --- a/web/src/components/ui/modal/modal.tsx +++ b/web/src/components/ui/modal/modal.tsx @@ -174,20 +174,23 @@ const Modal: ModalType = ({ onClick={() => maskClosable && onOpenChange?.(false)} > e.stopPropagation()} > {/* title */} - {(title || closable) && ( + {title && (
@@ -196,19 +199,19 @@ const Modal: ModalType = ({ {title} )} - {closable && ( - - - - )}
)} + {closable && ( + + + + )} {/* content */}