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

refactor: 配置提示错误信息

xyh 2 роки тому
батько
коміт
da00bd6928

+ 5 - 8
src/pages/login/hooks.ts

@@ -1,6 +1,7 @@
 import {object, string} from 'zod';
 import {useForm} from 'vee-validate';
 import {toTypedSchema} from '@vee-validate/zod';
+import {validateErrorTip} from '@utils';
 
 export type FormState = {
   name: string;
@@ -17,14 +18,10 @@ export function useFormState() {
     },
     validationSchema: toTypedSchema(
       object({
-        name: string({errorMap: () => ({message: 'login.errors.name'})}).min(
-          1,
-          'login.errors.name',
-        ),
-        password: string({errorMap: () => ({message: 'login.errors.password'})}).min(
-          1,
-          'login.errors.password',
-        ),
+        name: string(validateErrorTip('login.errors.name'))
+          .min(1, 'login.errors.name'),
+        password: string(validateErrorTip('login.errors.password'))
+          .min(1, 'login.errors.password'),
         company: string().optional(),
       }),
     ),

+ 11 - 12
src/pages/register/hooks.ts

@@ -1,3 +1,4 @@
+import {validateErrorTip} from '@utils';
 import {toTypedSchema} from '@vee-validate/zod';
 import {useForm} from 'vee-validate';
 import {Ref} from 'vue';
@@ -10,17 +11,6 @@ type FormState = {
   licenseImage: string;
 };
 
-const validate = object({
-  enterprise: string({errorMap: () => ({message: 'register.errors.enterprise'})})
-    .min(1, 'register.errors.enterprise'),
-  phone: string({errorMap: () => ({message: 'register.errors.phone'})})
-    .min(1, 'register.errors.phone'),
-  idCardImage: string({errorMap: () => ({message: 'register.errors.idcard'})})
-    .min(1, 'register.errors.idcard'),
-  licenseImage: string({errorMap: () => ({message: 'register.errors.licenseImage'})})
-    .min(1, 'register.errors.licenseImage'),
-});
-
 export function useFormState(isSuccess: Ref<boolean>) {
   const {handleSubmit, handleReset} = useForm<FormState>({
     initialValues: {
@@ -29,7 +19,16 @@ export function useFormState(isSuccess: Ref<boolean>) {
       idCardImage: '',
       licenseImage: '',
     },
-    validationSchema: toTypedSchema(validate),
+    validationSchema: toTypedSchema(object({
+      enterprise: string(validateErrorTip('register.errors.enterprise'))
+        .min(1, 'register.errors.enterprise'),
+      phone: string(validateErrorTip('register.errors.phone'))
+        .min(1, 'register.errors.phone'),
+      idCardImage: string(validateErrorTip('register.errors.idcard'))
+        .min(1, 'register.errors.idcard'),
+      licenseImage: string(validateErrorTip('register.errors.licenseImage'))
+        .min(1, 'register.errors.licenseImage'),
+    })),
   });
 
   const onSubmit = handleSubmit(function(value) {

+ 0 - 5
src/utils/.gitkeep

@@ -1,5 +0,0 @@
-# To ensure that empty folders can also be submitted
-
-# You can delete this file
-
-# This type of file has been entered in .gitignore, and this type of file will not be submitted to git

+ 1 - 0
src/utils/index.ts

@@ -0,0 +1 @@
+export * from './validate-tips';

+ 10 - 0
src/utils/validate-tips/index.ts

@@ -0,0 +1,10 @@
+/* eslint-disable camelcase */
+export function validateErrorTip(message: string): {
+  invalid_type_error?: string | undefined;
+  required_error?: string | undefined;
+} {
+  return {
+    invalid_type_error: message,
+    required_error: message,
+  };
+}