$(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); } };