调整 报工平台,添加定时刷新功能。模块添加定时器管理模块
| | |
| | | return GetWEBURL() |
| | | } |
| | | |
| | | |
| | | layui.use(['jquery', 'layer'], function () { |
| | | var $ = layui.jquery, |
| | | layer = layui.layer; |
| | | |
| | | // å
¨å±é
ç½® |
| | | layer.config({ |
| | | scrollbar: false |
| | | }); |
| | | |
| | | var pendingRequests = []; |
| | | |
| | | // å
¨å±é
ç½® é»è®¤ä¸æ¾ç¤ºç¶çº§æ»å¨æ¡ |
| | | var _open = layer.open; |
| | |
| | | if (oldSuccess) oldSuccess.call(this, layero, index); |
| | | }; |
| | | |
| | | |
| | | // å
³éå¼¹çªæ¶ |
| | | options.end = function () { |
| | | if (needHideScroll) { |
| | |
| | | return _open.call(this, options); |
| | | }; |
| | | |
| | | |
| | | // å
¨å±æ¦æªææ layui ajax è¯·æ± |
| | | $(document).ajaxSend(function (event, jqxhr, settings) { |
| | | var token = localStorage.getItem('token'); |
| | | if (token) { |
| | | pendingRequests.push(jqxhr); |
| | | |
| | | if (typeof token != 'undefined') { |
| | | // èªå¨å¸¦ä¸ token |
| | | jqxhr.setRequestHeader('Authorization', 'Bearer ' + token); |
| | | |
| | | } |
| | | |
| | | }); |
| | |
| | | $(document).ajaxComplete(function (event, jqxhr, settings) { |
| | | // HTTP ç¶æç |
| | | var status = jqxhr.status; |
| | | |
| | | console.log(jqxhr) |
| | | if (status === 401) { |
| | | abortAllPendingRequests(pendingRequests); |
| | | // æªç»å½ / token è¿æ |
| | | layer.confirm('ç»å½å·²è¿æï¼è¯·éæ°ç»å½', { icon: 7, title: 'æç¤º' }, function () { |
| | | layer.confirm(jqxhr.responseJSON.Message, { icon: 7, title: 'æç¤º' }, function () { |
| | | localStorage.removeItem('token'); |
| | | window.top.location.href = '../../views/user/login.html'; // è·³å°ç»å½é¡µ |
| | | window.top.location.href = '/views/user/login.html'; // è·³å°ç»å½é¡µ |
| | | |
| | | }); |
| | | } else if (status === 403) { |
| | | abortAllPendingRequests(pendingRequests); |
| | | // æ æé |
| | | layer.msg('æ¨æ²¡æè¯¥æ¨¡åçæä½æé', { icon: 2, time: 2000 }); |
| | | layer.confirm(jqxhr.responseJSON.Message, { |
| | | icon: 4, skin: 'layui-layer-lan', title: "温馨æç¤º", closeBtn: 0, btn: ['ç¡®å®'] |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | var pendingRequests2 = [] |
| | | if (typeof $ != 'undefined') { |
| | | $(document).ajaxSend(function (event, jqxhr, settings) { |
| | | var token = localStorage.getItem('token'); |
| | | if (token) { |
| | | pendingRequests2.push(jqxhr) |
| | | |
| | | if (typeof token != 'undefined') { |
| | | // èªå¨å¸¦ä¸ token |
| | | jqxhr.setRequestHeader('Authorization', 'Bearer ' + token); |
| | | } |
| | |
| | | |
| | | if (status === 401) { |
| | | // æªç»å½ / token è¿æ |
| | | layer.confirm('ç»å½å·²è¿æï¼è¯·éæ°ç»å½', { icon: 7, title: 'æç¤º' }, function () { |
| | | abortAllPendingRequests(pendingRequests2) |
| | | layer.confirm(jqxhr.responseJSON.Message, { icon: 7, title: 'æç¤º' }, function () { |
| | | localStorage.removeItem('token'); |
| | | window.top.location.href = '../../views/user/login.html'; // è·³å°ç»å½é¡µ |
| | | window.top.location.href = '/views/user/login.html'; // è·³å°ç»å½é¡µ |
| | | |
| | | }); |
| | | } else if (status === 403) { |
| | | // æ æé |
| | | layui.layer.msg('æ¨æ²¡æè¯¥æ¨¡åçæä½æé', { icon: 2, time: 2000 }); |
| | | abortAllPendingRequests(pendingRequests2) |
| | | layer.confirm(jqxhr.responseJSON.Message, { |
| | | icon: 4, skin: 'layui-layer-lan', title: "温馨æç¤º", closeBtn: 0, btn: ['ç¡®å®'] |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function abortAllPendingRequests(pendingRequests) { |
| | | if (pendingRequests.length === 0) return; |
| | | |
| | | // éååæ¶ææè¯·æ± |
| | | $.each(pendingRequests, function (i, req) { |
| | | try { |
| | | req.abort(); // ä¸æè¯·æ± |
| | | } catch (e) { } |
| | | }); |
| | | |
| | | // æ¸
ç©ºè¯·æ±æ± |
| | | pendingRequests = []; |
| | | } |
| New file |
| | |
| | | /** |
| | | * Layui æ©å±æ¨¡åï¼å®æ¶å¨ç®¡çå¨ |
| | | * åè½ï¼ç»ä¸ç®¡ç宿¶å¨ï¼æ¯ææå/æ¢å¤/æ¸
é¤ï¼é²æ¢å
åæ³æ¼ |
| | | */ |
| | | layui.define([], function(exports) { |
| | | "use strict"; |
| | | |
| | | // å宿¶å¨æ ¸å¿ç±» |
| | | class TimerManager { |
| | | constructor() { |
| | | this.timers = new Map(); |
| | | } |
| | | |
| | | /** |
| | | * åå»ºå®æ¶å¨ |
| | | * @param {String} key 宿¶å¨å¯ä¸æ è¯ï¼å¦ï¼'countdown'ï¼ |
| | | * @param {Function} callback æ§è¡çä¸å¡å½æ° |
| | | * @param {Number} interval æ§è¡é´éï¼msï¼ |
| | | * @param {String} type ç±»åï¼intervalï¼éå¤ï¼/ timeoutï¼åæ¬¡ï¼ |
| | | * @returns {void} |
| | | */ |
| | | createTimer(key, callback, interval = 1000, type = 'interval') { |
| | | // å
æ¸
é¤åå宿¶å¨ï¼é¿å
éå¤å建 |
| | | this.clearTimer(key); |
| | | |
| | | let timerId = null; |
| | | const timerConfig = { |
| | | id: null, |
| | | type, |
| | | callback, |
| | | interval, |
| | | isPaused: false |
| | | }; |
| | | |
| | | if (type === 'interval') { |
| | | timerId = setInterval(() => { |
| | | // æåç¶æä¸æ§è¡ |
| | | if (!timerConfig.isPaused) { |
| | | callback(); |
| | | } |
| | | }, interval); |
| | | } else if (type === 'timeout') { |
| | | timerId = setTimeout(() => { |
| | | if (!timerConfig.isPaused) { |
| | | callback(); |
| | | this.clearTimer(key); // 忬¡æ§è¡åèªå¨æ¸
é¤ |
| | | } |
| | | }, interval); |
| | | } |
| | | |
| | | timerConfig.id = timerId; |
| | | this.timers.set(key, timerConfig); |
| | | } |
| | | |
| | | /** |
| | | * æå宿¶å¨ |
| | | * @param {String} key 宿¶å¨æ è¯ |
| | | */ |
| | | pauseTimer(key) { |
| | | const timer = this.timers.get(key); |
| | | if (timer) { |
| | | timer.isPaused = true; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ¢å¤å®æ¶å¨ |
| | | * @param {String} key 宿¶å¨æ è¯ |
| | | */ |
| | | resumeTimer(key) { |
| | | const timer = this.timers.get(key); |
| | | if (timer) { |
| | | timer.isPaused = false; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ¸
é¤åä¸ªå®æ¶å¨ |
| | | * @param {String} key 宿¶å¨æ è¯ |
| | | */ |
| | | clearTimer(key) { |
| | | const timer = this.timers.get(key); |
| | | if (timer) { |
| | | if (timer.type === 'interval') { |
| | | clearInterval(timer.id); |
| | | } else if (timer.type === 'timeout') { |
| | | clearTimeout(timer.id); |
| | | } |
| | | this.timers.delete(key); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * æ¸
餿æå®æ¶å¨ï¼é¡µé¢éæ¯æ¶è°ç¨ï¼ |
| | | */ |
| | | clearAllTimers() { |
| | | this.timers.forEach((timer) => { |
| | | if (timer.type === 'interval') { |
| | | clearInterval(timer.id); |
| | | } else if (timer.type === 'timeout') { |
| | | clearTimeout(timer.id); |
| | | } |
| | | }); |
| | | this.timers.clear(); |
| | | } |
| | | } |
| | | |
| | | // å建åä¾ |
| | | const timerManager = new TimerManager(); |
| | | |
| | | // å¯¼åºæ¨¡å |
| | | exports('timerManager', timerManager); |
| | | }); |
| | |
| | | base: '../layuiadmin/' //éæèµæºæå¨è·¯å¾ |
| | | }).extend({ |
| | | index: 'lib/index' //主å
¥å£æ¨¡å |
| | | }).use(['index', 'form', 'laydate', 'table', 'element'], function () { |
| | | }).use(['index', 'form', 'laydate', 'table', 'element', "timerManager"], function () { |
| | | var $ = layui.$ |
| | | , admin = layui.admin |
| | | , layer = layui.layer |
| | |
| | | , form = layui.form |
| | | , laydate = layui.laydate |
| | | , element = layui.element |
| | | , timerManager = layui.timerManager |
| | | ; |
| | | //window å
¨å±åé |
| | | window.mychart1 = echarts.init(document.getElementById('mychart1')); |
| | |
| | | mychart2.resize(); |
| | | }) |
| | | |
| | | // é
ç½® å¼¹åºå± æå¼/å
³éå¤ç彿° |
| | | InitLayerConfig() |
| | | |
| | | TSLoad(); |
| | | fetchButtonsData(); |
| | | |
| | | timerManager.createTimer( |
| | | 'Timer', // å¯ä¸æ è¯ |
| | | function () { |
| | | TSLoad(); |
| | | }, |
| | | 10000, // é´é3åé |
| | | 'interval' // 循ç¯ç±»å |
| | | ); |
| | | |
| | | $(window).on('beforeunload', function () { |
| | | timerManager.clearAllTimers(); |
| | | }); |
| | | }); |
| | | function InitLayerConfig() { |
| | | var _open = layer.open |
| | | , _timerManager = layui.timerManager |
| | | |
| | | layer.open = function (opts) { |
| | | // åå¹¶é»è®¤é
ç½® |
| | | var options = $.extend({}, layer.config, opts); |
| | | |
| | | var oldSuccess = options.success; |
| | | var oldEnd = options.end; |
| | | var needHideScroll = options.scrollbar === false; |
| | | |
| | | // æå¼å¼¹çªæ¶ |
| | | options.success = function (layero, index) { |
| | | if (needHideScroll) { |
| | | $('body').css('overflow', 'hidden'); |
| | | } |
| | | console.log("æå宿¶å¨") |
| | | _timerManager.pauseTimer('Timer') |
| | | if (oldSuccess) oldSuccess.call(this, layero, index); |
| | | }; |
| | | |
| | | |
| | | // å
³éå¼¹çªæ¶ |
| | | options.end = function () { |
| | | if (needHideScroll) { |
| | | // åªææåä¸ä¸ªå¼¹çªå
³éææ¢å¤ |
| | | if ($('.layui-layer:visible').length <= 1) { |
| | | $('body').css('overflow', ''); |
| | | } |
| | | } |
| | | if ($('.layui-layer:visible').length <= 1) { |
| | | console.log("æ¢å¤å®æ¶å¨") |
| | | _timerManager.resumeTimer('Timer') |
| | | } |
| | | if (oldEnd) oldEnd.call(this); |
| | | }; |
| | | |
| | | return _open.call(this, options); |
| | | }; |
| | | } |
| | | |
| | | function TSLoad() { |
| | | $("#topleft").html(""); |
| | | var HUserName = sessionStorage["HUserName"]; //sessionStorage["HUserName"]; //é»è®¤å½åç»å½äººå |
| | |
| | | case "ç产": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border2"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | case "ç»´ä¿®è¿è¡ä¸": |
| | | case "å¾
æº": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | case "æ
é": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border5"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | case "ç»´ä¿®ç»æ": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | case "ç»´ä¿®ç»æ¢": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | case "ç»´ä¿®å®æ": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border2"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | default: |
| | | } |
| | |
| | | case "ç产": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border2"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | case "ç»´ä¿®è¿è¡ä¸": |
| | | case "å¾
æº": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | case "æ
é": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border5"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | case "ç»´ä¿®ç»æ": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | case "ç»´ä¿®ç»æ¢": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border1"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | case "ç»´ä¿®å®æ": |
| | | html1 += '<h1><span>å½åç¶æï¼</span><span class="gj_icon color_border2"></span><span>' + LoadData[i - 1].HStatus + '</span></h1>'; |
| | | break; |
| | | default: |
| | | } |
| | |
| | | |
| | | if (sessionStorage["Organization"] == "宿³¢å¸åèå
è£
æéå
¬å¸") { |
| | | // åè 使ç¨åç»æ ç¾ |
| | | console.log("åç»æ ç¾", LoadingTabsContact) |
| | | var divParent = document.createElement("div") |
| | | divParent.classList.add("layui-tab") |
| | | divParent.classList.add("layui-tab-card") |
| | |
| | | layer.alert("è¯·éæ©å·¥åå表", { icon: 5 }); |
| | | return false; |
| | | } |
| | | //å½åå·¥å(æ±æ¥)æé®ç¹å»äºä»¶ |
| | | function CodingReport(event, obj) { |
| | | if (wktag == 0) { |
| | | layer.alert("è¯·éæ©å·¥åå表", { icon: 5 }); |
| | | return false; |
| | | } |
| | | |
| | | // 夿æ¯å¦ä¸ºåèç»ç» |
| | | if (sessionStorage["Organization"] == "宿³¢å¸åèå
è£
æéå
¬å¸") { |
| | | // åèç»ç»ï¼è¥æ±æ¥æ»æ°ä¸ä¸º0åè·³è¿ç¶ææ£æ¥ï¼å¦åæ§è¡æ£æ¥ |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | // æå¼ iframe å¼¹çªï¼åæä»£ç ä¸åï¼ |
| | | layer.open({ |
| | | type: 2, |
| | | skin: 'layui-layer-rim', //å ä¸è¾¹æ¡ |
| | |
| | | scrollbar: false, |
| | | content: '车é´ç®¡ç/å·¥åºåºç«æ±æ¥å/Cj_StationOutBill_CurrentWork.html?OperationType=2&linterid=&HSouceBillType=', |
| | | end: function () { |
| | | // å¯éçå
³éåè° |
| | | |
| | | }, |
| | | success: function (dom, index) { |
| | | var data = [{ |
| | | var data = []; |
| | | data.push({ |
| | | "HEquipName": $("#HEquipName1").text(), |
| | | "HEquipCode": $("#HEquipCode1").text(), |
| | | "HICMOBillNo": workcode, |
| | |
| | | "HSourceEntryID": HSourceEntryID, |
| | | "HSourceBillNo": HSourceBillNo, |
| | | "HSourceBillType": HSourceBillType |
| | | }]; |
| | | }); |
| | | |
| | | //éè¿ç´¢å¼è·åå°å½åiframeå¼¹åºå± |
| | | var iframe = window['layui-layer-iframe' + index]; |
| | | //è°ç¨iframeå¼¹åºå±å
çæ¹æ³ |
| | | iframe.edit(data); |
| | | } |
| | | }, |
| | | |
| | | |
| | | }); |
| | | } |
| | | } |
| | | |
| | | //设å¤å¯å¨ç¹æ£æé®ç¹å»äºä»¶ |
| | |
| | | if (sessionStorage.login != "login") { |
| | | layer.confirm("ç»å½å¤±æï¼è¯·éæ°ç»å½ï¼", { |
| | | icon: 4, skin: 'layui-layer-lan', title: "温馨æç¤º", closeBtn: 0, btn: ['éæ°ç»å½'] |
| | | }, function () { window.location.href = "../../user/login.html"; }); |
| | | }, function () { window.location.href = "/views/user/login.html"; }); |
| | | } |
| | | |
| | | //#region è·åç»ç» |