/** * 公共函数 * @author [MC] * @date 2018-05-11 */ define(['constant'], function(constant) { //跨域调用父级方法 function execParentFun(funName, paraJson) { var para = "t=" + Math.random() + "&funName=" + funName; $.each(paraJson, function(name, value) { para += (para == "" ? "" : "&"); para += name + "=" + escape(value); }); if (typeof(exec_obj) == 'undefined') { exec_obj = document.createElement('iframe'); exec_obj.name = 'tmp_frame'; exec_obj.src = constant.URL.WEB_URL + 'cn/components/execJs.html?' + para; exec_obj.style.display = 'none'; document.body.appendChild(exec_obj); } else { exec_obj.src = constant.URL.WEB_URL + 'cn/components/execJs.html?' + para; } } function G(id) { return document.getElementById(id); } var UI = new Object(); //事件注册 UI.register = function(id, even, fun, arr) { if (G(id)) { G(id)["on" + even] = function() { fun(arr); }; } } /** * @desc 页面路径跳转 * @param [url] 跳转路径 * @param [parameterList] 参数对象集合 {name value} * @author [张君培] * @date 2018/08/13 */ function goUrlModule(url, parameterList) { var parameter = ''; for (var i = 0; i < parameterList.length; i++) { var symbol = i === 0 ? '?' : '&'; var o = parameterList[i]; parameter += symbol + o.name + '=' + o.value; } window.location.href = url + parameter; } return { 'UI': UI, 'goUrlModule': goUrlModule, 'execParentFun': execParentFun } }); function open_initTab() { // 关闭 (off防止多次绑定,重复执行。最好是使用事件委托) $(".icon-close").off('click').click(function() { var v = $(this).parent().attr("for"); $("#" + v).remove(); var fordiv = $(this).parent().attr("fordiv"); $("#" + fordiv).remove(); $(this).parent().remove(); $("input[name='grp']").eq($("input[name='grp']").length - 1).prop("checked", "checked"); }); // 弹出右键菜单 (off防止多次绑定,重复执行。最好是使用事件委托) $('.ifr').find('label').off('contextmenu').contextmenu(function(e) { e.preventDefault(); e.stopPropagation(); $('.dropdown').removeClass('open'); window.currentRightClickLabel = this; // 获取窗口尺寸 var winWidth = $(document).width(); // ul标签的宽高 var menuWidth = $("#contextmenu").width(); // 最小边缘margin(具体窗口边缘最小的距离) var minEdgeMargin = 10; var mouseX = e.clientX, mouseY = e.clientY; var menuLeft; var menuTop; if (mouseX + menuWidth + minEdgeMargin >= winWidth) { menuLeft = mouseX - menuWidth - minEdgeMargin + "px"; menuTop = mouseY + minEdgeMargin + "px"; } else { menuLeft = mouseX + minEdgeMargin + "px"; menuTop = mouseY + minEdgeMargin + "px"; } var oMenu = $('#contextmenu')[0]; oMenu.style.display = "block"; oMenu.style.left = menuLeft; oMenu.style.top = menuTop; }) } //添加选项卡 function open_addTab(url, title, tabid, refresh) { var titleName = activeMenu(url); if (title == null || title == "null" || title == undefined) { title = titleName; } var id = "tab-" + tabid; //判断是否已存在 var isHas = false; if (sessionStorage.pageMenus) { var pageMenus = JSON.parse(sessionStorage.pageMenus) || []; for (var i = 0; i < pageMenus.length; i++) { var urlList = url.split('/'); var lastUrl = urlList[urlList.length - 1].split('?')[0]; var urlText = urlList[urlList.length - 2] + '/' + lastUrl; var menuList = pageMenus[i].menuUrl.split('/'); var menuText = menuList[menuList.length - 2] + '/' + menuList[menuList.length - 1]; if (urlText == menuText) { id = "tab-" + 'menu-' + pageMenus[i].id; } } } $('input[name="grp"]').each(function(index, obj) { if ($(obj).attr("id") == id && $(obj).css("display") == "none") { $("#" + id).prop("checked", "checked"); $("#" + id).next().css("display", ""); $("#" + id).next().next().css("display", ""); isHas = true; return; } }); if (isHas) { if (refresh == 'new') { //新的数据,参数切换 $('#' + id).attr('h', url); var iframe = document.getElementById("iframe-" + id); $('#iframe-' + id).attr('src', url); return; } if (refresh) { var iframe = document.getElementById("iframe-" + id); iframe.contentWindow.location.reload(true); iframe.src = url; } return; } $("#operateTab").before("" + " " + "
" + "" + "
"); $("#" + id).attr('checked', 'true'); open_initTab(); } //高亮菜单 function activeMenu(url) { var aList = $(".list-unstyled").find("a"); $(".active").removeClass("active"); for (var i = 0; i < aList.length; i++) { if (url.split('?')[0] === $(aList[i]).attr("h")) { $(aList[i]).parent().addClass("active"); $(aList[i]).parent().parent().parent().addClass("active"); $(aList[i]).parent().parent().parent().parent().parent().addClass("active"); return $(aList[i]).html(); } } } // 关闭选项卡 function close_tab(closeTabId, openTabId) { var $tab = $("#tab-" + closeTabId); // 必须先删除子元素 $tab.next().remove(); $tab.remove(); $('#tabdiv-tab-' + closeTabId).remove(); if (openTabId) { $('#tab-' + openTabId).prop("checked", true); } else { $("input[name='grp']").eq($("input[name='grp']").length - 1).prop("checked", "checked"); } } // 关闭未选中的选项卡 function close_other_tab() { var $tabs = $('.ifr').find('input[name="grp"]:not(:checked)'); $tabs.each(function() { $(this).next().next().remove(); $(this).next().remove(); $(this).remove(); }) } // 右键关闭其他选项卡 function close_other_tab2() { var currentRightClickLabel = window.currentRightClickLabel; // 右键点击的label var input = $(currentRightClickLabel).prev(); var $tabs = $('.ifr').find('input[name="grp"]'); $tabs.each(function() { if ($(input)[0].id !== this.id) { $(this).next().next().remove(); $(this).next().remove(); $(this).remove(); } }) } // 右键关闭当前选项卡 function close_current_tab() { var currentRightClickLabel = window.currentRightClickLabel; // 右键点击的label var input = $(currentRightClickLabel).prev(); var currTabId = $(input)[0].id; var $tab = $('#' + currTabId); $tab.next().remove(); $tab.remove(); $('#tabdiv-' + currTabId).remove(); } // 隐藏当前选项卡,并打开新的选项卡 function open_close_tab(url, title, openTabId) { var currTabId = ""; $('input[name="grp"]').each(function(index, obj) { if ($(obj).prop("checked")) { currTabId = $(obj).attr("id").substring(4); return; } }); var $tab = $("#tab-" + currTabId); $tab.next().hide(); $tab.hide(); $('#tabdiv-tab-' + currTabId).hide(); open_addTab(url, title, openTabId, true); } // 关闭当前选项卡,打开新的选项卡 function close_single_tab(openTabId, url, title, refresh) { var currTabId = ""; $('input[name="grp"]').each(function(index, obj) { if ($(obj).prop("checked")) { currTabId = $(obj).attr("id").substring(4); return; } }); refresh = (refresh === "true") ? true : false; open_addTab(url, title, openTabId, refresh); var $tab2 = $("#tab-" + openTabId); $tab2.next().css("display", ""); // $tab2.show(); $('#tabdiv-tab-' + openTabId).css("display", ""); $tab2.removeAttr("style"); $('#tabdiv-tab-' + openTabId).removeAttr("style"); var $tab = $("#tab-" + currTabId); $tab.next().remove(); $tab.remove(); $('#tabdiv-tab-' + currTabId).remove(); } // 关闭所有选项卡 function close_all_tab() { var $tabs = $('.ifr').find('input[name="grp"]'); $tabs.each(function() { $(this).next().next().remove(); $(this).next().remove(); $(this).remove(); }) } //用于设备系统隐藏抬头iframe function close_frame(func, url, title, tabid, refresh) { $('#iframe_body').hide(); $('#content_body').show(); if (func == "addTab") { open_addTab(url, title, tabid, refresh); } }