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 | 111 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 68 insertions(+), 43 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue b/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue index c6b6510..ad57d3a 100644 --- a/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue +++ b/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue @@ -60,7 +60,8 @@ <el-checkbox v-if="item.type === 'checkbox'" v-model="row[item.prop]" - :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> @@ -84,6 +85,7 @@ export default { name: "dataAuthDialog.vue", props: { + // 褰撳墠鐐瑰嚮鑺傜偣鐨勯《灞傝妭鐐� classifyData: { type: "Object", default: "", @@ -93,15 +95,16 @@ type: "Boolean", default: false, }, - TreeNode:{ - type:Object + // 褰撳墠鐐瑰嚮鐨勮妭鐐� + TreeNode: { + type: Object } }, data() { return { // 瀵硅瘽妗嗘樉绀烘帶鍒� isShowDialog: this.visible, - isLoading: false, + isLoading: true, tableHeight: 'calc(100vh - 550px)', classifyAuthData: [], //鍒楀ご @@ -125,6 +128,9 @@ this.loadAuthPage(); } }, + classifyAuthData(newval) { + this.addIndex = newval.length <= 0 ? 0 : newval.length - 1; + } }, computed: {}, mounted() { @@ -132,6 +138,22 @@ created() { }, methods: { + 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() { this.$emit('update:visible', false); @@ -142,38 +164,40 @@ return; } //filteredItems 鏈巿鏉冩暟缁� - getButtonsByRoleId({roleId: id, code: this.TreeNode.id}).then(res => { + getButtonsByRoleId({roleId: id, code: this.classifyData.attributes.id}).then(res => { 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(); }); @@ -182,7 +206,7 @@ async roleChange(row, currentRow) { try { this.currentRow = currentRow; - const res = await getButtonsByRoleId({roleId: row, code: this.TreeNode.id}); + const res = await getButtonsByRoleId({roleId: row, code: this.classifyData.attributes.id}); const filteredItems = this.classifyAuthButton.filter(item => { return !res.data.data.find(x => x.id === item.id); @@ -195,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; } }); @@ -221,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 => { @@ -235,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() { @@ -264,7 +288,8 @@ let form = { classifyAuthList: [], isCLear: false, //榛樿鏄竻绌� - classifyId: this.classifyData.oid, + classifyId: this.TreeNode.oid, + authType: 'data_auth', }; let isRepeat = false; if (this.classifyAuthData.length > 0) { @@ -290,7 +315,7 @@ let itemButtonList = []; //绛涢�夊嚭鎸夐挳鍕鹃�変负true鐨勫垪 for (let key in item) { - if (item[key] === true) { + if (item[key] === true && key !== 'checkTheStatus') { itemButtonList.push(key); } } @@ -303,7 +328,7 @@ let data = { oid: item.oid, roleId: item.roleData, - classifyId: this.classifyData.oid, + classifyId: this.TreeNode.oid, buttonIds: itemButtonList.join(","), authType: "data_auth", } @@ -314,20 +339,20 @@ return; } // console.log(form) - // 璋冪敤淇濆瓨鍒嗙被鎺堟潈鐨勬帴鍙� - await saveOrUpdate(form).then(res => { - this.$message({ - type: "success", - message: res.data.msg, - }); - // this.isShowDialog = false - }, (error) => { - window.console.log(error); - }) - }else{ + } else { // 涓虹┖璇佹槑鏄竻绌烘巿鏉冨垪琛� form.isCLear = true; } + // 璋冪敤淇濆瓨鍒嗙被鎺堟潈鐨勬帴鍙� + await saveOrUpdate(form).then(res => { + this.$message({ + type: "success", + message: res.data.msg, + }); + // this.isShowDialog = false + }, (error) => { + window.console.log(error); + }) this.classifyAuthData = []; this.loadAuthPage(); }, @@ -345,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; @@ -385,7 +410,7 @@ this.roleList = res.data.data.records; }); // 鑾峰彇璇ュ垎绫讳笅宸叉巿鏉冪殑鍒嗙被鎺堟潈淇℃伅 - getClassifyAuthList({classifyId: this.classifyData.oid, authType: "data_auth"}).then(res => { + getClassifyAuthList({classifyId: this.TreeNode.oid, authType: "data_auth"}).then(res => { //console.log(res.data.data); let authDatas = res.data.data; if (authDatas.length > 0) { @@ -395,7 +420,7 @@ roleData: authData.roleId, classifyItem: this.classifyData.label, index: index, - authButton:{}, + authButton: {}, uuid: uuidv4(),//鐢熸垚鍞竴鐨刬d } //灏嗘寜閽缃繘鍘� @@ -403,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