var $taskContentInner = null; var $mainIframe = null; var tabwidth = 118; var $loading = null; var $navWraper = $("#nav-wrapper"); var $content; var topMenuWidth = []; var headerHeight = 80; var openMenuHeight = 43; $(function () { // 各模块高度计算 $mainIframe = $("#mainiframe"); $content = $("#content"); $loading = $("#loading"); $content.height($(window).height() - headerHeight); $navWraper.height($(window).height() - headerHeight); $('.nav-list').css({"max-height": $(window).height() - headerHeight - 70, overflowY: 'auto'}); $(window).resize(function () { $navWraper.height($(window).height() - headerHeight); var h = 0; if ($('.admin-tab:visible').length) { h = openMenuHeight; } $content.height($(window).height() - headerHeight - h); $('.nav-list').css({"max-height": $(window).height() - headerHeight - 70, overflowY: 'auto'}); }); // iframe 加载状态改变 $("#content iframe").load(function () { $loading.hide(); }); // 多页面标签控制 $taskContentInner = $(".admin-tab_inner"); /*$(".admin-tab_inner").on("click", "li", function () { openapp($(this).attr("app-url"), $(this).attr("app-id"), $(this).attr("app-name")); return false; }); $(".admin-tab_inner").on("dblclick", "li", function () { closeapp($(this)); return false; }); $(".admin-tab_inner").on("click", ".admin-tab_close", function () { closeapp($(this).parents('li')); return false; }); $(".admin-tab_next").click(function () { var marginLeft = $taskContentInner.css("margin-left"); marginLeft = marginLeft.replace("px", ""); var contentInner = $(".admin-tab_inner").width(); var contentWidth = $(".admin-tab").width(); if (contentInner < contentWidth) { return false; } var lessWidth = contentWidth - contentInner; marginLeft = marginLeft - tabwidth <= lessWidth ? lessWidth : marginLeft - tabwidth; $taskContentInner.stop(); $taskContentInner.animate({"margin-left": marginLeft + "px"}, 300, 'swing'); }); $(".admin-tab_prev").click(function () { var marginLeft = $taskContentInner.css("margin-left"); marginLeft = parseInt(marginLeft.replace("px", "")); marginLeft = marginLeft + tabwidth > 0 ? 0 : marginLeft + tabwidth; // $taskContentInner.css("margin-left", marginLeft + "px"); $taskContentInner.stop(); $taskContentInner.animate({"margin-left": marginLeft + "px"}, 300, 'swing'); }); $('.admin-tab_inner>li:eq(1)').dblclick(); // 空间计算 $('.navbar-topnav li').each(function (index, item) { topMenuWidth[index] = $(this).width(); }); handleTopSpace(); // 绑定事件 $(window).resize(function () { handleTopSpace(); });*/ // 当前页面刷新 $("#refresh-wrapper").click(function () { var $currentIframe = $("#content iframe:visible"); $loading.show(); //$currentIframe.attr("src",$currentIframe.attr("src")); $currentIframe[0].contentWindow.location.reload(); return false; }); // 首页隐藏左侧子菜单 $('#sidebar').hide(); // 初始切换到第一个一级目录 /* switchMenu($('.navbar-topnav > li:eq(0)').attr('id'));*/ //向左收缩事件 // $('.navbar-toggle').click(function () { $('.sidebar_back').click(function () { if ($('#sidebar').hasClass('menu-min')) { $('.navbar-brand').animate({width: 200}, 0); $('#sidebar').animate({width: 200}, 0, function () { // $('#sidebar').removeClass('menu-min').find('.submenu .submenu').show(); $('#sidebar').removeClass('menu-min'); $('.sidebar_back').removeClass('menu-min'); }); } else { $('.navbar-brand').animate({width: 90}, 0); $('#sidebar').animate({width: 90}, 0, function () { // $('#sidebar').addClass('menu-min').find('.submenu .submenu').hide(); $('#sidebar').addClass('menu-min'); $('.sidebar_back').addClass('menu-min'); }); } }); $('#sidebar').on('mouseenter', '.submenu li', function () { if ($(this).parents('.menu-min').length) { // $(this).find('.submenu').show(); } }); $('#sidebar').on('mouseleave', '.submenu li', function () { if ($(this).parents('.menu-min').length) { $(this).find('.submenu').hide(); } }); // 二级菜单点击事件 $('.nav-list').on('click', '.outter>li', function () { if ($(this).attr('propagation') === 'stop') { $(this).removeAttr('propagation'); return false; }; $(this).find('ul').slideToggle(300, function () { $(this).toggleClass('open').find('>ul').removeAttr('style'); }.bind(this)); if (!$(this).hasClass('active')) { var $openLi = $(this).siblings('li.open:not(.active)'); $openLi.find('ul').slideToggle(300, function () { $openLi.toggleClass('open').find('>ul').removeAttr('style'); }.bind(this)); } }); // 位置栏切换事件 $('.info_list').on('click', '.info_cnt', function () { var $id = $(this).attr('data-id'); var $menu1st = $('li[data-menuid="' + $id + '"]'); var $menu2nd = $('li[data-appid="' + $id + '"]'); if ($(this).index() == 0) { $('[propagation="stop"]').removeAttr('propagation'); $menu1st.find('>.submenu>li.active').attr('propagation', 'stop'); switchMenu($id); } else if ($(this).index() == 1) { $('[propagation="stop"]').removeAttr('propagation'); $menu2nd.attr('propagation', 'stop').find('.submenu>li:eq(0)>a').click(); } }); }); function closeapp($this) { if (!$this.is(".noclose")) { if ($this.is('.active')) { $this.prev().click(); } $this.remove(); var appId = $this.attr("app-id"); $("#appiframe-" + appId).remove(); $('.nav-list li[data-appid="' + appId + '"]').removeClass('active'); $(".admin-tab_prev").click(); } } var task_item_tpl = '
  • ' + ' ' + ' ' + ' ' + ' ' + '
  • '; var appiframe_tpl = ''; function openapp(url, appId, appname, refresh) { // 阻止冒泡 var event = window.event || arguments.callee.caller.arguments[0]; if (event) { event.stopPropagation(); } // 调整 iframe 高度 $content.height($(window).height() - headerHeight - openMenuHeight); // 通过 appId 寻找对应的三级菜单 var $menu3rd = $('.nav-list').find('li[data-appid="' + appId + '"]'); var $menu2nd = $menu3rd.parents('li:eq(0)'); $('[propagation="stop"]').removeAttr('propagation'); $menu2nd.attr('propagation', 'stop'); if ($menu3rd.length === 0) { $menu3rd = $('.nav-list').find('.submenu .submenu .menu-text:contains(' + appname + ')').parent(); $menu2nd = $menu3rd.parents('li:eq(1)'); var menuid = $menu3rd.parents('li[data-menuid]').attr('data-menuid'); switchMenu(menuid, false); $('[propagation="stop"]').removeAttr('propagation'); $menu2nd.attr('propagation', 'stop'); setTimeout(function () { $menu3rd.click(); }, 0); } if (!$menu2nd.hasClass('active')) { $menu2nd.addClass('active open').siblings().removeClass('open'); } //位置栏内容 var menus = []; menus[0] = $('.navbar-topnav li.active .menu-text'); menus[1] = $menu3rd.parents('li:eq(0)').find('> a > .menu-text'); menus[2] = $menu3rd.find('> a > .menu-text', this); var remark = menus[2].attr('remark'); $('.info_list').html(''); $('.game-intro b').text(menus[2].text()); $('.game-intro p').text(remark); for (var i = 0; i < menus.length; i++) { var parentNode = menus[i].parents('li:eq(0)'); $('.info_list').append(''+menus[i].text()+''); } var $app = $(".admin-tab_inner li[app-id='" + appId + "']"); $(".admin-tab_inner .active").removeClass("active"); $('.nav-list .active').removeClass('active'); $('.nav-list li[data-appid="' + appId + '"]').addClass('active').parents('li:eq(0)').addClass('active'); $('#contextmenu').hide(); if ($app.length == 0) { var task = $(task_item_tpl).attr({"app-id": appId, "app-url": url, "app-name": appname}).addClass("active"); // var icon = $('[data-appid="' + appId + '"]').find('.fa').clone(); // task.find('.admin-tab_text').prepend(icon); task.find(".admin-tab_txt").html(appname).attr("title", appname); $taskContentInner.append(task); $(".appiframe").hide(); $loading.show(); $appiframe = $(appiframe_tpl).attr("src", url).attr("id", "appiframe-" + appId); $appiframe.appendTo("#content"); $appiframe.load(function () { var srcLoaded = $appiframe.get(0).contentWindow.location.href; if (srcLoaded.indexOf('admin/public/login') >= 0) { window.location.reload(true); } $loading.hide(); }); task.contextmenu(function (event) { event.preventDefault(); var $contextmenu = $('#contextmenu'); if ($contextmenu.length > 0) { $('#contextmenu').attr('curId', appId).css({'display': 'block', 'left': event.pageX, 'top': event.pageY}); return false; } $('body').append('
    '); $('#contextmenu').attr('curId', appId).css({'left': event.pageX, 'top': event.pageY}).append('关闭当前关闭其他关闭全部'); // 关闭当前 $('#closeCurrent').click(function () { $('.admin-tab_inner li[app-id="' + $('#contextmenu').attr('curId') + '"]').dblclick(); }); // 关闭其他 $('#closeOther').click(function () { $('.admin-tab_inner li').not(function (index) { return $(this).is('.noclose') || $(this).attr('app-id') === $('#contextmenu').attr('curId'); }).dblclick(); }); // 关闭全部 $('#closeAll').click(function () { $('.admin-tab_inner li:not(".noclose")').dblclick(); }); $(document).click(function () { $('#contextmenu').hide(); }); }); } else { $app.addClass("active"); $(".appiframe").hide(); var $iframe = $("#appiframe-" + appId); var src = $iframe.get(0).contentWindow.location.href; src = src.substr(src.indexOf("://") + 3); if (refresh === true) {//刷新 $loading.show(); $iframe.attr("src", url); $iframe.load(function () { var srcLoaded = $iframe.get(0).contentWindow.location.href; if (srcLoaded.indexOf('admin/public/login') >= 0) { window.location.reload(true); } $loading.hide(); }); } $iframe.show(); } var taskContentInner = $(".admin-tab_inner").width(); var contentWidth = $(".admin-tab").width(); if (taskContentInner <= contentWidth) { //如果没有开始滚动就不用进行下去了 return; } var currentTabIndex = $(".admin-tab_inner li[app-id='" + appId + "']").index(); var itemOffset = 0; var currentTabWidth = $(".admin-tab_inner li[app-id='" + appId + "']").width(); $(".admin-tab_inner li:lt(" + currentTabIndex + ')').each(function () { itemOffset = itemOffset + $(this).width(); }); var cssMarginLeft = $taskContentInner.css("margin-left"); cssMarginLeft = parseInt(cssMarginLeft.replace("px", "")); var marginLeft = currentTabWidth + itemOffset - contentWidth + cssMarginLeft; if (marginLeft > 0) { marginLeft = -(currentTabWidth + itemOffset - contentWidth); $taskContentInner.animate({"margin-left": marginLeft + "px"}, 300, 'swing'); return; } if (itemOffset + cssMarginLeft < 0) { marginLeft = -itemOffset $taskContentInner.animate({"margin-left": marginLeft + "px"}, 300, 'swing'); return; } } /** * 一级菜单切换 */ function switchMenu (id, subOpen) { subOpen = subOpen === undefined ? true : subOpen; // 一级菜单 $('#'+id).addClass('active').siblings().removeClass('active'); // 二级菜单 var $subMenu = $('.nav-list li[data-menuid="' + id + '"]'); $subMenu.show().siblings().hide().find('.open').removeClass('open'); // $('.toggle-topnav li').removeClass('active'); // $('#'+id+'-2').addClass('active'); // 三级菜单 if (subOpen) { $subMenu.find('>.submenu .submenu>li:eq(0)>a').click().parent().addClass('active'); } /*if(!$('.nav-list li[data-menuid="' + id + '"]'+">.submenu .submenu").length){ // $('.nav-list li[data-menuid="' + id + '"]'+">.submenu li:eq(0)>a").click(); }*/ // 左侧栏显示 $('#sidebar').show(); // 多页面标签 && 面包屑 $('.admin-tab').show(); } function openFrame (ppid, id, url) { var $parent = $('[id^="' + ppid + '"') $parent.find('> a').click() var _t = window.setInterval(function () { var $self = $('[data-appid^="' + id + '"') if ($self.length) { window.clearInterval(_t) $self.find('> a').click() } }, 60) } /** * 一级菜单空间控制 */ function handleTopSpace () { var topToggle = ''; if (!$('.topnav-toggle').length) { // 在一级菜单最后追加显示被隐藏菜单的入口 $('.navbar-topnav').append(topToggle); } /* for (var i = 0, j = 0; i < topMenuWidth.length; i++) { j += topMenuWidth[i]; var item = $('.navbar-topnav li').eq(i); if (winWidth - 500 > j) { if (item.is(':hidden')) { $('.toggle-topnav li[index="' + i + '"]').remove(); item.show(); } } else { if (item.is(':visible')) { $('.toggle-topnav').prepend(item.clone(true).show().attr({'index': i, 'id': item.attr('id') + '-2'})); item.hide(); } } } */ if (!$('.toggle-topnav li').length) { $('.topnav-toggle').remove(); } } $('.tips').hover(function() { var offset = $(this).offset(); $('.game-intro').show().css({ left: offset.left + 20, top: offset.top }); },function(){ $('.game-intro').hide(); });