From 2b5ef02510cffc0cdbe74ed53b53fd9826d0bacf Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期二, 30 一月 2024 17:12:04 +0800
Subject: [PATCH] 首页布局更改
---
Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue | 282 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 150 insertions(+), 132 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue b/Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
index cedd531..9ee7e77 100644
--- a/Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
+++ b/Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
@@ -99,6 +99,7 @@
export default {
name: "classifyAuthDialog.vue",
props: {
+ // 褰撳墠鐐瑰嚮鑺傜偣鐨勯《灞傝妭鐐�
classifyData: {
type: "Object",
default: "",
@@ -108,6 +109,10 @@
type: "Boolean",
default: false,
},
+ // 褰撳墠鐐瑰嚮鐨勮妭鐐�
+ TreeNode:{
+ type:Object
+ }
},
data() {
return {
@@ -131,82 +136,15 @@
},
computed: {},
mounted() {},
- created() {},
+ created() {
+ this.addIndex = this.classifyAuthData.length <= 0 ? 0 :this.classifyAuthData.length -1;
+ },
watch: {
// 鐩戝惉鐖剁粍浠朵紶鐨勭獥鍙f樉绀洪殣钘忕殑鍊�
visible() {
if (this.visible) {
this.isShowDialog = this.visible;
- return new Promise((resolve, reject) => {
- getButtonByParentCode({ code: "classifyTree" })
- .then((res) => {
- // 璁板綍鎸夐挳鏁版嵁
- this.classifyAuthButton = res.data.data;
- const list = res.data.data;
- let tempData = [];
- // 瑙掕壊鍒�
- tempData.push({
- label: "瑙掕壊",
- prop: "roleData",
- type: "select",
- width: 150,
- });
- // 缂栫爜椤瑰垎绫绘巿鏉�
- tempData.push({
- label: "缂栫爜椤瑰垎绫绘巿鏉�",
- prop: "classifyItem",
- type: "text",
- width: 180,
- });
- list.forEach((item) => {
- let columnItem = {
- label: item.name,
- prop: item.id,
- code: item.code,
- type: "checkbox",
- width: 180,
- };
- tempData.push(columnItem);
- });
- this.classifyAuthHeader = tempData;
- resolve();
- })
- .catch((err) => {
- reject(err);
- });
- // 鑾峰彇瑙掕壊鍒楄〃
- getPage(1, -1, null).then((res) => {
- this.roleList = res.data.data.records;
- });
- // 鑾峰彇璇ュ垎绫讳笅宸叉巿鏉冪殑鍒嗙被鎺堟潈淇℃伅
- getClassifyAuthList({
- classifyId: this.classifyData.oid,
- authType: "classify_auth",
- }).then((res) => {
- //console.log(res.data.data);
- let authDatas = res.data.data;
- if (authDatas.length > 0) {
- authDatas.forEach((authData, index) => {
- let item = {
- oid: authData.oid,
- roleData: authData.roleId,
- classifyItem: this.classifyData.label,
- authButton:{},
- index: index,
- uuid: uuidv4(), //鐢熸垚鍞竴鐨刬d
- };
- //灏嗘寜閽缃繘鍘�
- authData.buttonIdList.forEach((data) => {
- 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)
- });
- }
- });
- });
+ this.loadAuthPage();
}
},
},
@@ -215,7 +153,6 @@
if (this.classifyAuthData.length < 0) {
return;
}
-
getButtonsByRoleId({ roleId: id, code: "classifyTree" }).then((res) => {
// 鎵惧埌this.classifyAuthButton涓病鏈夊搴旂殑灞炴��
const filteredItems = this.classifyAuthButton.filter((item) => {
@@ -230,25 +167,25 @@
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.authButton) {
- 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();
@@ -286,7 +223,7 @@
});
}
}
-
+
this.itemKey = uuidv4(); // 寮哄埗鍒锋柊琛ㄦ牸
});
});
@@ -305,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,
@@ -320,6 +256,7 @@
});
this.classifyAuthData.push(item);
this.roleHandlerMethods(this.roleList[0].id, "add", this.addIndex);
+ this.addIndex++; //鑷畾涔夌敓鎴愭坊鍔犺涓嬫爣
},
// 鍒犻櫎琛�
subClassifyAuth() {
@@ -346,61 +283,68 @@
this.selectList = list;
},
// 淇濆瓨鍒嗙被鎺堟潈淇℃伅
- submit() {
- if (this.classifyAuthData.length <= 0) {
- this.$message.warning("鎺堟潈鍒楄〃涓虹┖锛�");
- return;
- }
+ async submit() {
+ let form = {
+ classifyAuthList: [],
+ isCLear: false, //榛樿鏄竻绌�
+ classifyId: this.TreeNode.oid,
+ };
let isRepeat = false;
- // 閬嶅巻鏁扮粍锛屾瘮杈冨悗闈㈢殑瀵硅薄鐨剅oleData鏄惁涓庡墠闈㈢殑瀵硅薄鐩哥瓑
- for (let i = 0; i < this.classifyAuthData.length - 1; i++) {
- let currentRoleId = this.classifyAuthData[i].roleData;
- for (let j = i + 1; j < this.classifyAuthData.length; j++) {
- if (currentRoleId === this.classifyAuthData[j].roleData) {
- isRepeat = true;
+ if(this.classifyAuthData.length > 0){
+ // 閬嶅巻鏁扮粍锛屾瘮杈冨悗闈㈢殑瀵硅薄鐨剅oleData鏄惁涓庡墠闈㈢殑瀵硅薄鐩哥瓑
+ for (let i = 0; i < this.classifyAuthData.length - 1; i++) {
+ let currentRoleId = this.classifyAuthData[i].roleData;
+ for (let j = i + 1; j < this.classifyAuthData.length; j++) {
+ if (currentRoleId === this.classifyAuthData[j].roleData) {
+ isRepeat = true;
+ break;
+ }
+ }
+ if (isRepeat) {
break;
}
}
+
if (isRepeat) {
- break;
- }
- }
- if (isRepeat) {
- this.$message.warning("瑙掕壊鍜屽垎绫诲凡缁忓瓨鍦紝璇烽噸鏂伴厤缃紒");
- return;
- }
- let form = [];
- let flag = false;
- this.classifyAuthData.forEach((item) => {
- let itemButtonList = [];
- //绛涢�夊嚭鎸夐挳鍕鹃�変负true鐨勫垪
- for (let key in item) {
- if (item[key] === true) {
- itemButtonList.push(key);
- }
- }
- /**濡傛灉itemButtonList涓虹┖璇佹槑鏄紝
- 娣诲姞浜嗚鑹蹭絾鏄病鍕鹃�変换浣曠殑鎸夐挳*/
- if (itemButtonList.length <= 0) {
- flag = true;
+ this.$message.warning("瑙掕壊鍜屽垎绫诲凡缁忓瓨鍦紝璇烽噸鏂伴厤缃紒");
return;
}
- let data = {
- oid: item.oid,
- roleId: item.roleData,
- classifyId: this.classifyData.oid,
- buttonIds: itemButtonList.join(","),
- authType: "classify_auth",
- };
- form.push(data);
- });
- if (flag) {
- this.$message.warning("鏈夋湭鍕鹃�夋搷浣滅殑鏉冮檺锛屼笉鍏佽鎺堟潈");
- return;
+
+ let flag = false;
+ this.classifyAuthData.forEach((item) => {
+ let itemButtonList = [];
+ //绛涢�夊嚭鎸夐挳鍕鹃�変负true鐨勫垪
+ for (let key in item) {
+ if (item[key] === true) {
+ itemButtonList.push(key);
+ }
+ }
+ /**濡傛灉itemButtonList涓虹┖璇佹槑鏄紝
+ 娣诲姞浜嗚鑹蹭絾鏄病鍕鹃�変换浣曠殑鎸夐挳*/
+ if (itemButtonList.length <= 0) {
+ flag = true;
+ return;
+ }
+ let data = {
+ oid: item.oid,
+ roleId: item.roleData,
+ classifyId: this.TreeNode.oid,
+ buttonIds: itemButtonList.join(","),
+ authType: "classify_auth",
+ };
+ form.classifyAuthList.push(data);
+ });
+ if (flag) {
+ this.$message.warning("鏈夋湭鍕鹃�夋搷浣滅殑鏉冮檺锛屼笉鍏佽鎺堟潈");
+ return;
+ }
+ }else {
+ // 涓虹┖璇佹槑鏄竻绌烘巿鏉冨垪琛�
+ form.isCLear = true;
}
- // console.log(form)
+ // console.log(JSON.stringify(form))
// 璋冪敤淇濆瓨鍒嗙被鎺堟潈鐨勬帴鍙�
- saveOrUpdate(form).then(
+ await saveOrUpdate(form).then(
(res) => {
this.$message({
type: "success",
@@ -412,6 +356,8 @@
window.console.log(error);
}
);
+ this.classifyAuthData = [];
+ this.loadAuthPage();
},
// 鍏ㄩ�夋寜閽�
selectAllButton() {
@@ -425,6 +371,78 @@
});
//console.log("this.selectList",this.selectList);
},
+ // 鍔犺浇鎺堟潈鍒楄〃
+ loadAuthPage() {
+ return new Promise((resolve, reject) => {
+ getButtonByParentCode({ code: "classifyTree" })
+ .then((res) => {
+ // 璁板綍鎸夐挳鏁版嵁
+ this.classifyAuthButton = res.data.data;
+ const list = res.data.data;
+ let tempData = [];
+ // 瑙掕壊鍒�
+ tempData.push({
+ label: "瑙掕壊",
+ prop: "roleData",
+ type: "select",
+ width: 150,
+ });
+ // 缂栫爜椤瑰垎绫绘巿鏉�
+ tempData.push({
+ label: "缂栫爜椤瑰垎绫绘巿鏉�",
+ prop: "classifyItem",
+ type: "text",
+ width: 180,
+ });
+ list.forEach((item) => {
+ let columnItem = {
+ label: item.name,
+ prop: item.id,
+ code: item.code,
+ type: "checkbox",
+ width: 180,
+ };
+ tempData.push(columnItem);
+ });
+ this.classifyAuthHeader = tempData;
+ resolve();
+ })
+ .catch((err) => {
+ reject(err);
+ });
+ // 鑾峰彇瑙掕壊鍒楄〃
+ getPage(1, -1, null).then((res) => {
+ this.roleList = res.data.data.records;
+ });
+ // 鑾峰彇璇ュ垎绫讳笅宸叉巿鏉冪殑鍒嗙被鎺堟潈淇℃伅
+ getClassifyAuthList({
+ classifyId: this.TreeNode.oid,
+ authType: "classify_auth",
+ }).then((res) => {
+ //console.log(res.data.data);
+ let authDatas = res.data.data;
+ if (authDatas.length > 0) {
+ authDatas.forEach((authData, index) => {
+ let item = {
+ oid: authData.oid,
+ roleData: authData.roleId,
+ classifyItem: this.classifyData.label,
+ authButton:{},
+ index: index,
+ uuid: uuidv4(), //鐢熸垚鍞竴鐨刬d
+ };
+ //灏嗘寜閽缃繘鍘�
+ authData.buttonIdList.forEach((data) => {
+ Vue.set(item, data, true);
+ });
+ this.classifyAuthData.push(item);
+ this.roleHandlerMethods(authData.roleId, "create", index);
+ // console.log('index', index)
+ });
+ }
+ });
+ });
+ },
},
};
</script>
--
Gitblit v1.9.3