var wHeight;
var headerHeight;
var colorIndex = 0; //菜单色块
var menuItemData = [];
var url = "management/menuItem/indexMenuItem?menuId=";
$(function () {
getMenuData(menuId);
forceModifyPassword();
passwordExpired();
$('#tt').tabs({
border: false,
tools: [{
iconCls: 'fa fa-times-circle',
handler: function () {
closeAllPanel();
}
}],
onSelect: function (title, index) {
var tab = $('#tt').tabs('getTab', index);
var id = $(tab).panel("options").id;
if (id != null) {
//判断是否为系统list页面,如果是则调用 一下list的刷新方法
var iframeId = id.replace("tab_", "iframe_");
setTimeout(function () {
if (document.getElementById(iframeId).contentWindow.resizeDataGrid) {
document.getElementById(iframeId).contentWindow.resizeDataGrid();
}
if (document.getElementById(iframeId).contentWindow.computeBtns) {
document.getElementById(iframeId).contentWindow.computeBtns();
}
}, 100);
}
}
});
/*为选项卡绑定右键*/
$(".tabs").on('contextmenu', "li", function (e) {
/*选中当前触发事件的选项卡*/
var subtitle = $(this).text();
if (subtitle == "首页") {
return;
}
$('#tt').tabs('select', subtitle);
//显示快捷菜单
$('#contextMenu').menu('show', {
left: e.pageX,
top: e.pageY
});
return false;
});
if ($("#ul_MainMenu").length > 0) {
var oul = $("#ul_MainMenu");
var upOpen = true;
var downOpen = true;
$("#div_up").click(function () { //向上按钮
if (upOpen) {
upOpen = false;
} else {
return;
}
var ultop = $("#ul_MainMenu").position().top;
ultop = Math.round(ultop);
if (maiMenuCeng == 1) return;
if (ultop >= 0) {
upOpen = true;
return;
} else {
oul.animate({
top: '+=60'
}, "slow", function () {
upOpen = true;
});
}
});
$("#div_down").click(function () { //向下按钮
if (downOpen) {
downOpen = false;
} else {
return;
}
var ultop = $("#ul_MainMenu").position().top;
ultop = Math.round(ultop);
if (maiMenuCeng == 1) return;
var maxtop = -(maiMenuCeng - 1) * 60;
if (ultop <= maxtop) {
downOpen = true;
return;
} else {
oul.animate({
top: '-=60'
}, "slow", function () {
downOpen = true;
});
}
});
}
if ($(".pt_system_menu_btn").length > 0) {
//打开菜单
$(".pt_system_menu_btn").click(function () {
menuTimer = null;
if ($(this).hasClass("open")) {
$(this).removeClass("open");
$(".pt_system_submenu").css({
"maxHeight": 0
});
} else {
$(".pt_system_submenu").css({
"display": "block",
"maxHeight": 560
});
$(this).addClass("open");
}
})
//菜单离开自动伸缩
$(".pt_system_submenu").mouseleave(function () {
menuTimer = window.setTimeout(function () {
$(".pt_system_submenu").css({
"maxHeight": 0
});
$(".pt_system_menu_btn").removeClass("open");
}, 400);
});
$(".pt_system_submenu").mouseenter(function () {
menuTimer = null;
$(".pt_system_submenu").css("maxHeight", 560);
});
//加滚动条
$('.pt_system_sublist ul').slimScroll({
height: "560px",
railOpacity: .9,
alwaysVisible: false
});
$('.pt_system_subbtn').slimScroll({
height: "560px",
railOpacity: .9,
alwaysVisible: false
});
}
$(window).resize(function () {
var handleResize = function () {
// The timer kid
if (this.kid) {
window.clearTimeout(this.kid);
this.kid = null;
}
this.kid = window.setTimeout(function () {
autoHeight();
}, 100);
};
handleResize();
});
autoHeight();
});
function loadMenu(mId) {
getMenuData(mId);
}
function getMenuData(mId) {
if ($(".f_left").length > 0) {
wcp.ui.setBusy(".f_left", wcp.ajax({
url: url + mId
}).done(function (result) {
menuItemData = result;
//判断是否有头部顶级菜单
if ($("#ul_MainMenu").length > 0) {
loadFirstMenuData(menuItemData);
} else {
loadMenuData(menuItemData);
}
}));
} else if ($(".pt_top_menu").length > 0) {
wcp.ui.setBusy(".pt_system_menu", wcp.ajax({
url: url + mId
}).done(function (result) {
menuItemData = result;
loadTopMenuData(menuItemData);
}));
}
}
function loadFirstMenuData(data) {
var sb = "";
for (var i = 0; i < data.length; i++) {
var item = data[i];
sb += '
";
sb += ' ';
sb += ' ';
sb += ' ' + item.text;
sb += ' ';
sb += '';
}
$("#ul_MainMenu").html(sb);
autoHeight();
$("#ul_MainMenu li").click(function () {
$(this).addClass("current");
$(this).siblings().removeClass("current");
var itemId = this.id;
for (var i in menuItemData) {
if (menuItemData[i].id == itemId) {
menuItemData[i].state = "open";
loadMenuData([menuItemData[i]]);
break;
}
}
});
}
function loadMenuData(data) {
var width = $("#leftbody").width();
$("#ul_menu").sidemenu({
data: data,
animate: true,
width: width,
multiple: false,
formatter: function (node) {
if (node.text.length >= 12) {
return "" + node.text + "";
} else {
return node.text;
}
},
onSelect: function (node) {
if (!node) {
return;
}
if (node.domId) {
var domId = node.domId;
$("#" + domId).find(".tree-hit").click();
}
if (node.attributes) {
var url = node.attributes.url;
var text = node.text;
menuItemClick(url, node.attributes.target, text, node.attributes.width, node.attributes.height);
}
}
})
//如果有默认打开菜单项,则打开该菜单项
var item = getDefaultOpenMenu(data);
if (item != null && item.attributes) {
var url = item.attributes.url;
var text = item.text;
menuItemClick(url, item.attributes.target, text, item.attributes.width, item.attributes.height);
}
}
/**
* 获取默认打开菜单项
* @param data
* @returns {null|{checked}|*}
*/
function getDefaultOpenMenu(data) {
for (var i in data) {
var item = data[i];
if (item.checked) {
return item;
} else if (item.children && item.children.length > 0) {
var node = getDefaultOpenMenu(item.children);
if (node != null) {
return node;
}
}
}
return null;
}
function loadTopMenuData(data) {
var mainStr = "";
var subMenuStr = "";
if (data.length > 0) {
$.each(data, function (index, elem) {
if (index == 0) {
mainStr += '';
subMenuStr += '';
if (elem.children.length > 0) {
$.each(elem.children, function (i, el) {
if (!el.children) {
subMenuStr += '- ' + el.text + '
';
} else {
// 递归得到没有儿子的菜单集合
subMenuStr += getTopMenuChildren(el.children, colorIndex);
}
colorIndex = (colorIndex + 1) % 16;
});
}
subMenuStr += '
';
} else {
mainStr += '';
subMenuStr += '';
if (elem.children != null && elem.children.length > 0) {
$.each(elem.children, function (i, el) {
if (!el.children) {
subMenuStr += '- ' + el.text + '
';
} else {
// 递归得到没有儿子的菜单集合
subMenuStr += getTopMenuChildren(el.children, colorIndex);
}
colorIndex = (colorIndex + 1) % 16;
});
}
subMenuStr += '
';
}
})
$(".pt_system_sublist ul").html(mainStr);
$(".pt_system_subbtn").html(subMenuStr);
}
$(".pt_system_sublist ul li").click(function () {
var id = $(this).attr("id").replace("menu_", "");
$(this).siblings("li").removeClass("sublisthot");
$(this).addClass("sublisthot");
$(".pt_system_subbtn").children().hide();
var parentdivId = "menu_" + id;
$("[parentId=" + parentdivId + "]").show();
})
}
//递归得到没有儿子的菜单集合
function getTopMenuChildren(data) { //data:菜单数组,
var retStr = "";
$.each(data, function (i, el) {
if (!el.children) {
retStr += '' + el.text + '';
} else {
retStr += getMenuChildren(el.children, colorIndex);
}
colorIndex = (colorIndex + 1) % 16;
})
return retStr;
}
function menuItemClick(url, target, text, width, height) {
if (url != "") {
if (target == "_blank") {
window.open(url);
} else if (target == "_layer") {
openLayer(url, text + "信息", width, height);
} else if (target == "_tab") {
addPanel(url, text);
}
addVisitHistory(text, url);
}
$(".pt_system_menu_btn").removeClass("open");
$(".pt_system_submenu").css({
"maxHeight": 0,
"display": "none"
});
}
//弹出层
function openLayer(url, title, width, height) {
top.layer.open({
title: title,
type: 2,
area: [width + "px", height + "px"],
fixed: false,
content: url,
success: function (layero, index) {
var body = window.top.layer.getChildFrame('body', index);
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
}
});
}
//添加访问历史
function addVisitHistory(visitName, visitUrl) {
wcp.ajax({
url: "management/visitHistory/saveVisitHistory",
contentType: "application/x-www-form-urlencoded",
data: {
visitName: visitName,
visitUrl: visitUrl
}
}).done(function (result) {
});
}
function changeSkin(skin, theme) {
var hrefcss = $("#skinStyle").attr("href");
hrefcss = hrefcss.substring(0, hrefcss.lastIndexOf("-") + 1) + skin + ".css";
$("#skinStyle").attr("href", hrefcss);
//存入cookie
wcp.utils.setCookieValue(theme, skin);
}
function setLeftMenuScroll() {
var wHeight = $(window).height();
var headerHeight = $(".header").height();
//先进行销毁,防止重复生成
$(".f_left_bd").slimScroll({
destroy: true
});
$(".f_left_bd").slimScroll({
height: wHeight - headerHeight,
railOpacity: .9,
color: '#fff', //滚动条颜色
disableFadeOut: true //是否 鼠标经过可滚动区域时显示组件,离开时隐藏组件
});
}
function autoHeight() {
//高度的设置
wHeight = $(window).height();
headerHeight = $(".header").height();
$("#leftbody").height(wHeight - headerHeight);
$("#rightbody").height(wHeight - headerHeight);
//宽度的设置
if ($("#ul_MainMenu").length > 0) {
var wWidth = $(window).width();
var mainMenuDiv = wWidth - 250 - 290;
$(".misc-action").width(mainMenuDiv);
var mainMenuUl = mainMenuDiv - 16;
$("#ul_MainMenu").width(mainMenuUl);
var sl = $("#ul_MainMenu li").size();
if (sl * 88 > mainMenuUl) {
$("#div_up").show();
$("#div_down").show();
} else {
$("#div_up").hide();
$("#div_down").hide();
}
var yushu = (sl * 88) % mainMenuUl; //余数
var shang = (sl * 88) / mainMenuUl; //商
if (shang == 0) {
maiMenuCeng = 1;
} else if (shang >= 1 && yushu == 0) {
maiMenuCeng = Math.floor(shang);
} else if (shang >= 1 && yushu > 0) {
maiMenuCeng = Math.floor(shang) + 1;
}
$("#ul_MainMenu").css("top", "0");
}
setLeftMenuScroll();
//所有的iframe的高度改变
$("iframe").not("[id^=layui-layer]").height(wHeight - headerHeight - 35);
}
/*
* 添加页签
*/
function addPanel(url, text, scrolling) {
var text2 = text.length > 8 ? text.substring(0, 8) + "..." : text;
var text3 = "" + text2 + "";
var panels = $('#tt').tabs('tabs');
if (panels != null) {
var isexist = false;
$.each(panels, function (i, panel) {
var title = $(panel).panel('options').title;
if (title == text3) {
$('#tt').tabs('select', i);
//刷新页签
if (menuItemClickRefreshExistTab) {
var tab = $('#tt').tabs('getSelected');
var id = $(tab).panel("options").id;
if (id != null) {
var iframeId = id.replace("tab_", "iframe_");
document.getElementById(iframeId).contentWindow.location = url;
}
}
isexist = true;
return false;
}
});
if (!isexist) {
addTab(url, text3, scrolling);
isexist = true;
}
} else {
addTab(url, text3, scrolling);
}
}
function addTab(url, text, scrolling) {
if (scrolling === undefined) {
scrolling = "no";
}
var id = randomNum(100000, 1000000);
$('#tt').tabs('add', {
title: text,
id: "tab_" + id,
content: '',
closable: true
});
}
function randomNum(Min, Max) {
var Range = Max - Min;
var Rand = Math.random();
var num = Min + Math.floor(Rand * Range); //舍去
return num;
}
/**
* 页签右键菜单事件
* @param item
*/
function contextMenuHandler(item) {
switch (item.name) {
case "closeNowPanel":
closeNowPanel();
break;
case "closeOtherPanel":
closeOtherPanel();
break;
case "closeRightPanel":
closeRightPanel();
break;
case "closeLeftPanel":
closeLeftPanel();
break;
}
}
/*
* 关闭当前页签
*/
function closeNowPanel() {
var tab = $('#tt').tabs('getSelected');
var index = $('#tt').tabs('getTabIndex', tab);
$('#tt').tabs('close', index);
}
/**
* 关闭其他页签
*/
function closeOtherPanel() {
var selectedTab = $('#tt').tabs('getSelected');
var tableTitle = selectedTab.panel('options').title;
var tabs = $('#tt').tabs('tabs');
for (var i = tabs.length - 1; i > 0; i--) {
var tab = $('#tt').tabs('getTab', i);
var title = tab.panel('options').title;
if (tableTitle != title) {
$('#tt').tabs('close', title);
}
}
}
/**
* 关闭右侧页签
*/
function closeRightPanel() {
var selectedTab = $('#tt').tabs('getSelected');
var index = $('#tt').tabs('getTabIndex', selectedTab);
var tabs = $('#tt').tabs('tabs');
for (var i = tabs.length - 1; i > index; i--) {
$('#tt').tabs('close', i);
}
}
/**
* 关闭左侧页签
*/
function closeLeftPanel() {
var selectedTab = $('#tt').tabs('getSelected');
var index = $('#tt').tabs('getTabIndex', selectedTab);
for (var i = index - 1; i > 0; i--) {
var tab = $('#tt').tabs('getTab', i);
var title = tab.panel('options').title;
$('#tt').tabs('close', title);
}
}
/**
* 关闭所有页签
*/
function closeAllPanel() {
var tabs = $('#tt').tabs('tabs');
for (var i = tabs.length - 1; i > 0; i--) {
$('#tt').tabs('close', i);
}
}
$(function () {
//左侧菜单栏缩进
$(".f_mid").click(function () {
var that = this;
var opts = $('#ul_menu').sidemenu('options');
$('#ul_menu').sidemenu(opts.collapsed ? 'expand' : 'collapse');
opts = $('#ul_menu').sidemenu('options');
$('#ul_menu').sidemenu('resize', {
width: opts.collapsed ? 60 : 210
})
if (opts.collapsed) {
$("#rightbody").animate({
paddingLeft: 60
}, 200, 'linear', function () {
$("#tt").tabs("resize");
});
$("#leftbody").animate({
width: 60
}, 200, 'linear', function () {
});
} else {
$("#rightbody").animate({
paddingLeft: 210
}, 200, 'linear', function () {
$("#tt").tabs("resize");
});
$("#leftbody").animate({
width: 210
}, 200, 'linear', function () {
});
}
});
//更多弹出层
$(".t_more").click(function (e) {
$(".t_more_link").toggle();
$(".username_link").hide();
$(document).one("click", function () {
$(".t_more_link").hide();
});
e.stopPropagation();
});
//用户信息弹出层
$(".username").click(function (e) {
$(".username_link").toggle();
$(".t_more_link").hide();
$(document).one("click", function () {
$(".username_link").hide();
});
e.stopPropagation();
});
//更改菜单
$(".t_more_link li").hover(
function () {
$(this).children().show();
$(this).siblings().children('div').hide()
});
$(".t_more_link li").click(function (e) {
e.stopPropagation();
});
$(".t_more_menu a,.t_more_link a").click(function (e) {
setTimeout(function () {
$(".t_more_link").toggle();
}, 100);
//e.stopPropagation();
});
});
function loginOut() {
layer.confirm("确定要退出登录吗?", {
icon: 3,
title: '提示'
}, function (index) {
window.location = loginUrl + "/loginOut";
layer.close(index);
});
}
function updatePassword() {
var url = "management/user/updatePasswordIndex";
top.layer.open({
title: "修改密码",
type: 2,
area: ["500px", "430px"],
fixed: false,
content: url,
success: function (layero, index) {
var body = window.top.layer.getChildFrame('body', index);
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
}
});
}
var maxId = 0;
var IconUrl = "static/images/msg.png";
//获取未读消息设置消息提醒
function getMessageCount() {
//获取未读消息条数
$.ajax({
url: "management/message/getUnreadMessageCount",
}).done(function (result) {
var msgCount = result.count;
if (msgCount == 0) {
$("#messageDs").removeClass("badge-tip");
}
if (msgCount > 0 && maxId != result.maxId) {
$("#messageDs").addClass("badge-tip");
if (maxId == 0 && msgCount > 3) {
var msgContent = "您有" + msgCount + "条新消息,请点击查看!";
if (window.Notification) {
var n = new Notification("消息提醒", {
body: msgContent,
icon: IconUrl
});
n.onclick = function () {
viewNotReadMessage();
};
n.onshown = function () {
//10秒后关闭消息框
setTimeout(function () {
n.close();
}, 10000);
};
}
} else {
//获取未读消息
$.ajax({
url: "management/message/getMessageList?maxId=" + maxId,
}).done(function (result) {
if (result.length > 0) {
var ids = [];
for (var i = 0; i < result.length; i++) {
ids.push(result[i].messageId);
var msg = result[i];
(function (para) {
if (window.Notification) {
var messageId = para.messageId;
var n = new Notification("来自" + para.sendUser + "的消息", {
body: para.messageContent,
icon: IconUrl,
tag: para.messageId
});
n.onclick = function () {
viewMessage(para.messageId, para.url, para.openType);
n.close();
};
n.onshown = function () {
//10秒后关闭消息框
setTimeout(function () {
n.close();
}, 10000);
};
}
})(msg);
}
}
});
}
maxId = result.maxId;
}
});
setTimeout(getMessageCount, 20000);
}
function viewNotReadMessage() {
var url = "management/message/viewMessage?number=1";
top.addPanel(url, "未读消息")
}
function showUpdateRead(id) {
var ids = [];
ids.push(id);
//修改当前的信息状态
wcp.ajax({
url: "management/message/updateRead",
data: JSON.stringify(ids),
}).done(function (resul) {
});
}
$(function () {
//初始化消息提醒控件,用于兼容IE
waitForNotificationsAndInit();
});
//初始化消息提醒权限
function init(permission) {
permission = permission || "default";
if ("default" === permission) {
Notification.requestPermission(function (permission) {
init(permission);
});
} else {
//获取未读消息数量
getMessageCount();
}
}
var attempts = 0;
function waitForNotificationsAndInit() {
if (window['Notification'] === undefined) {
if (attempts < 50) {
attempts++;
setTimeout(waitForNotificationsAndInit, 100);
}
} else {
init(Notification.permission);
}
}
function viewMessage(messageId, url, openType) {
if (url != null && url != "") {
if (openType == null || openType == "0") {
openMessageByLayer(url);
} else if (openType == "1") {
window.open(url);
} else if (openType == "2") {
top.addPanel(url, "查看消息[" + messageId + "]");
}
} else {
showMessageInfo(messageId);
}
showUpdateRead(messageId);
}
function openMessageByLayer(url) {
var title = "消息查看";
top.layer.open({
title: title,
type: 2,
area: ["1000px", "600px"],
fixed: false,
content: url,
success: function (layero, index) {
var body = window.top.layer.getChildFrame('body', index);
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
}
});
}
//消息查看
function showMessageInfo(messageId) {
var url = "management/message/showMessage?messageId=" + messageId;
var title = "消息查看";
top.layer.open({
title: title,
type: 2,
area: ["650px", "540px"],
fixed: false,
content: url,
success: function (layero, index) {
var body = window.top.layer.getChildFrame('body', index);
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
//将回调函数传给子页面
iframeWin.params.callBack = refreshData;
}
});
//window.event ? window.event.returnValue == false : e.preventDefault();
}
function updateRead(ids) {
//已弹框的修改为未读已弹框
wcp.ajax({
url: "management/message/updateRead",
data: JSON.stringify(ids),
}).done(function (result) {
});
}
//访问历史
function showVisitHistory() {
var url = "management/visitHistory";
top.layer.open({
title: "访问历史",
type: 2,
area: ["700px", "500px"],
fixed: false,
content: url,
success: function (layero, index) {
var body = window.top.layer.getChildFrame('body', index);
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
}
});
}
//密码到期验证
function passwordExpired() {
wcp.ajax({
url: "management/user/passwordExpired"
}).done(function (result) {
var mag = result.mag;
if (mag == 1) {
var message = "您的密码将于" + result.day + "天后过期,是否立即修改?";
layer.confirm(message, {
icon: 3,
title: '提示'
}, function (index) {
var url = "management/user/updatePasswordIndex?type=" + mag + "&day=" + result.day;
top.layer.open({
title: "修改密码",
type: 2,
area: ["500px", "430px"],
fixed: false,
content: url,
success: function (layero, index) {
var body = window.top.layer.getChildFrame('body', index);
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
}
});
layer.close(index);
});
} else if (mag == 2) {
var url = "management/user/updatePasswordIndex?type=" + mag;
top.layer.open({
title: "修改密码",
type: 2,
area: ["500px", "430px"],
closeBtn: 0,
content: url,
success: function (layero, index) {
var body = window.top.layer.getChildFrame('body', index);
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
}
});
}
});
}
//首次登录修改密码验证
function forceModifyPassword() {
wcp.ajax({
url: "management/user/forceModifyPassword"
}).done(function (result) {
if (result == 1) {
var url = "management/user/updatePasswordIndex?type=3";
top.layer.open({
title: "修改密码",
type: 2,
area: ["500px", "430px"],
closeBtn: 0,
content: url,
success: function (layero, index) {
var body = window.top.layer.getChildFrame('body', index);
var iframeWin = window.top[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象
}
});
}
});
}