From 3007cbf86ea42756be4d5bf4f81e0d56d6150c67 Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期一, 07 十月 2024 00:52:48 +0800
Subject: [PATCH] Merge branch 'release' of http://122.9.151.159:9090/r/smart-web into release
---
src/views/console/authority/role/index.vue | 104 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 83 insertions(+), 21 deletions(-)
diff --git a/src/views/console/authority/role/index.vue b/src/views/console/authority/role/index.vue
index e634ebd..c78d10e 100644
--- a/src/views/console/authority/role/index.vue
+++ b/src/views/console/authority/role/index.vue
@@ -24,24 +24,27 @@
</ul>
<div class="role-main-title">鏉冮檺绠$悊</div>
</div>
- <el-tabs tab-position="top">
+ <el-tabs tab-position="top" class="topStyle" @tab-click="topHandleClick">
<el-tab-pane label="鑿滃崟">
<div class="treeMain">
- <el-tabs tab-position="left" class="demo-tabs" v-model="menuActiveName" @tab-click="menuHandleClick">
- <el-tab-pane v-for="item in menuGrantList" :label="item.title" :name="item.title">
- <el-tree ref="tree" v-if="showtree" :data="treeData" :props="{ label: 'title',children: 'children'}" node-key="id" show-checkbox @check-change="treeHandleCheckChange" :default-checked-keys="treeCheck" default-expand-all />
+ <el-tabs tab-position="left" class="demo-tabs" v-model="menuActiveName" @tab-click="(tab,event)=>menuHandleClick(tab,event,'0')">
+ <el-tab-pane v-for="(item,index) in menuGrantList" :label="item.title" :name="item.title">
+ <el-tree ref="tree0" v-if="showtree" :data="treeData" :props="{ label: 'title',children: 'children'}" node-key="id" show-checkbox @check-change="(item,isCheck)=>treeHandleCheckChange(item,isCheck,index)" :default-checked-keys="treeCheck" default-expand-all />
</el-tab-pane>
</el-tabs>
- <div class="roleSubmit"><el-button type="primary" :loading="submitIsSaveing" @click="roleSubmit()">淇� 瀛�</el-button></div>
</div>
</el-tab-pane>
<el-tab-pane label="鍗$墖">
<div class="treeMain">
- <!-- <el-tree ref="grid" node-key="key" :data="grid.list" :props="grid.props" :default-checked-keys="grid.checked" show-checkbox></el-tree> -->
- 123
+ <el-tabs tab-position="left" class="demo-tabs" v-model="menuActiveName" @tab-click="(tab,event)=>menuHandleClick(tab,event,'1')">
+ <el-tab-pane v-for="(item,index) in menuGrantList" :label="item.title" :name="item.title">
+ <el-tree ref="tree1" v-if="showtree" :data="treeData1" :props="{ label: 'title',children: 'children'}" node-key="id" show-checkbox @check-change="(item,isCheck)=>treeHandleCheckChange(item,isCheck,index)" :default-checked-keys="treeCheck" default-expand-all />
+ </el-tab-pane>
+ </el-tabs>
</div>
</el-tab-pane>
</el-tabs>
+ <div class="roleSubmit"><el-button type="primary" :loading="submitIsSaveing" @click="roleSubmit()">淇� 瀛�</el-button></div>
</div>
<el-dialog title="浜哄憳閫夋嫨" v-model="userVisible" :width="500" destroy-on-close>
@@ -75,10 +78,12 @@
},
data() {
return {
+ menuHandleText: "",
showtree: true,
treeCheck: [],
menuActiveName: "",
treeData: [],
+ treeData1: [],
menuGrantList: [],
total: 0,
searchData: {
@@ -130,7 +135,7 @@
var obj = {
apiScopeIds: [],
dataScopeIds: [],
- menuIds: this.$refs.tree[0].getCheckedKeys(),
+ menuIds: this.treeCheck,
roleIds: [this.tableLiId]
}
this.isSaveing = true;
@@ -141,17 +146,54 @@
}
})
},
- menuHandleClick(tab, event) {
- this.setTreeList(this.menuGrantList,event.target.innerText); //tree
+ topHandleClick(tab,event) {
+ if(this.menuHandleText == "") {
+ this.menuHandleText = this.menuGrantList[0].title;
+ }
+ if(event.target.innerText == "鑿滃崟") {
+ this.setTreeList(this.menuGrantList,this.menuHandleText,'0'); //tree
+ }
+ if(event.target.innerText == "鍗$墖") {
+ this.setTreeList(this.menuGrantList1,this.menuHandleText,'1'); //tree
+ }
},
- treeHandleCheckChange() {
-
+ menuHandleClick(tab, event,index) {
+ if(index == 0) {
+ this.setTreeList(this.menuGrantList,event.target.innerText,index); //tree
+ }
+ if(index == 1) {
+ this.setTreeList(this.menuGrantList1,event.target.innerText,index); //tree
+ }
+ this.menuHandleText = event.target.innerText;
},
- setTreeList(arr,name) {
+ treeHandleCheckChange(item,isCheck,index) {
+ if(isCheck) {
+ console.log(item.id,111)
+ if(!this.treeCheck.includes(item.id)) {
+ this.treeCheck.push(item.id);
+ }
+ }else {
+ if(this.treeCheck.length != 0) {
+ this.treeCheck.forEach((val,valIndex)=> {
+ if(val == item.id) {
+ this.treeCheck.splice(valIndex,1);
+ }
+ })
+ }
+ }
+ },
+ setTreeList(arr,name,index=0) {
this.treeData = [];
+ this.treeData1 = [];
arr.forEach(item=> {
if(item.title == name) {
- this.treeData = item.children;
+ //this.treeData = item.children;
+ if(index == '0') {
+ this.treeData = item.children;
+ }
+ if(index == '1') {
+ this.treeData1 = item.children;
+ }
}
})
},
@@ -180,7 +222,7 @@
},
getSelectTree(res,id,index) {//鑾峰彇宸查�夋暟鎹�
this.$HTTP.get(`/api/blade-system/menu/role-tree-keys?roleIds=${id}`).then(resp=> {
- if(res.code == 200) {
+ if(resp.code == 200) {
this.tableData.forEach(item=> {
item.active = false;
})
@@ -189,15 +231,30 @@
this.tableLiId = id; //瑙掕壊id
this.$nextTick(()=> {
this.showtree = true;
+ //鑿滃崟
this.menuGrantList = res.data.menu.filter(item=> { //杩囨护鎺夋病鏈塩hildren鐨�
return item.children;
});
+ //鍗$墖
+ this.menuGrantList1 = [];
+ res.data.card.forEach(item=> {
+ this.menuGrantList.forEach(item1=> {
+ if(item.id == item1.id) {
+ this.menuGrantList1.push(item);
+ }
+ })
+ })
this.menuActiveName = this.menuGrantList[0].title;//榛樿绗竴涓彍鍗�
this.setTreeList(this.menuGrantList,this.menuActiveName);//灞曠ず鏍戯紙宸︿晶鑿滃崟list锛屽乏渚ц彍鍗曞悕瀛楋級
- var lastId = [],idarr = [];
+ var lastId = [];
var lastId = this.extractLastLevelIds(this.menuGrantList); //鑾峰彇鏈�鍚庝竴绾d
var idarr = this.findOverlap(lastId,resp.data.menu); //鎵惧嚭涓や釜鏁扮粍閲嶅悎鐨勯儴鍒�
- this.treeCheck = idarr; //鑾峰彇閫変腑鏁版嵁
+
+ var lastId1 = [];
+ var lastId1 = this.extractLastLevelIds(this.menuGrantList1); //鑾峰彇鏈�鍚庝竴绾d
+ var idarr1 = this.findOverlap(lastId1,resp.data.card); //鎵惧嚭涓や釜鏁扮粍閲嶅悎鐨勯儴鍒�
+
+ this.treeCheck = [...idarr,...idarr1]; //鑾峰彇閫変腑鏁版嵁
})
}
})
@@ -369,7 +426,7 @@
line-height: 41px;
font-size: 14px;
text-align: center;
- background-color: #3b8e8e;
+ background-color: #409eff;
color: #fff;
}
.rolePage .roleContainer ul {
@@ -389,7 +446,7 @@
}
.rolePage .roleContainer ul li .active {
font-weight: bold;
- color: #3b8e8e;
+ color: #409eff;
}
.rolePage .roleContainer ul li:hover {
background-color: #f5f7fa;
@@ -411,7 +468,7 @@
.role-main-title {
padding: 6px 10px;
font-size: 14px;
- background-color: #d8e8d8;
+ background-color: #9dc7f2;
margin-bottom: 8px;
border-radius: 2px;
}
@@ -431,7 +488,7 @@
text-overflow: ellipsis;
}
.role-main-header ul li.titleActive {
- border: 1px solid #3b8e8e;
+ border: 1px solid #409eff;
}
.role-main-header ul li.role-header-add {
display: inline-block;
@@ -453,3 +510,8 @@
z-index: 11;
}
</style>
+<style>
+.topStyle .el-tabs__header .el-tabs__nav-scroll .el-tabs__item{
+ padding-left: 20px;
+}
+</style>
--
Gitblit v1.9.3