From d6749f95c526c0e71ec946bd3bb777bc42b2c34a Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期日, 20 十月 2024 17:59:31 +0800 Subject: [PATCH] 工艺绑定优化 --- src/components/Form/src/hooks/useForm.ts | 36 ++++++++++++++++++++++++------------ 1 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/components/Form/src/hooks/useForm.ts b/src/components/Form/src/hooks/useForm.ts index 40f246d..5ea5237 100644 --- a/src/components/Form/src/hooks/useForm.ts +++ b/src/components/Form/src/hooks/useForm.ts @@ -1,10 +1,15 @@ -import type { FormProps, FormActionType, UseFormReturnType, FormSchema } from '../types/form'; +import type { + FormProps, + FormActionType, + UseFormReturnType, + FormSchemaInner as FormSchema, +} from '../types/form'; import type { NamePath } from 'ant-design-vue/lib/form/interface'; -import type { DynamicProps } from '/#/utils'; +import type { DynamicProps } from '#/utils'; import { ref, onUnmounted, unref, nextTick, watch } from 'vue'; -import { isProdMode } from '/@/utils/env'; -import { error } from '/@/utils/log'; -import { getDynamicProps } from '/@/utils'; +import { isProdMode } from '@/utils/env'; +import { error } from '@/utils/log'; +import { getDynamicProps } from '@/utils'; export declare type ValidateFields = (nameList?: NamePath[]) => Promise<Recordable>; @@ -73,9 +78,13 @@ form.clearValidate(name); }, - resetFields: async () => { - getForm().then(async (form) => { - await form.resetFields(); + resetFields: () => { + // 淇琛ㄥ崟閲嶇疆鍚庯紝椤甸潰鍙樺寲浜嗭紝浣嗘槸鐢变簬寮傛闂瀵艰嚧琛ㄥ崟鍐呴儴鐨勭姸鎬佹病鏈夊強鏃跺悓姝� + return new Promise((resolve) => { + getForm().then(async (form) => { + await form.resetFields(); + resolve(); + }); }); }, @@ -88,15 +97,15 @@ return unref(formRef)?.getFieldsValue() as T; }, - setFieldsValue: async <T>(values: T) => { + setFieldsValue: async <T extends Recordable<any>>(values: T) => { const form = await getForm(); - form.setFieldsValue<T>(values); + form.setFieldsValue(values); }, appendSchemaByField: async ( schema: FormSchema | FormSchema[], prefixField: string | undefined, - first: boolean, + first?: boolean, ) => { const form = await getForm(); form.appendSchemaByField(schema, prefixField, first); @@ -107,7 +116,7 @@ return form.submit(); }, - validate: async (nameList?: NamePath[]): Promise<Recordable> => { + validate: async <T = Recordable>(nameList?: NamePath[] | false): Promise<T> => { const form = await getForm(); return form.validate(nameList); }, @@ -116,6 +125,9 @@ const form = await getForm(); return form.validateFields(nameList); }, + resetDefaultField: async (nameList?: NamePath[]) => { + unref(formRef)?.resetDefaultField(nameList); + }, }; return [register, methods]; -- Gitblit v1.9.3