| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- $(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 += '<ul>';
- $.each(n.menus, function(j, o) {
- menulist += '<li><div><a class="' + o.menuname
- + '" target="tabiframe" ref="' + o.menuid + '" href="'
- + o.url + '" ><span class="icon ' + o.icon
- + '" > </span><span class="nav">' + o.menuname
- + '</span></a></div></li> ';
- })
- menulist += '</ul>';
- $('#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 = '<iframe name="tabiframe" scrolling="no" frameborder="0" src="about:blank" style="width:100%;height:99%;"></iframe>';
- 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);
- };
|