[前端] 系統監控選單加寬 | 箭頭樣式更換 | 子階層明顯突出 | 一次只打開一個子層 | 選項內容增加靜態系統小類 | 首頁選單隱藏儀表板選項
This commit is contained in:
		
							parent
							
								
									74f25324d9
								
							
						
					
					
						commit
						6343816b47
					
				@ -267,57 +267,7 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
  var contractCapacity = 0;
 | 
					  var contractCapacity = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  var sysIconList = [
 | 
					  
 | 
				
			||||||
    { mainSys: "EE", subSys: "E1", iconClass: "./gif/E1_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "EE", subSys: "E2", iconClass: "./gif/E2_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "EE", subSys: "E3", iconClass: "./gif/E3_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "EE", subSys: "E4", iconClass: "./gif/E4-1_white.png" }, // 電表
 | 
					 | 
				
			||||||
    { mainSys: "LT", subSys: "L1", iconClass: "./gif/L1_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "LT", subSys: "L2", iconClass: "./gif/L2_white.png" }, // 景觀照明 0131目前沒有
 | 
					 | 
				
			||||||
    { mainSys: "ME", subSys: "M1", iconClass: "./gif/M1_white.png" }, // 儲冰 0131目前沒有
 | 
					 | 
				
			||||||
    { mainSys: "ME", subSys: "M5", iconClass: "./gif/M5-2_white.png" }, // 送排風
 | 
					 | 
				
			||||||
    { mainSys: "ME", subSys: "M8", iconClass: "./gif/M8_white.png" }, // 排油煙0131目前沒有
 | 
					 | 
				
			||||||
    { mainSys: "ME", subSys: "M10", iconClass: "./gif/M10_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "ME", subSys: "M12", iconClass: "./gif/M12_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "ELEV", subSys: "EL", iconClass: "./gif/EL_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "FE", subSys: "F1", iconClass: "./gif/F1_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "FE", subSys: "F2", iconClass: "./gif/lamp_white.png" }, // 排煙 0131目前沒有
 | 
					 | 
				
			||||||
    { mainSys: "WP", subSys: "W1", iconClass: "./gif/W1_white.png" }, // 電子水表0131目前沒有
 | 
					 | 
				
			||||||
    { mainSys: "WP", subSys: "W2", iconClass: "./gif/W2_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "WP", subSys: "P1", iconClass: "./gif/P1_white.png" },
 | 
					 | 
				
			||||||
    { mainSys: "S", subSys: "C", iconClass: "./gif/C_white.png" }, // CCTV
 | 
					 | 
				
			||||||
    { mainSys: "S", subSys: "P", iconClass: "./gif/P_white.png" }, // 緊急求救
 | 
					 | 
				
			||||||
    { mainSys: "S", subSys: "R", iconClass: "./gif/R_white.png" }, // 門禁
 | 
					 | 
				
			||||||
    { mainSys: "P", subSys: "PSC", iconClass: "./gif/PSC_white.png" }, // 停管
 | 
					 | 
				
			||||||
    { mainSys: "W3", subSys: "W1", iconClass: "./gif/W3_white.png" }, // 0131目前沒有
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  var tempSysSubText = [
 | 
					 | 
				
			||||||
    { text: "水錶系統", mainSys: "WP", subSys: "W1" },
 | 
					 | 
				
			||||||
    { text: "空調系統", mainSys: "ME", subSys: "M10" }, // 2
 | 
					 | 
				
			||||||
    { text: "照明系統", mainSys: "LT", subSys: "L1" }, // 3
 | 
					 | 
				
			||||||
    { text: "CCTV系統", mainSys: "S", subSys: "C" }, //12
 | 
					 | 
				
			||||||
    { text: "太陽能管理", mainSys: "S", subSys: "C" }, //12
 | 
					 | 
				
			||||||
    { text: "冰水主機", mainSys: "WP", subSys: "W2" }, // 6
 | 
					 | 
				
			||||||
    { text: "緊急發電機", mainSys: "EE", subSys: "E3" }, //10
 | 
					 | 
				
			||||||
    { text: "電梯系統", mainSys: "ELEV", subSys: "EL" }, // 1
 | 
					 | 
				
			||||||
    { text: "環境感測設備", mainSys: "ME", subSys: "M12" }, // 4
 | 
					 | 
				
			||||||
    { text: "電錶系統", mainSys: "EE", subSys: "E4" }, // 5
 | 
					 | 
				
			||||||
    { text: "高壓配電盤", mainSys: "EE", subSys: "E1" }, // 7
 | 
					 | 
				
			||||||
    { text: "汙廢水設備", mainSys: "WP", subSys: "P1" }, // 8
 | 
					 | 
				
			||||||
    { text: "低壓配電盤", mainSys: "EE", subSys: "E2" }, //9
 | 
					 | 
				
			||||||
    { text: "消防設備", mainSys: "FE", subSys: "F1" }, //11
 | 
					 | 
				
			||||||
    { text: "門禁系統", mainSys: "S", subSys: "R" }, //13
 | 
					 | 
				
			||||||
    { text: "停管系統", mainSys: "P", subSys: "PSC" }, //14
 | 
					 | 
				
			||||||
    { text: "緊急求救系統", mainSys: "S", subSys: "P" }, //15
 | 
					 | 
				
			||||||
    { text: "送排風系統", mainSys: "ME", subSys: "M5" }, //16
 | 
					 | 
				
			||||||
    //{ text: "景觀照明系統", mainSys: "LT", subSys: "L2", },
 | 
					 | 
				
			||||||
    //{ text: "儲冰系統", mainSys: "ME", subSys: "M1", },
 | 
					 | 
				
			||||||
    // { text: "排油煙設備", mainSys: "ME", subSys: "M8", },
 | 
					 | 
				
			||||||
    //{ text: "排煙系統", mainSys: "FE", subSys: "F2", },
 | 
					 | 
				
			||||||
    //{ text: "電子水錶", mainSys: "WP", subSys: "W1", },
 | 
					 | 
				
			||||||
    // { text: "熱水系統", mainSys: "W3", subSys: "W1", },
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $(document).ready(function () {
 | 
					  $(document).ready(function () {
 | 
				
			||||||
    $(loadEle).Loading("start");
 | 
					    $(loadEle).Loading("start");
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,7 @@
 | 
				
			|||||||
.yt-navbar::-webkit-scrollbar-thumb:hover {
 | 
					.yt-navbar::-webkit-scrollbar-thumb:hover {
 | 
				
			||||||
  background: #555;
 | 
					  background: #555;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.yt-left-navbar { position: fixed; left: 0; top: 0; height: 100%; z-index: 10; background-color: rgb(25 25 25 / 95%); width: auto; max-width: 300px; margin-top: 4.125rem; }
 | 
					.yt-left-navbar { position: absolute; left: 0; top: 0; height: calc(100% - 4.125rem); z-index: 10; background-color: rgb(25 25 25 / 95%); width: auto; max-width: 300px; margin-top: 4.125rem; }
 | 
				
			||||||
.yt-navbar-content ul { padding: 1rem 0rem; list-style-type: none; }
 | 
					.yt-navbar-content ul { padding: 1rem 0rem; list-style-type: none; }
 | 
				
			||||||
.yt-navbar-content ul li { position: relative; display: flex; flex-wrap: wrap; flex-direction: column; }
 | 
					.yt-navbar-content ul li { position: relative; display: flex; flex-wrap: wrap; flex-direction: column; }
 | 
				
			||||||
.yt-navbar-content ul li a { font-size: 0.9rem; padding: 0.75rem 1rem 0.75rem 2rem; position: relative; width: 100%; display:flex; justify-content: space-between;}
 | 
					.yt-navbar-content ul li a { font-size: 0.9rem; padding: 0.75rem 1rem 0.75rem 2rem; position: relative; width: 100%; display:flex; justify-content: space-between;}
 | 
				
			||||||
@ -29,14 +29,16 @@
 | 
				
			|||||||
.yt-navbar-content ul li a:active, .yt-navbar-content ul li a.active { background-color: var(--theme-light); }
 | 
					.yt-navbar-content ul li a:active, .yt-navbar-content ul li a.active { background-color: var(--theme-light); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.yt-navbar ul li a[data-nb-node-type=parent]::after {
 | 
					.yt-navbar ul li a[data-nb-node-type=parent]::after {
 | 
				
			||||||
  content: "◀";
 | 
					  content: ">";
 | 
				
			||||||
  margin-left:1rem;
 | 
					  font-family: cursive;
 | 
				
			||||||
 | 
					  font-weight: 700;
 | 
				
			||||||
 | 
					  margin-left:4rem;
 | 
				
			||||||
  transform:rotate(0deg);
 | 
					  transform:rotate(0deg);
 | 
				
			||||||
  transition:0.2s
 | 
					  transition:0.2s
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.yt-navbar ul li a[data-nb-node-type=parent][data-nb-node-status=open]::after {
 | 
					.yt-navbar ul li a[data-nb-node-type=parent][data-nb-node-status=open]::after {
 | 
				
			||||||
  transform:rotate(-90deg);
 | 
					  transform:rotate(90deg);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.yt-navbar-content ul li a[data-nb-node-type=parent] span:hover {
 | 
					.yt-navbar-content ul li a[data-nb-node-type=parent] span:hover {
 | 
				
			||||||
@ -59,5 +61,5 @@
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.yt-navbar-content ul.yt-navbar-dropdown li a {
 | 
					.yt-navbar-content ul.yt-navbar-dropdown li a {
 | 
				
			||||||
  padding: 0.75rem 0.5rem 0.75rem 2.5rem;
 | 
					  padding: 0.75rem 0.5rem 0.75rem 3.5rem;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1029,6 +1029,58 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
      var allDevices = [];
 | 
					      var allDevices = [];
 | 
				
			||||||
      var tempSubTag = ["M10", "M12"]; // 溫度向小類
 | 
					      var tempSubTag = ["M10", "M12"]; // 溫度向小類
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      var sysIconList = [
 | 
				
			||||||
 | 
					    { mainSys: "EE", subSys: "E1", iconClass: "./gif/E1_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "EE", subSys: "E2", iconClass: "./gif/E2_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "EE", subSys: "E3", iconClass: "./gif/E3_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "EE", subSys: "E4", iconClass: "./gif/E4-1_white.png" }, // 電表
 | 
				
			||||||
 | 
					    { mainSys: "LT", subSys: "L1", iconClass: "./gif/L1_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "LT", subSys: "L2", iconClass: "./gif/L2_white.png" }, // 景觀照明 0131目前沒有
 | 
				
			||||||
 | 
					    { mainSys: "ME", subSys: "M1", iconClass: "./gif/M1_white.png" }, // 儲冰 0131目前沒有
 | 
				
			||||||
 | 
					    { mainSys: "ME", subSys: "M5", iconClass: "./gif/M5-2_white.png" }, // 送排風
 | 
				
			||||||
 | 
					    { mainSys: "ME", subSys: "M8", iconClass: "./gif/M8_white.png" }, // 排油煙0131目前沒有
 | 
				
			||||||
 | 
					    { mainSys: "ME", subSys: "M10", iconClass: "./gif/M10_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "ME", subSys: "M12", iconClass: "./gif/M12_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "ELEV", subSys: "EL", iconClass: "./gif/EL_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "FE", subSys: "F1", iconClass: "./gif/F1_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "FE", subSys: "F2", iconClass: "./gif/lamp_white.png" }, // 排煙 0131目前沒有
 | 
				
			||||||
 | 
					    { mainSys: "WP", subSys: "W1", iconClass: "./gif/W1_white.png" }, // 電子水表0131目前沒有
 | 
				
			||||||
 | 
					    { mainSys: "WP", subSys: "W2", iconClass: "./gif/W2_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "WP", subSys: "P1", iconClass: "./gif/P1_white.png" },
 | 
				
			||||||
 | 
					    { mainSys: "S", subSys: "C", iconClass: "./gif/C_white.png" }, // CCTV
 | 
				
			||||||
 | 
					    { mainSys: "S", subSys: "P", iconClass: "./gif/P_white.png" }, // 緊急求救
 | 
				
			||||||
 | 
					    { mainSys: "S", subSys: "R", iconClass: "./gif/R_white.png" }, // 門禁
 | 
				
			||||||
 | 
					    { mainSys: "P", subSys: "PSC", iconClass: "./gif/PSC_white.png" }, // 停管
 | 
				
			||||||
 | 
					    { mainSys: "W3", subSys: "W1", iconClass: "./gif/W3_white.png" }, // 0131目前沒有
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  var tempSysSubText = [
 | 
				
			||||||
 | 
					    { text: "水錶系統", mainSys: "WP", subSys: "W1" },
 | 
				
			||||||
 | 
					    { text: "空調系統", mainSys: "ME", subSys: "M10" }, // 2
 | 
				
			||||||
 | 
					    { text: "照明系統", mainSys: "LT", subSys: "L1" }, // 3
 | 
				
			||||||
 | 
					    { text: "CCTV系統", mainSys: "S", subSys: "C" }, //12
 | 
				
			||||||
 | 
					    { text: "太陽能管理", mainSys: "S", subSys: "C" }, //12
 | 
				
			||||||
 | 
					    { text: "冰水主機", mainSys: "WP", subSys: "W2" }, // 6
 | 
				
			||||||
 | 
					    { text: "緊急發電機", mainSys: "EE", subSys: "E3" }, //10
 | 
				
			||||||
 | 
					    { text: "電梯系統", mainSys: "ELEV", subSys: "EL" }, // 1
 | 
				
			||||||
 | 
					    { text: "環境感測設備", mainSys: "ME", subSys: "M12" }, // 4
 | 
				
			||||||
 | 
					    { text: "電錶系統", mainSys: "EE", subSys: "E4" }, // 5
 | 
				
			||||||
 | 
					    { text: "高壓配電盤", mainSys: "EE", subSys: "E1" }, // 7
 | 
				
			||||||
 | 
					    { text: "汙廢水設備", mainSys: "WP", subSys: "P1" }, // 8
 | 
				
			||||||
 | 
					    { text: "低壓配電盤", mainSys: "EE", subSys: "E2" }, //9
 | 
				
			||||||
 | 
					    { text: "消防設備", mainSys: "FE", subSys: "F1" }, //11
 | 
				
			||||||
 | 
					    { text: "門禁系統", mainSys: "S", subSys: "R" }, //13
 | 
				
			||||||
 | 
					    { text: "停管系統", mainSys: "P", subSys: "PSC" }, //14
 | 
				
			||||||
 | 
					    { text: "緊急求救系統", mainSys: "S", subSys: "P" }, //15
 | 
				
			||||||
 | 
					    { text: "送排風系統", mainSys: "ME", subSys: "M5" }, //16
 | 
				
			||||||
 | 
					    //{ text: "景觀照明系統", mainSys: "LT", subSys: "L2", },
 | 
				
			||||||
 | 
					    //{ text: "儲冰系統", mainSys: "ME", subSys: "M1", },
 | 
				
			||||||
 | 
					    // { text: "排油煙設備", mainSys: "ME", subSys: "M8", },
 | 
				
			||||||
 | 
					    //{ text: "排煙系統", mainSys: "FE", subSys: "F2", },
 | 
				
			||||||
 | 
					    //{ text: "電子水錶", mainSys: "WP", subSys: "W1", },
 | 
				
			||||||
 | 
					    // { text: "熱水系統", mainSys: "W3", subSys: "W1", },
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      /**
 | 
					      /**
 | 
				
			||||||
       * 頁面 Loading 建立
 | 
					       * 頁面 Loading 建立
 | 
				
			||||||
       * */
 | 
					       * */
 | 
				
			||||||
@ -2095,7 +2147,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                                                                              <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" name="topFunBtn" data-tabname="topFunBtn" data-page="dashboard" type="button">儀錶板</button>
 | 
					                                                                              <button class="dropdown-item d-none" name="topFunBtn" data-tabname="topFunBtn" data-page="dashboard" type="button" >儀錶板</button>
 | 
				
			||||||
                                                                              <button class="dropdown-item" name="topFunBtn" data-tabname="topFunBtn" data-page="schoolView" type="button">校園總覽</button>
 | 
					                                                                              <button class="dropdown-item" name="topFunBtn" data-tabname="topFunBtn" data-page="schoolView" type="button">校園總覽</button>
 | 
				
			||||||
                                                                              <button class="dropdown-item" name="topFunBtn" data-tabname="topFunBtn" data-page="elecSingleLine" type="button">電表單線圖</button>
 | 
					                                                                              <button class="dropdown-item" name="topFunBtn" data-tabname="topFunBtn" data-page="elecSingleLine" type="button">電表單線圖</button>
 | 
				
			||||||
                                                                          </div>
 | 
					                                                                          </div>
 | 
				
			||||||
@ -2215,11 +2267,30 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li
 | 
				
			|||||||
                      }
 | 
					                      }
 | 
				
			||||||
                    );
 | 
					                    );
 | 
				
			||||||
                  });
 | 
					                  });
 | 
				
			||||||
 | 
					                  const ulLen = ul.find("li").length;
 | 
				
			||||||
 | 
					                  for(let i = 0; i < 8 - ulLen; i++){
 | 
				
			||||||
 | 
					                    let li2 = creEle("li");
 | 
				
			||||||
 | 
					                        let a2 = creA(
 | 
				
			||||||
 | 
					                          tempSysSubText[i].text,
 | 
				
			||||||
 | 
					                          { href: "javascript:;" },
 | 
				
			||||||
 | 
					                          [],
 | 
				
			||||||
 | 
					                          `subSysBtn${tempSysSubText[i].subSys}`,
 | 
				
			||||||
 | 
					                          {
 | 
				
			||||||
 | 
					                            page: "systemMonitor",
 | 
				
			||||||
 | 
					                            tabname: "systemMonitor",
 | 
				
			||||||
 | 
					                            "building-tag": building.building_tag,
 | 
				
			||||||
 | 
					                          },
 | 
				
			||||||
 | 
					                          "topFunBtn"
 | 
				
			||||||
 | 
					                        );
 | 
				
			||||||
 | 
					                        li2.append(a2);
 | 
				
			||||||
 | 
					                        ul.append(li2);
 | 
				
			||||||
 | 
					                  }
 | 
				
			||||||
 | 
					                  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                  li.append(ul);
 | 
					                  li.append(ul);
 | 
				
			||||||
                  $("#sysMonBtnList").append(li);
 | 
					                  $("#sysMonBtnList").append(li);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
                $("#sysMonTopBtn").YTNavbar("init");
 | 
					                $("#sysMonTopBtn").YTNavbar("init",{onlyOneOpen: true});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                $("span[id^=buildTab]").first().YTTab("setAndClick",{triggerType:"first"});
 | 
					                $("span[id^=buildTab]").first().YTTab("setAndClick",{triggerType:"first"});
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -3,14 +3,14 @@
 | 
				
			|||||||
// var baseImgUrl = "https://localhost:44376"; // 本地開發用
 | 
					// var baseImgUrl = "https://localhost:44376"; // 本地開發用
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Mitsubishi
 | 
					// Mitsubishi
 | 
				
			||||||
var baseApiUrl = "http://220.132.206.5:8005"; // production 用
 | 
					// var baseApiUrl = "http://220.132.206.5:8005"; // production 用
 | 
				
			||||||
var baseImgUrl = "http://220.132.206.5:8053"; // production 用
 | 
					var baseImgUrl = "http://220.132.206.5:8053"; // production 用
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// WSP
 | 
					// WSP
 | 
				
			||||||
// var baseApiUrl = "http://192.168.0.136:8005"; // production 用
 | 
					// var baseApiUrl = "http://192.168.0.136:8005"; // production 用
 | 
				
			||||||
// var baseImgUrl = "http://192.168.0.136:8053"; // production 用
 | 
					// var baseImgUrl = "http://192.168.0.136:8053"; // production 用
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// var baseApiUrl = "http://localhost:3604";
 | 
					var baseApiUrl = "http://localhost:3604";
 | 
				
			||||||
//var baseImgUrl = "http://localhost:8848";
 | 
					//var baseImgUrl = "http://localhost:8848";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var varRegApiUrl = "/reg/api/";  //註冊API路徑
 | 
					var varRegApiUrl = "/reg/api/";  //註冊API路徑
 | 
				
			||||||
 | 
				
			|||||||
@ -103,16 +103,16 @@ function getAlarmByBaja(
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    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 = '" +
 | 
					      "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 +
 | 
					        alarmClass +
 | 
				
			||||||
      "' and timestamp.millis > " +
 | 
					        "' and timestamp.millis > " +
 | 
				
			||||||
      startDate_millisecond +
 | 
					        startDate_millisecond +
 | 
				
			||||||
      " and timestamp.millis < " +
 | 
					        " and timestamp.millis < " +
 | 
				
			||||||
      endDate_millisecond +
 | 
					        endDate_millisecond +
 | 
				
			||||||
      " and sourceState " +
 | 
					        " and sourceState " +
 | 
				
			||||||
      _recoverState +
 | 
					        _recoverState +
 | 
				
			||||||
      " and ackState " +
 | 
					        " and ackState " +
 | 
				
			||||||
      _ackState +
 | 
					        _ackState +
 | 
				
			||||||
      " order by timestamp asc"
 | 
					        " order by timestamp asc"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -202,8 +202,8 @@ function getOneDeviceAlarmTop10ByBaja(devicePath, callback) {
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "local:|foxs:|alarm:|bql:select top 10 timestamp, ackState, alarmData, alarmData.sourceName, sourceState, uuid, alarmData.msgText, normalTime where alarmData.sourceName like '%" +
 | 
					      "local:|foxs:|alarm:|bql:select top 10 timestamp, ackState, alarmData, alarmData.sourceName, sourceState, uuid, alarmData.msgText, normalTime where alarmData.sourceName like '%" +
 | 
				
			||||||
      devicePath +
 | 
					        devicePath +
 | 
				
			||||||
      "%' order by timestamp desc"
 | 
					        "%' order by timestamp desc"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -300,8 +300,8 @@ function getOneSystemAlarmStateByBaja(systemPath, callback) {
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "local:|foxs:|alarm:|bql:select alarmData, alarmData.sourceName, sourceState, uuid where alarmData.sourceName like '%" +
 | 
					      "local:|foxs:|alarm:|bql:select alarmData, alarmData.sourceName, sourceState, uuid where alarmData.sourceName like '%" +
 | 
				
			||||||
      systemPath +
 | 
					        systemPath +
 | 
				
			||||||
      "%' order by timestamp desc"
 | 
					        "%' order by timestamp desc"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -355,10 +355,10 @@ function getOneSystemStateByBaja(systemPath, callback) {
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "local:|foxs:" +
 | 
					      "local:|foxs:" +
 | 
				
			||||||
      port +
 | 
					        port +
 | 
				
			||||||
      "|alarm:|bql:select top 1 alarmData, alarmData.sourceName, sourceState where alarmData.sourceName like '%" +
 | 
					        "|alarm:|bql:select top 1 alarmData, alarmData.sourceName, sourceState where alarmData.sourceName like '%" +
 | 
				
			||||||
      systemPath +
 | 
					        systemPath +
 | 
				
			||||||
      "%' order by timestamp desc"
 | 
					        "%' order by timestamp desc"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -415,8 +415,8 @@ function getAlarmCountByBaja(callback) {
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "local:|foxs:" +
 | 
					      "local:|foxs:" +
 | 
				
			||||||
      port +
 | 
					        port +
 | 
				
			||||||
      "|alarm:|bql:select COUNT(*) where sourceState = 'offnormal'"
 | 
					        "|alarm:|bql:select COUNT(*) where sourceState = 'offnormal'"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -463,8 +463,8 @@ function getRecoverCountByBaja(callback) {
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "local:|foxs:" +
 | 
					      "local:|foxs:" +
 | 
				
			||||||
      port +
 | 
					        port +
 | 
				
			||||||
      "|alarm:|bql:select COUNT(*) where normalTime != null"
 | 
					        "|alarm:|bql:select COUNT(*) where normalTime != null"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -510,8 +510,8 @@ function getCheckedAckedCountByBaja(callback) {
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "local:|foxs:" +
 | 
					      "local:|foxs:" +
 | 
				
			||||||
      port +
 | 
					        port +
 | 
				
			||||||
      "|alarm:|bql:select COUNT(*) where ackState='acked'"
 | 
					        "|alarm:|bql:select COUNT(*) where ackState='acked'"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -557,8 +557,8 @@ function getUnCheckedAckedCountByBaja(callback) {
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "local:|foxs:" +
 | 
					      "local:|foxs:" +
 | 
				
			||||||
      port +
 | 
					        port +
 | 
				
			||||||
      "|alarm:|bql:select COUNT(*) where ackState='unacked'"
 | 
					        "|alarm:|bql:select COUNT(*) where ackState='unacked'"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -588,8 +588,8 @@ function getSystemAlarmByBaja(callback) {
 | 
				
			|||||||
    //baja.Ord.make("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 isAlarm").get()
 | 
					    //baja.Ord.make("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 isAlarm").get()
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "local:|foxs:" +
 | 
					      "local:|foxs:" +
 | 
				
			||||||
      port +
 | 
					        port +
 | 
				
			||||||
      "|alarm:|bql:select alarmClass where sourceState = 'offnormal'"
 | 
					        "|alarm:|bql:select alarmClass where sourceState = 'offnormal'"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -704,8 +704,8 @@ function getOneDeviceAlarmByBaja(devicePath, callback) {
 | 
				
			|||||||
    // 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 alarmData.sourceName like '%" + devicePath + "%' order by timestamp desc");
 | 
					    // 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 alarmData.sourceName like '%" + devicePath + "%' order by timestamp desc");
 | 
				
			||||||
    baja.Ord.make(
 | 
					    baja.Ord.make(
 | 
				
			||||||
      "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 alarmData.sourceName like '%" +
 | 
					      "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 alarmData.sourceName like '%" +
 | 
				
			||||||
      devicePath +
 | 
					        devicePath +
 | 
				
			||||||
      "%' order by timestamp desc"
 | 
					        "%' order by timestamp desc"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -765,18 +765,6 @@ function getOtherAlarmByBaja(
 | 
				
			|||||||
  console.log(
 | 
					  console.log(
 | 
				
			||||||
    "告警2",
 | 
					    "告警2",
 | 
				
			||||||
    "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 " +
 | 
					    "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 sourceState " +
 | 
					 | 
				
			||||||
    _recoverState +
 | 
					 | 
				
			||||||
    " and ackState " +
 | 
					 | 
				
			||||||
    _ackState +
 | 
					 | 
				
			||||||
    " order by timestamp desc"
 | 
					 | 
				
			||||||
  );
 | 
					 | 
				
			||||||
  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 +
 | 
					      startUrl +
 | 
				
			||||||
      "timestamp.millis <= " +
 | 
					      "timestamp.millis <= " +
 | 
				
			||||||
      endDate_millisecond +
 | 
					      endDate_millisecond +
 | 
				
			||||||
@ -785,6 +773,18 @@ function getOtherAlarmByBaja(
 | 
				
			|||||||
      " and ackState " +
 | 
					      " and ackState " +
 | 
				
			||||||
      _ackState +
 | 
					      _ackState +
 | 
				
			||||||
      " order by timestamp desc"
 | 
					      " order by timestamp desc"
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					  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 sourceState " +
 | 
				
			||||||
 | 
					        _recoverState +
 | 
				
			||||||
 | 
					        " and ackState " +
 | 
				
			||||||
 | 
					        _ackState +
 | 
				
			||||||
 | 
					        " order by timestamp desc"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
@ -863,51 +863,54 @@ function getAllDeviceAlarmByBaja(
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    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 " +
 | 
					      "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 +
 | 
					        startUrl +
 | 
				
			||||||
      "timestamp.millis <= " +
 | 
					        "timestamp.millis <= " +
 | 
				
			||||||
      endDate_millisecond +
 | 
					        endDate_millisecond +
 | 
				
			||||||
      " and sourceState " +
 | 
					        " and sourceState " +
 | 
				
			||||||
      _recoverState +
 | 
					        _recoverState +
 | 
				
			||||||
      " and ackState " +
 | 
					        " and ackState " +
 | 
				
			||||||
      _ackState +
 | 
					        _ackState +
 | 
				
			||||||
      " order by timestamp desc"
 | 
					        " order by timestamp desc"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
        return table.cursor({
 | 
					        return table.cursor({
 | 
				
			||||||
          each: function (record) {
 | 
					          each: function (record) {
 | 
				
			||||||
            let main = {};
 | 
					            if (record.get("alarmData").get("sourceName")) {
 | 
				
			||||||
            //   const alarmDisplayName = record.get('alarmData').get('sourceName').split(":")[1] ?? record.get('alarmData').get('sourceName').split(":")[0]
 | 
					              let main = {};
 | 
				
			||||||
            const alarmDisplayName =
 | 
					              // console.log("告警", record.get("alarmData").get("sourceName"));
 | 
				
			||||||
              record.get("alarmData").get("sourceName").split(":")[1] ??
 | 
					              //   const alarmDisplayName = record.get('alarmData').get('sourceName').split(":")[1] ?? record.get('alarmData').get('sourceName').split(":")[0]
 | 
				
			||||||
              record.get("alarmData").get("sourceName");
 | 
					              const alarmDisplayName =
 | 
				
			||||||
            _sourceTmp = alarmDisplayName.split("_");
 | 
					                record.get("alarmData").get("sourceName").split(":")[1] ??
 | 
				
			||||||
            let _bfName = _sourceTmp[1] + "-" + _sourceTmp[4];
 | 
					                record.get("alarmData").get("sourceName");
 | 
				
			||||||
            let _sourceName = _sourceTmp.slice(0, 8).join("_");
 | 
					              _sourceTmp = alarmDisplayName.split("_");
 | 
				
			||||||
            _sourceTmp = _sourceTmp[7] + "-" + _sourceTmp[8];
 | 
					              let _bfName = _sourceTmp[1] + "-" + _sourceTmp[4];
 | 
				
			||||||
 | 
					              let _sourceName = _sourceTmp.slice(0, 8).join("_");
 | 
				
			||||||
 | 
					              _sourceTmp = _sourceTmp[7] + "-" + _sourceTmp[8];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            main.buildingFloorName_zh = _bfName;
 | 
					              main.buildingFloorName_zh = _bfName;
 | 
				
			||||||
            main.sourceName_zh = _sourceName;
 | 
					              main.sourceName_zh = _sourceName;
 | 
				
			||||||
            main.uuid = record.get("uuid").$val;
 | 
					              main.uuid = record.get("uuid").$val;
 | 
				
			||||||
            main.timestamp = record.get("timestamp").$cEncStr;
 | 
					              main.timestamp = record.get("timestamp").$cEncStr;
 | 
				
			||||||
            main.alarmClass = record.get("alarmClass");
 | 
					              main.alarmClass = record.get("alarmClass");
 | 
				
			||||||
            main.point = _sourceTmp;
 | 
					              main.point = _sourceTmp;
 | 
				
			||||||
            main.sourceTmp = _sourceTmp;
 | 
					              main.sourceTmp = _sourceTmp;
 | 
				
			||||||
            main.devicePath = _sourceName;
 | 
					              main.devicePath = _sourceName;
 | 
				
			||||||
            main.msgText = record.get("alarmData").get("msgText");
 | 
					              main.msgText = record.get("alarmData").get("msgText");
 | 
				
			||||||
            main.normalTime = record.get("normalTime");
 | 
					              main.normalTime = record.get("normalTime");
 | 
				
			||||||
            main.priority = record.get("priority");
 | 
					              main.priority = record.get("priority");
 | 
				
			||||||
            main.ackedTime = record.get("ackTime").$cEncStr;
 | 
					              main.ackedTime = record.get("ackTime").$cEncStr;
 | 
				
			||||||
            main.ackState = record.get("ackState").$ordinal;
 | 
					              main.ackState = record.get("ackState").$ordinal;
 | 
				
			||||||
            if (_sourceTmp.includes("undefined")) {
 | 
					              if (_sourceTmp.includes("undefined")) {
 | 
				
			||||||
              // console.log(main.ackState)
 | 
					                // console.log(main.ackState)
 | 
				
			||||||
              main.buildingFloorName_zh = "";
 | 
					                main.buildingFloorName_zh = "";
 | 
				
			||||||
              //main.alarmClass = "系統異常";
 | 
					                //main.alarmClass = "系統異常";
 | 
				
			||||||
              main.sourceTmp = "";
 | 
					                main.sourceTmp = "";
 | 
				
			||||||
              //main.msgText = "";
 | 
					                //main.msgText = "";
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              _result.data.push(main);
 | 
				
			||||||
 | 
					              _index++;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            _result.data.push(main);
 | 
					 | 
				
			||||||
            _index++;
 | 
					 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
          after: function () {
 | 
					          after: function () {
 | 
				
			||||||
            _result.count = _index;
 | 
					            _result.count = _index;
 | 
				
			||||||
@ -943,14 +946,14 @@ function getDeviceAlarmCardByBaja(
 | 
				
			|||||||
  require(["baja!"], function (baja) {
 | 
					  require(["baja!"], function (baja) {
 | 
				
			||||||
    baja.Ord.make(
 | 
					    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 " +
 | 
					      "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 +
 | 
					        startUrl +
 | 
				
			||||||
      "timestamp.millis <= " +
 | 
					        "timestamp.millis <= " +
 | 
				
			||||||
      endDate_millisecond +
 | 
					        endDate_millisecond +
 | 
				
			||||||
      " and sourceState " +
 | 
					        " and sourceState " +
 | 
				
			||||||
      _recoverState +
 | 
					        _recoverState +
 | 
				
			||||||
      " and ackState " +
 | 
					        " and ackState " +
 | 
				
			||||||
      _ackState +
 | 
					        _ackState +
 | 
				
			||||||
      " order by timestamp desc"
 | 
					        " order by timestamp desc"
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
      .get()
 | 
					      .get()
 | 
				
			||||||
      .then(function (table) {
 | 
					      .then(function (table) {
 | 
				
			||||||
 | 
				
			|||||||
@ -42,40 +42,42 @@ function getHistoryDataByBaja(devicePath, startDate_millisecond, endDate_millise
 | 
				
			|||||||
    require(['baja!'], function (baja) {
 | 
					    require(['baja!'], function (baja) {
 | 
				
			||||||
        console.log('local:|foxs:|history:/' + company + '/' + devicePath + '|bql:select * from control:ControlPoint where timestamp.millis > ' + startDate_millisecond + ' and timestamp.millis < ' + endDate_millisecond);
 | 
					        console.log('local:|foxs:|history:/' + company + '/' + devicePath + '|bql:select * from control:ControlPoint where timestamp.millis > ' + startDate_millisecond + ' and timestamp.millis < ' + endDate_millisecond);
 | 
				
			||||||
        baja.Ord.make('local:|foxs:|history:/' + company + '/' + devicePath + '|bql:select * from control:ControlPoint where timestamp.millis > ' + startDate_millisecond + ' and timestamp.millis < ' + endDate_millisecond).get()
 | 
					        baja.Ord.make('local:|foxs:|history:/' + company + '/' + devicePath + '|bql:select * from control:ControlPoint where timestamp.millis > ' + startDate_millisecond + ' and timestamp.millis < ' + endDate_millisecond).get()
 | 
				
			||||||
            .then(function (table) {
 | 
					        .then(function (table) {
 | 
				
			||||||
                return table.cursor({
 | 
					            $(loadEle).Loading("start");
 | 
				
			||||||
                    each: function (record) {
 | 
					            return table.cursor({
 | 
				
			||||||
                        console.log(record.get('timestamp'))
 | 
					                each: function (record) {
 | 
				
			||||||
                        // if (_index == 0)
 | 
					                    console.log(record.get('timestamp'))
 | 
				
			||||||
                        //     _ss += '{"deviceName":"' + deviceName + '", "value":' + record.get('value') + ', "timestamp":"' + record.get('timestamp').$cEncStr
 | 
					                    // if (_index == 0)
 | 
				
			||||||
                        //     + '"}';
 | 
					                    //     _ss += '{"deviceName":"' + deviceName + '", "value":' + record.get('value') + ', "timestamp":"' + record.get('timestamp').$cEncStr
 | 
				
			||||||
                        // else
 | 
					                    //     + '"}';
 | 
				
			||||||
                        //     _ss += ',{"deviceName":"' + deviceName + '", "value":' + record.get('value') + ', "timestamp":"' + record.get('timestamp').$cEncStr
 | 
					                    // else
 | 
				
			||||||
                        //     + '"}';
 | 
					                    //     _ss += ',{"deviceName":"' + deviceName + '", "value":' + record.get('value') + ', "timestamp":"' + record.get('timestamp').$cEncStr
 | 
				
			||||||
                        _ss.push({deviceName:deviceName, value:record.get('value'), timestamp:record.get('timestamp').$cEncStr
 | 
					                    //     + '"}';
 | 
				
			||||||
                    });
 | 
					                    _ss.push({deviceName:deviceName, value:record.get('value'), timestamp:record.get('timestamp').$cEncStr
 | 
				
			||||||
                        _index++;
 | 
					 | 
				
			||||||
                    },
 | 
					 | 
				
			||||||
                    after: function () {
 | 
					 | 
				
			||||||
                        _result={count: _index, data: _ss}
 | 
					 | 
				
			||||||
                        // _result += '{' + '"count": ' + _index + ', "data":[';
 | 
					 | 
				
			||||||
                        // _result += _ss;
 | 
					 | 
				
			||||||
                        // _result += ']}';
 | 
					 | 
				
			||||||
                        if (typeof callback === 'function') {
 | 
					 | 
				
			||||||
                            // console.log(_result)
 | 
					 | 
				
			||||||
                             _result = JSON.stringify(_result)
 | 
					 | 
				
			||||||
                            callback(_result);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    },
 | 
					 | 
				
			||||||
                    limit: -1,
 | 
					 | 
				
			||||||
                    offset: 0
 | 
					 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            })
 | 
					                    _index++;
 | 
				
			||||||
            .catch(()=>{
 | 
					                },
 | 
				
			||||||
                console.log("error");
 | 
					                after: function () {
 | 
				
			||||||
                // const res = JSON.stringify({count:0, data:[]})
 | 
					                    $(loadEle).Loading("close");
 | 
				
			||||||
                callback()
 | 
					                    _result={count: _index, data: _ss}
 | 
				
			||||||
 | 
					                    // _result += '{' + '"count": ' + _index + ', "data":[';
 | 
				
			||||||
 | 
					                    // _result += _ss;
 | 
				
			||||||
 | 
					                    // _result += ']}';
 | 
				
			||||||
 | 
					                    if (typeof callback === 'function') {
 | 
				
			||||||
 | 
					                        // console.log(_result)
 | 
				
			||||||
 | 
					                        _result = JSON.stringify(_result)
 | 
				
			||||||
 | 
					                        callback(_result);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                limit: -1,
 | 
				
			||||||
 | 
					                offset: 0
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        .catch(()=>{
 | 
				
			||||||
 | 
					            console.log("error");
 | 
				
			||||||
 | 
					            // const res = JSON.stringify({count:0, data:[]})
 | 
				
			||||||
 | 
					            callback()
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -35,10 +35,15 @@ class YourTeamNavbar {
 | 
				
			|||||||
        this.element = option.element;
 | 
					        this.element = option.element;
 | 
				
			||||||
        this.type = option.type ?? "left";
 | 
					        this.type = option.type ?? "left";
 | 
				
			||||||
        this.isOpen = false;
 | 
					        this.isOpen = false;
 | 
				
			||||||
 | 
					        this.onlyOneOpen = false;
 | 
				
			||||||
        this.init();
 | 
					        this.init();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    init = function () {
 | 
					    init = function (option = {}) {
 | 
				
			||||||
 | 
					        // this = Object.assign(option ?? {});
 | 
				
			||||||
 | 
					        Object.keys(option).forEach(k => {
 | 
				
			||||||
 | 
					            this[k] = option[k];
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
        this.initClose();
 | 
					        this.initClose();
 | 
				
			||||||
        this.checkIsOpen();
 | 
					        this.checkIsOpen();
 | 
				
			||||||
        $(this.element)[0]._ytNavbar = this;
 | 
					        $(this.element)[0]._ytNavbar = this;
 | 
				
			||||||
@ -115,24 +120,43 @@ class YourTeamNavbar {
 | 
				
			|||||||
        $(this.element).find("[data-nb-node-type=parent]").on("click",this.nbNodeParentOnClick.bind(this))
 | 
					        $(this.element).find("[data-nb-node-type=parent]").on("click",this.nbNodeParentOnClick.bind(this))
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    nbNodeParentOnClick(e){
 | 
					    closeParentCollapse(ele,isAnimation = true){
 | 
				
			||||||
        if(this.chkNbNodeParentIsOpen(e.target)){
 | 
					        $(ele).data("nb-node-status","close").attr("data-nb-node-status","close");
 | 
				
			||||||
            $(e.target).data("nb-node-status","close").attr("data-nb-node-status","close");
 | 
					        $(ele).next("ul").css({transform:"translateY(-5%)"});
 | 
				
			||||||
            $(e.target).next("ul").css({transform:"translateY(-5%)"});
 | 
					        if(isAnimation){
 | 
				
			||||||
            $(e.target).next("ul").animate({
 | 
					        $(ele).next("ul").animate({
 | 
				
			||||||
                opacity:0,
 | 
					            opacity:0,
 | 
				
			||||||
            },200, () => {
 | 
					            },200, () => {
 | 
				
			||||||
                $(e.target).next("ul").hide();
 | 
					                $(ele).next("ul").hide();
 | 
				
			||||||
            })
 | 
					            })
 | 
				
			||||||
            
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            $(e.target).data("nb-node-status","open").attr("data-nb-node-status","open");
 | 
					            $(ele).next("ul").css({opacity:0}).hide();
 | 
				
			||||||
            $(e.target).next("ul").show();
 | 
					        }
 | 
				
			||||||
            $(e.target).next("ul").animate({
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    openParentCollapse(ele){
 | 
				
			||||||
 | 
					        $(ele).data("nb-node-status","open").attr("data-nb-node-status","open");
 | 
				
			||||||
 | 
					            $(ele).next("ul").show();
 | 
				
			||||||
 | 
					            $(ele).next("ul").animate({
 | 
				
			||||||
                opacity:1,
 | 
					                opacity:1,
 | 
				
			||||||
            },200)
 | 
					            },200)
 | 
				
			||||||
            $(e.target).next("ul").css({transform:"translateY(0%)"});
 | 
					            $(ele).next("ul").css({transform:"translateY(0%)"});
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    nbNodeParentOnClick(e){
 | 
				
			||||||
 | 
					        if(this.chkNbNodeParentIsOpen(e.target)){
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            this.closeParentCollapse(e.target);
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            if(this.onlyOneOpen === true){
 | 
				
			||||||
 | 
					                this.closeParentCollapse($(this.element).find("[data-nb-node-type=parent]").filter((i,ele) => ele != e.target),false);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            this.openParentCollapse(e.target)
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -140,9 +164,16 @@ class YourTeamNavbar {
 | 
				
			|||||||
        return $(ele).is("[data-nb-node-status=open]");
 | 
					        return $(ele).is("[data-nb-node-status=open]");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    openAllCollapse(){
 | 
				
			||||||
 | 
					        $(this.element).find("[data-nb-node-type=parent]").each((i,ele) => {
 | 
				
			||||||
 | 
					            if(!this.chkNbNodeParentIsOpen(ele)){
 | 
				
			||||||
 | 
					                $(this.element).find("[data-nb-node-type=parent]").click();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$.fn.YTNavbar = function (method) {
 | 
					$.fn.YTNavbar = function (method,...arg) {
 | 
				
			||||||
    let nbObj = $(this)[0]._ytNavbar;
 | 
					    let nbObj = $(this)[0]._ytNavbar;
 | 
				
			||||||
    let target = $(this).data("target");
 | 
					    let target = $(this).data("target");
 | 
				
			||||||
    if (!nbObj && $(target).length != 0) { 
 | 
					    if (!nbObj && $(target).length != 0) { 
 | 
				
			||||||
@ -156,7 +187,9 @@ $.fn.YTNavbar = function (method) {
 | 
				
			|||||||
    } else if (method == "hide") {
 | 
					    } else if (method == "hide") {
 | 
				
			||||||
        nbObj.close();
 | 
					        nbObj.close();
 | 
				
			||||||
    } else if (method == "init") {
 | 
					    } else if (method == "init") {
 | 
				
			||||||
        nbObj.init();
 | 
					        nbObj.init(arg[0]);
 | 
				
			||||||
 | 
					    } else if(method == "openAllCollapse") {
 | 
				
			||||||
 | 
					        nbObj.openAllCollapse();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return nbObj;
 | 
					    return nbObj;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user