From c28fec02701296f3d807f79323d51367be8c1dc1 Mon Sep 17 00:00:00 2001 From: chenxinying <1039655633@qq.com> Date: Wed, 11 Jun 2025 14:31:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(layout):=20=E5=A2=9E=E5=BC=BA=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E5=AE=89=E5=85=A8=E6=80=A7=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加新的密码验证规则,要求密码至少为8位,包含大小写字母、数字和特殊符号 - 修改密码确认字段的验证逻辑,提高用户体验 - 调整密码输入框的样式,增加密码强度提示 --- src/layout/header/components/update_info.vue | 21 ++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/layout/header/components/update_info.vue b/src/layout/header/components/update_info.vue index 044c4a2..0d94155 100644 --- a/src/layout/header/components/update_info.vue +++ b/src/layout/header/components/update_info.vue @@ -71,6 +71,21 @@ const emits = defineEmits(["update:visible", "update:form", "get-data"]); const { visible, form } = useVModels(props, emits); const formRef = ref(null); const validatePass = (rule, value, callback) => { + if (value) { + const reg1 = + /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@#$%^&*.])[\da-zA-Z~!@#$%^&*.]{8,}$/; + if (!reg1.test(value)) { + callback( + new Error("密码必须是8位以上、必须包含大小写字母、数字、特殊符号") + ); + } else { + callback(); + } + } else { + callback(); + } +}; +const validatePass2 = (rule, value, callback) => { if (form.value.newpwd && !value) { callback(new Error("请再次输入新密码")); } else if (form.value.newpwd && value && value !== form.value.newpwd) { @@ -102,9 +117,11 @@ const rules = { ], newpwd: [ { required: false, message: "请输入新密码", trigger: "blur" }, - { min: 6, max: 18, message: "密码长度为6-18位", trigger: "blur" }, + { required: true, validator: validatePass, trigger: "blur" }, + ], + newpassword1: [ + { required: false, validator: validatePass2, trigger: "blur" }, ], - newpassword1: [{ required: false, validator: validatePass, trigger: "blur" }], }; const fnSubmit = debounce( 1000,