From 56a966cfbf8db5b29a42185f0f25a0e800c30dbb Mon Sep 17 00:00:00 2001
From: vben <anncwb@126.com>
Date: 星期二, 24 八月 2021 22:41:48 +0800
Subject: [PATCH] chore: format code

---
 src/components/Form/src/hooks/useForm.ts |   45 +++++++++++++++++++++++++++------------------
 1 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/src/components/Form/src/hooks/useForm.ts b/src/components/Form/src/hooks/useForm.ts
index 6d15989..d026d69 100644
--- a/src/components/Form/src/hooks/useForm.ts
+++ b/src/components/Form/src/hooks/useForm.ts
@@ -1,21 +1,16 @@
-import { ref, onUnmounted, unref, nextTick, watchEffect } from 'vue';
-
-import { isInSetup } from '/@/utils/helper/vueHelper';
+import type { FormProps, FormActionType, UseFormReturnType, FormSchema } from '../types/form';
+import type { NamePath } from 'ant-design-vue/lib/form/interface';
+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 type { FormProps, FormActionType, UseFormReturnType, FormSchema } from '../types/form';
-import type { NamePath } from 'ant-design-vue/lib/form/interface';
-import type { DynamicProps } from '/@/types/utils';
 
 export declare type ValidateFields = (nameList?: NamePath[]) => Promise<Recordable>;
 
 type Props = Partial<DynamicProps<FormProps>>;
 
 export function useForm(props?: Props): UseFormReturnType {
-  isInSetup();
-
   const formRef = ref<Nullable<FormActionType>>(null);
   const loadedRef = ref<Nullable<boolean>>(false);
 
@@ -23,7 +18,7 @@
     const form = unref(formRef);
     if (!form) {
       error(
-        'The form instance has not been obtained, please make sure that the form has been rendered when performing the form operation!'
+        'The form instance has not been obtained, please make sure that the form has been rendered when performing the form operation!',
       );
     }
     await nextTick();
@@ -39,12 +34,18 @@
     if (unref(loadedRef) && isProdMode() && instance === unref(formRef)) return;
 
     formRef.value = instance;
-
     loadedRef.value = true;
 
-    watchEffect(() => {
-      props && instance.setProps(getDynamicProps(props));
-    });
+    watch(
+      () => props,
+      () => {
+        props && instance.setProps(getDynamicProps(props));
+      },
+      {
+        immediate: true,
+        deep: true,
+      },
+    );
   }
 
   const methods: FormActionType = {
@@ -62,6 +63,11 @@
       form.updateSchema(data);
     },
 
+    resetSchema: async (data: Partial<FormSchema> | Partial<FormSchema>[]) => {
+      const form = await getForm();
+      form.resetSchema(data);
+    },
+
     clearValidate: async (name?: string | string[]) => {
       const form = await getForm();
       form.clearValidate(name);
@@ -74,8 +80,7 @@
     },
 
     removeSchemaByFiled: async (field: string | string[]) => {
-      const form = await getForm();
-      form.removeSchemaByFiled(field);
+      unref(formRef)?.removeSchemaByFiled(field);
     },
 
     // TODO promisify
@@ -88,9 +93,13 @@
       form.setFieldsValue<T>(values);
     },
 
-    appendSchemaByField: async (schema: FormSchema, prefixField?: string | undefined) => {
+    appendSchemaByField: async (
+      schema: FormSchema,
+      prefixField: string | undefined,
+      first: boolean,
+    ) => {
       const form = await getForm();
-      form.appendSchemaByField(schema, prefixField);
+      form.appendSchemaByField(schema, prefixField, first);
     },
 
     submit: async (): Promise<any> => {

--
Gitblit v1.8.0