From 7c28cc5b35750faee9b17ec66ad53a981a4a5165 Mon Sep 17 00:00:00 2001 From: zhj Date: Thu, 3 Apr 2025 09:47:52 +0800 Subject: [PATCH] style: icon --- src/router/modules/auth.ts | 2 +- src/views/auth/personalCenter/index.vue | 30 ++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/src/router/modules/auth.ts b/src/router/modules/auth.ts index b46e697..fcd0a34 100644 --- a/src/router/modules/auth.ts +++ b/src/router/modules/auth.ts @@ -25,7 +25,7 @@ export default { name: "personalCenter", component: () => import("@/views/auth/personalCenter/index.vue"), meta: { - icon: "ri:admin-fill", + icon: "material-symbols:manage-accounts", title: "个人中心" } }, diff --git a/src/views/auth/personalCenter/index.vue b/src/views/auth/personalCenter/index.vue index d27f7a8..292c26a 100644 --- a/src/views/auth/personalCenter/index.vue +++ b/src/views/auth/personalCenter/index.vue @@ -43,13 +43,32 @@ const passwordForm = ref({ // 修改密码表单规则 const passwordRules = { - oldPassword: [ - { required: true, message: "请输入原密码", trigger: "blur" }, - { min: 6, message: "密码长度不能小于6位", trigger: "blur" } - ], + oldPassword: [{ required: true, message: "请输入原密码", trigger: "blur" }], newPassword: [ { required: true, message: "请输入新密码", trigger: "blur" }, - { min: 6, message: "密码长度不能小于6位", trigger: "blur" } + { min: 8, max: 18, message: "密码长度必须在8-18位之间", trigger: "blur" }, + { + validator: (rule, value, callback) => { + // 检查是否包含数字 + const hasNumber = /\d/.test(value); + // 检查是否包含字母 + const hasLetter = /[a-zA-Z]/.test(value); + // 检查是否包含特殊符号 + const hasSymbol = /[!@#$%^&*()_+\-=\[\]{};:'",.<>/?\\|]/.test(value); + + // 计算包含的字符类型数量 + const typeCount = [hasNumber, hasLetter, hasSymbol].filter( + Boolean + ).length; + + if (typeCount < 2) { + callback(new Error("密码必须包含数字、字母、符号中的任意两种")); + } else { + callback(); + } + }, + trigger: "blur" + } ], confirmPassword: [ { required: true, message: "请确认新密码", trigger: "blur" }, @@ -168,6 +187,7 @@ const handleChangePassword = async (formEl: FormInstance | undefined) => { const res = await request(authApi("updateManagerPassword"), { method: "POST", body: JSON.stringify({ + id: userInfo.value.id, oldPassword: passwordForm.value.oldPassword, newPassword: passwordForm.value.newPassword })