From 9057e04efad1b7d61c77a72e5c37a504d0aee935 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 26 九月 2025 09:24:03 +0800
Subject: [PATCH] H5静态化

---
 admin/src/components/system/user/ResetPwdWindow.vue |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/admin/src/components/system/user/ResetPwdWindow.vue b/admin/src/components/system/user/ResetPwdWindow.vue
index 287ce32..48c7080 100644
--- a/admin/src/components/system/user/ResetPwdWindow.vue
+++ b/admin/src/components/system/user/ResetPwdWindow.vue
@@ -31,12 +31,38 @@
       },
       rules: {
         password: [
-          { required: true, message: '璇疯緭鍏ュ瘑鐮�' }
+          { required: true, message: '璇疯緭鍏ュ瘑鐮�', trigger: 'blur' },
+          { validator: this.validatePassword, trigger: 'blur' }
         ]
       }
     }
   },
   methods: {
+    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() // 楠岃瘉閫氳繃
+        }
+      }
+    },
+    /**
+     * 鎵撳紑绐楀彛
+     *
+     * @param user 鐩爣鐢ㄦ埛
+     */
     open (user) {
       this.user = user
       this.visible = true
@@ -44,7 +70,9 @@
         this.$refs.form.resetFields()
       })
     },
-    // 纭閲嶇疆瀵嗙爜
+    /**
+     * 纭閲嶇疆瀵嗙爜
+     */
     confirm () {
       if (this.isWorking) {
         return

--
Gitblit v1.9.3