From 30e858fa504b268b9b436afca0a1259cf6e8c488 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 19 八月 2025 11:01:40 +0800
Subject: [PATCH] 优化

---
 admin/src/components/common/Header.vue |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/admin/src/components/common/Header.vue b/admin/src/components/common/Header.vue
index a041e98..b8d5c98 100644
--- a/admin/src/components/common/Header.vue
+++ b/admin/src/components/common/Header.vue
@@ -9,7 +9,7 @@
       <div class="user">
         <el-dropdown trigger="click">
           <span class="el-dropdown-link" style="color: white">
-            <img v-if="userInfo != null" :src="userInfo.avatar == null ? '@/assets/images/avatar/man.png' : userInfo.avatar" alt="">{{userInfo | displayName}}<i class="el-icon-arrow-down el-icon--right"></i>
+            <img v-if="userInfo != null" :src="userInfo.avatar == null ? '@/assets/avatar/man.png' : userInfo.avatar" alt="">{{userInfo | displayName}}<i class="el-icon-arrow-down el-icon--right"></i>
           </span>
           <el-dropdown-menu slot="dropdown">
             <el-dropdown-item @click.native="changePwd">淇敼瀵嗙爜</el-dropdown-item>
@@ -72,7 +72,8 @@
             { required: true, message: '璇疯緭鍏ュ師濮嬪瘑鐮�' }
           ],
           newPwd: [
-            { required: true, message: '璇疯緭鍏ユ柊瀵嗙爜' }
+            { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' },
+            { validator: this.validatePassword, trigger: 'blur' },
           ],
           confirmPwd: [
             { required: true, message: '璇峰啀娆¤緭鍏ユ柊瀵嗙爜' }
@@ -110,6 +111,26 @@
         this.$refs.changePwdDataForm.resetFields()
       })
     },
+    validatePassword(rule, value, callback) {
+      if (!value) {
+        callback(new Error('璇疯緭鍏ュ瘑鐮�'))
+      } else {
+        const lengthValid = /^.{6,20}$/.test(value)
+        const hasLetter = /[a-zA-Z]/.test(value)
+        const hasNumber = /[0-9]/.test(value)
+        const hasSpecial = /[!@#$%^&*(),.?":{}|<>]/.test(value)
+
+        const typesCount = [hasLetter, hasNumber, hasSpecial].filter(Boolean).length
+
+        if (!lengthValid) {
+          callback(new Error('瀵嗙爜闀垮害闇�涓�6鍒�20涓瓧绗�'))
+        } else if (typesCount < 2) {
+          callback(new Error('瀵嗙爜闇�鍖呭惈瀛楁瘝銆佹暟瀛楀強鐗规畩瀛楃涓殑鑷冲皯涓ょ'))
+        } else {
+          callback() // 楠岃瘉閫氳繃
+        }
+      }
+    },
     /**
      * 纭畾淇敼瀵嗙爜
      */
@@ -131,7 +152,7 @@
         updatePwd({
           oldPwd: this.changePwdData.form.oldPwd,
           newPwd: this.changePwdData.form.newPwd
-        })
+        },true)
           .then(() => {
             this.visible.changePwd = false
             setTimeout(() => {

--
Gitblit v1.9.3