From e30d67f3b88515759bc468962375a2e1b07bf655 Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 26 一月 2024 15:45:12 +0800
Subject: [PATCH] 数据授权新需求(百分之七十)

---
 Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue |   33 +++++++++-------
 Source/UBCS-WEB/src/api/omd/btmType.js                      |    2 
 Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue     |   70 +++++++++++++++++++++--------------
 3 files changed, 61 insertions(+), 44 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/omd/btmType.js b/Source/UBCS-WEB/src/api/omd/btmType.js
index 11938d0..d0e827d 100644
--- a/Source/UBCS-WEB/src/api/omd/btmType.js
+++ b/Source/UBCS-WEB/src/api/omd/btmType.js
@@ -68,4 +68,4 @@
             ...params
         }
     })
-}
\ No newline at end of file
+}
diff --git a/Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue b/Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
index 5a8e927..9ee7e77 100644
--- a/Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
+++ b/Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
@@ -136,7 +136,9 @@
   },
   computed: {},
   mounted() {},
-  created() {},
+  created() {
+    this.addIndex = this.classifyAuthData.length <= 0 ? 0 :this.classifyAuthData.length -1;
+  },
   watch: {
     // 鐩戝惉鐖剁粍浠朵紶鐨勭獥鍙f樉绀洪殣钘忕殑鍊�
     visible() {
@@ -165,24 +167,26 @@
                 Object.keys(this.classifyAuthData[index]).forEach((key) => {
                   this.$set(this.classifyAuthData[index].authButton,item.code,true);
                 });
+
+                //娣诲姞 鈥滄煡鐪嬪叏閮ㄧ鐢ㄦ潯浠垛��
+                if (item.code === "classify_view") {
+                  this.$set(this.classifyAuthData[index].authButton, "allDisabled", true);
+                  console.log(this.classifyAuthData[index].authButton.allDisabled)
+                }
+
               } else {
                 Object.keys(this.classifyAuthData[index]).forEach((key) => {
                   this.$set(this.classifyAuthData[index].authButton,item.code,false);
                 });
+
+                if(item.code === "classify_view"){
+                  this.classifyAuthData[index].authButton.allDisabled = false;
+                }
               }
             }
           });
         });
-        //娣诲姞 鈥滄煡鐪嬪叏閮ㄧ鐢ㄦ潯浠垛��
-        if (this.classifyAuthData) {
-          this.classifyAuthData.forEach((classkey, classIndex) => {
-            if (classkey.authButton.classify_view) {
-              this.$set(this.classifyAuthData[classIndex].authButton,"allDisabled",true);
-            } else {
-              this.classifyAuthData[classIndex].authButton.allDisabled = false;
-            }
-          });
-        }
+
         //寮哄埗鍒锋柊琛ㄦ牸
         this.itemKey = uuidv4();
       });
@@ -238,8 +242,7 @@
         this.$message.warning("褰撳墠绉熸埛涓嶅瓨鍦ㄨ鑹蹭俊鎭紒");
         return;
       }
-      // console.log('this.roleList', this.roleList)
-      this.addIndex++; //鑷畾涔夌敓鎴愭坊鍔犺涓嬫爣
+
       let item = {
         roleData: this.roleList[0].id,
         classifyItem: this.classifyData.label,
@@ -253,6 +256,7 @@
       });
       this.classifyAuthData.push(item);
       this.roleHandlerMethods(this.roleList[0].id, "add", this.addIndex);
+      this.addIndex++; //鑷畾涔夌敓鎴愭坊鍔犺涓嬫爣
     },
     // 鍒犻櫎琛�
     subClassifyAuth() {
@@ -305,7 +309,7 @@
           this.$message.warning("瑙掕壊鍜屽垎绫诲凡缁忓瓨鍦紝璇烽噸鏂伴厤缃紒");
           return;
         }
-        
+
         let flag = false;
         this.classifyAuthData.forEach((item) => {
           let itemButtonList = [];
@@ -432,7 +436,6 @@
                 Vue.set(item, data, true);
               });
               this.classifyAuthData.push(item);
-              this.addIndex = this.classifyAuthData.length - 1; //娣诲姞琛屼笅鏍囩瓑浜巆lassifyAuthData鐨勯暱搴�-1
               this.roleHandlerMethods(authData.roleId, "create", index);
               // console.log('index', index)
             });
diff --git a/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue b/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue
index d1672f2..937cd36 100644
--- a/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue
+++ b/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue
@@ -60,8 +60,8 @@
           <el-checkbox
             v-if="item.type === 'checkbox'"
             v-model="row[item.prop]"
-            @change="checkBoxToChangeTheEvent(row[item.prop],item.code)"
-            :disabled="row.authButton.allDisabled ? true : row.authButton[item.code]">
+            :disabled="row.authButton.allDisabled ? true : row.authButton[item.code]"
+            @change="checkBoxToChangeTheEvent(row[item.prop],item.code,row,item.prop)">
           </el-checkbox>
         </template>
       </el-table-column>
@@ -96,8 +96,8 @@
       default: false,
     },
     // 褰撳墠鐐瑰嚮鐨勮妭鐐�
-    TreeNode:{
-      type:Object
+    TreeNode: {
+      type: Object
     }
   },
   data() {
@@ -128,6 +128,11 @@
         this.loadAuthPage();
       }
     },
+    classifyAuthData(newval){
+
+      this.addIndex = newval.length <= 0 ? 0 :newval.length-1;
+      console.log(this.addIndex)
+    }
   },
   computed: {},
   mounted() {
@@ -135,11 +140,21 @@
   created() {
   },
   methods: {
-    checkBoxToChangeTheEvent(check,code){
-      // console.log(check,code)
-      // if(code === "data_view" && check){
-      //
-      // }
+    checkBoxToChangeTheEvent(check, code, row, id) {
+      if (code === "data_view") {
+        row.checkTheStatus = check;
+      } else if (!row.checkTheStatus) {
+        this.$message.warning('璇峰厛鍕鹃�夋煡鐪嬫寜閽紒');
+        // 鍦ㄦ潯浠朵笉婊¤冻鏃跺皢澶氶�夋鐘舵�佽缃负false
+        row[id] = false;
+      }
+
+      if (!row.checkTheStatus) {
+        this.classifyAuthButton.forEach(key => {
+          // 鏌ョ湅涓篺alse鏃跺皢鎵�鏈夊閫夋鐘舵�佽缃负false
+          row[key.id] = false;
+        });
+      }
     },
     // 鍏抽棴瀵硅瘽妗�
     closeDialog() {
@@ -155,6 +170,7 @@
         const filteredItems = this.classifyAuthButton.filter(item =>
           !res.data.data.some(x => x.id === item.id)
         );
+
         //鍜岃〃鏍煎垪杩涜瀵规瘮
         this.classifyAuthHeader.forEach((item) => {
           const isMatched = filteredItems.some((x) => x.id === item.prop);
@@ -162,27 +178,26 @@
             if (this.classifyAuthData[index]) {
               if (isMatched) {
                 Object.keys(this.classifyAuthData[index]).forEach((key) => {
-                  this.$set(this.classifyAuthData[index].authButton,item.code,true);
+                  this.$set(this.classifyAuthData[index].authButton, item.code, true);
+
+                  //娣诲姞 鈥滄煡鐪嬪叏閮ㄧ鐢ㄦ潯浠垛��
+                  if (item.code === "data_view") {
+                    this.$set(this.classifyAuthData[index].authButton, "allDisabled", true);
+                  }
                 });
+
               } else {
                 Object.keys(this.classifyAuthData[index]).forEach((key) => {
-                  this.$set(this.classifyAuthData[index].authButton,item.code,false);
+                  this.$set(this.classifyAuthData[index].authButton, item.code, false);
                 });
+                if(item.code === "data_view"){
+                  this.classifyAuthData[index].authButton.allDisabled = false;
+                }
               }
             }
           });
         });
 
-        //娣诲姞鈥樻煡鐪嬧�欑鐢�
-        if (this.classifyAuthData) {
-          this.classifyAuthData.forEach((classkey, classIndex) => {
-            if (classkey.authButton.classify_view) {
-              this.$set(this.classifyAuthData[classIndex].authButton,"allDisabled",true);
-            } else {
-              this.classifyAuthData[classIndex].authButton.allDisabled = false;
-            }
-          });
-        }
         //寮哄埗鍒锋柊琛ㄦ牸
         this.itemKey = uuidv4();
       });
@@ -204,14 +219,14 @@
               if (isMatched) {
                 Object.keys(currentRow).forEach((key) => {
                   currentRow.authButton[item.code] = true;
-                  if (!currentRow.authButton.classify_view) {
+                  if (!currentRow.authButton.data_view) {
                     currentRow.authButton.allDisabled = false;
                   }
                 });
               } else {
                 Object.keys(currentRow).forEach((key) => {
                   currentRow.authButton[item.code] = false;
-                  if (!currentRow.authButton.classify_view) {
+                  if (!currentRow.authButton.data_view) {
                     currentRow.authButton.allDisabled = false;
                   }
                 });
@@ -230,11 +245,11 @@
         this.$message.warning("褰撳墠绉熸埛涓嶅瓨鍦ㄨ鑹蹭俊鎭紒");
         return;
       }
-      this.addIndex++; //鑷畾涔夌敓鎴愭坊鍔犺涓嬫爣
+
       let item = {
         roleData: this.roleList[0].id,
         classifyItem: this.classifyData.label,
-        authButton:{},
+        authButton: {},
         uuid: uuidv4(),//鐢熸垚鍞竴鐨刬d,
         index: this.addIndex,
       }
@@ -323,7 +338,7 @@
           return;
         }
         // console.log(form)
-      }else{
+      } else {
         // 涓虹┖璇佹槑鏄竻绌烘巿鏉冨垪琛�
         form.isCLear = true;
       }
@@ -404,7 +419,7 @@
                 roleData: authData.roleId,
                 classifyItem: this.classifyData.label,
                 index: index,
-                authButton:{},
+                authButton: {},
                 uuid: uuidv4(),//鐢熸垚鍞竴鐨刬d
               }
               //灏嗘寜閽缃繘鍘�
@@ -412,7 +427,6 @@
                 Vue.set(item, data, true);
               });
               this.classifyAuthData.push(item);
-              this.addIndex = this.classifyAuthData.length - 1; //娣诲姞琛屼笅鏍囩瓑浜巆lassifyAuthData鐨勯暱搴�-1
               this.roleHandlerMethods(authData.roleId, 'create', index)
             })
           }

--
Gitblit v1.9.3