From 94bf854dd98f37ffb39e9086c565a0610c250205 Mon Sep 17 00:00:00 2001 From: vben Date: Thu, 5 Nov 2020 22:32:39 +0800 Subject: [PATCH] fix: fix form submit error --- src/components/Form/src/BasicForm.vue | 4 ++-- src/components/Form/src/FormItem.tsx | 6 +++++- src/components/Form/src/hooks/useFormAction.ts | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/components/Form/src/BasicForm.vue b/src/components/Form/src/BasicForm.vue index 9128c8d6..9440ab56 100644 --- a/src/components/Form/src/BasicForm.vue +++ b/src/components/Form/src/BasicForm.vue @@ -53,8 +53,8 @@ const formModel = reactive({}); const actionState = reactive({ - resetAction: {}, - submitAction: {}, + resetAction: () => {}, + submitAction: () => {}, }); const advanceState = reactive({ diff --git a/src/components/Form/src/FormItem.tsx b/src/components/Form/src/FormItem.tsx index 680fe14a..ad6bfc32 100644 --- a/src/components/Form/src/FormItem.tsx +++ b/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; } diff --git a/src/components/Form/src/hooks/useFormAction.ts b/src/components/Form/src/hooks/useFormAction.ts index 2a8ce0cb..a3072f93 100644 --- a/src/components/Form/src/hooks/useFormAction.ts +++ b/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) {} -- GitLab