$(function() {
InitLeftMenu();
tabClose();
tabCloseEven();
// 释放内存
$.fn.panel.defaults = $.extend({}, $.fn.panel.defaults, {
onBeforeDestroy : function() {
var frame = $('iframe', this);
if (frame.length > 0) {
frame[0].contentWindow.document.write('');
frame[0].contentWindow.close();
frame.remove();
}
if ($.browser.msie) {
CollectGarbage();
}
}
});
$('#maintabs').tabs({
onSelect : function(title) {
var currTab = $('#maintabs').tabs('getTab', title);
var iframe = $(currTab.panel('options').content);
var src = $("." + title).attr("href");
currTab.find('iframe').attr('src', src);
}
});
});
// 初始化左侧
function InitLeftMenu() {
$("#nav").accordion({
animate : false
});
$.each(_menus.menus, function(i, n) {
var menulist = '';
menulist += '
';
$.each(n.menus, function(j, o) {
menulist += ' ';
})
menulist += '
';
$('#nav').accordion('add', {
title : n.menuname,
content : menulist,
iconCls : 'icon ' + n.icon
});
});
$('.easyui-accordion li a').click(function() {
var tabTitle = $(this).children('.nav').text();
var url = $(this).attr("href");
var menuid = $(this).attr("ref");
var icon = getIcon(menuid, icon);
addOneTab(tabTitle, url, icon);
$('.easyui-accordion li div').removeClass("selected");
$(this).parent().addClass("selected");
}).hover(function() {
$(this).parent().addClass("hover");
}, function() {
$(this).parent().removeClass("hover");
});
// 选中第一个
var panels = $('#nav').accordion('panels');
var t = panels[0].panel('options').title;
$('#nav').accordion('select', t);
}
// 获取左侧导航的图标
function getIcon(menuid) {
var icon = 'icon ';
$.each(_menus.menus, function(i, n) {
$.each(n.menus, function(j, o) {
if (o.menuid == menuid) {
icon += o.icon;
}
});
});
return icon;
}
function addTab(subtitle, url, icon) {
$.messager.progress({
text : loading,
interval : 1000
});
if (!$('#maintabs').tabs('exists', subtitle)) {
$('#maintabs').tabs('add', {
title : subtitle,
content : createFrame(),
closable : true,
icon : icon
});
} else {
$('#maintabs').tabs('select', subtitle);
$.messager.progress('close');
}
// $('#maintabs').tabs('select',subtitle);
tabClose();
}
var title_now;
function addOneTab(subtitle, url, icon) {
$.messager.progress({
text : loading,
interval : 1000
});
if ($('#maintabs').tabs('exists', title_now)) {
$('#maintabs').tabs('select', title_now);
$('#maintabs').tabs('update', {
tab : $('#maintabs').tabs('getSelected'),
options : {
title : subtitle,
content : createFrame(),
closable : false,
icon : icon
}
});
} else {
$('#maintabs').tabs('add', {
title : subtitle,
content : createFrame(),
closable : false,
icon : icon
});
}
title_now = subtitle;
// $('#maintabs').tabs('select',subtitle);
tabClose();
}
function createFrame() {
var s = '';
return s;
}
function tabClose() {
/* 双击关闭TAB选项卡 */
$(".tabs-inner").dblclick(function() {
var subtitle = $(this).children(".tabs-closable").text();
$('#tabs').tabs('close', subtitle);
})
/* 为选项卡绑定右键 */
$(".tabs-inner").bind('contextmenu', function(e) {
$('#mm').menu('show', {
left : e.pageX,
top : e.pageY
});
var subtitle = $(this).children(".tabs-closable").text();
$('#mm').data("currtab", subtitle);
// $('#maintabs').tabs('select',subtitle);
return false;
});
}
// 绑定右键菜单事件
function tabCloseEven() {
// 刷新
$('#mm-tabupdate').click(function() {
var currTab = $('#maintabs').tabs('getSelected');
var url = $(currTab.panel('options').content).attr('src');
$('#maintabs').tabs('update', {
tab : currTab,
options : {
content : createFrame(url)
}
})
})
// 关闭当前
$('#mm-tabclose').click(function() {
var currtab_title = $('#mm').data("currtab");
$('#maintabs').tabs('close', currtab_title);
})
// 全部关闭
$('#mm-tabcloseall').click(function() {
$('.tabs-inner span').each(function(i, n) {
var t = $(n).text();
$('#maintabs').tabs('close', t);
});
});
// 关闭除当前之外的TAB
$('#mm-tabcloseother').click(function() {
$('#mm-tabcloseright').click();
$('#mm-tabcloseleft').click();
});
// 关闭当前右侧的TAB
$('#mm-tabcloseright').click(function() {
var nextall = $('.tabs-selected').nextAll();
if (nextall.length == 0) {
// msgShow('系统提示','后边没有啦~~','error');
alert('后边没有啦~~');
return false;
}
nextall.each(function(i, n) {
var t = $('a:eq(0) span', $(n)).text();
$('#maintabs').tabs('close', t);
});
return false;
});
// 关闭当前左侧的TAB
$('#mm-tabcloseleft').click(function() {
var prevall = $('.tabs-selected').prevAll();
if (prevall.length == 0) {
alert('到头了,前边没有啦~~');
return false;
}
prevall.each(function(i, n) {
var t = $('a:eq(0) span', $(n)).text();
$('#maintabs').tabs('close', t);
});
return false;
});
// 退出
$("#mm-exit").click(function() {
$('#mm').menu('hide');
});
}
$.parser.onComplete = function() {/* 页面所有easyui组件渲染成功后,隐藏等待信息 */
if ($.browser.msie && $.browser.version < 7) {/* 解决IE6的PNG背景不透明BUG */
sy.pngFun();
sy.bgPngFun($('span'));
}
window.setTimeout(function() {
$.messager.progress('close');
}, 1000);
};