import { reactive } from "vue"; import { isPhone } from "@pureadmin/utils"; import type { FormRules } from "element-plus"; import { $t, transformI18n } from "@/plugins/i18n"; import { useUserStoreHook } from "@/store/modules/user"; /** 6位数字验证码正则 */ export const REGEXP_SIX = /^\d{6}$/; /** 密码正则(密码格式应为8-18位数字、字母、符号的任意两种组合) */ export const REGEXP_PWD = /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[()])+$)(?!^.*[\u4E00-\u9FA5].*$)([^(0-9a-zA-Z)]|[()]|[a-z]|[A-Z]|[0-9]){8,18}$/; /** 登录校验 */ const loginRules = reactive({ password: [ { validator: (rule, value, callback) => { if (value === "") { callback(new Error(transformI18n($t("login.passwordReg")))); } else if (!REGEXP_PWD.test(value)) { callback(new Error(transformI18n($t("login.passwordRuleReg")))); } else { callback(); } }, trigger: "blur" } ], verifyCode: [ { validator: (rule, value, callback) => { if (value === "") { callback(new Error(transformI18n($t("login.verifyCodeReg")))); } else if (useUserStoreHook().verifyCode !== value) { callback(new Error(transformI18n($t("login.verifyCodeCorrectReg")))); } else { callback(); } }, trigger: "blur" } ] }); /** 手机登录校验 */ const phoneRules = reactive({ phone: [ { validator: (rule, value, callback) => { if (value === "") { callback(new Error(transformI18n($t("login.phoneReg")))); } else if (!isPhone(value)) { callback(new Error(transformI18n($t("login.phoneCorrectReg")))); } else { callback(); } }, trigger: "blur" } ], verifyCode: [ { validator: (rule, value, callback) => { if (value === "") { callback(new Error(transformI18n($t("login.verifyCodeReg")))); } else if (!REGEXP_SIX.test(value)) { callback(new Error(transformI18n($t("login.verifyCodeSixReg")))); } else { callback(); } }, trigger: "blur" } ] }); /** 忘记密码校验 */ const updateRules = reactive({ phone: [ { validator: (rule, value, callback) => { if (value === "") { callback(new Error(transformI18n($t("login.phoneReg")))); } else if (!isPhone(value)) { callback(new Error(transformI18n($t("login.phoneCorrectReg")))); } else { callback(); } }, trigger: "blur" } ], verifyCode: [ { validator: (rule, value, callback) => { if (value === "") { callback(new Error(transformI18n($t("login.verifyCodeReg")))); } else if (!REGEXP_SIX.test(value)) { callback(new Error(transformI18n($t("login.verifyCodeSixReg")))); } else { callback(); } }, trigger: "blur" } ], password: [ { validator: (rule, value, callback) => { if (value === "") { callback(new Error(transformI18n($t("login.passwordReg")))); } else if (!REGEXP_PWD.test(value)) { callback(new Error(transformI18n($t("login.passwordRuleReg")))); } else { callback(); } }, trigger: "blur" } ] }); export { loginRules, phoneRules, updateRules };