Преглед на файлове

fix(组件): 注册正则修复

gemercheung преди 2 години
родител
ревизия
fe83aacb65
променени са 2 файла, в които са добавени 31 реда и са изтрити 19 реда
  1. 1 0
      src/views/sys/login/RegisterForm.vue
  2. 30 19
      src/views/sys/login/useLogin.ts

+ 1 - 0
src/views/sys/login/RegisterForm.vue

@@ -126,6 +126,7 @@
     (data) => {
       console.log('getShow', data.value);
       if (data.value) {
+        console.log('getFormRules', getFormRules);
         setTimeout(() => {
           preventAutoFill.value = !data.value;
           formData.userName = '';

+ 30 - 19
src/views/sys/login/useLogin.ts

@@ -37,8 +37,8 @@ export function useFormValid<T extends Object = any>(formRef: Ref<any>) {
 
   return { validForm };
 }
-
-export function useFormRules(formData?: Recordable) {
+// formData?: Recordable
+export function useFormRules() {
   const { t } = useI18n();
 
   const getAccountFormRule = computed(() => createRule(t('sys.login.accountPlaceholder')));
@@ -48,8 +48,15 @@ export function useFormRules(formData?: Recordable) {
       { validator: validatePassword(), trigger: 'change' },
     ];
   });
+  const getRegisterPasswordFormRule = computed(() => {
+    return [
+      ...createRule(t('sys.login.passwordPlaceholder')),
+      { validator: registerValidatePassword(), trigger: 'change' },
+    ];
+  });
   const getSmsFormRule = computed(() => createRule(t('sys.login.smsPlaceholder')));
   // const getMobileFormRule = computed(() => createRule(t('sys.login.mobilePlaceholder')));
+  // console.log('formData', formData);
   const getMobileFormRule = computed(() => {
     return [
       ...createRule(t('sys.login.mobilePlaceholder')),
@@ -80,6 +87,16 @@ export function useFormRules(formData?: Recordable) {
       return Promise.resolve();
     };
   };
+  const registerValidatePassword = () => {
+    return async (_: RuleObject, value: string) => {
+      // const reg = new RegExp('[\\u4E00-\\u9FFF]+', 'g');
+      const reg = /^(?=.*[0-9\!@#\$%\^&\*])(?=.*[a-zA-Z]).{8,16}$/;
+      if (!reg.test(value) && value?.length) {
+        return Promise.reject('请输入8-16位数字和字母组合密码');
+      }
+      return Promise.resolve();
+    };
+  };
   // const validateConfirmPassword = (password: string) => {
   //   return async (_: RuleObject, value: string) => {
   //     if (!value) {
@@ -95,6 +112,7 @@ export function useFormRules(formData?: Recordable) {
   const getFormRules = computed((): { [k: string]: ValidationRule | ValidationRule[] } => {
     const accountFormRule = unref(getAccountFormRule);
     const passwordFormRule = unref(getPasswordFormRule);
+    const registerPasswordFormRule = unref(getRegisterPasswordFormRule);
     const smsFormRule = unref(getSmsFormRule);
     const mobileFormRule = unref(getMobileFormRule);
 
@@ -106,27 +124,20 @@ export function useFormRules(formData?: Recordable) {
       case LoginStateEnum.REGISTER:
         return {
           userName: mobileFormRule,
-          userPassword: [
-            ...passwordFormRule,
-            { validator: validatePassword(formData?.password), trigger: 'change' },
-          ],
-          // confirmPassword: [
-          //   { validator: validateConfirmPassword(formData?.password), trigger: 'change' },
-          // ],
-          // policy: [{ validator: validatePolicy, trigger: 'change' }],
+          userPassword: [...registerPasswordFormRule],
           ...mobileRule,
         };
 
-      // reset password form rules
-      case LoginStateEnum.RESET_PASSWORD:
-        return {
-          account: accountFormRule,
-          ...mobileRule,
-        };
+      // // reset password form rules
+      // case LoginStateEnum.RESET_PASSWORD:
+      //   return {
+      //     account: accountFormRule,
+      //     ...mobileRule,
+      //   };
 
-      // mobile form rules
-      case LoginStateEnum.MOBILE:
-        return mobileRule;
+      // // mobile form rules
+      // case LoginStateEnum.MOBILE:
+      //   return mobileRule;
 
       // login form rules
       default: