From 4e13584a74c860f9fa8fd2d6aee3021fe6bb6b77 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 11 四月 2023 20:07:26 +0800
Subject: [PATCH] 对象建模

---
 Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue |  340 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 298 insertions(+), 42 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
index 864b72c..8724503 100644
--- a/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
+++ b/Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
@@ -1,6 +1,25 @@
 <template>
   <basic-container>
     <avue-crud v-model="form" :option="option" :data="data" ref="crud"  @on-load="onLoad" @row-save="rowSave" @row-update="rowUpdate" @row-del="rowDel" :page.sync="page">
+      <template slot="menu" slot-scope="{ row, index }">
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-edit"
+          @click="handleEdit(row, index)"
+        >
+          缂栬緫
+        </el-button>
+        <el-button
+          type="text"
+          size="small"
+          icon="el-icon-delete"
+          @click="handleDel(row, index)"
+        >
+          鍒犻櫎
+        </el-button>
+      </template>
+
       <template slot="icon" slot-scope="scope">
         <i :class="scope.row.icon" style="font-size:24px"></i>
       </template>
@@ -23,6 +42,14 @@
     let validatePass=""
     //鏈�澶ч暱搴︽鍒欑粦瀹氬��
     let validatePass1=""
+    //杩囨湡鏃堕棿姝e垯缁戝畾鍊�
+    let validatePass2=""
+    //鎻愰啋鏃堕棿姝e垯缁戝畾鍊�
+    let validatePass3=""
+    //閿佸畾娆℃暟姝e垯缁戝畾鍊�
+    let validatePass4=""
+    //閿佸畾鏃堕棿姝e垯缁戝畾鍊�
+    let validatePass5=""
     //鏈�灏忛暱搴︾粦瀹歷alue
     let values=""
     //鏈�澶ч暱搴︾粦瀹歷alue
@@ -30,21 +57,65 @@
     //鏈�灏忛暱搴︽鍒欐柟娉�
     validatePass = (rule, value,callback) => {
      values=value*1
-      if(value === ""){
+      if(value == ""){
         callback(new Error('璇疯緭鍏ュ瘑鐮佹渶灏忛暱搴�'));
-      }else if(values >= values1*1){
-        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 === ""){
+     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 {
       form:{},
       page: {
@@ -59,12 +130,15 @@
         border: true,
         index: true,
         rowKey:'id',
+        editBtn:false,
+        delBtn:false,
         column: [
           {
             label: '绛栫暐鍚嶇О',
             prop: 'strategyName',
             align: 'left',
             span:24,
+            labelWidth: "11%",
             rules: [{
               required: true,
               message: "璇疯緭鍏ョ瓥鐣ュ悕绉�",
@@ -74,39 +148,42 @@
           {
             label: '瀵嗙爜鏈�灏忛暱搴�',
             prop: 'minPwdLen',
-            labelWidth:118,
             span:12,
+            labelWidth:"22%",
             rules: [{
               required: true,
               validator:validatePass,
-              trigger: "blur"
-
+              trigger: 'blur'
             }]
           },
           {
             label: '瀵嗙爜鏈�澶ч暱搴�',
             prop: 'maxPwdLen',
-            labelWidth:118,
             span:12,
+            labelWidth:"25%",
             rules: [{
               required: true,
               validator:validatePass1,
-              trigger: "blur"
+              trigger: 'change'
             }]
           },
           {
             label: '缁勫悎鏂规硶',
             prop: 'combinationNames',
             labelWidth: 91,
-            display:false
+            display:false,
+
           },
           {
             //鍐欎袱涓粍鍚堟柟娉曟槸鍥犱负id鍜宯ame涓嶈兘鍚屾椂缁戝畾杩欎釜prop鏉ユ覆鏌擄紝涓�涓〃鏍煎仛闅愯棌鏉ユ暟鎹搷浣滐紙琛ㄥ崟闅愯棌锛夛紝鍙︿竴涓〃鏍煎仛鏄剧ず鍙樉绀哄湪椤甸潰锛堣〃鍗曢殣钘忥級銆�
             label: '缁勫悎鏂规硶',
             prop: 'combinationIds',
             type: "checkbox",
-            labelWidth:91,
+            span:12,
+            labelWidth:"22%",
+            id:5,
             hide:true,
+            change:this.handleCheckboxChange,
             rules: [{
               required: true,
               message: "璇烽�夋嫨缁勫悎鏂规硶",
@@ -135,7 +212,9 @@
             label: '蹇呭~绉嶇被',
             prop: 'requiredType',
             type: 'select',
-            labelWidth: 91,
+            span:12,
+            labelWidth:"25%",
+            change:this.handleSelectChange,
             rules: [{
               required: true,
               message: "璇烽�夋嫨蹇呭~绉嶇被",
@@ -143,19 +222,23 @@
             }],
             dicData:[{
               label:'1绉�',
-              value:0
-            },
+              value:0,
+              disabled:false
+              },
               {
                 label:'2绉�',
-                value:1
+                value:1,
+                disabled:false
               },
               {
                 label:'3绉�',
-                value:2
+                value:2,
+                disabled:false
               },
               {
                 label:'4绉�',
-                value:3
+                value:3,
+                disabled:false
               }
             ]
 
@@ -163,53 +246,54 @@
           {
             label: '杩囨湡鏃堕棿(澶�)',
             prop:'expirationTime',
-            labelWidth:115,
+            span:12,
+            labelWidth:"22%",
             rules: [{
               required: true,
-              message: "璇疯緭鍏ヨ繃鏈熸椂闂�",
-              trigger: "blur"
+              validator:validatePass2,
+              trigger: 'blur'
             }]
           },
           {
             label: '鎻愰啋鏃堕棿(澶�)',
             prop:'reminderTime',
-            labelWidth:113,
+            span:12,
+            labelWidth:"25%",
             rules: [{
               required: true,
-              message: "璇疯緭鍏ユ彁閱掓椂闂�",
-              trigger: "blur"
+              validator:validatePass3,
+              trigger: 'blur'
             }]
           },
           {
             label: '閿佸畾娆℃暟(娆�)',
             prop:'lockingNum',
-            labelWidth:116,
+            span:12,
+            labelWidth:"22%",
             rules: [{
               required: true,
-              message: "璇疯緭鍏ラ攣瀹氭鏁�",
-              trigger: "blur"
+              validator:validatePass4,
+              trigger: 'blur'
             }]
           },
           {
             label: '閿佸畾鏃堕棿(鍒嗛挓)',
             prop:'lockingTime',
-            labelWidth:128,
+            span:12,
+            labelWidth:"25%",
             rules: [{
               required: true,
-              message: "璇疯緭鍏ラ攣瀹氭椂闂�",
-              trigger: "blur"
+              validator:validatePass5,
+              trigger: 'blur'
             }]
           },
           {
             label: '鎻忚堪',
             prop:'desc',
             type: 'textarea',
+            span:12,
+            labelWidth:"22%",
             rows: 5,
-            rules: [{
-              required: true,
-              message: "璇风畝鎷弿杩�",
-              trigger: "blur"
-            }]
           },
           {
             label: '鏄惁涓洪粯璁ょ瓥鐣�',
@@ -225,18 +309,163 @@
             }]
           }
         ],
-      }
+      },
+      //娣诲姞瀛樻斁澶氶�夌殑鍙橀噺,鐢ㄤ簬涓嬫媺鑿滃崟鐨勭鐢ㄦ晥鏋滃拰蹇呭~绉嶇被鏄惁澶т簬缁勫悎鏂瑰紡鐒跺悗鎻愮ず鐢ㄦ埛閲嶆柊閫夋嫨
+      checkboxlength:"",
+      //杩欎釜鏄笅鎷夎彍鍗曠殑鏁版嵁鍙橀噺
+      selectlength:"",
+      //杩欎釜鏄敤浜庨槻姝hange鏃堕棿鍐掓场,鍑虹幇涓ゆ寮圭獥瀹氫箟鐨勫彉閲�
+      checkboxlist:"",
+      //鐢ㄤ簬棣栨鐐瑰嚮缂栬緫锛屽垽鏂粍鍚堟柟寮忔槸鍚﹀皬浜庡繀濉绫荤殑鍙橀噺
+      checkboxNumber:"",
+      selectNumber:"",
+      //杩欎釜涔熸槸瀛樻斁澶氶�夌殑鍙橀噺,鏁堟灉涓�鏍�,鍙槸鐢ㄤ綔鍦ㄧ紪杈戞ā鍧�
+      checkboxedit:"",
+      // 鐢ㄤ簬鍒ゆ柇鏄惁鏄紪杈�
+      editFlag:false
+    //  鑷充簬涓轰粈涔堟病鍦ㄧ敤鎴烽�夋嫨蹇呭~绉嶇被澶т簬缁勫悎鏂瑰紡鐨勬椂鍊欙紝缁欎笅鎷夎彍鍗曢�変腑鐨勬暟鎹竻绌轰簡锛岃繖鏍锋瘮缁欎簣寮圭獥鎻愰啋鏇村悎鐞�
+    //  鍘熷洜鏄壘浜嗗ソ涔呮病鎵惧埌avue妗嗘灦杩欎釜閫変腑鐨勫睘鎬ф樉绀哄湪椤甸潰鎬庝箞淇敼锛岀洿鎺ヤ慨鏀逛笅鎷夎彍鍗曟暟鎹殑value娌℃晥鏋滐紝鎵句笉鍒版槸浠�涔堟帶鍒惰繖椤甸潰鏄剧ず鐨勯�変腑鏁版嵁
+    //  鎴戝皾璇曞湪dicdata澶栭潰瀹氫箟value淇敼涓嬫媺鑿滃崟鏄剧ず鐨勯粯璁ゅ�间篃涓嶈锛岀劧鍚庡啀灏濊瘯璋冪敤avue鐨刢lose娓呴櫎鏂规硶锛屼絾鏄篃鏄彧鑳藉疄鐜板湪涓嬫媺鑿滃崟鍚庨潰鏄剧ず涓�涓猉鍙�
+    //  褰撶敤鎴锋墜鍔ㄧ偣鍑绘竻闄わ紝鎵嶅彲浠ユ妸鏁版嵁娓呴櫎锛屾�昏�岃█涔嬫壘浜嗗ソ涔咃紝娌℃壘鍒拌繖涓竻闄ゆ柟娉曪紝avue鐨勮鏄庢枃妗d篃娌℃槑纭爣鏄庤繖涓姛鑳界殑鍐呯疆鎿嶄綔鏂规硶
+    //  鎴戞兂鍒扮殑搴旇鍙互鐨勬柟娉曟槸锛岃垗寮僶ption閲岄潰鐨勭粍鍚堟柟寮忥紝鑷繁鎵嬪姩鍦ㄩ〉闈㈡坊鍔犳彃妲藉畾涔夌粍鍚堟柟寮忥紝鑷充簬鏄娇鐢╝vue杩樻槸element-ui鏉ュ啓锛岃繕瑕佺湅鍏蜂綋鐨勬楠�
+    //  鍥犱负涓�鏀瑰姩锛屾垜鐜板湪鍐欑殑閫昏緫姣斿涓嬫媺鑿滃崟绂佺敤鍜岀瓥鐣ラ獙璇佺瓑绛夎閲嶆柊姊崇悊锛屾垜杩欒竟鎬ョ潃璧跺璞″缓妯$殑杩涘害锛屾墍浠ュ厛鐢ㄨ繖绉嶆柟寮忔潵澶勭悊锛屽鏋滄垜鍥炲ご鏈夋椂闂存垜鍐嶆潵缁х画鏀癸紝灏辨病鏈夎繖鏉℃敞閲婁簡銆�
     }
 
   },
   created() {
     this.onLoad()
-
   },
   mount() {
-
   },
   methods:{
+    handleSelectChange(val){
+      this.selectlength=val
+      // if(val.value >= this.checkboxlength.value.length && this.checkboxlength.value.length > 0){
+      //   console.log("澶т簬")
+      // }
+    },
+    handleCheckboxChange(val){
+      const arr=this.option.column[5];
+      this.checkboxlength=val.value;
+      //娣诲姞鐨勬椂鍊檆heckboxlength鏄竴涓暟缁勶紝鍒颁簡缂栬緫浠栧氨鏄竴涓瓧绗︿覆锛屽鏋滄垜鎴戠洿鎺ヨ浆鎹负鏁扮粍锛屽洜涓烘湰鏉ュ氨鏄暟缁勬墍浠ョ偣鍑绘坊鍔犵殑鏃跺�欎細鎶ラ敊
+      //濡傛灉鎴戝彉鎴愬瓧绗︿覆鍚庡啀杞暟缁�,娣诲姞涓嶄細鎶ラ敊浜�,浣嗘槸缂栬緫鐨勬椂鍊欏氨鍙堜細鎶ラ敊浜�,鏈潵灏辨槸瀛楃涓插張璧颁簡涓�閬峵ostring
+      this.checkboxedit=this.checkboxlength.toString().split(",")
+      if(val.value != undefined && val.value != null){
+        if(this.checkboxlist == val.value){
+        //  鍒ゆ柇鐩哥瓑鍒欎笉鎿嶄綔锛屼笉绛夊垯閲嶆柊鎵ц銆傚姞杩欏眰鍒ゆ柇鏄洜涓篶hange浜嬩欢瑙﹀彂涓ゆ锛屼細鍑虹幇涓や釜娑堟伅鎻愮ず妗�
+        //  瀹氫箟checkboxlist鍙橀噺,瀛樺偍鐨勬敼鍙樼殑鍊�,濡傛灉鍊兼敼鍙樺拰鍙橀噺鐩哥瓑鍒欎笉闇�瑕佷换浣曟搷浣�
+        }else {
+          this.checkboxlist=val.value
+          if( this.selectlength.value >= val.value.length && val.value.length > 0 ){
+            this.$message({
+              message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+              type: 'warning',
+              showClose: true,
+            });
+          }else if(this.selectlength.value >= this.checkboxedit.length  && this.checkboxedit.length > 0 ){
+            this.$message({
+              message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+              type: 'warning',
+              showClose: true,
+            });
+          }
+        }
+          // if(this.checkboxeditlist == val.value){
+          // //  tong
+          // }else {
+          //   this.checkboxeditlist=val.value
+          //   if(this.selectlength.value >= this.checkboxedit.length  && this.checkboxedit.length > 0){
+          //     this.$message({
+          //       message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+          //       type: 'warning',
+          //       showClose: true,
+          //     });
+          //   }
+          // }
+        //  if(this.selectlength.value >= this.checkboxedit.length  && this.checkboxedit.length > 0){
+        //   this.$message({
+        //     message: '蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�',
+        //     type: 'warning',
+        //     showClose: true,
+        //   });
+        // }
+      }
+      // 杩欓噷涓�鐩存姤length鐨勯敊璇�
+      // arr.forEach((item,index)=>{
+      //   console.log(item,index)
+      //   if(val.value != undefined && val.value != null && val.value.length==0){
+      //     item.disabled=false
+      //   }
+      //   if(val.value != undefined && val.value != null && val.value.length>=1){
+      //
+      //    }
+      // })
+      // if(val.value != undefined && val.value != null && val.value.length >= 0){
+      //   arr.dicData[val.value.length-1].disabled=true
+      // }
+      // }else if(val.value != undefined && val.value != null && val.value.length ==0){
+      //   arr.dicData.disabled=false
+      // }
+      if(val.value != undefined && val.value != null && val.value.length == 1){
+        arr.dicData[0].disabled=false
+        arr.dicData[1].disabled=true
+        arr.dicData[2].disabled=true
+        arr.dicData[3].disabled=true
+      }else if(val.value != undefined && val.value != null && val.value.length ==2){
+        arr.dicData[0].disabled=false
+        arr.dicData[1].disabled=false
+        arr.dicData[2].disabled=true
+        arr.dicData[3].disabled=true
+      }else if(val.value != undefined && val.value != null && val.value.length ==3){
+        arr.dicData[0].disabled=false
+        arr.dicData[1].disabled=false
+        arr.dicData[2].disabled=false
+        arr.dicData[3].disabled=true
+      }else if(val.value != undefined && val.value != null && val.value.length==4){
+        arr.dicData[0].disabled=false
+        arr.dicData[1].disabled=false
+        arr.dicData[2].disabled=false
+        arr.dicData[3].disabled=false
+      }else if(val.value != undefined && val.value != null && val.value.length==0  ){
+         arr.dicData[0].disabled=true
+         arr.dicData[1].disabled=true
+         arr.dicData[2].disabled=true
+         arr.dicData[3].disabled=true
+      }else if(this.checkboxNumber.length!=0){
+        arr.dicData[0].disabled=false
+        arr.dicData[1].disabled=false
+        arr.dicData[2].disabled=false
+        arr.dicData[3].disabled=false
+      }
+      if(this.editFlag == true){
+        if(this.checkboxedit.length == 1){
+          arr.dicData[0].disabled=false
+          arr.dicData[1].disabled=true
+          arr.dicData[2].disabled=true
+          arr.dicData[3].disabled=true
+        }else if(this.checkboxedit.length == 2){
+          arr.dicData[0].disabled=false
+          arr.dicData[1].disabled=false
+          arr.dicData[2].disabled=true
+          arr.dicData[3].disabled=true
+        }else if(this.checkboxedit.length ==3){
+          arr.dicData[0].disabled=false
+          arr.dicData[1].disabled=false
+          arr.dicData[2].disabled=false
+          arr.dicData[3].disabled=true
+        }else if(this.checkboxedit ==4){
+          arr.dicData[0].disabled=false
+          arr.dicData[1].disabled=false
+          arr.dicData[2].disabled=false
+          arr.dicData[3].disabled=false
+        }else if(this.checkboxedit.length ==0){
+          arr.dicData[0].disabled=true
+          arr.dicData[1].disabled=true
+          arr.dicData[2].disabled=true
+          arr.dicData[3].disabled=true
+        }
+      }
+    },
     rowDel(row){
       this.$confirm("纭畾灏嗛�夋嫨鏁版嵁鍒犻櫎?", {
         confirmButtonText: "纭畾",
@@ -252,13 +481,15 @@
             message: "鎿嶄綔鎴愬姛!"
           });
           this.onLoad();
-        });
+        }).catch(res=>{
+        console.log(res)
+      })
     },
     rowSave(row,done){
       //灏嗗瘑鐮佺粍鍚堟柟寮忕殑鏁版嵁杞崲涓哄瓧绗︿覆
       const spliceId= row.combinationIds.toString()
       row.combinationIds=spliceId
-      getadd(row).then(()=>{
+      getadd(row).then((res)=>{
         // this.onLoad(this.page);
         this.$message({
           type: "success",
@@ -266,9 +497,31 @@
         });
         done(row)
         this.onLoad()
+        console.log(res)
       }).catch((res)=>{
         console.log(res)
       })
+    },
+    rowEdit(row){
+      console.log("鎵撳紑缂栬緫edit",row)
+    },
+    handleDel(row){
+      this.$refs.crud.rowDel(row,row.$index);
+    },
+    handleEdit(row){
+      this.$refs.crud.rowEdit(row,row.$index);
+      this.editFlag=true;
+      // const arr=this.option.column[5];
+      this.checkboxNumber=row.combinationIds.split(",")
+      this.selectNumber=row.requiredType
+      console.log(this.checkboxNumber, this.selectNumber)
+    //  鎵撳紑缂栬緫棣栧厛鍒ゆ柇锛岀粍鍚堟柟娉曟槸鍚﹀皬浜庡繀濉绫伙紝濡傛灉灏忎簬缁欎簣鎻愰啋淇敼
+        if(this.checkboxNumber.length<=this.selectNumber){
+          this.$message({
+            type:"warning",
+            message:"蹇呭~绉嶇被涓嶈兘澶т簬缁勫悎鏂规硶锛岃閲嶆柊閫夋嫨锛�"
+          })
+        }
     },
     rowUpdate(row,index,done){
       getupdata(row).then(()=>{
@@ -278,6 +531,8 @@
           message: "淇敼鎴愬姛!"
         });
         done()
+      }).catch(res=>{
+        console.log(res)
       })
     },
     onLoad(page, params = {}) {
@@ -288,6 +543,8 @@
         // this.data = data.records;
         // this.loading = false;
         // this.selectionClear();
+        console.log(res)
+        this.page.total=res.data.data.totalElements
         this.data=res.data.data.content
       });
     }
@@ -296,6 +553,5 @@
 }
 </script>
 
-<style scoped>
-
+<style lang="scss">
 </style>

--
Gitblit v1.9.3