[Frontend][儀錶板] 即時功率佔比設置 | 即時功率訂閱串接 | 計時器移至 index.html | topbar上方即時告警閃爍程序建置
This commit is contained in:
		
							parent
							
								
									d5b35002d0
								
							
						
					
					
						commit
						7f3931d104
					
				@ -85,7 +85,7 @@
 | 
			
		||||
                    <div class="p-3 bg-info-200 rounded overflow-hidden position-relative text-white mb-g">
 | 
			
		||||
                        <div class="">
 | 
			
		||||
                            <h3 class="display-4 d-block l-h-n m-0 fw-500">
 | 
			
		||||
                                8,846
 | 
			
		||||
                                <span id="insPowerPer">--</span>
 | 
			
		||||
                                <small class="m-0 l-h-n">即時契約容量占比 kWH</small>
 | 
			
		||||
                            </h3>
 | 
			
		||||
                        </div>
 | 
			
		||||
@ -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,45 +396,37 @@
 | 
			
		||||
            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();
 | 
			
		||||
        })
 | 
			
		||||
 | 
			
		||||
        getUnCheckedAckedCountByBaja((uData) => {
 | 
			
		||||
            chartDataCnt.unChkedErrCnt = uData.count;
 | 
			
		||||
            chkBajaLoaded();
 | 
			
		||||
        })
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function chkBajaLoaded() {
 | 
			
		||||
        loadedCnt++;
 | 
			
		||||
        
 | 
			
		||||
        if (loadedCnt == 9) {
 | 
			
		||||
                chartErrRec(["異常數量", "賦歸數量"], [alarmCnt, recCnt]);
 | 
			
		||||
                chartErrChk(["已確認異常", "未確認異常"], [chkedErrCnt, unChkedErrCnt]);
 | 
			
		||||
            chartErrRec(["異常數量", "賦歸數量"], [chartDataCnt.alarmCnt, chartDataCnt.recCnt]);
 | 
			
		||||
            chartErrChk(["已確認異常", "未確認異常"], [chartDataCnt.chkedErrCnt, chartDataCnt.unChkedErrCnt]);
 | 
			
		||||
 | 
			
		||||
            endPageLoading();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 圖表 - 今天與昨天用電量 (長條圖)
 | 
			
		||||
    function chartEveDaysElec(todayData, yesData) {
 | 
			
		||||
@ -690,15 +702,7 @@
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // 從 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)
 | 
			
		||||
    function getAlarmSub(data) {
 | 
			
		||||
        $.each(data.data, (idx, alaObj) => {
 | 
			
		||||
            if (alaObj.alarmClass.indexOf("_") != -1) {
 | 
			
		||||
                let mainSubSys = alaObj.alarmClass.split("_").slice(0, 2).join("/");
 | 
			
		||||
@ -713,8 +717,6 @@
 | 
			
		||||
                $(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();
 | 
			
		||||
 | 
			
		||||
@ -1044,7 +1044,6 @@
 | 
			
		||||
                    //地震管制
 | 
			
		||||
                    actLightByPoi("EER", "#earQuaCon");
 | 
			
		||||
                    if (data.point_name == "DNO" || data.point_name == "SP_RCS") { 
 | 
			
		||||
                        debugger
 | 
			
		||||
                        //遠端休止
 | 
			
		||||
                        actLightByPoiEx("SP_RCS", "#disRes", "DNO", "trueText");
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
@ -2319,6 +2319,16 @@ 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();
 | 
			
		||||
 | 
			
		||||
                    })
 | 
			
		||||
                })
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 登入驗證
 | 
			
		||||
@ -2593,6 +2603,32 @@ 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";
 | 
			
		||||
 | 
			
		||||
@ -2605,6 +2641,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
			
		||||
            }, null, "POST").send();
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        function startPageLoading() {
 | 
			
		||||
            if (!loadingTip) {
 | 
			
		||||
                loadingTip = YT.Alert.Tip("資料讀取中...", "show");
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user