From 51fc8a835e9f2b152e711b5167dab5218b842d85 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 10 十一月 2023 14:48:25 +0800
Subject: [PATCH] 密码策略校验bug

---
 Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue |  219 ++++++++++++++++++++++++++++--------------------------
 1 files changed, 115 insertions(+), 104 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
index 9b24dc2..60c4488 100644
--- a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
+++ b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
@@ -42,85 +42,11 @@
 export default {
   name: "passwords.vue",
   data() {
-    // 鏈�灏忛暱搴︽鍒欑粦瀹氬��
-    let validatePass=""
-    //鏈�澶ч暱搴︽鍒欑粦瀹氬��
-    let validatePass1=""
-    //杩囨湡鏃堕棿姝e垯缁戝畾鍊�
-    let validatePass2=""
-    //鎻愰啋鏃堕棿姝e垯缁戝畾鍊�
-    let validatePass3=""
-    //閿佸畾娆℃暟姝e垯缁戝畾鍊�
-    let validatePass4=""
-    //閿佸畾鏃堕棿姝e垯缁戝畾鍊�
-    let validatePass5=""
-    //鏈�灏忛暱搴︾粦瀹歷alue
-    let values=""
-    //鏈�澶ч暱搴︾粦瀹歷alue
-    let values1=""
-    //鏈�灏忛暱搴︽鍒欐柟娉�
-    validatePass = (rule, value,callback) => {
-     values=value*1
-      if(value == ""){
-        callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�'));
-      // }else if(values >= values1*1){
-      //   callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�'));
-      }else if(/[^\d]/g.test(value)){
-        callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
-      }else {
-        callback();
-      }
-    };
-    //鏈�澶ч暱搴︽鍒欐柟娉�
-    validatePass1= (rule, value,callback) =>{
-      values1=value*1
-     if(value == ""){
-        callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�'));
-      }else if(values1 <= values){
-       callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�'));
-     }else if(/[^\d]/g.test(value)){
-       callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
-     }else {
-       callback();
-     }
-    };
-    validatePass2 = (rule, value,callback) => {
-      if(value == ""){
-        callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
-      }else if(/[^\d]/g.test(value)){
-        callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
-      }else {
-        callback();
-      }
-    };
-    validatePass3 = (rule, value,callback) => {
-      if(value == ""){
-        callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
-      }else if(/[^\d]/g.test(value)){
-        callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
-      }else {
-        callback();
-      }
-    };
-    validatePass4 = (rule, value,callback) => {
-      if(value == ""){
-        callback(new Error('璇疯緭鍏ラ攣瀹氭鏁�'));
-      }else if(/[^\d]/g.test(value)){
-        callback(new Error('閿佸畾娆℃暟鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
-      }else {
-        callback();
-      }
-    };
-    validatePass5 = (rule, value,callback) => {
-      if(value == ""){
-        callback(new Error('璇疯緭鍏ラ攣瀹氭椂闂�'));
-      }else if(/[^\d]/g.test(value)){
-        callback(new Error('閿佸畾鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
-      }else {
-        callback();
-      }
-    };
     return {
+      //鏈�灏忛暱搴︾粦瀹歷alue
+      values:"",
+      //鏈�澶ч暱搴︾粦瀹歷alue
+      values1:"",
       form:{},
       page: {
         pageSize: 10,
@@ -195,7 +121,18 @@
               labelWidth:"22%",
               rules: [{
                 required: true,
-                validator:this.validatePass,
+                validator:(rule, value,callback)=>{
+                  this.values=value*1
+                  if(value == ""){
+                    callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�'));
+                  }else if(/[^\d]/g.test(value)){
+                    callback(new Error('瀵嗙爜鏈�灏忛暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+                  }else if(this.values >= this.values1 && this.values1 != 0){
+                    callback(new Error('瀵嗙爜鏈�灏忛暱搴︿笉鑳藉ぇ浜庡瘑鐮佹渶澶ч暱搴�'))
+                  }else {
+                    callback();
+                  }
+                },
                 trigger: 'blur'
               }]
             },
@@ -206,7 +143,18 @@
               labelWidth:"25%",
               rules: [{
                 required: true,
-                validator:this.validatePass1,
+                validator:(rule, value,callback) =>{
+                  this.values1=value*1
+                  if(value == ""){
+                    callback(new Error('璇疯緭鍏ュ瘑鐮佹渶澶ч暱搴�'));
+                  }else if(this.values1 <= this.values){
+                    callback(new Error('瀵嗙爜鏈�澶ч暱搴︿笉鑳藉皬浜庡瘑鐮佹渶澶ч暱搴�'));
+                  }else if(/[^\d]/g.test(value)){
+                    callback(new Error('瀵嗙爜鏈�澶ч暱搴︾殑杈撳叆绫诲瀷鍙兘涓烘暟瀛楃被鍨�'));
+                  }else {
+                    callback();
+                  }
+                },
                 trigger: 'change'
               }]
             },
@@ -280,7 +228,15 @@
               labelWidth:"22%",
               rules: [{
                 required: true,
-                validator:this.validatePass2,
+                validator: (rule, value,callback) => {
+                  if(value == ""){
+                    callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+                  }else if(/[^\d]/g.test(value)){
+                    callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+                  }else {
+                    callback();
+                  }
+                },
                 trigger: 'blur'
               }]
             },
@@ -291,7 +247,15 @@
               labelWidth:"25%",
               rules: [{
                 required: true,
-                validator:this.validatePass3,
+                validator:(rule, value,callback) => {
+                  if(value == ""){
+                    callback(new Error('璇疯緭鍏ヨ繃鏈熸椂闂�'));
+                  }else if(/[^\d]/g.test(value)){
+                    callback(new Error('杩囨湡鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+                  }else {
+                    callback();
+                  }
+                },
                 trigger: 'blur'
               }]
             },
@@ -302,7 +266,15 @@
               labelWidth:"22%",
               rules: [{
                 required: true,
-                validator:this.validatePass4,
+                validator:(rule, value,callback) => {
+                  if(value == ""){
+                    callback(new Error('璇疯緭鍏ラ攣瀹氭鏁�'));
+                  }else if(/[^\d]/g.test(value)){
+                    callback(new Error('閿佸畾娆℃暟鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+                  }else {
+                    callback();
+                  }
+                },
                 trigger: 'blur'
               }]
             },
@@ -313,7 +285,15 @@
               labelWidth:"25%",
               rules: [{
                 required: true,
-                validator:this.validatePass5,
+                validator:(rule, value,callback) => {
+                  if(value == ""){
+                    callback(new Error('璇疯緭鍏ラ攣瀹氭椂闂�'));
+                  }else if(/[^\d]/g.test(value)){
+                    callback(new Error('閿佸畾鏃堕棿鐨勮緭鍏ョ被鍨嬪彧鑳戒负鏁板瓧绫诲瀷'));
+                  }else {
+                    callback();
+                  }
+                },
                 trigger: 'blur'
               }]
             },
@@ -350,41 +330,72 @@
       this.selectlength=val
     },
     handleCheckboxChange(val) {
-      // console.log("val",val);
       const arr = this.option.column[5];
-      if(val){
-        this.checkboxlength = val.value;
-        return
-      }
-      // console.log("this.checkboxlength",this.checkboxlength);
+      this.checkboxlength = val.value;
       this.checkboxedit = this.checkboxlength.toString().split(",");
-      if (val.value != undefined && val.value != null) {
-        if (this.checkboxlist == val.value) {
+
+      if (val.value !== undefined && val.value !== null) {
+        if (this.checkboxlist === val.value) {
+          return;
         } else {
           this.checkboxlist = val.value;
           if (
-            this.selectlength.value >= val.value.length &&
+            this.selectlength.value > val.value.length &&
             val.value.length > 0
           ) {
-            this.showMessage("蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�");
+            this.showWarningMessage();
           } else if (
-            this.selectlength.value >= this.checkboxedit.length &&
+            this.selectlength.value > this.checkboxedit.length &&
             this.checkboxedit.length > 0
           ) {
-            this.showMessage("蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�");
+            this.showWarningMessage();
           }
         }
       }
-      const disabledCount = Math.min(this.checkboxedit.length, 4);
-      for (let i = 0; i < arr.dicData.length; i++) {
-        arr.dicData[i].disabled = i >= disabledCount;
+
+      if (val.value !== undefined && val.value !== null) {
+        if (val.value.length === 1) {
+          this.setDisabled(arr, [0]);
+        } else if (val.value.length === 2) {
+          this.setDisabled(arr, [0, 1]);
+        } else if (val.value.length === 3) {
+          this.setDisabled(arr, [0, 1, 2]);
+        } else if (val.value.length === 4) {
+          this.setDisabled(arr, [0, 1, 2, 3]);
+        } else if (val.value.length === 0) {
+          this.setDisabled(arr, [-1]);
+        }
+      } else if (this.checkboxNumber.length !== 0) {
+        this.setDisabled(arr, [0, 1, 2, 3]);
       }
-      if (this.editFlag == true) {
-        const disabledCount = Math.min(this.checkboxedit.length, 4);
-        for (let i = 0; i < arr.dicData.length; i++) {
-          arr.dicData[i].disabled = i >= disabledCount;
+
+      if (this.editFlag) {
+        if (this.checkboxedit.length === 1) {
+          this.setDisabled(arr, [0]);
+        } else if (this.checkboxedit.length === 2) {
+          this.setDisabled(arr, [0, 1]);
+        } else if (this.checkboxedit.length === 3) {
+          this.setDisabled(arr, [0, 1, 2]);
+        } else if (this.checkboxedit.length === 4) {
+          this.setDisabled(arr, [0, 1, 2, 3]);
+        } else if (this.checkboxedit.length === 0) {
+          this.setDisabled(arr, [-1]);
         }
       }
+    },
+
+    setDisabled(arr, indices) {
+      arr.dicData.forEach((item, index) => {
+        item.disabled = !indices.includes(index);
+      });
+    },
+
+    showWarningMessage() {
+      this.$message({
+        message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+        type: 'warning',
+        showClose: true,
+      });
     },
     rowDel(row){
       this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
@@ -432,7 +443,7 @@
       this.editFlag=true;
       this.checkboxNumber=row.combinationIds.split(",")
       this.selectNumber=row.requiredType
-        if(this.checkboxNumber.length<=this.selectNumber){
+        if(this.checkboxNumber.length < this.selectNumber){
           this.$message({
             type:"warning",
             message:"蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�"

--
Gitblit v1.9.3