123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750 |
- $(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 += '<div id=\'' + numId + '\'' +
- ' class=\'circle\'>' + num + '</div>';
- } else {
- s += '<div id=\'' + numId + '\'' +
- ' class=\'circle\' style="display: none"></div>';
- }
- 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 = $('<div></div>');
- iframe.progress();
- } else {
- iframe = '<iframe src="' + params.url +
- '" scrolling="auto" frameborder="0" style="width:100%;height:99%;"></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 "<li>\n" +
- " <a onclick='App.chooseSystem(" + JSON.stringify(system) + ")'>\n" +
- " <i class='yvan-icon fa fa-bank'></i> " +
- system.sysName +
- " </a>\n" +
- " </li>";
- },
- // 添加角色切换按钮
- addRoleRow: function (role) {
- var s = App.addRolePromptNum(role);
- return "<li>\n" +
- " <a onclick='App.clickRoleButton(" + JSON.stringify(role) + ")'>\n" +
- " <i class='yvan-icon fa fa-bank'></i> " +
- s +
- " </a>\n" +
- " </li>";
- },
- 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 += '<span id=\'urId' + urId + '\'' +
- ' class=\'circle\'>' + num + '</span>';
- } else {
- s += '<span id=\'urId' + urId + '\'' +
- ' class=\'circle\' style="display: none"></span>';
- }
- 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);
- }
- };
|