[前台] 首頁 系統大類異常樣式修正 | 系統監控 樓層小卡片大小修正
This commit is contained in:
		
							parent
							
								
									887fcef66a
								
							
						
					
					
						commit
						aecb795124
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -47,7 +47,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    $(function () {
 | 
					    $(function () {
 | 
				
			||||||
        getBuildMenu((arr, data) => {
 | 
					        getBuildMenu((arr, data) => {
 | 
				
			||||||
            console.log(arr)
 | 
					            // console.log(arr)
 | 
				
			||||||
            buildMenuData = data;
 | 
					            buildMenuData = data;
 | 
				
			||||||
            if (arr.indexOf(4) != -1) {
 | 
					            if (arr.indexOf(4) != -1) {
 | 
				
			||||||
                getFloDevList(arr[0] == 4 ? "left" : "right");
 | 
					                getFloDevList(arr[0] == 4 ? "left" : "right");
 | 
				
			||||||
@ -267,7 +267,7 @@
 | 
				
			|||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                let strHtml = ``;
 | 
					                let strHtml = ``;
 | 
				
			||||||
                $.each(res.data, (index, floObj) => {
 | 
					                $.each(res.data, (index, floObj) => {
 | 
				
			||||||
                    strHtml += `<div class='d-flex justify-content-start mb-5 ' style="">`
 | 
					                    strHtml += `<div class='d-flex justify-content-start mb-5'>`
 | 
				
			||||||
                    strHtml += `<button id="floItemBtn${floObj.full_name}" type="button" class="btn btn-primary waves-effect waves-themed mr-5 mt-1 align-self-start" >${floObj.full_name}</button>`
 | 
					                    strHtml += `<button id="floItemBtn${floObj.full_name}" type="button" class="btn btn-primary waves-effect waves-themed mr-5 mt-1 align-self-start" >${floObj.full_name}</button>`
 | 
				
			||||||
                    strHtml += `<div class="col p-0 d-grid grid-gap-5 grid-temp-col-c" style="--c-grid-temp-col:repeat(auto-fill,minmax(250px,1fr))">`
 | 
					                    strHtml += `<div class="col p-0 d-grid grid-gap-5 grid-temp-col-c" style="--c-grid-temp-col:repeat(auto-fill,minmax(250px,1fr))">`
 | 
				
			||||||
                    $.each(floObj.device_list, (index2, devObj) => {
 | 
					                    $.each(floObj.device_list, (index2, devObj) => {
 | 
				
			||||||
@ -362,11 +362,12 @@
 | 
				
			|||||||
    // Card 即時狀態
 | 
					    // Card 即時狀態
 | 
				
			||||||
    function drawStateTabBlo(devNum) {
 | 
					    function drawStateTabBlo(devNum) {
 | 
				
			||||||
        let devPath = devNum.replaceAll("_", "/");
 | 
					        let devPath = devNum.replaceAll("_", "/");
 | 
				
			||||||
        let position = $(`.card.device-wrap[data-number=${devNum}]`).data("position");
 | 
					        let position = $(`.card.device-wrap[data-number=${devNum}]`).data("position") || "left";
 | 
				
			||||||
        let width = buildMenuData[position + "_icon_click_url_width"] ? buildMenuData[position + "_icon_click_url_width"] + "px" : "100%";
 | 
					        let width = buildMenuData[position + "_icon_click_url_width"] ? buildMenuData[position + "_icon_click_url_width"] + "px" : "100%";
 | 
				
			||||||
        let height = buildMenuData[position + "_icon_click_url_height"] ? buildMenuData[position + "_icon_click_url_height"] + "px" : "100%";
 | 
					        let height = buildMenuData[position + "_icon_click_url_height"] ? buildMenuData[position + "_icon_click_url_height"] + "px" : "100%";
 | 
				
			||||||
        let strHtml = `<div style="height:100%;width:100%">
 | 
					
 | 
				
			||||||
                            <iframe src="/ord?station:%7Cslot:/${devPath}|view:?fullScreen=true" style="width:${width};height:${height};min-height:100px;"></iframe>
 | 
					        let strHtml = `<div style="width:${width};height:${height};">
 | 
				
			||||||
 | 
					                            <iframe src="/ord?station:%7Cslot:/${devPath}|view:?fullScreen=true" style="width:${width};height:${height};"></iframe>
 | 
				
			||||||
                       </div>`
 | 
					                       </div>`
 | 
				
			||||||
        return strHtml;
 | 
					        return strHtml;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -538,12 +539,12 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function setHotspotPoint(myDataList = []) {
 | 
					    function setHotspotPoint(myDataList = []) {
 | 
				
			||||||
        console.log(myDataList)
 | 
					        // console.log(myDataList)
 | 
				
			||||||
        getHopspotPoint(myDataList);
 | 
					        getHopspotPoint(myDataList);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function setLightPoint(myDataList = []) {
 | 
					    function setLightPoint(myDataList = []) {
 | 
				
			||||||
        console.log(myDataList)
 | 
					        // console.log(myDataList)
 | 
				
			||||||
        getLightData(myDataList);
 | 
					        getLightData(myDataList);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -580,7 +581,6 @@
 | 
				
			|||||||
        let name = allDevList.filter(x => x.device_guid == devObj.device_guid)[0]?.full_name;
 | 
					        let name = allDevList.filter(x => x.device_guid == devObj.device_guid)[0]?.full_name;
 | 
				
			||||||
        devObj.full_name = name;
 | 
					        devObj.full_name = name;
 | 
				
			||||||
        parentEle = crePosPopover(position, devObj);
 | 
					        parentEle = crePosPopover(position, devObj);
 | 
				
			||||||
 | 
					 | 
				
			||||||
        $(parentEle).click();
 | 
					        $(parentEle).click();
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
<style>
 | 
					<style>
 | 
				
			||||||
    [id^=yt_tooltip] {
 | 
					    [id^=yt_tooltip] {
 | 
				
			||||||
        width: 450px;
 | 
					        min-width: 520px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
</style>
 | 
					</style>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -15,7 +15,7 @@
 | 
				
			|||||||
</div> -->
 | 
					</div> -->
 | 
				
			||||||
<div class="d-flex">
 | 
					<div class="d-flex">
 | 
				
			||||||
    <div class="col-6 my-3">
 | 
					    <div class="col-6 my-3">
 | 
				
			||||||
        <div id="floChart" style="height : 80vh!important;width:100%"></div>
 | 
					        <div id="floChart" style="height:80vh!important;width:100%"></div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="col-6 my-3">
 | 
					    <div class="col-6 my-3">
 | 
				
			||||||
        <div id="forgeHeatBarDiv" class="d-flex mb-4" style="gap:15px">
 | 
					        <div id="forgeHeatBarDiv" class="d-flex mb-4" style="gap:15px">
 | 
				
			||||||
@ -35,12 +35,14 @@
 | 
				
			|||||||
    var global_emergency_alarm_device_number = [];
 | 
					    var global_emergency_alarm_device_number = [];
 | 
				
			||||||
    var zoomToggle = 3;
 | 
					    var zoomToggle = 3;
 | 
				
			||||||
    $(function () {
 | 
					    $(function () {
 | 
				
			||||||
 | 
					        console.log("floor")
 | 
				
			||||||
        drawHeatBar();
 | 
					        drawHeatBar();
 | 
				
			||||||
        getHotspotPoint(() => {
 | 
					        getHotspotPoint(() => {
 | 
				
			||||||
            show3DModel(pageAct.urn);
 | 
					            show3DModel(pageAct.urn);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        initChart();
 | 
					        initChart();
 | 
				
			||||||
        getFloData();
 | 
					        getFloData();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        subDevice();
 | 
					        subDevice();
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -164,7 +166,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    function initChart() {
 | 
					    function initChart() {
 | 
				
			||||||
        let chartDom = $("#floChart")[0];
 | 
					        let chartDom = $("#floChart")[0];
 | 
				
			||||||
        floChart = echarts.init(chartDom, null, { width: 'auto'});
 | 
					        floChart = echarts.init(chartDom, null, { width: 'auto' });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function chartHandler(url) {
 | 
					    function chartHandler(url) {
 | 
				
			||||||
@ -182,12 +184,14 @@
 | 
				
			|||||||
                tooltip: {
 | 
					                tooltip: {
 | 
				
			||||||
                    formatter: function (params) {
 | 
					                    formatter: function (params) {
 | 
				
			||||||
                        if (params.data.device_node_guid != undefined && params.data.device_node_guid != null && params.data.device_node_guid != "") {
 | 
					                        if (params.data.device_node_guid != undefined && params.data.device_node_guid != null && params.data.device_node_guid != "") {
 | 
				
			||||||
                            return `名稱:${params.data.device_node_full_name}<br>
 | 
					                            return `<div >
 | 
				
			||||||
                                    Guid:${params.data.device_node_guid}`
 | 
					                名稱:${params.data.device_node_full_name}<br>
 | 
				
			||||||
 | 
					                      Guid:${params.data.device_node_guid}
 | 
				
			||||||
 | 
					                </div>`
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        else {
 | 
					                        else {
 | 
				
			||||||
                            return `名稱:${params.data.full_name}<br>
 | 
					                            return `<div >名稱:${params.data.full_name}<br>
 | 
				
			||||||
                                    Guid:${params.data.device_guid}`
 | 
					                      Guid:${params.data.device_guid}</div>`
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
@ -327,7 +331,6 @@
 | 
				
			|||||||
                    let position = [params.event.event.clientX, params.event.event.clientY];
 | 
					                    let position = [params.event.event.clientX, params.event.event.clientY];
 | 
				
			||||||
                    data._dbId = data._dbId ?? null;
 | 
					                    data._dbId = data._dbId ?? null;
 | 
				
			||||||
                    parentEle = crePosPopover(position, data);
 | 
					                    parentEle = crePosPopover(position, data);
 | 
				
			||||||
 | 
					 | 
				
			||||||
                    $(parentEle).click();
 | 
					                    $(parentEle).click();
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    $(parentEle).YTTooltip("hide");
 | 
					                    $(parentEle).YTTooltip("hide");
 | 
				
			||||||
@ -433,47 +436,47 @@
 | 
				
			|||||||
    //baja 訂閱設備
 | 
					    //baja 訂閱設備
 | 
				
			||||||
    function subDevice() {
 | 
					    function subDevice() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            let floMyBaja = new subscriptionDevices();
 | 
					        let floMyBaja = new subscriptionDevices();
 | 
				
			||||||
            var ordPath = {
 | 
					        var ordPath = {
 | 
				
			||||||
                "area_tag": pageAct.AreaTag,
 | 
					            "area_tag": pageAct.AreaTag,
 | 
				
			||||||
                "building_tag": pageAct.buiTag,
 | 
					            "building_tag": pageAct.buiTag,
 | 
				
			||||||
                "system_tag": pageAct.sysMainTag,
 | 
					            "system_tag": pageAct.sysMainTag,
 | 
				
			||||||
                "name_tag": pageAct.sysSubTag,
 | 
					            "name_tag": pageAct.sysSubTag,
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        floMyBaja.setSubscribeDevicesByBql(ordPath);
 | 
				
			||||||
 | 
					        floMyBaja.setSubscribeDevicesCallBack(function (data) {
 | 
				
			||||||
 | 
					            let matchDevice = currentData.filter(x => x.device_number == data.device_number_full)[0];
 | 
				
			||||||
 | 
					            if (!matchDevice) {
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            floMyBaja.setSubscribeDevicesByBql(ordPath);
 | 
					            let norDevPoiName = matchDevice.device_normal_point_name;
 | 
				
			||||||
            floMyBaja.setSubscribeDevicesCallBack(function (data) {
 | 
					            let cloDevPoiName = matchDevice.device_close_point_name;
 | 
				
			||||||
                let matchDevice = currentData.filter(x => x.device_number == data.device_number_full)[0];
 | 
					            let errDevPoiName = matchDevice.device_error_point_name;
 | 
				
			||||||
                if (!matchDevice) {
 | 
					 | 
				
			||||||
                    return false;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                let norDevPoiName = matchDevice.device_normal_point_name;
 | 
					 | 
				
			||||||
                let cloDevPoiName = matchDevice.device_close_point_name;
 | 
					 | 
				
			||||||
                let errDevPoiName = matchDevice.device_error_point_name;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (data.point_name == "Temp") {
 | 
					            if (data.point_name == "Temp") {
 | 
				
			||||||
                    heatMap?.changeTemp(data.device_number_full, !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0);
 | 
					                heatMap?.changeTemp(data.device_number_full, !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0);
 | 
				
			||||||
                    let devIdx = currentData.findIndex(x => x.device_number == data.device_number_full);
 | 
					                let devIdx = currentData.findIndex(x => x.device_number == data.device_number_full);
 | 
				
			||||||
                    currentData[devIdx]._temp = !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0;
 | 
					                currentData[devIdx]._temp = !isNaN(parseInt(data.value)) ? parseInt(data.value) : 0;
 | 
				
			||||||
                }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (data.point_name == norDevPoiName && data.value == matchDevice.device_normal_point_value) {
 | 
					            if (data.point_name == norDevPoiName && data.value == matchDevice.device_normal_point_value) {
 | 
				
			||||||
                    //顯示正常燈號
 | 
					                //顯示正常燈號
 | 
				
			||||||
                    $(`#${matchDevice.device_number}_status`).attr("data-light-type", "normal").data("light-type", "normal");
 | 
					                $(`#${matchDevice.device_number}_status`).attr("data-light-type", "normal").data("light-type", "normal");
 | 
				
			||||||
                } else if (data.point_name == cloDevPoiName && data.value == matchDevice.device_close_point_value) {
 | 
					            } else if (data.point_name == cloDevPoiName && data.value == matchDevice.device_close_point_value) {
 | 
				
			||||||
                    $(`#${matchDevice.device_number}_status`).attr("data-light-type", "close").data("light-type", "close");
 | 
					                $(`#${matchDevice.device_number}_status`).attr("data-light-type", "close").data("light-type", "close");
 | 
				
			||||||
                } else if (data.point_name == errDevPoiName && data.value == matchDevice.device_error_point_value) {
 | 
					            } else if (data.point_name == errDevPoiName && data.value == matchDevice.device_error_point_value) {
 | 
				
			||||||
                    $(`#${matchDevice.device_number}_status`).attr("data-light-type", "error").data("light-type", "error");
 | 
					                $(`#${matchDevice.device_number}_status`).attr("data-light-type", "error").data("light-type", "error");
 | 
				
			||||||
                }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            floMyBaja.setSubscribeDeviceEndCallBack(function (data) {
 | 
					        floMyBaja.setSubscribeDeviceEndCallBack(function (data) {
 | 
				
			||||||
                endPageLoading();
 | 
					            endPageLoading();
 | 
				
			||||||
                if (data.findIndex(x => x.point_name == "Temp") != -1) {
 | 
					            if (data.findIndex(x => x.point_name == "Temp") != -1) {
 | 
				
			||||||
                    // 顯示溫度條
 | 
					                // 顯示溫度條
 | 
				
			||||||
                    showHeat("[name=forgeHeatBar]");
 | 
					                showHeat("[name=forgeHeatBar]");
 | 
				
			||||||
                }
 | 
					            }
 | 
				
			||||||
            });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -623,7 +626,7 @@
 | 
				
			|||||||
    // 重設平面圖設備資料
 | 
					    // 重設平面圖設備資料
 | 
				
			||||||
    function resetData() {
 | 
					    function resetData() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const scatter_symbol_convertData = function (data,zoom) { //正常、關閉排除CCVT(圓點)
 | 
					        const scatter_symbol_convertData = function (data, zoom) { //正常、關閉排除CCVT(圓點)
 | 
				
			||||||
            let res = [], temp = [];
 | 
					            let res = [], temp = [];
 | 
				
			||||||
            data.forEach(function (item, index) {
 | 
					            data.forEach(function (item, index) {
 | 
				
			||||||
                if (global_emergency_alarm_device_number != undefined
 | 
					                if (global_emergency_alarm_device_number != undefined
 | 
				
			||||||
@ -1085,28 +1088,28 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function setHeatMap() {
 | 
					    function setHeatMap() {
 | 
				
			||||||
        console.log("currentData", currentData)
 | 
					        if (pageAct.sysMainTag !== "LT") {
 | 
				
			||||||
        let devices = currentData.map(x => {
 | 
					            let devices = currentData.map(x => {
 | 
				
			||||||
            return {
 | 
					                return {
 | 
				
			||||||
                roomDbId: !isNaN(parseInt(x.room_dbid)) ? parseInt(x.room_dbid) : -1,
 | 
					                    roomDbId: !isNaN(parseInt(x.room_dbid)) ? parseInt(x.room_dbid) : -1,
 | 
				
			||||||
                id: x.device_number,
 | 
					                    id: x.device_number,
 | 
				
			||||||
                position: isJSON(x.device_coordinate_3d) ? JSON.parse(x.device_coordinate_3d) : {}, // x: 0, y: 25, z: -2.5      (3.35, -4.81, 12.88
 | 
					                    position: isJSON(x.device_coordinate_3d) ? JSON.parse(x.device_coordinate_3d) : {}, // x: 0, y: 25, z: -2.5      (3.35, -4.81, 12.88
 | 
				
			||||||
                sensorTypes: ["temperature", "humidity"]
 | 
					                    sensorTypes: ["temperature", "humidity"]
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            let option = {
 | 
				
			||||||
 | 
					                devices: devices,
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        let option = {
 | 
					            heatMap = new ADHeatMaps(option);
 | 
				
			||||||
            devices: devices,
 | 
					            heatMap.onComplete = () => {
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (pageAct.sysMainTag !== "LT") {
 | 
					                $.each(currentData, (idx, dev) => {
 | 
				
			||||||
        heatMap = new ADHeatMaps(option);
 | 
					                    heatMap.changeTemp(dev.device_number, dev._temp || 0);
 | 
				
			||||||
        heatMap.onComplete = () => {
 | 
					                })
 | 
				
			||||||
          $.each(currentData, (idx, dev) => {
 | 
					            }
 | 
				
			||||||
            heatMap.changeTemp(dev.device_number, dev._temp || 0);
 | 
					 | 
				
			||||||
          })
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function getHotspotPoint(callback = null) {
 | 
					    function getHotspotPoint(callback = null) {
 | 
				
			||||||
 | 
				
			|||||||
@ -47,6 +47,8 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
    <link rel="stylesheet" href="css/yourteam/plugins/yt-notice/yt-notice.css" />
 | 
					    <link rel="stylesheet" href="css/yourteam/plugins/yt-notice/yt-notice.css" />
 | 
				
			||||||
    <link rel="stylesheet" href="css/yourteam/plugins/yt-alert/ytpop-alert.css" />
 | 
					    <link rel="stylesheet" href="css/yourteam/plugins/yt-alert/ytpop-alert.css" />
 | 
				
			||||||
    <link rel="stylesheet" href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css" type="text/css">
 | 
					    <link rel="stylesheet" href="https://developer.api.autodesk.com/modelderivative/v2/viewers/7.*/style.min.css" type="text/css">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<!-- BEGIN Body -->
 | 
					<!-- BEGIN Body -->
 | 
				
			||||||
<!-- Possible Classes
 | 
					<!-- Possible Classes
 | 
				
			||||||
@ -871,8 +873,8 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                        lastPageAct = JSON.parse(sessionStorage.getItem("pageAct"));
 | 
					                        lastPageAct = JSON.parse(sessionStorage.getItem("pageAct"));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if ((lastPageAct.sysSubTag && lastPage == "systemMonitor") || lastPage == "sysElevator"
 | 
					                    if ((lastPageAct.sysSubTag && lastPage == "systemMonitor") || lastPage == "sysElevator"
 | 
				
			||||||
                        //  || lastPage == "sysSensor"
 | 
					                    //  || lastPage == "sysSensor"
 | 
				
			||||||
                    ) {
 | 
					                     ) {
 | 
				
			||||||
                        $(`#subSysBtn${lastPageAct.sysSubTag}`).click();
 | 
					                        $(`#subSysBtn${lastPageAct.sysSubTag}`).click();
 | 
				
			||||||
                        $("#sysMonTopBtn").YTTab("set");
 | 
					                        $("#sysMonTopBtn").YTTab("set");
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
@ -949,8 +951,8 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    if (page != "systemMonitor" && page != "sysElevator"
 | 
					                    if (page != "systemMonitor" && page != "sysElevator"
 | 
				
			||||||
                        //  && page != "sysSensor"
 | 
					                    //  && page != "sysSensor"
 | 
				
			||||||
                    ) {
 | 
					                     ) {
 | 
				
			||||||
                        $("#sysMonBtnList [name=topFunBtn]").removeClass("active");
 | 
					                        $("#sysMonBtnList [name=topFunBtn]").removeClass("active");
 | 
				
			||||||
                        pageAct.sysMainTag = null;
 | 
					                        pageAct.sysMainTag = null;
 | 
				
			||||||
                        pageAct.sysSubTag = null;
 | 
					                        pageAct.sysSubTag = null;
 | 
				
			||||||
@ -1026,7 +1028,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                onEvent("click", "button[id^=noticeChkBtn]", function () {  /**button[id^=bajaAckBtn] */
 | 
					                onEvent("click", "button[id^=noticeChkBtn]", function () {  /**button[id^=bajaAckBtn] */
 | 
				
			||||||
                    let uuid = $(this).data("uuid");
 | 
					                    let uuid = $(this).data("uuid");
 | 
				
			||||||
                    let url = window.location.origin + "/obix/alarm/" + uuid + "/ack";
 | 
					                    let url = window.location.origin + "/obix/alarm/"+uuid+"/ack";
 | 
				
			||||||
                    let myBaja = new MyBaja();
 | 
					                    let myBaja = new MyBaja();
 | 
				
			||||||
                    myBaja.setMyUserAccount((data) => {
 | 
					                    myBaja.setMyUserAccount((data) => {
 | 
				
			||||||
                        let sendData = '<obj is="obix:AckAlarmIn"><str name="ackUser" val="obix" /></obj>';
 | 
					                        let sendData = '<obj is="obix:AckAlarmIn"><str name="ackUser" val="obix" /></obj>';
 | 
				
			||||||
@ -1134,7 +1136,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
            function drawErrRecTabBlo() {
 | 
					            function drawErrRecTabBlo() {
 | 
				
			||||||
                let strHtml = `<table id="errRecTable" class="table table-bordered table-striped text-center m-0 w-100">
 | 
					                let strHtml = `<table id="errRecTable" class="table table-bordered table-striped text-center m-0 w-100">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                                                            </table>`
 | 
					                                                                        </table>`
 | 
				
			||||||
                return strHtml;
 | 
					                return strHtml;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1142,7 +1144,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
            function drawOpeRecTabBlo() {
 | 
					            function drawOpeRecTabBlo() {
 | 
				
			||||||
                let strHtml = `<table id="opeRecTable" class="table table-bordered table-striped text-center m-0 w-100">
 | 
					                let strHtml = `<table id="opeRecTable" class="table table-bordered table-striped text-center m-0 w-100">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                                                            </table>`
 | 
					                                                                        </table>`
 | 
				
			||||||
                return strHtml;
 | 
					                return strHtml;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1156,48 +1158,49 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                    let devNum = $(ele).data("number"); //設備編號
 | 
					                    let devNum = $(ele).data("number"); //設備編號
 | 
				
			||||||
                    let devGuid = $(ele).data("id"); //guid
 | 
					                    let devGuid = $(ele).data("id"); //guid
 | 
				
			||||||
                    let devName = $(ele).data("name"); //full_name
 | 
					                    let devName = $(ele).data("name"); //full_name
 | 
				
			||||||
                    let lightHtml = type == "light" ? `<button type="button" id="lightSch-tab" class="btn btn-icon nav-link" role="tab" data-tabname="cardTab" data-target="#lightSch"><i class="fas fa-calendar-alt"></i></button>` : "";
 | 
					                    let lightHtml = type == "light" ? `<button type="button" data-toggle="tooltip" data-placement="bottom" title="燈控排程" id="lightSch-tab" class="px-2 btn btn-icon border-0 nav-link mx-1" role="tab" data-tabname="cardTab" data-target="#lightSch"><i class="fas fa-calendar-alt icon fa-2x"></i></button>` : "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    let option = {
 | 
					                    let option = {
 | 
				
			||||||
                        html: `<div class="card m-1 border device-wrap" data-number="${devNum}">
 | 
					                        html: `<div class="card m-1 border device-wrap" data-number="${devNum}" data-position="left">
 | 
				
			||||||
                                        <div class="card-header p-3">
 | 
					                                    <div class="card-header p-3">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                            <div class="position-absolute w-50" style="word-break: break-all;">
 | 
					                                        <div class="position-absolute mr-5" style="word-break: break-all;">
 | 
				
			||||||
                                                <label class="m-0 mt-2">${devName}</label>
 | 
					                                            <label class="m-0 mt-2">${devName}</label>
 | 
				
			||||||
                                            </div>
 | 
					 | 
				
			||||||
                                            <div id="card-tab" class="row justify-content-end nav nav-tabs" role="tablist">
 | 
					 | 
				
			||||||
                                                <button type="button" id="state-tab"
 | 
					 | 
				
			||||||
                                                data-toggle="tooltip" data-placement="bottom" title="即時監控"
 | 
					 | 
				
			||||||
                                                class="px-2 btn btn-icon border-0 nav-link active mx-1" role="tab" data-tabname="cardTab" data-target="#state"><i class="fa fa-desktop icon fa-2x"></i></button>
 | 
					 | 
				
			||||||
                                                ${lightHtml}
 | 
					 | 
				
			||||||
                                                <button type="button" id="info-tab"
 | 
					 | 
				
			||||||
                                                data-toggle="tooltip" data-placement="bottom" title="基本資料"
 | 
					 | 
				
			||||||
                                                class="px-2 btn btn-icon border-0 nav-link mx-1" role="tab" data-tabname="cardTab" data-target="#info"><i class="fa fa-cog icon fa-2x"></i></button>
 | 
					 | 
				
			||||||
                                                <button type="button"
 | 
					 | 
				
			||||||
                                                d data-toggle="tooltip" data-placement="bottom" title="告警資料"
 | 
					 | 
				
			||||||
                                                id="errRec-tab" class=" px-2 btn btn-icon border-0 nav-link mx-1 position-relative " role="tab" data-tabname="cardTab" data-target="#errRec"><i class="fas fa-exclamation-triangle fa-2x"></i></button>
 | 
					 | 
				
			||||||
                                                <button type="button"
 | 
					 | 
				
			||||||
                                                data-toggle="tooltip" data-placement="bottom" title="運維紀錄"
 | 
					 | 
				
			||||||
                                                id="opeRec-tab" class=" px-2 btn btn-icon border-0 nav-link mx-1" role="tab" data-tabname="cardTab" data-target="#opeRec"><i class="fa fa-bars icon fa-2x"></i></button>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                                <button type="button" class="px-2 btn btn-icon border-0 nav-link mx-1"><i class="fas fa-times text-white-50 fa-2x" data-close="yttooltip"></i></button>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                                            </div>
 | 
					 | 
				
			||||||
                                        </div>
 | 
					                                        </div>
 | 
				
			||||||
                                        <div class="card-body p-2 tab-content">
 | 
					                                        <div id="card-tab" class="row justify-content-end nav nav-tabs" role="tablist">
 | 
				
			||||||
                                            <div id="state" class="show active" data-tabname="cardTab" data-tabrole="child" style="height:100%;width:100%">
 | 
					                                            <button type="button" id="state-tab"
 | 
				
			||||||
                                                ${drawStateTabBlo(devNum)}
 | 
					                                            data-toggle="tooltip" data-placement="bottom" title="即時監控"
 | 
				
			||||||
                                            </div>
 | 
					                                            class="px-2 btn btn-icon border-0 nav-link active mx-1" role="tab" data-tabname="cardTab" data-target="#state"><i class="fa fa-desktop icon fa-2x"></i></button>
 | 
				
			||||||
                                            <div id="info" data-tabname="cardTab" data-tabrole="child">
 | 
					                                            ${lightHtml}
 | 
				
			||||||
 | 
					                                            <button type="button" id="info-tab"
 | 
				
			||||||
 | 
					                                            data-toggle="tooltip" data-placement="bottom" title="基本資料"
 | 
				
			||||||
 | 
					                                            class="px-2 btn btn-icon border-0 nav-link mx-1" role="tab" data-tabname="cardTab" data-target="#info"><i class="fa fa-cog icon fa-2x"></i></button>
 | 
				
			||||||
 | 
					                                            <button type="button"
 | 
				
			||||||
 | 
					                                            d data-toggle="tooltip" data-placement="bottom" title="告警資料"
 | 
				
			||||||
 | 
					                                            id="errRec-tab" class=" px-2 btn btn-icon border-0 nav-link mx-1 position-relative " role="tab" data-tabname="cardTab" data-target="#errRec"><i class="fas fa-exclamation-triangle fa-2x"></i></button>
 | 
				
			||||||
 | 
					                                            <button type="button"
 | 
				
			||||||
 | 
					                                            data-toggle="tooltip" data-placement="bottom" title="運維紀錄"
 | 
				
			||||||
 | 
					                                            id="opeRec-tab" class=" px-2 btn btn-icon border-0 nav-link mx-1" role="tab" data-tabname="cardTab" data-target="#opeRec"><i class="fa fa-bars icon fa-2x"></i></button>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                            <button type="button" class="px-2 btn btn-icon border-0 nav-link mx-1"><i class="fas fa-times text-white-50 fa-2x" data-close="yttooltip"></i></button>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                            </div>
 | 
					 | 
				
			||||||
                                            <div id="errRec" data-tabname="cardTab" data-tabrole="child">
 | 
					 | 
				
			||||||
                                                ${drawErrRecTabBlo()}
 | 
					 | 
				
			||||||
                                            </div>
 | 
					 | 
				
			||||||
                                            <div id="opeRec" data-tabname="cardTab" data-tabrole="child">
 | 
					 | 
				
			||||||
                                                ${drawOpeRecTabBlo()}
 | 
					 | 
				
			||||||
                                            </div>
 | 
					 | 
				
			||||||
                                        </div>
 | 
					                                        </div>
 | 
				
			||||||
                                    </div>`,
 | 
					                                    </div>
 | 
				
			||||||
 | 
					                                    <div class="card-body p-2 tab-content w-100">
 | 
				
			||||||
 | 
					                                        <div id="state" class="show active w-100" data-tabname="cardTab" data-tabrole="child" >
 | 
				
			||||||
 | 
					                                            ${drawStateTabBlo(devNum)}
 | 
				
			||||||
 | 
					                                        </div>
 | 
				
			||||||
 | 
					                                        <div id="info" data-tabname="cardTab" data-tabrole="child">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                        </div>
 | 
				
			||||||
 | 
					                                        <div id="errRec" data-tabname="cardTab" data-tabrole="child">
 | 
				
			||||||
 | 
					                                            ${drawErrRecTabBlo()}
 | 
				
			||||||
 | 
					                                        </div>
 | 
				
			||||||
 | 
					                                        <div id="opeRec" data-tabname="cardTab" data-tabrole="child">
 | 
				
			||||||
 | 
					                                            ${drawOpeRecTabBlo()}
 | 
				
			||||||
 | 
					                                        </div>
 | 
				
			||||||
 | 
					                                    </div>
 | 
				
			||||||
 | 
					                                </div>`,
 | 
				
			||||||
                        group: "device",
 | 
					                        group: "device",
 | 
				
			||||||
                        // 在 _sysElevator.html 及 _sysMonAll.html 會用到
 | 
					                        // 在 _sysElevator.html 及 _sysMonAll.html 會用到
 | 
				
			||||||
                        onShow: function (tooltipEle, oriEle) {
 | 
					                        onShow: function (tooltipEle, oriEle) {
 | 
				
			||||||
@ -1229,24 +1232,24 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                                scroll: true
 | 
					                                scroll: true
 | 
				
			||||||
                            });
 | 
					                            });
 | 
				
			||||||
                            // pop 視窗卡片可縮放功能初始化
 | 
					                            // pop 視窗卡片可縮放功能初始化
 | 
				
			||||||
                            $(tooltipEle).resizable({
 | 
					                            // $(tooltipEle).resizable({
 | 
				
			||||||
                                resize: function (event, ui) {
 | 
					                            //     // resize: function (event, ui) {
 | 
				
			||||||
                                    let iframe = $(ui.element).find("iframe");
 | 
					                            //     //     let iframe = $(ui.element).find("iframe");
 | 
				
			||||||
                                    if (iframe.length != 0) {
 | 
					                            //     //     if (iframe.length != 0) {
 | 
				
			||||||
                                        if (ui.size.width != ui.originalSize.width) {
 | 
					                            //     //         if (ui.size.width != ui.originalSize.width) {
 | 
				
			||||||
                                            iframe.css("width", "100%");
 | 
					                            //     //             iframe.css("width", "100%");
 | 
				
			||||||
                                        } else if (ui.size.height != ui.originalSize.height) {
 | 
					                            //     //         } else if (ui.size.height != ui.originalSize.height) {
 | 
				
			||||||
                                            iframe.css("height", "100%");
 | 
					                            //     //             iframe.css("height", "100%");
 | 
				
			||||||
                                        }
 | 
					                            //     //         }
 | 
				
			||||||
                                    }
 | 
					                            //     //     }
 | 
				
			||||||
                                    let cardBodyHeight = $(ui.element).find(".card-body").css("height");
 | 
					                            //     //     let cardBodyHeight = $(ui.element).find(".card-body").css("height");
 | 
				
			||||||
                                    $(ui.element).find(".scrolledTable").css("height", cardBodyHeight)
 | 
					                            //     //     $(ui.element).find(".scrolledTable").css("height", cardBodyHeight)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                    errRecTable.draw(false)
 | 
					                            //     //     errRecTable.draw(false)
 | 
				
			||||||
                                },
 | 
					                            //     // },
 | 
				
			||||||
                                minWidth: 200,
 | 
					                            //     // minWidth: 200,
 | 
				
			||||||
                                minHeight: 150,
 | 
					                            //     // minHeight: 150,
 | 
				
			||||||
                            });
 | 
					                            // });
 | 
				
			||||||
                            // 電梯管理 - Card table 更新
 | 
					                            // 電梯管理 - Card table 更新
 | 
				
			||||||
                            typeof subDeviceSetTable != "undefined" ? subDeviceSetTable($(oriEle).data("number")) : ""
 | 
					                            typeof subDeviceSetTable != "undefined" ? subDeviceSetTable($(oriEle).data("number")) : ""
 | 
				
			||||||
                        },
 | 
					                        },
 | 
				
			||||||
@ -1393,7 +1396,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            // Card - 異常紀錄 Table
 | 
					            // Card - 異常紀錄 Table
 | 
				
			||||||
            function callbackForErr(result) {
 | 
					            function callbackForErr(result) {
 | 
				
			||||||
                console.log("@@@", result)
 | 
					                console.log("@@@",result)
 | 
				
			||||||
                if (errRecTable) {
 | 
					                if (errRecTable) {
 | 
				
			||||||
                    errRecTable.destroy();
 | 
					                    errRecTable.destroy();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@ -1582,35 +1585,35 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    let strHtml = `<div class="btn-group mx-4">
 | 
					                    let strHtml = `<div class="btn-group mx-4">
 | 
				
			||||||
                                                                        <a href="javascript:;" name="topFunBtn" data-page="dashboard" data-tabname="topFunBtn" class="text-center">
 | 
					                                                                    <a href="javascript:;" name="topFunBtn" data-page="dashboard" data-tabname="topFunBtn" class="text-center">
 | 
				
			||||||
                                                                            <i class="fal fa-home fa-2x"></i><br>首頁
 | 
					                                                                        <i class="fal fa-home fa-2x"></i><br>首頁
 | 
				
			||||||
                                                                        </a>
 | 
					                                                                    </a>
 | 
				
			||||||
                                                                        <!--<div class="dropdown-menu">
 | 
					                                                                    <!--<div class="dropdown-menu">
 | 
				
			||||||
                                                                            <button class="dropdown-item" type="button">Action</button>
 | 
					                                                                        <button class="dropdown-item" type="button">Action</button>
 | 
				
			||||||
                                                                            <button class="dropdown-item" type="button">Another action</button>
 | 
					                                                                        <button class="dropdown-item" type="button">Another action</button>
 | 
				
			||||||
                                                                            <button class="dropdown-item" type="button">Something else here</button>
 | 
					                                                                        <button class="dropdown-item" type="button">Something else here</button>
 | 
				
			||||||
                                                                        </div>-->
 | 
					                                                                    </div>-->
 | 
				
			||||||
                                                                    </div>`;
 | 
					                                                                </div>`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    $.each(res.data, function (i, v) {
 | 
					                    $.each(res.data, function (i, v) {
 | 
				
			||||||
                        if (v.authCode == 'PF1') {
 | 
					                        if (v.authCode == 'PF1') {
 | 
				
			||||||
                            strHtml += `<div class="btn-group mx-4" >
 | 
					                            strHtml += `<div class="btn-group mx-4" >
 | 
				
			||||||
                                                                            <a href="javascript:;" id="sysMonTopBtn" class="text-center" data-toggle="navbar" data-target="#sysMonNavbar" data-tabname="topFunBtn" aria-haspopup="true" aria-expanded="false">
 | 
					                                                                        <a href="javascript:;" id="sysMonTopBtn" class="text-center" data-toggle="navbar" data-target="#sysMonNavbar" data-tabname="topFunBtn" aria-haspopup="true" aria-expanded="false">
 | 
				
			||||||
                                                                                <i class="fal fa-tv fa-2x"></i><br>${v.subName}
 | 
					                                                                            <i class="fal fa-tv fa-2x"></i><br>${v.subName}
 | 
				
			||||||
                                                                            </a>
 | 
					                                                                        </a>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                                                        </div>`;
 | 
					                                                                    </div>`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                            hasMonitor = true;
 | 
					                            hasMonitor = true;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                        else {
 | 
					                        else {
 | 
				
			||||||
                            let icon = v.authCode == 'PF2' ? 'fa-chart-pie' : v.authCode == 'PF3' ? 'fa-chart-area' : v.authCode == 'PF4' ? 'fa-chart-line' : v.authCode == 'PF5' ? 'fa-bell' : v.authCode == 'PF6' ? 'fa-server' : v.authCode == 'PF7' ? 'fa-image' : v.authCode == 'PF8' ? 'fa-user' : '';
 | 
					                            let icon = v.authCode == 'PF2' ? 'fa-chart-pie' : v.authCode == 'PF3' ? 'fa-chart-area' : v.authCode == 'PF4' ? 'fa-chart-line' : v.authCode == 'PF5' ? 'fa-bell' : v.authCode == 'PF6' ? 'fa-server' : v.authCode == 'PF7' ? 'fa-image' : v.authCode == 'PF8' ? 'fa-user' : '';
 | 
				
			||||||
                            strHtml += `<div class="btn-group mx-4">
 | 
					                            strHtml += `<div class="btn-group mx-4">
 | 
				
			||||||
                                                                            <a href="javascript:;" name="topFunBtn" data-tabname="topFunBtn" class="dropdown-toggle no-arrow text-center"
 | 
					                                                                        <a href="javascript:;" name="topFunBtn" data-tabname="topFunBtn" class="dropdown-toggle no-arrow text-center"
 | 
				
			||||||
                                                                               data-page="${v.showView}">
 | 
					                                                                           data-page="${v.showView}">
 | 
				
			||||||
                                                                                <i class="fal ${icon} fa-2x"></i><br>${v.subName}
 | 
					                                                                            <i class="fal ${icon} fa-2x"></i><br>${v.subName}
 | 
				
			||||||
                                                                            </a>
 | 
					                                                                        </a>
 | 
				
			||||||
                                                                        </div>`;
 | 
					                                                                    </div>`;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
@ -1690,7 +1693,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }, null, "POST", true).send();
 | 
					            }, null, "POST",true).send();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function getAlarm() {
 | 
					        function getAlarm() {
 | 
				
			||||||
@ -1704,7 +1707,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                    { title: "異常訊息", data: "msgText" },
 | 
					                    { title: "異常訊息", data: "msgText" },
 | 
				
			||||||
                ];
 | 
					                ];
 | 
				
			||||||
            // 向 niagara 取得告警資料
 | 
					            // 向 niagara 取得告警資料
 | 
				
			||||||
            getAllDeviceAlarmByBaja(null, now, false, false, function (bajaDatas) {
 | 
					            getDeviceAlarmCardByBaja(null, now, false, false, function (bajaDatas) {
 | 
				
			||||||
                let datas = bajaDatas.data;
 | 
					                let datas = bajaDatas.data;
 | 
				
			||||||
                let titleHtml = `異常通知`;
 | 
					                let titleHtml = `異常通知`;
 | 
				
			||||||
                let notices = [];
 | 
					                let notices = [];
 | 
				
			||||||
@ -1715,7 +1718,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                        datas[idx].full_name = allDevices.filter(x => x.device_number == data.devicePath)[0]?.full_name;
 | 
					                        datas[idx].full_name = allDevices.filter(x => x.device_number == data.devicePath)[0]?.full_name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        let div1 = creDiv(["col-12"]);
 | 
					                        let div1 = creDiv(["col-12"]);
 | 
				
			||||||
                        let button = creBtn("確認", "noticeChkBtn", null, ["btn btn-sm btn-secondary ml-auto col-4"], { uuid: data.uuid });
 | 
					                        let button = creBtn("確認", "noticeChkBtn", null, ["btn btn-sm btn-secondary ml-auto col-4"], {uuid:data.uuid});
 | 
				
			||||||
                        let btnDiv = creDiv(["d-flex m-0 gap-5 mt-2"]);
 | 
					                        let btnDiv = creDiv(["d-flex m-0 gap-5 mt-2"]);
 | 
				
			||||||
                        btnDiv.append(button);
 | 
					                        btnDiv.append(button);
 | 
				
			||||||
                        // 繪製 每行告警資訊
 | 
					                        // 繪製 每行告警資訊
 | 
				
			||||||
 | 
				
			|||||||
@ -93,7 +93,7 @@ function getAlarmByBaja(startDate_millisecond, endDate_millisecond, isRecover, i
 | 
				
			|||||||
    var _index = 0;
 | 
					    var _index = 0;
 | 
				
			||||||
    var _recoverState = isRecover ? "!= null" : "= null";
 | 
					    var _recoverState = isRecover ? "!= null" : "= null";
 | 
				
			||||||
    var _ackState = isAck ? "= 'acked'" : "= 'unacked'";
 | 
					    var _ackState = isAck ? "= 'acked'" : "= 'unacked'";
 | 
				
			||||||
    console.log("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where alarmClass = '" + alarmClass + "' and timestamp.millis > " + startDate_millisecond + " and timestamp.millis < " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp asc")
 | 
					    //console.log("local:|foxs:|alarm:|bql:select timestamp, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where alarmClass = '" + alarmClass + "' and timestamp.millis > " + startDate_millisecond + " and timestamp.millis < " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp asc")
 | 
				
			||||||
    require(['baja!'], function (baja) {
 | 
					    require(['baja!'], function (baja) {
 | 
				
			||||||
        baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackTime, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where alarmClass = '" + alarmClass + "' and timestamp.millis > " + startDate_millisecond + " and timestamp.millis < " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp asc").get()
 | 
					        baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackTime, ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where alarmClass = '" + alarmClass + "' and timestamp.millis > " + startDate_millisecond + " and timestamp.millis < " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp asc").get()
 | 
				
			||||||
            .then(function (table) {
 | 
					            .then(function (table) {
 | 
				
			||||||
@ -569,7 +569,7 @@ function getAllDeviceAlarmByBaja(startDate_millisecond, endDate_millisecond, isR
 | 
				
			|||||||
    if (startDate_millisecond) {
 | 
					    if (startDate_millisecond) {
 | 
				
			||||||
        startUrl = "timestamp.millis >= " + startDate_millisecond + " and ";
 | 
					        startUrl = "timestamp.millis >= " + startDate_millisecond + " and ";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    console.log("local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc");
 | 
					    //console.log("告警", "local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc");
 | 
				
			||||||
    require(['baja!'], function (baja) {
 | 
					    require(['baja!'], function (baja) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc").get()
 | 
					        baja.Ord.make("local:|foxs:|alarm:|bql:select timestamp, ackTime, priority ,ackState, alarmClass, alarmClassDisplayName, alarmValue, alarmData, alarmData.sourceName, uuid, alarmData.msgText, alarmData.numericValue, alarmData.presentValue, alarmData.status, alarmData.toState, normalTime where " + startUrl + "timestamp.millis <= " + endDate_millisecond + " and normalTime " + _recoverState + " and ackState " + _ackState + " order by timestamp desc").get()
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user