|
@@ -42,13 +42,25 @@ export function useFormRules(formData?: Recordable) {
|
|
const { t } = useI18n();
|
|
const { t } = useI18n();
|
|
|
|
|
|
const getAccountFormRule = computed(() => createRule(t('sys.login.accountPlaceholder')));
|
|
const getAccountFormRule = computed(() => createRule(t('sys.login.accountPlaceholder')));
|
|
- const getPasswordFormRule = computed(() => createRule(t('sys.login.passwordPlaceholder')));
|
|
|
|
const getSmsFormRule = computed(() => createRule(t('sys.login.smsPlaceholder')));
|
|
const getSmsFormRule = computed(() => createRule(t('sys.login.smsPlaceholder')));
|
|
const getMobileFormRule = computed(() => createRule(t('sys.login.mobilePlaceholder')));
|
|
const getMobileFormRule = computed(() => createRule(t('sys.login.mobilePlaceholder')));
|
|
|
|
|
|
const validatePolicy = async (_: RuleObject, value: boolean) => {
|
|
const validatePolicy = async (_: RuleObject, value: boolean) => {
|
|
return !value ? Promise.reject(t('sys.login.policyPlaceholder')) : Promise.resolve();
|
|
return !value ? Promise.reject(t('sys.login.policyPlaceholder')) : Promise.resolve();
|
|
};
|
|
};
|
|
|
|
+ const getPasswordFormRule = (value) => {
|
|
|
|
+ return async (_: RuleObject, value: string) => {
|
|
|
|
+ if (!value) {
|
|
|
|
+ return Promise.reject(t('sys.login.passwordPlaceholder'));
|
|
|
|
+ }
|
|
|
|
+ const regPos = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/; // 非中文
|
|
|
|
+ if (!regPos.test(value)) {
|
|
|
|
+ /* eslint-disable-next-line */
|
|
|
|
+ return Promise.reject('请输入8-16位数字、字母大小写组合');
|
|
|
|
+ }
|
|
|
|
+ return Promise.resolve();
|
|
|
|
+ };
|
|
|
|
+ };
|
|
|
|
|
|
const validateConfirmPassword = (password: string) => {
|
|
const validateConfirmPassword = (password: string) => {
|
|
return async (_: RuleObject, value: string) => {
|
|
return async (_: RuleObject, value: string) => {
|
|
@@ -64,7 +76,7 @@ export function useFormRules(formData?: Recordable) {
|
|
|
|
|
|
const getFormRules = computed((): { [k: string]: ValidationRule | ValidationRule[] } => {
|
|
const getFormRules = computed((): { [k: string]: ValidationRule | ValidationRule[] } => {
|
|
const accountFormRule = unref(getAccountFormRule);
|
|
const accountFormRule = unref(getAccountFormRule);
|
|
- const passwordFormRule = unref(getPasswordFormRule);
|
|
|
|
|
|
+ // const passwordFormRule = unref(getPasswordFormRule);
|
|
const smsFormRule = unref(getSmsFormRule);
|
|
const smsFormRule = unref(getSmsFormRule);
|
|
const mobileFormRule = unref(getMobileFormRule);
|
|
const mobileFormRule = unref(getMobileFormRule);
|
|
|
|
|
|
@@ -77,7 +89,23 @@ export function useFormRules(formData?: Recordable) {
|
|
case LoginStateEnum.REGISTER:
|
|
case LoginStateEnum.REGISTER:
|
|
return {
|
|
return {
|
|
account: accountFormRule,
|
|
account: accountFormRule,
|
|
- password: passwordFormRule,
|
|
|
|
|
|
+ password: [{
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: 'change',
|
|
|
|
+ // @ts-ignore
|
|
|
|
+ validator: async (rule, value) => {
|
|
|
|
+ console.log('value',value)
|
|
|
|
+ const regPos = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/; // 非中文
|
|
|
|
+ if (!value) {
|
|
|
|
+ return Promise.reject('请输入8-16位数字、字母大小写组合');
|
|
|
|
+ }
|
|
|
|
+ if (!regPos.test(value)) {
|
|
|
|
+ /* eslint-disable-next-line */
|
|
|
|
+ return Promise.reject('请输入8-16位数字、字母大小写组合');
|
|
|
|
+ }
|
|
|
|
+ return Promise.resolve();
|
|
|
|
+ },
|
|
|
|
+ }],
|
|
confirmPassword: [
|
|
confirmPassword: [
|
|
{ validator: validateConfirmPassword(formData?.password), trigger: 'change' },
|
|
{ validator: validateConfirmPassword(formData?.password), trigger: 'change' },
|
|
],
|
|
],
|
|
@@ -100,7 +128,9 @@ export function useFormRules(formData?: Recordable) {
|
|
default:
|
|
default:
|
|
return {
|
|
return {
|
|
account: accountFormRule,
|
|
account: accountFormRule,
|
|
- password: passwordFormRule,
|
|
|
|
|
|
+ password: [
|
|
|
|
+ { validator: getPasswordFormRule(formData?.password), trigger: 'change' },
|
|
|
|
+ ],
|
|
};
|
|
};
|
|
}
|
|
}
|
|
});
|
|
});
|