$(function () {
//隐藏角色上的提示红点
$('#role-name-num').hide();
//隐藏仓库选择菜单
// $('#warehouseSwitch').hide();
//隐藏角色选择菜单
$('#roleSwith').hide();
function doSearch(text) {
$('#menutree').tree('search', text);
}
App.init(function (roleId, roomId, farmId, roleCode, urId) {
App.currentRoleCode = roleCode || "";
App.currentRoleId = roleId;
App.currentRoomId = roomId;
App.currentFarmId = farmId;
App.currentUrId = urId;
$('#body').layout();
$('#treesearch').searchbox({
prompt: '搜索',
searcher: doSearch,
icons: [
{
iconCls: 'icon-clear',
handler: function (e) {
$(e.data.target).textbox('clear').textbox('textbox').focus();
doSearch('');
}
}]
});
$('.easyui-menubutton').menubutton();
if (window.hasOwnProperty('cs')) {
$('#csMenu').show();
$('#csMenuTest1').click(function () {
window.cs.ShowTest();
});
}
$('#menutree').tree({
url: api('/menu_tree?urId=' + urId),
onDblClick: function (node) {
var $this = $(this);
if (!$this.tree('isLeaf', node.target)) {
$this.tree(node.state === 'closed' ? 'expand' : 'collapse', node.target);
}
},
onSelect: function () {
return false;
},
onClick: function (node) {
var href = node.href;
if ($.trim(href)) {
App.addTab({
title: node.text,
url: node.href,
id: node.id,
iconCls: node.iconCls,
_: urId,
});
// debugger;
}
},
formatter: function (node) {
var s = node.text;
// node.msgNum = node.children.length;
var numId = 'msgNum' + node.id;
if (node.msgNum > 0) {
var num = node.msgNum;
if (num > 99) {
num = '...';
}
s += '
' + num + '
';
} else {
s += '';
}
return s;
},
onLoadSuccess: function (node, data) {
App.currenMenuTree = data;
//将所有字典读取出来,缓存在浏览器
// $.yvan.progress();
$.yvan.dictLoadAll({
url: api("/dict_all_data"),
success: function () {
$.yvan.closep();
//更改角色显示
$('#roleList').empty();
for (var i = 0; i < App.roleList.length; i++) {
var role = App.roleList[i];
if (role.urId === urId) {
if (role.farmId && role.farmId > 0 && role.roomId && role.roomId > 0) {
$('#role-name').html(role.roomName + "-" + role.roleName);
} else if (role.farmId && role.farmId > 0) {
$('#role-name').html(role.farmName + "-" + role.roleName);
} else {
$('#role-name').html(role.roleName);
}
var num = App.addRolePromptNum();
if (num > 0) {
$('#role-name-num').show();
if (num > 99) {
num = '...';
}
$('#role-name-num').html(num);
} else {
$('#role-name-num').hide();
}
} else {
$('#roleList').prepend(App.addRoleRow(role));
}
}
//字典载入完成之后,再根据 hash 载入上次页面
if ($.trim(window.location.hash).length > 1 && App.isQiehuan === false) {
var vv = $.yvan.unparam(window.location.hash);
if ($.trim(vv.id)) {
App.addTab(vv);
var node = $('#menutree').tree('find', vv.id);
if (node) {
$('#menutree').tree('select', node.target).tree('expandTo', node.target).tree('scrollTo', node.target);
}
}
} else {
var $tt = $('#tt');
var allTabs = $tt.tabs('tabs');
$.each(allTabs, function (i, n) {
var opt = $(n).panel('options');
$tt.tabs('close', opt.title);
});
App.addTab(
{
title: data[0].text,
iconCls: data[0].iconCls,
url: data[0].href,
id: data[0].id,
_: urId,
});
}
App.isQiehuan = false;
}
});
stopTimer();
//开始轮询任务
var pd = [];
for (var i = 0; i < App.roleList.length; i++) {
pd.push(App.roleList[i].roleId);
}
timerGetNewTaskTag(function () {
//请求新任务标记 (查询服务器查看当前有没有新的任务待办标记)
$.ajax({
url: api('/message_task'),
contentType: "application/json; charset=utf-8",
data: JSON.stringify(pd),
type: 'post',
success: function (taskData) {
var isUpdate = false;
for (var i = 0; i < App.roleList.length; i++) {
var role = App.roleList[i];
// 对比当前的标记和服务器是否一致, 不一致就请求新的任务
if (role.taskTag < taskData.data[role.urId] && isUpdate === false) {
//更新当前显示的菜单提示和角色提示
$.yvan.ajax({
url: api('/role_task?urId=' + role.urId),
method: 'get',
loadingMask: false,
success: function (data) {
isUpdate = true;
var num = 0;
// 设置右上角角色列表每个角色的角标(角色对应的待办数量)
for (var j = 0; j < App.roleList.length; j++) {
var role = App.roleList[j];
num += parseInt(data.data.roleTaskMap[role.urId]);
$('#urId' + role.urId).html(data.data.roleTaskMap[role.urId]);
}
// 设置右上角选择角色按钮的角标(当前用户所有的角色的待办提醒数量)
if (num > 0) {
$('#role-name-num').show();
} else {
$('#role-name-num').hide();
}
$('#role-name-num').html(num);
// 设置菜单的待办数量
for (var i = 0; i < data.data.listSysMenu.length; i++) {
var menu = data.data.listSysMenu[i];
$('#msgNum' + menu.menuId).html(menu.msgNum);
if (menu.msgNum <= 0) {
$('#msgNum' + menu.menuId).hide();
} else {
$('#msgNum' + menu.menuId).show();
}
}
},
error: function () {
// debugger;
}
});
//记录更新标识
role.taskTag = taskData.data[role.roleId];
}
}
},
error: function () {
}
});
stopTimer();
}, 1000 * 5);
}
});
$.yvan.syncTime({
url: api("/time"),
success: function () {
// console.log('企业时间同步完成 at ' + $.yvan.getMoment().format('YYYY-MM-DD hh:mm:ss'));
}
});
$('#mm').menu({
onClick: function (item) {
App.tabMenuOprate(this, item.name);
}
});
$('#tt').tabs({
onContextMenu: function (e, title, index) {
e.preventDefault();
if (index >= 0 && title != '首页') {
$('#mm').menu('show', {
left: e.pageX,
top: e.pageY
}).data("tabTitle", title);
}
},
onSelect: function (title, index) {
if (index >= 0) {
var node = $('#tt').tabs('getTab', index).panel('options').node;
if (node && node.id) {
window.location.hash = $.param(node);
node = $('#menutree').tree('find', node.id);
if (node) {
$('#menutree').tree('select', node.target).tree('expandTo', node.target).tree('scrollTo', node.target);
}
}
}
if (title == '首页') {
// 刷新首页
var iframeList = document.getElementsByTagName("iframe");
if (iframeList) {
for (var i = 0; i < iframeList.length; i++) {
iframeList[i].contentWindow.location.reload();
}
}
}
setTimeout(function () {
shortcut.ffApply($('#tt').tabs('getSelected'))
})
},
onBeforeClose: function (title, index) {
var tab = $('#tt').tabs('getSelected');
var curTabIndex = $('#tt').tabs('getTabIndex', tab);
if (index === curTabIndex) {
window.location.hash = '';
}
}
});
});
});
var App = {
userId: 0,
isQiehuan: false,
taskTag: 0,
roleList: [],
roomList: [],
currentUrId: 0,
currentRoleId: 0,
currentRoleCode: '', //角色code
currentRoomId: 0,
currentFarmId: 0,
currenMenuTree: [],
init: function (success) {
//判断当前的环境,cs还是bs
if (typeof cs == "undefined") {
//alert("请启动客户端程序来调用");
} else {
var cookies = cs.SetCookiesToBs("csLogin");
// alert(cookies);
$.cookie('auth', cookies, {path: '/'});
}
// 先设置当前的仓库ID(刷新时有默认值)
var vv = $.yvan.unparam(window.location.href);
if (vv._) {
App.currentUrId = vv._;
}
$.yvan.ajax({
url: api('/me'),
data: {urId: App.currentUrId},
method: 'get',
loadingMask: false,
success: function (data) {
App.userId = data.data.userId;
// debugger;
if (!$.trim(data.data.accId)) {
top.window.location.href = jumpApi(LOGINURL);
return;
}
Message.connectWebSocket();
//连接硬件服务
DeviceConnection.connectDeviceServer();
$('#user-name').html(data.data.userName);
App.qiehuan = success;
// 设置角色列表
App.roleList = data.data.roleList;
if (data.data.roleList.length > 0) {
var noRole = true;
if (vv._) {
for (var i = 0; i < App.roleList.length; i++) {
var r = App.roleList[i];
// 如果角色ID相同并且
if (vv._ == r.urId) {
App.currentUrId = r.urId;
App.currentRoleId = r.roleId;
App.currentRoleCode = r.roleCode;
App.currentRoomId = r.roomId;
App.currentFarmId = r.farmId;
noRole = false;
break;
// console.log(App.currentRoleCode);
}
}
}
if (noRole) {
App.currentUrId = data.data.roleList[0].urId;
App.currentRoleId = data.data.roleList[0].roleId;
App.currentRoleCode = data.data.roleList[0].roleCode;
App.currentRoomId = data.data.roleList[0].roomId;
App.currentFarmId = data.data.roleList[0].farmId;
}
$('#roleSwith').show();
} else {
$('#roleSwith').hide();
}
// 判断平台数量 唯一就直接跳转
if (data.data.systemList.length === 1) {
var sys = data.data.systemList[0];
if (sys.sysCode === data.data.currentSysCode) {
$('#sys-name').html(sys.sysName);
} else {
App.chooseSystem(sys);
return;
}
}
// 设置当前的系统名称
var hasRole = false;
$('#systemList').empty();
for (var i = 0; i < data.data.systemList.length; i++) {
var sys = data.data.systemList[i];
if (sys.sysCode === data.data.currentSysCode) {
$('#sys-name').html(sys.sysName);
hasRole = true;
} else {
$('#systemList').prepend(App.addSystemRow(sys));
}
}
// 如果当前系统没有角色,就选一个有角色的系统跳转
if (!hasRole) {
$('#sys-name').html('请选择系统');
if (data.data.systemList && data.data.systemList.length > 1) {
var sys = data.data.systemList[0];
for (var i = 0; i < data.data.systemList.length; i++) {
var syst = data.data.systemList[i];
if (syst.sysCode == '03') {
sys = syst;
break;
}
}
App.chooseSystem(sys);
}
}
success(App.currentRoleId, App.currentRoomId, App.currentFarmId, App.currentRoleCode, App.currentUrId);
$("#loading").remove();
},
error: function () {
// debugger;
top.window.location.href = jumpApi(LOGINURL);
}
});
},
//打开Tab窗口
addTab: function (params) {
var $tt = $('#tt');
/** 给每一个打开的窗口加上首页(如果有的话)*/
if (!($tt.tabs('exists', '首页') || params.title == '首页')) {
for (var i = 0; i < App.currenMenuTree.length; i++) {
var de = App.currenMenuTree[i];
if (de.text == '首页') {
App.addTab({
title: de.text,
iconCls: de.iconCls,
url: de.href,
id: de.id,
_: App.currentUrId
});
break;
}
}
}
if ($tt.tabs('exists', params.title)) {
$tt.tabs('select', params.title);
return;
}
var lastMenuClickTime = $.cookie("menuClickTime");
var nowTime = new Date().getTime();
if ((nowTime - lastMenuClickTime) < 500) {
$.yvan.msg('操作过快,请稍后重试');
return;
}
var id = $.yvan.createId('t');
var iframe;
if (params.url.slice(-3) === '.js') {
iframe = $('');
iframe.progress();
} else {
iframe = '';
}
var vv = $.yvan.unparam(top.window.location.href);
$tt.tabs('add', {
id: id,
title: params.title,
closable: params.title != '首页',
iconCls: $.trim(params.iconCls) ? params.iconCls + ' fa-lg' : 'fa fa-file-text-o',
content: iframe,
border: params.border || true,
fit: true,
node: {
url: params.url,
title: params.title,
id: params.id,
_: params._ ? params._ : vv._
}
});
//去掉首页双滚动条
$('#' + id).css({overflow: 'hidden'});
var tabCount = $tt.tabs('tabs').length;
// $.yvan.msg(tabCount);
//打开的tab的数量
if (tabCount > 6) {
for (var i = 0; i < tabCount; i++) {
var tab = $tt.tabs('getTab', i).panel('options');
var title = tab.title;
if (title != '首页') {
$tt.tabs("close", i);
break;
}
}
}
if ($.type(iframe) !== 'string') {
seajs.use([params.url], function (powerOpt) {
if ($.type(powerOpt) === 'function') {
powerOpt = powerOpt();
}
// console.log(powerOpt);
$.extend(powerOpt, {
class: 'bizWindow'
});
iframe.parent().power(powerOpt);
iframe.progress('close');
});
}
},
closeMe: function () {
var $tt = $('#tt');
var tab = $tt.tabs('getSelected');
var index = $tt.tabs('getTabIndex', tab);
$tt.tabs("close", index);
},
// Tab菜单操作
tabMenuOprate: function (menu, type) {
var $tt = $('#tt');
var allTabs = $tt.tabs('tabs');
var allTabtitle = [];
$.each(allTabs, function (i, n) {
var opt = $(n).panel('options');
if (opt.closable)
allTabtitle.push(opt.title);
});
var curTabTitle = $(menu).data("tabTitle");
var curTabIndex = $tt.tabs("getTabIndex", $tt.tabs("getTab", curTabTitle));
switch (type) {
case "1": //关闭当前
$tt.tabs("close", curTabTitle);
break;
case "2": //全部关闭
for (var i = 0; i < allTabtitle.length; i++) {
$tt.tabs('close', allTabtitle[i]);
}
break;
case "3": //除此之外全部关闭
for (var i = 0; i < allTabtitle.length; i++) {
if (curTabTitle != allTabtitle[i])
$tt.tabs('close', allTabtitle[i]);
}
$tt.tabs('select', curTabTitle);
$tt.tabs('scrollBy', 0);
break;
case "4": //当前侧面右边
for (var i = curTabIndex; i < allTabtitle.length; i++) {
$tt.tabs('close', allTabtitle[i]);
}
$tt.tabs('select', curTabTitle);
break;
case "5": //当前侧面左边
for (var i = 0; i < curTabIndex - 1; i++) {
$tt.tabs('close', allTabtitle[i]);
}
$tt.tabs('select', curTabTitle);
break;
case "6": //刷新
var currentTab = $tt.tabs('getSelected');
var opts = $.data(currentTab[0], 'panel').options;
if (opts.iframe) {
var currentIframe = currentTab.find('iframe')[0];
currentIframe.contentWindow.location.href = currentIframe.src;
} else {
$(currentTab[0]).panel('refresh');
}
break;
case "7": //在新窗口打开
var refresh_tab = $tt.tabs('getSelected');
var refresh_iframe = refresh_tab.find('iframe')[0];
window.open(refresh_iframe.src);
break;
}
},
//退出登录
logout: function () {
$.cookie('auth', null);
top.window.location.href = jumpApi(LOGINURL);
},
resetPWD: function () {
var me = this;
seajs.use('/user/resetPWD', function (opt) {
$.yvan.showDialog(me, opt());
});
},
//全屏显示
onFullScreen: function () {
//头部全屏显示
var text = $('.full-screen span').text();
if (text === "全屏显示") {
var el = document.documentElement;
var rfs = el.requestFullScreen || el.webkitRequestFullScreen;
if (typeof rfs !== "undefined" && rfs) {
rfs.call(el);
} else if (typeof window.ActiveXObject !== "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript != null) {
wscript.SendKeys("{F11}");
}
} else if (el.msRequestFullscreen) {
el.msRequestFullscreen();
} else if (el.oRequestFullscreen) {
el.oRequestFullscreen();
} else {
$.yvan.msg('浏览器不支持全屏调用!请更换浏览器或按F11键切换全屏!');
}
$('.full-screen span').text('退出全屏');
} else {
var el = document;
var cfs = el.cancelFullScreen || el.webkitCancelFullScreen || el.exitFullScreen;
if (typeof cfs !== "undefined" && cfs) {
cfs.call(el);
} else if (typeof window.ActiveXObject !== "undefined") {
var wscript = new ActiveXObject("WScript.Shell");
if (wscript != null) {
wscript.SendKeys("{F11}");
}
} else if (el.msExitFullscreen) {
el.msExitFullscreen();
} else if (el.oRequestFullscreen) {
el.oCancelFullScreen();
} else {
$.yvan.msg('浏览器不支持全屏调用!请更换浏览器或按F11键切换全屏!');
}
$('.full-screen span').text('全屏显示');
}
},
// 切换平台
chooseSystem: function (system) {
top.window.location.href = jumpApi(system.sysUrl);
},
// 切换角色
clickRoleButton: function (role) {
// $('#roleList').hide();
$('#roleSwithButton').trigger('closeSB');
// $('#warehouseSwitchButton').trigger('closeRoomChose');
// // $.yvan.msg(role.roleName);s
var $tt = $('#tt');
var allTabs = $tt.tabs('tabs');
var allTabtitle = [];
$.each(allTabs, function (i, n) {
var opt = $(n).panel('options');
if (opt.closable)
allTabtitle.push(opt.title);
});
for (var i = 0; i < allTabtitle.length; i++) {
$tt.tabs('close', allTabtitle[i]);
}
App.isQiehuan = true;
App.qqqq = role.roleId;
App.currentRoomId = role.roomId;
App.currentFarmId = role.farmId;
App.currentRoleCode = role.roleCode;
App.currentUrId = role.urId;
setTimeout('App.qiehuan(App.qqqq, App.currentRoomId, App.currentFarmId, App.currentRoleCode, App.currentUrId)', 100);
},
// 添加系统切换按钮
addSystemRow: function (system) {
return "\n" +
" \n" +
" " +
system.sysName +
" \n" +
" ";
},
// 添加角色切换按钮
addRoleRow: function (role) {
var s = App.addRolePromptNum(role);
return "\n" +
" \n" +
" " +
s +
" \n" +
" ";
},
addRolePromptNum: function (role) {
var s = '';
var num = 0;
var urId = 0;
if (role) {
if (role.farmId && role.farmId > 0 && role.roomId && role.roomId > 0) {
s = role.roomName + "-" + role.roleName;
} else if (role.farmId && role.farmId > 0) {
s = role.farmName + "-" + role.roleName;
} else {
s = role.roleName;
}
num = parseInt(role.msgNum);
urId = role.urId;
if (num > 0) {
if (num > 99) {
num = '...';
}
s += '' + num + '';
} else {
s += '';
}
return s;
} else {
for (var i = 0; i < App.roleList.length; i++) {
var r = App.roleList[i];
if (r.roleId === App.currentRoleId) {
s = r.roleName;
roleId = App.currentRoleId;
}
num += parseInt(r.msgNum);
}
return num;
}
},
findMenuByMenuId: function (menuId) {
var node = $('#menutree').tree('find', menuId);
return node;
},
addTabByMenuId: function (menuId, tempData) {
var menu = $('#menutree').tree('find', menuId);
var vv = $.yvan.unparam(top.window.location.href);
var s = {
id: menu.id,
title: menu.text,
url: menu.href,
iconCls: menu.iconCls
};
var node = {
url: menu.href,
title: menu.text,
id: menu.id,
_: vv._
};
// 如果有参数要带就会添加缓存
if (tempData) {
Message.cacheHomeTempData(tempData, $.param(node));
}
App.addTab(s);
}
};