From 988cf8b273a2015833c024727deb9acc46060b3e Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 22 八月 2024 10:41:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue | 84 +++++++++++++++++++++++++----------------- 1 files changed, 50 insertions(+), 34 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue b/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue index d1672f2..ad57d3a 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,15 +96,15 @@ default: false, }, // 褰撳墠鐐瑰嚮鐨勮妭鐐� - TreeNode:{ - type:Object + TreeNode: { + type: Object } }, data() { return { // 瀵硅瘽妗嗘樉绀烘帶鍒� isShowDialog: this.visible, - isLoading: false, + isLoading: true, tableHeight: 'calc(100vh - 550px)', classifyAuthData: [], //鍒楀ご @@ -128,6 +128,9 @@ this.loadAuthPage(); } }, + classifyAuthData(newval) { + this.addIndex = newval.length <= 0 ? 0 : newval.length - 1; + } }, computed: {}, mounted() { @@ -135,11 +138,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,34 +168,36 @@ const filteredItems = this.classifyAuthButton.filter(item => !res.data.data.some(x => x.id === item.id) ); + //鍜岃〃鏍煎垪杩涜瀵规瘮 this.classifyAuthHeader.forEach((item) => { + // if (item.code !== 'data_view') { + // this.$set(this.classifyAuthData[index].authButton, "allDisabled", true); + // } const isMatched = filteredItems.some((x) => x.id === item.prop); this.$nextTick(() => { 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; - } - }); - } + // console.log(this.classifyAuthData) //寮哄埗鍒锋柊琛ㄦ牸 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,13 +245,13 @@ 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, + index: this.classifyAuthData.length -1, } //灏嗘寜閽缃繘鍘� this.classifyAuthButton.forEach(data => { @@ -244,7 +259,7 @@ }) //console.log(item) this.classifyAuthData.push(item) - this.roleHandlerMethods(this.roleList[0].id, 'add', this.addIndex) + this.roleHandlerMethods(this.roleList[0].id, 'add', this.classifyAuthData.length -1) }, // 鍒犻櫎琛� subClassifyAuth() { @@ -274,6 +289,7 @@ classifyAuthList: [], isCLear: false, //榛樿鏄竻绌� classifyId: this.TreeNode.oid, + authType: 'data_auth', }; let isRepeat = false; if (this.classifyAuthData.length > 0) { @@ -299,7 +315,7 @@ let itemButtonList = []; //绛涢�夊嚭鎸夐挳鍕鹃�変负true鐨勫垪 for (let key in item) { - if (item[key] === true) { + if (item[key] === true && key !== 'checkTheStatus') { itemButtonList.push(key); } } @@ -323,7 +339,7 @@ return; } // console.log(form) - }else{ + } else { // 涓虹┖璇佹槑鏄竻绌烘巿鏉冨垪琛� form.isCLear = true; } @@ -354,7 +370,7 @@ }, loadAuthPage() { return new Promise((resolve, reject) => { - // console.log(this.classifyData); + this.isLoading = true; getButtonByParentCode({code: this.classifyData.attributes.id}).then(res => { // 璁板綍鎸夐挳鏁版嵁 this.classifyAuthButton = res.data.data; @@ -404,7 +420,7 @@ roleData: authData.roleId, classifyItem: this.classifyData.label, index: index, - authButton:{}, + authButton: {}, uuid: uuidv4(),//鐢熸垚鍞竴鐨刬d } //灏嗘寜閽缃繘鍘� @@ -412,11 +428,11 @@ Vue.set(item, data, true); }); this.classifyAuthData.push(item); - this.addIndex = this.classifyAuthData.length - 1; //娣诲姞琛屼笅鏍囩瓑浜巆lassifyAuthData鐨勯暱搴�-1 this.roleHandlerMethods(authData.roleId, 'create', index) }) } }); + this.isLoading = false; }); }, }, -- Gitblit v1.9.3