sidebar.vue
3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<script>
var store = require('../../../vuex/store');
var MT = require('../../../vuex/mutation-types');
module.exports = {
store: store,
data: function () {
return {
// 数据传输
menuList:{},
// 显示的菜单的信息
showObj:{
oneGuid:'',// 一级显示的
twoGuid:''// 二级显示的
},
};
},
methods: {
// 获得当前用户信息
getOnlineUser: function () {
var self = this;
if(self.$store.state.user.curMenuRole!=null && self.$store.state.user.curMenuRole.oneMenus!=null){
self.getRoleMenu();
}else{
Ajax.get('/online').then(function (resp) {
self.$store.dispatch(MT.SET_ONLINE_USER, resp.data);
self.getRoleMenu();
});
}
},
// 获得菜单的数据权限
getRoleMenu:function(){
var self = this;
self.$set('menuList',self.$store.state.user.curMenuRole);
// 刚登录的时候,默认把第一个大菜单展开
if(self.menuList!=null && self.menuList.oneMenus!=null){
for (var key in self.menuList.oneMenus) {
// 一级菜单
self.showObj.oneGuid = self.menuList.oneMenus[key].guid;
// 一级菜单下的第1个二级菜单
self.showObj.twoGuid = self.getFirtMenu(self.showObj.oneGuid);
break;
}
}
},
// 点击一级菜单
clickOne:function(oneGuid){
var self = this;
if(oneGuid==self.showObj.oneGuid){
self.showObj.oneGuid = "";
self.showObj.twoGuid = "";
}else{
self.showObj.oneGuid = oneGuid;
self.showObj.twoGuid = self.getFirtMenu(oneGuid);
}
},
// 点击二级菜单
clickTow:function(towGuid,type){
var self = this;
self.showObj.twoGuid = towGuid;
self.addAuditLog(type);
},
// 获得某个一级菜单下第一个对象的guid
getFirtMenu:function(oneGuid){
var self = this;
var twoGuid = "";
if(self.menuList.twoMenus[oneGuid]!=null){
for (var key in self.menuList.twoMenus[oneGuid]) {
// 一级菜单
twoGuid = self.menuList.twoMenus[oneGuid][key].guid;
break;
}
}
return twoGuid;
},
addAuditLog:function(type){
var self = this;
Ajax.post('/sitemessage/operauditlogAddAuditLog',{'type':type,'userId':self.$store.state.user.userId,'userName':self.$store.state.user.userName})
.then(function (resp) {
});
}
},
created: function(){
// 获得菜单的权限
this.getOnlineUser();
}
};
</script>
<template>
<div class="menu-list menu-list-sub" style="min-height: 500px;background: 0;">
<ul class="has-sub" style="background-color: #fff;">
<!--循环的代码段-->
<li :class='one.guid==showObj.oneGuid?"active":""' v-for="one in menuList.oneMenus">
<!--一级菜单:相当于点击该组的第一个菜单-->
<a class="menu-tit" v-on:click="clickOne(one.guid)" >{{one.name}}</a>
<!--二级菜单:子菜单-->
<ul >
<li v-for="two in menuList.twoMenus[one.guid]">
<a :class="two.guid==showObj.twoGuid?'active':''" v-on:click="clickTow(two.guid,two.name)"
v-link="two.syscalldescribe1">{{two.name}}</a>
</li>
</ul>
</li>
</ul>
</template>