分享

easyUI菜单权限开发

 蹇胜雄 2015-07-28
function Clearnav() {
2 var pp = $('#nav').accordion('panels');
3
4 $.each(pp, function (i, n) {
5 if (n) {
6 var t = n.panel('options').title;
7 $('#nav').accordion('remove', t);
8 }
9 });
10
11 pp = $('#nav').accordion('getSelected');
12 if (pp) {
13 var title = pp.panel('options').title;
14 $('#nav').accordion('remove', title);
15 }
16}
17
18function addNav(data) {
19 $.each(data, function (i, sm) {
20 var menulist = "";
21 menulist += '<ul>';
22 $.each(sm.menus, function (j, o) {
23 //如果是脚本,连接的方式不同
24 if (o.url && o.url.indexOf("javascript") >= 0) {
25 menulist += '<li><div><a ref="' + o.menuid + '" href="javascript:void(0)" onclick="'
26 + o.url + '" ><span class="icon ' + o.icon
27 + '" > </span><span class="nav">' + o.menuname
28 + '</span></a></div></li> ';
29 }
30 else {
31 menulist += '<li><div><a ref="' + o.menuid + '" href="#" rel="'
32 + o.url + '" ><span class="icon ' + o.icon
33 + '" > </span><span class="nav">' + o.menuname
34 + '</span></a></div></li> ';
35 }
36 });
37 menulist += '</ul>';
38
39 $('#nav').accordion('add', {
40 title: sm.menuname,
41 content: menulist,
42 iconCls: 'icon ' + sm.icon
43 });
44
45 });
46
47 $('.easyui-accordion li a').click(function () {
48 var title = $(this).children('.nav').text();
49
50 var url = $(this).attr("rel");
51 var menuid = $(this).attr("ref");
52 var icon = getIcon2(data, menuid);
53
54 var exist = $('#tabs').tabs('exists', title); //返回false或true
55 if (!exist && url != undefined) {
56 addTab(title, url, icon);
57 }
58 else {
59 $('#tabs').tabs('select', title);
60 }
61
62 $('.easyui-accordion li div').removeClass("selected");
63 $(this).parent().addClass("selected");
64 }).hover(function () {
65 $(this).parent().addClass("hover");
66 }, function () {
67 $(this).parent().removeClass("hover");
68 });
69
70 //选中第一个
71 var pp = $('#nav').accordion('panels');
72 var t = pp[0].panel('options').title;
73 $('#nav').accordion('select', t);
74}
75
76/**
77* 菜单项鼠标Hover
78*/
79function hoverMenuItem() {
80 $(".easyui-accordion").find('a').hover(function () {
81 $(this).parent().addClass("hover");
82 }, function () {
83 $(this).parent().removeClass("hover");
84 });
85}
86
87$(function () {
88 var data = _menus["default"];
89 InitLeftMenu(data);
90 tabClose();
91 tabCloseEven();
92
93 $('#tabs').tabs('add', {
94 title: '首页',
95 content: createFrame('http://www.')
96 }).tabs({
97 onSelect: function (title) {
98 var currTab = $('#tabs').tabs('getTab', title);
99 var iframe = $(currTab.panel('options').content);
100
101 var exist = $('#tabs').tabs('exists', title); //返回false或true
102 if (exist)
103 return;
104
105 var src = iframe.attr('src');
106 if (src) {
107 $('#tabs').tabs('update', { tab: currTab, options: { content: createFrame(src)} });
108 }
109
110 }
111 });
112
113})
114
115//初始化左侧
116function InitLeftMenu(data) {
117 //hoverMenuItem();
118 $("#nav").accordion({animate:false});
119
120 $.each(data, function(i, n) {
121 var menulist ='';
122 menulist +='<ul>';
123 $.each(n.menus, function (j, o) {
124 //如果是脚本,连接的方式不同
125 if (o.url && o.url.indexOf("javascript") >= 0) {
126 menulist += '<li><div><a ref="' + o.menuid + '" href="javascript:void(0)" onclick="' + o.url + '" ><span class="icon ' + o.icon + '" > </span><span class="nav">' + o.menuname + '</span></a></div></li> ';
127 }
128 else {
129 menulist += '<li><div><a ref="' + o.menuid + '" href="#" rel="' + o.url + '" ><span class="icon ' + o.icon + '" > </span><span class="nav">' + o.menuname + '</span></a></div></li> ';
130 }
131 })
132 menulist += '</ul>';
133 //alert(menulist);
134
135 $('#nav').accordion('add', {
136 title: n.menuname,
137 content: menulist,
138 iconCls: n.icon
139 });
140
141 });
142
143 $('.easyui-accordion li a').click(function(){
144 var title = $(this).children('.nav').text();
145
146 var url = $(this).attr("rel");
147 var menuid = $(this).attr("ref");
148 var icon = getIcon2(data, menuid);
149
150 var exist = $('#tabs').tabs('exists', title);//返回false或true
151 if (url) {
152 if (!exist) {
153 addTab(title, url, icon);
154 }
155 else {
156 $('#tabs').tabs('select', title);
157 }
158 }
159
160 $('.easyui-accordion li div').removeClass("selected");
161 $(this).parent().addClass("selected");
162 }).hover(function(){
163 $(this).parent().addClass("hover");
164 },function(){
165 $(this).parent().removeClass("hover");
166 });
167
168 //选中第一个
169 var panels = $('#nav').accordion('panels');
170 var t = panels[0].panel('options').title;
171 $('#nav').accordion('select', t);
172}
173
174//获取左侧导航的图标
175function getIcon2(data, menuid) {
176 var icon = 'icon ';
177 $.each(data, function (k, item) {
178 $.each(item.menus, function (i, o) {
179 if (o.menuid == menuid) {
180 icon += o.icon;
181 }
182 })
183 })
184 return icon;
185}
186
187//获取左侧导航的图标
188function getIcon(menuid){
189 var icon = 'icon ';
190 $.each(_menus.menus, function(i, n) {
191 $.each(n.menus, function(j, o) {
192 if(o.menuid==menuid){
193 icon += o.icon;
194 }
195 })
196 })
197
198 return icon;
199}
200
201function addTab(subtitle,url,icon){
202 if(!$('#tabs').tabs('exists',subtitle)){
203 $('#tabs').tabs('add',{
204 title:subtitle,
205 content:createFrame(url),
206 closable:true,
207 icon:icon
208 });
209 }else{
210 $('#tabs').tabs('select',subtitle);
211 $('#mm-tabupdate').click();
212 }
213 tabClose();
214}
215
216function createFrame(url)
217{
218 var s = '<iframe scrolling="auto" frameborder="0" src="'+url+'" style="width:100%;height:100%;"></iframe>';
219 return s;
220}
221
222function tabClose()
223{
224 /*双击关闭TAB选项卡*/
225 $(".tabs-inner").dblclick(function(){
226 var subtitle = $(this).children(".tabs-closable").text();
227 $('#tabs').tabs('close',subtitle);
228 })
229 /*为选项卡绑定右键*/
230 $(".tabs-inner").bind('contextmenu',function(e){
231 $('#mm').menu('show', {
232 left: e.pageX,
233 top: e.pageY
234 });
235
236 var subtitle =$(this).children(".tabs-closable").text();
237
238 $('#mm').data("currtab",subtitle);
239 $('#tabs').tabs('select',subtitle);
240 return false;
241 });
242}
243//绑定右键菜单事件
244function tabCloseEven()
245{
246 //刷新
247 $('#mm-tabupdate').click(function(){
248 var currTab = $('#tabs').tabs('getSelected');
249 var url = $(currTab.panel('options').content).attr('src');
250 $('#tabs').tabs('update',{
251 tab:currTab,
252 options:{
253 content:createFrame(url)
254 }
255 })
256 })
257 //关闭当前
258 $('#mm-tabclose').click(function(){
259 var t = $('#mm').data("currtab");
260 if (t !== "首页") {
261 $('#tabs').tabs('close', t);//currtab_title
262 }
263 })
264 //全部关闭
265 $('#mm-tabcloseall').click(function(){
266 $('.tabs-inner span').each(function(i,n){
267 var t = $(n).text();
268 if(t !== "首页")
269 $('#tabs').tabs('close',t);
270 });
271 });
272 //关闭除当前之外的TAB
273 $('#mm-tabcloseother').click(function(){
274 $('#mm-tabcloseright').click();
275 $('#mm-tabcloseleft').click();
276 });
277 //关闭当前右侧的TAB
278 $('#mm-tabcloseright').click(function(){
279 var nextall = $('.tabs-selected').nextAll();
280 if(nextall.length==0){
281 //alert('后边没有啦~~');
282 return false;
283 }
284 nextall.each(function(i,n){
285 var t=$('a:eq(0) span',$(n)).text();
286 if(t !== "首页")
287 $('#tabs').tabs('close',t);
288 });
289 return false;
290 });
291 //关闭当前左侧的TAB
292 $('#mm-tabcloseleft').click(function(){
293 var prevall = $('.tabs-selected').prevAll();
294 if(prevall.length==0){
295 //alert('到头了,前边没有啦~~');
296 return false;
297 }
298 prevall.each(function(i,n){
299 var t=$('a:eq(0) span',$(n)).text();
300 if(t !== "首页")
301 $('#tabs').tabs('close',t);
302 });
303 return false;
304 });
305
306 //退出
307 $("#mm-exit").click(function(){
308 $('#mm').menu('hide');
309 })
310}
311
312//弹出信息窗口 title:标题 msgString:提示信息 msgType:信息类型 [error,info,question,warning]
313function msgShow(title, msgString, msgType) {
314 $.messager.alert(title, msgString, msgType);
315}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多