From 8537a8d58b5a3750b57d76367ef51f086af271df Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 18 四月 2024 00:09:40 +0800
Subject: [PATCH] 集团属性池映射界面代码完善
---
Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue | 109 +++++++++++++++++++++++++++++++++---------------------
1 files changed, 67 insertions(+), 42 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue b/Source/UBCS-WEB/src/components/Theme/DataAuthDialog.vue
index c6b6510..fe07119 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) {
@@ -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