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/DataAuthDialog.vue | 70 +++++++++++++++++++++-------------- 1 files changed, 42 insertions(+), 28 deletions(-) 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