Переглянути джерело

fix: fix form submit error

vben 4 роки тому
батько
коміт
94bf854dd9

+ 2 - 2
src/components/Form/src/BasicForm.vue

@@ -53,8 +53,8 @@
       const formModel = reactive({});
 
       const actionState = reactive({
-        resetAction: {},
-        submitAction: {},
+        resetAction: () => {},
+        submitAction: () => {},
       });
 
       const advanceState = reactive<AdvanceState>({

+ 5 - 1
src/components/Form/src/FormItem.tsx

@@ -150,7 +150,11 @@ export default defineComponent({
     function handleValue(component: ComponentType, field: string) {
       const val = (props.formModel as any)[field];
       if (['Input', 'InputPassword', 'InputSearch', 'InputTextArea'].includes(component)) {
-        return isNumber(val) && val ? `${val}` : val;
+        if (val && isNumber(val)) {
+          (props.formModel as any)[field] = `${val}`;
+          return `${val}`;
+        }
+        return val;
       }
       return val;
     }

+ 3 - 3
src/components/Form/src/hooks/useFormAction.ts

@@ -43,7 +43,7 @@ export function useFormAction({
     Object.keys(formModel).forEach((key) => {
       (formModel as any)[key] = defaultValueRef.value[key];
     });
-    formEl.clearValidate();
+    clearValidate();
     emit('reset', toRaw(formModel));
     // return values;
     submitOnReset && handleSubmit();
@@ -187,7 +187,7 @@ export function useFormAction({
     return formElRef.value.validate(nameList);
   }
 
-  function clearValidate(name: string | string[]) {
+  function clearValidate(name?: string | string[]) {
     if (!formElRef.value) return;
     formElRef.value.clearValidate(name);
   }
@@ -205,7 +205,7 @@ export function useFormAction({
     const formEl = unref(formElRef);
     if (!formEl) return;
     try {
-      const values = await formEl.validate();
+      const values = await validate();
       const res = handleFormValues(values);
       emit('submit', res);
     } catch (error) {}