From 7f3931d10467b611170cfcd0bf049c6138087b93 Mon Sep 17 00:00:00 2001 From: dev01 Date: Mon, 12 Dec 2022 15:06:35 +0800 Subject: [PATCH] =?UTF-8?q?[Frontend][=E5=84=80=E9=8C=B6=E6=9D=BF]=20?= =?UTF-8?q?=E5=8D=B3=E6=99=82=E5=8A=9F=E7=8E=87=E4=BD=94=E6=AF=94=E8=A8=AD?= =?UTF-8?q?=E7=BD=AE=20|=20=E5=8D=B3=E6=99=82=E5=8A=9F=E7=8E=87=E8=A8=82?= =?UTF-8?q?=E9=96=B1=E4=B8=B2=E6=8E=A5=20|=20=E8=A8=88=E6=99=82=E5=99=A8?= =?UTF-8?q?=E7=A7=BB=E8=87=B3=20index.html=20|=20topbar=E4=B8=8A=E6=96=B9?= =?UTF-8?q?=E5=8D=B3=E6=99=82=E5=91=8A=E8=AD=A6=E9=96=83=E7=88=8D=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E5=BB=BA=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Frontend/_dashboard.html | 136 ++++++++++++++++++++----------------- Frontend/_sysElevator.html | 1 - Frontend/index.html | 123 +++++++++++++++++++++------------ 3 files changed, 152 insertions(+), 108 deletions(-) diff --git a/Frontend/_dashboard.html b/Frontend/_dashboard.html index b8a9231..ab70fcc 100644 --- a/Frontend/_dashboard.html +++ b/Frontend/_dashboard.html @@ -85,7 +85,7 @@

- 8,846 + -- 即時契約容量占比 kWH

@@ -252,6 +252,8 @@ var eveWeekElecChart = null; var errRecChart = null; var errChkChart = null; + var loadedCnt = 0; + var chartDataCnt = { alarmCnt:0, recCnt:0, chkedErrCnt:0, unChkedErrCnt:0 }; var sysIconList = [ { mainSys: "EE", subSys: "E1", iconClass: "fal fa-grip-vertical" }, @@ -299,7 +301,6 @@ }) }) $("#sysSubBtnList").html(strHtml); - getAlarmSub(); } }, null, "POST").send(); @@ -323,12 +324,31 @@ tarElePath = devObj.device_number; }) }) - + startPageLoading(); + getSubBaja(); getElectricBaja(); } }, null, "POST").send(); } + function getSubBaja() { + let devPath = tarElePath.split("_").slice(0, 8).join("/"); + let tempOrdPath = { devicePath: devPath } + let myBaja = new subscriptionElectricmeter(); + + myBaja.setSubscribeElectricmeterByBql(tempOrdPath); + myBaja.setSubscribeElectricmeterCallBack(function (data) { + if (data.point_name == "P") { + let value = parseFloat(data.value).roundDecimal(2); + $("#insPower").text(value); + $("#insPowerPer").text((value / 4).roundDecimal(2) + "%"); + } + }) + myBaja.setSubscribeElectricmeterEndCallBack(function () { + chkBajaLoaded(); + }) + } + //從 baja 取得電表用電量 function getElectricBaja() { let devNum = tarElePath.split("_").slice(0, 8).join("_"); @@ -338,9 +358,9 @@ let prevTwoWeek = displayDate(getTimeByType(null, -14), "date").replaceAll("/", "-") + "T00:00:00"; let yesterday = displayDate(getTimeByType(null, -1), "date").replaceAll("/", "-") + "T00:00:00"; let tomorrow = displayDate(getTimeByType(null, 1), "date").replaceAll("/", "-") + "T00:00:00"; - let loadedCnt = 0; - /* let batch = new baja.comm.Batch();*/ - startPageLoading(); + + + // 今日用電量 getElectricMeterDayDataByBaja(devNum + "_KWH", "Mitsubishi_Sup", today, tomorrow, (data) => { let result = data?.data[0]?.sum; @@ -376,43 +396,35 @@ chkBajaLoaded(); }) - // 電表即時功率 - getElectricMeterNoweDataByBaja(devPath, (data) => { - data = data.data; - let result = data.filter(x => x.name == "P")[0]?.value; - result = result ? parseFloat(result).toFixed(2) : 0; - $("#insPower").text(result); - chkBajaLoaded(); - }) - - let alarmCnt = 0,recCnt = 0; - let chkedErrCnt = 0, unChkedErrCnt = 0; // 異常數量與賦歸數量 getAlarmCountByBaja((aData) => { - alarmCnt = aData.count; + chartDataCnt.alarmCnt = aData.count; chkBajaLoaded(); }) getRecoverCountByBaja((rData) => { - recCnt = rData.count; + chartDataCnt.recCnt = rData.count; chkBajaLoaded(); }) // 異常數量與賦歸數量 getCheckedAckedCountByBaja((data) => { - chkedErrCnt = data.count; - chkBajaLoaded(); - }) - getUnCheckedAckedCountByBaja((uData) => { - unChkedErrCnt = uData.count; + chartDataCnt.chkedErrCnt = data.count; chkBajaLoaded(); }) - function chkBajaLoaded() { - loadedCnt++; - if (loadedCnt == 9) { - chartErrRec(["異常數量", "賦歸數量"], [alarmCnt, recCnt]); - chartErrChk(["已確認異常", "未確認異常"], [chkedErrCnt, unChkedErrCnt]); - endPageLoading(); - } + getUnCheckedAckedCountByBaja((uData) => { + chartDataCnt.unChkedErrCnt = uData.count; + chkBajaLoaded(); + }) + } + + function chkBajaLoaded() { + loadedCnt++; + + if (loadedCnt == 9) { + chartErrRec(["異常數量", "賦歸數量"], [chartDataCnt.alarmCnt, chartDataCnt.recCnt]); + chartErrChk(["已確認異常", "未確認異常"], [chartDataCnt.chkedErrCnt, chartDataCnt.unChkedErrCnt]); + + endPageLoading(); } } @@ -690,31 +702,21 @@ } // 從 baja 訂閱 左下角各系統小類異常狀態 - function getAlarmSub() { - var tipEle = ''; - //if (sysSubList.length != 0) { - // tipEle = YT.Alert.Tip("資料讀取中...","show"); - //} - /*$(`.dev-group i.fa-lightbulb-on`)*/ - - getSystemAlarmByBaja((data) => { - console.log(data) - $.each(data.data, (idx, alaObj) => { - if (alaObj.alarmClass.indexOf("_") != -1) { - let mainSubSys = alaObj.alarmClass.split("_").slice(0, 2).join("/"); - $(`.btn-group.dev-group[data-id*='${mainSubSys}'] i`).addClass("blink"); - } - }) - $(`.dev-group i.fa-lightbulb-on.blink`).each((idx, ele) => { - let devPath = $(ele).parents(".dev-group").data("id"); - let sysPath = devPath.split("/").slice(3, 5).join("/"); - let alaDevPath = data.data.map(x => x.alarmClass?.split("_").slice(0, 2).join("/")); - if (alaDevPath.indexOf(sysPath) == -1) { - $(ele).removeClass("blink"); - } - }) + function getAlarmSub(data) { + $.each(data.data, (idx, alaObj) => { + if (alaObj.alarmClass.indexOf("_") != -1) { + let mainSubSys = alaObj.alarmClass.split("_").slice(0, 2).join("/"); + $(`.btn-group.dev-group[data-id*='${mainSubSys}'] i`).addClass("blink"); + } + }) + $(`.dev-group i.fa-lightbulb-on.blink`).each((idx, ele) => { + let devPath = $(ele).parents(".dev-group").data("id"); + let sysPath = devPath.split("/").slice(3, 5).join("/"); + let alaDevPath = data.data.map(x => x.alarmClass?.split("_").slice(0, 2).join("/")); + if (alaDevPath.indexOf(sysPath) == -1) { + $(ele).removeClass("blink"); + } }) - } // 取得電梯資料 @@ -743,15 +745,15 @@ }, null, "POST").send(); } - function timeOutGetData() { - let timeOut3s = setInterval(() => { - getAlarmSub(); - }, 3000) - let timeOut5m = setInterval(() => { - getElectricBaja(); - }, 5 * 60 * 1000) - timeOuters = timeOuters.concat([timeOut3s, timeOut5m]); - } + //function timeOutGetData() { + // let timeOut3s = setInterval(() => { + // getAlarmSub(); + // }, 3000) + // let timeOut5m = setInterval(() => { + // getElectricBaja(); + // }, 5 * 60 * 1000) + // timeOuters = timeOuters.concat([timeOut3s, timeOut5m]); + //} function show3DModel() { launchViewerNoTools(pageAct.urn, (viewer, nodeIds) => { @@ -904,6 +906,12 @@ }) } + + $(window).on("timeout:5m", function () { + console.log("五分鐘更新") + getElectricBaja(); + }) + onEvent("click", "button[id^=sysSubCardBtn]", function () { let subSysTag = $(this).data("id"); $(`#subSysBtn${subSysTag}`).click(); diff --git a/Frontend/_sysElevator.html b/Frontend/_sysElevator.html index 651b043..aec5321 100644 --- a/Frontend/_sysElevator.html +++ b/Frontend/_sysElevator.html @@ -1044,7 +1044,6 @@ //地震管制 actLightByPoi("EER", "#earQuaCon"); if (data.point_name == "DNO" || data.point_name == "SP_RCS") { - debugger //遠端休止 actLightByPoiEx("SP_RCS", "#disRes", "DNO", "trueText"); } diff --git a/Frontend/index.html b/Frontend/index.html index 29d9f7a..7a52548 100644 --- a/Frontend/index.html +++ b/Frontend/index.html @@ -1478,7 +1478,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
系統監控
@@ -2116,7 +2116,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li // - 會被清洗,有類似程序需放入 loadPack1 Function rquired 引用 // (原 datatable.bundle.js require 會出問題,先以 cdn datatable.min.js引用) require(["jquery"], loadedBasePack); - + }) /** @@ -2166,14 +2166,14 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li cookies = new YourTeam.Utility.Cookie(); jwt = cookies.get("JWT-Authorization"); loadEvent(); - + if (!jwt) { myBaja = new MyBaja(); myBaja.setMyUserAccount(Login); } else { isValidLogin(); } - + $(loadEle).Loading("close"); } @@ -2285,7 +2285,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li }) endPageLoading(); - + if (typeof timeOuters != "undefined") { $.each(timeOuters, (idx, timeOut) => { clearInterval(timeOut); @@ -2319,13 +2319,23 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li }) + $(window).on("timeout:3s", function () { + getSystemAlarmByBaja((data) => { + if (typeof getAlarmSub != "undefined" && getAlarmSub) { + getAlarmSub(data); + } + alarmIconBlink(); + + }) + }) + } // 登入驗證 function Login(account) { console.log(account) /*if ($("#login-form").valid()) {*/ - + var url = baseApiUrl + "/api/Login/"; var send_data = { account: account, @@ -2399,7 +2409,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li function drawErrRecTabBlo() { let strHtml = ` -
` + ` return strHtml; } @@ -2407,7 +2417,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li function drawOpeRecTabBlo() { let strHtml = ` -
` + ` return strHtml; } @@ -2420,37 +2430,37 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li $(ele).YTTooltip({ html: `
-
- -
- -
- -
-
- -
- ${drawStateTabBlo(devNum)} -
-
- ${drawInfoTabBlo(devGuid)} -
-
- ${drawErrRecTabBlo()} -
-
- ${drawOpeRecTabBlo()} -
- +
+
+ +
+
-
`, +
+ +
+ ${drawStateTabBlo(devNum)} +
+
+ ${drawInfoTabBlo(devGuid)} +
+
+ ${drawErrRecTabBlo()} +
+
+ ${drawOpeRecTabBlo()} +
+ + +
+
`, group: "device", onShow: function (tooltipEle, oriEle) { var tab = new YT.Tab({ tabName: "cardTab" }) @@ -2593,18 +2603,45 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li $(loadEle).Loading("close"); } + function alarmIconBlink(data) { + if (data?.data.length != 0) { + $(".page-header [name=topFunBtn][data-page=alert] i").addClass("blink"); + } else { + $(".page-header [name=topFunBtn][data-page=alert] i").removeClass("blink"); + } + } + + function timeOutGetData() { + let timeOut3s = null, timeOut5m = null; + let events = $._data($(window)[0], "events"); + if (Object.keys(events).findIndex(x => x == "timeout:3s") != -1) { + timeOut3s = setInterval(() => { + $(window).trigger("timeout:3s"); + }, 3000) + } + + if (Object.keys(events).findIndex(x => x == "timeout:5m") != -1) { + timeOut5m = setInterval(() => { + $(window).trigger("timeout:5m"); + }, 5 * 60 * 1000) + } + + timeOuters = timeOuters.concat([timeOut3s, timeOut5m]); + } + function showMainSys() { - let url = baseApiUrl + "/Utility/isShowMaiSys"; - - ytAjax = new YourTeam.Ajax(url, null, function (res) { - if (!res || res.code != "0000") { + let url = baseApiUrl + "/Utility/isShowMaiSys"; + + ytAjax = new YourTeam.Ajax(url, null, function (res) { + if (!res || res.code != "0000") { } else { pageAct.mainStatus = res.data; - } + } }, null, "POST").send(); - } + } + function startPageLoading() { if (!loadingTip) { loadingTip = YT.Alert.Tip("資料讀取中...", "show");