admin:huo123456@qq
2019-01-21 d42cb45f8fc0932e9a0766f98c445635a85b22d3
gx_tieta/WebRoot/Top.jsp
@@ -64,27 +64,24 @@
         <div class="batt-state">
         
            <div class="list">
               <div class="list-contain"><s:text name='Computer_room'/><s:text name='Power_cut'/><s:text name='Num'/>:<a href="batt-state-manage.jsp?station_state=2" class="badge default" id="poweroff_num">0</a></div>      <!-- 机房停电数 -->
               <div class="list-contain"><s:text name='Power_cut'/><s:text name='Computer_room'/><s:text name='Num'/>:<a href="batt-state-manage.jsp?station_state=2" class="badge default" id="poweroff_num"><span class="num">0</span></a></div>      <!-- 机房停电数 -->
            </div>
            <div class="list">
               <div class="list-contain"><s:text name="Batt"/><s:text name="Alarm"/><s:text name="Num"/>:<a href="elewarn.jsp" class="badge danger" id="batt_alarm_num">0</a></div>                        <!-- 电池告警数 -->
               <div class="list-contain">续航不足机房数:<a href="batt-life-manage.jsp?is_stand=1" class="badge default" id="weak_home"><span class="num">0</span></a></div>      <!-- 机房续航不足数 -->
            </div>
            <div class="list">
               <div class="list-contain"><s:text name="Equipment"/><s:text name="Alarm"/><s:text name="Num"/> :<a href="equipWarn1.jsp" class="badge danger" id="dev_alarm_num">0</a></div>                  <!-- 设备告警数 -->
               <div class="list-contain"><s:text name="Batt"/><s:text name="Alarm"/><s:text name="Num"/>:<a href="elewarn.jsp" class="badge danger" id="batt_alarm_num"><span class="num">0</span></a></div>                        <!-- 电池告警数 -->
            </div>
            <div class="list">
               <div class="list-contain"><s:text name="Capacity"/><s:text name="Behind_number_monomer"/>:<a href="taskplan.jsp" class="badge default" id="batt_low_num">0</a></div>                                             <!-- 落后单体数 -->
               <div class="list-contain"><s:text name="Capacity"/>落后单体数:<a href="taskplan.jsp" class="badge default" id="batt_low_num"><span class="num">0</span></a></div>                                             <!-- 落后单体数 -->
            </div>
            <c:forEach var="cust" items="${sessionScope.custompages}">
               <c:if test="${cust.submenu eq 'Discharge_plan_manage' && cust.subflag eq 1}">
                  <div class="list">
                     <div class="list-contain"><s:text name="Unfinished"/><s:text name="Discharge_plan"/><s:text name="Num"/>:<a href="dischargeplan.jsp?discharge-state=0" class="badge default" id="discharge_plan_num">0</a></div>   <!-- 未完成放电计划数 -->
                  </div>
               </c:if>
            </c:forEach>
            <div class="list">
               <div class="list-contain"><s:text name="Equipment"/><s:text name="Alarm"/><s:text name="Num"/> :<a href="equipWarn1.jsp" class="badge danger" id="dev_alarm_num"><span class="num">0</span></a></div>                  <!-- 设备告警数 -->
            </div>
            <div class="list">
               <div class="list-contain">
                  核容测试设备:<a href="javascript:void(0);" class="badge default" id="nuclear_test">0</a>
                  核容测试设备数:<a href="javascript:void(0);" class="badge default" id="nuclear_test"><span class="num">0</span></a>
               </div>
            </div>
         </div>
@@ -127,11 +124,26 @@
            <div class="cell-list plan-ele">
               <img src="image/webStatus/plan_normal.gif" alt="放电计划监测线程" title="放电计划监测线程:正常">
            </div>
            <div class="cell-list break-ele">
            <div class="cell-list break-ele" style="display: none;">
               <img src="image/webStatus/break_ele_normal.gif" alt="机房停电监测线程" title="机房停电监测线程:正常">
            </div>
            </div>
            <div class="cell-list control">
               <img src="image/webStatus/control_normal.gif" alt="线程监控程序" title="线程监控程序运行:正常">
            </div>
            <div class="cell-list voice">
               <i class="fa fa-bell" title="关闭语音播报"></i>
               <i class="fa fa-bell-slash" title="开启语音播报"></i>
            </div>
            <!-- <div class="cell-list full-screen-top">
               <i class="fa fa-arrows" title="退出全屏"></i>
               <i class="fa fa-arrows-alt" title="开启全屏"></i>
            </div> -->
            <div class="cell-list server-time" style="white-space: nowrap">
               2018-11-26 00:00:00
            </div>
            <div class="cell-list batt-count" style="white-space: nowrap; color: #FF0000;">
               电池总数:<span class="batt-num">0</span>&nbsp;,&nbsp;机房总数:<span class="dev-num">0</span>
            </div>         
         </div>
         <div class="international">
@@ -188,15 +200,45 @@
      </div>
   </div>
  </body>
  <script type="text/javascript">
   // 检测页面是否被访问
   var pageIsVisit = false;
   ;(function($) {
      // 隐藏的原型
       var hiddenProperty = 'hidden' in document ? 'hidden' :
          'webkitHidden' in document ? 'webkitHidden' :
          'mozHidden' in document ? 'mozHidden' :
          null;
          // 页面初始化
          if (!document[hiddenProperty]) {
              pageIsVisit = true;
          }else{
              pageIsVisit = false;
          }
       var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');
       var onVisibilityChange = function(){
           if (!document[hiddenProperty]) {
               pageIsVisit = true;
           }else{
               pageIsVisit = false;
           }
       }
         document.addEventListener(visibilityChangeEvent, onVisibilityChange);
   })(jQuery);
  </script>
  <script src="pages/js/base.js"></script>
  <script src="pages/js/common.js"></script>
  <script src="js/dev.js"></script>
  <script src="js/createTab.js"></script>
  <script type="text/javascript" src="js/scrollBar.js"></script>
  <script type="text/javascript" src="js/VoiceUtil.js"></script>
  <script type="text/javascript" src="js/rightmenu.js"></script>
  <script type="text/javascript">
     $(document).ready(function(){
      setUserName();            //设置用户名称
      //setUserName();            //设置用户名称
      
      searchRecentlyAlarm();      //查询最近30秒的设备和电池告警
      
@@ -215,12 +257,12 @@
            });
         }
      });
      searchAlm();            //查询电池告警总数
      searchAlm(pageIsVisit);            //查询电池告警总数(我在base.js里)
      searchlowmon();            //查询落后单体总数
      searchpoweroff();         //查询机房停电总数
      searchdevalarm();         //查询设备实时告警总数
      searchnotcomplan();         //查询未放电的计划总数
      searchWeakHome();         //查询机房续航不足的个数
      /* setInterval(function(){
         searchlowmon();         //查询落后单体总数
         searchpoweroff();      //查询机房停电总数
@@ -234,6 +276,13 @@
   
   //查询落后单体总数
   function searchlowmon(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchlowmon, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "BadBatt_monAction!searchNums",            
@@ -243,7 +292,7 @@
           success: function(data){ 
              data = eval("("+data+")");
              var model = eval("("+data.result+")");
              $('#batt_low_num').text(model.sum);
              $('#batt_low_num .num').text(model.sum);
              setTimeout(searchlowmon, 5000);
           },
           error:function() {
@@ -254,6 +303,12 @@
   
   //查询机房停电总数
   function searchpoweroffOld(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchpoweroffOld, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "BattPower_offAction!serchPowerOff",            
@@ -263,7 +318,7 @@
           success: function(data){ 
              data = eval("("+data+")");
              var model = eval("("+data.result+")");
              $('#poweroff_num').text(model.sum);
              $('#poweroff_num .num').text(model.sum);
              setTimeout(searchpoweroff, 5000);
           },
           error:function() {
@@ -274,6 +329,11 @@
   
   //查询机房停电总数
   function searchpoweroff(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchpoweroff, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "Bts_station_stateAction_action_serchByState",            
@@ -283,7 +343,7 @@
           success: function(data){ 
              var model = eval("("+data.result+")");
              //console.info(model);
              $('#poweroff_num').text(model.newsum);
              $('#poweroff_num .num').text(model.newsum);
              setTimeout(searchpoweroff, 5000);
           },
           error:function() {
@@ -294,6 +354,11 @@
   
   //查询设备告警总数
   function searchdevalarm(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchdevalarm, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "Batt_devalarm_dataAction!searchNums",            
@@ -303,7 +368,7 @@
           success: function(data){ 
              data = eval("("+data+")");
              var model = eval("("+data.result+")");
              $('#dev_alarm_num').text(model.sum);
              $('#dev_alarm_num .num').text(model.sum);
              setTimeout(searchdevalarm, 5000);
           },
           error:function() {
@@ -314,6 +379,11 @@
   
   //查询放电计划延迟总数
   function searchnotcomplan(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchnotcomplan, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "BattDischarge_planAction!searchNums",            
@@ -332,7 +402,82 @@
      });
   }
   
   // 机房续航不足个数
   function searchWeakHome() {
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchWeakHome, 5000);
         return;
      }
      $.ajax({
         type: 'post'
         ,async: true
         ,url: 'Batt_enduranceAction!serchxuhangNotInThree'
         ,data: null
         ,dataType: 'json'
         ,success: function(res) {
            var rs = JSON.parse(res.result);
            $('#weak_home .num').text(rs.sum);
            setTimeout(searchWeakHome, 5000);
         }
      });
   }
   
   // 查询所有的设备数
   searchAllDevNum();
   function searchAllDevNum() {
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchAllDevNum, 5000);
         return;
      }
      $.ajax({
         type: 'post'
         ,async: true
         ,url: 'BattInfAction!serchByDeviceId'
         ,data: null
         ,dataType: 'json'
         ,success: function(res) {
            var rs = JSON.parse(res.result);
            if(rs.code == 1) {
               var sum = rs.sum;
               $('.cell-list.batt-count .dev-num').text(sum);
               // $('.batt-state .dev-num').text(sum);
            }
            // 延时执行
            setTimeout(searchAllDevNum, 5000);
         }
      });
   }
   // 查询所有的电池组数
   searchAllEleGroupNum();
   function searchAllEleGroupNum() {
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchAllEleGroupNum, 5000);
         return;
      }
      $.ajax({
         type: 'post'
         ,async: true
         ,url: 'BattInfAction!serchByInstall_count'
         ,data: null
         ,dataType: 'json'
         ,success: function(res) {
            var rs = JSON.parse(res.result);
            if(rs.code == 1) {
               var sum = rs.sum;
               $('.cell-list.batt-count .batt-num').text(sum);
               //$('.batt-state .batt-num').text(sum);
            }
            // 延时执行
            setTimeout(searchAllEleGroupNum, 5000);
         }
      });
   }
   
   
   $(function(){
@@ -362,7 +507,6 @@
   // 添加天气插件和电池信息长度控制
   $(function() {
      limitWidth();
      //addWeather();
   });
   // 限制显示个数
@@ -486,6 +630,11 @@
    * 实时查询告警信息
    */
   function searchBattAndDevAlarm(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchBattAndDevAlarm, 3000);
         return;
      }
      $.ajax({    
           type:"post",             
           url: "Battalarm_dataAction!serchTopAlmTen",            
@@ -527,6 +676,36 @@
      warnAlarmData = temp;
   }
   
   seachServerTime();
   //获取服务器上的时间
   function seachServerTime(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(seachServerTime, 1000);
         return;
      }
      $.ajax({
           type:"post",
           url: "User_infAction!searchServerTime",
           async:true,
           dataType:'text',
           data:null,
           success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            if(model.code == 1){
               $('.server-time').text(model.msg);
            }else{
            }
            setTimeout(seachServerTime, 1000);
          },
          error:function() {
             setTimeout(seachServerTime, 2000);
          }
      });
   }
   // 监测当前的告警信息是否为最新的告警
   function checkWarnDataIsNew(warnData) {
      var rs = 0;
@@ -557,7 +736,7 @@
   
   //查询电池告警信息
   function searchBattAlarm(data){
      console.info(data);
      //console.info(data);
      $.ajax({    
           type:"post",             
           url: "Battalarm_dataAction!serchBatt_alarm",            
@@ -623,6 +802,11 @@
   
   //查询最近30内的设备和电池告警并播报语音
   function searchRecentlyAlarm(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchRecentlyAlarm, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "Battalarm_dataAction!serchIn30",            
@@ -652,7 +836,7 @@
   
   // 核容测试模块
   $(function() {
      var arrTh = ['机房名称', '设备ID', '设备名称','设备状态', '在线电压(V)', '组端电压(V)', '组端电流(mA)','设备温度(℃)', '已测容量(AH)', '设备告警', '已测时间'];
      var arrTh = ['机房名称', '设备ID', '设备名称','设备状态', '在线电压(V)', '组端电压(V)', '组端电流(A)','设备温度(℃)', '已测容量(AH)', '设备告警', '已测时间'];
      var arrTd = [];
      var eleTh = $('#navNuclearTest-data .nuclearTest-tbl-header');
      var eleTd = $('#navNuclearTest-data .nuclearTest-tbl-body');
@@ -691,6 +875,36 @@
            alert('当前为详情页,不用跳转!');
         }
      });
      var menuItems = [{
         txt: '实时-监测数据',cla: 'menu-control'
      }];
      eleTd.on('mousedown', 'tr',function(e) {
         // 判断是否为右键
         if(e.which == 3) {
            var disX = (e || event).clientX + 10;   //获取鼠标点击的横坐标
            var disY = (e || event).clientY + 10;   // 获取鼠标点击的纵坐标
            var trData = $(this).data('attr');
            menuItems[0].data = trData;
            //console.log(trData);
            rightMenu.showMenu(menuItems, disX, disY);
         }
      });
      // 点击实时-监测数据跳转
      $('body').on('click', '.menu-control', function() {
         var _data = $(this).data('data');
         //console.log(_data);
         var province = _data.stationName1;
         var city = _data.stationName2;
         var county = _data.stationName5;
         var home = _data.stationName;
         var url = skipUrl('control.jsp',province,city,county,home);
         window.open(url);
      });
      //查询当前用户管理的BTS正在处于核容测试的设备记录
       function searchNuclear_cap(){
          $.ajax({    
@@ -703,7 +917,7 @@
               var model = eval('('+data.result+')');
               //console.info(model);
               if(model.code == 1){
                  $('#nuclear_test').text(model.data.length);
                  $('#nuclear_test .num').text(model.data.length);
                  if(model.data.length != 0) {
                     if(!$('#navNuclearTest').hasClass('hide') || isNew) {
                        createTblByModel(model);
@@ -711,7 +925,7 @@
                     isNew=false;
                  }
               }else {
                  $('#nuclear_test').text(0);
                  $('#nuclear_test .num').text(0);
                  createFullTbl(eleTh, eleTd, arrTh, []);
               }         
                },
@@ -738,9 +952,16 @@
            arrTd.push(data.dev_temp);                                 // 设备温度
            arrTd.push(data.dev_captest_cap);                           // 已测容量
            arrTd.push(getStateByArray(data.dev_alarmstate,BTS_alarmstates));   // 设备告警
            arrTd.push(formatSeconds(data.num));                        // 已测时间
            arrTd.push(formatSeconds(data.dev_captest_timelong));            // 已测时间
         }
         createFullTbl(eleTh, eleTd, arrTh, arrTd);
         // 给每一行添加数据
         var trList = eleTd.find('tbody tr');
         // 遍历内容给tr添加attr
         for(var i=0; i<model.data.length; i++) {
            trList.eq(i).data('attr', model.data[i]);
         }
         
         // 根据告警值设置温度,k1电阻,导通压降的字体颜色
         /* var trList = eleTd.find('tbody tr');
@@ -778,5 +999,170 @@
          return str;
       }
   });
   /**
     检测服务器连接是否正常
     程序功能: 通过请求后台程序如果三次都请求失败认为服务器挂掉,跳转到登陆页面
   */
   ;(function ($) {
      var url = window.location.href;
      var loginPatt = /\/login.jsp/;
      // 判断当前页面不是登陆页面开始执行检测服务器状态
      if(!loginPatt.test(url)) {
         //checkServer();
      }
      var linkNum = 0;    // 测试服务器连接计数 =3 跳转到登陆页面
      function checkServer() {
          $.ajax({
              url:'User_infAction!checkService',
              type: 'post',
              async: true,
              success: function(rs) {
                  linkNum = 0;    // 初始化测试连接
                  setTimeout(checkServer, 200);
              },
              error:function() {
                  // 网络连接不正常
                  if(!navigator.onLine) {
                       linkNum = 0;
                       setTimeout(checkServer, 200);
                  }else{
                      linkNum++;
                       // 服务器连接不正常
                       if(linkNum == 3) {
                          console.info('出现第'+linkNum+"次测试服务器连接失败!跳转到登陆");
                          // 网络正常但服务器连续多次检测不正常跳转到登陆页面
                         alert('网络连接异常,请检查网络连接是否正常!');
                          window.location.replace("login.jsp");
                       }else {
                          console.info('出现第'+linkNum+"次测试服务器连接失败!");
                          checkServer();
                       }
                  }
              }
          });
      }
   })(jQuery);
   // 监测后台session是否存判断当前用户连接是否合法
   ;(function ($) {
      var url = window.location.href;
      var loginPatt = /\/login.jsp/;
      // 判断当前页面不是登陆页面开始执行检测服务器状态
      if(!loginPatt.test(url)) {
         checkServer();
      }
      var linkNum = 0;    // 测试服务器连接计数 =3 跳转到登陆页面
      function checkServer() {
         $.ajax({
              url:'LoginAction_check',
              type: 'post',
              async: true,
              success: function(res) {
                 //console.log(res);
                 var rs = JSON.parse(res.result);
                 if(rs.code==0) {
                    linkNum = 0;    // 初始化测试连接
                     setTimeout(checkServer, 100);
                 }else {
                    alert(rs.msg);
                     window.location.replace("login.jsp");
                 }
              },
              error: function() {
                 // 网络连接不正常
                  if(!navigator.onLine) {
                       linkNum = 0;
                       setTimeout(checkServer, 100);
                  }else{
                      linkNum++;
                       // 服务器连接不正常
                       if(linkNum == 3) {
                          console.info('出现第'+linkNum+"次测试服务器连接失败!跳转到登陆");
                          // 网络正常但服务器连续多次检测不正常跳转到登陆页面
                         alert('网络连接异常,请检查网络连接是否正常!');
                          window.location.replace("login.jsp");
                       }else {
                          console.info('出现第'+linkNum+"次测试服务器连接失败!");
                          checkServer();
                       }
                  }
              }
           });
      }
   })(jQuery);
   // 设置页面是否为全屏显示
   ;(function($, window, document, undefined){
      //判断是否全屏
      function isFull() {
          var fullscreenElement =
              document.fullscreenEnabled
              || document.mozFullscreenElement
              || document.webkitFullscreenElement;
          var fullscreenEnabled =
              document.fullscreenEnabled
              || document.mozFullscreenEnabled
              || document.webkitFullscreenEnabled;
          if (fullscreenElement == null)
          {
              return false;
          } else {
              return true;
          }
      }
      // 全屏
      function fullScreen() {
         if(document.documentElement.RequestFullScreen){
                document.documentElement.RequestFullScreen();
            }
            //兼容火狐
            if(document.documentElement.mozRequestFullScreen){
                document.documentElement.mozRequestFullScreen();
            }
            //兼容谷歌等可以webkitRequestFullScreen也可以webkitRequestFullscreen
            if(document.documentElement.webkitRequestFullScreen){
                document.documentElement.webkitRequestFullScreen();
            }
            //兼容IE,只能写msRequestFullscreen
            if(document.documentElement.msRequestFullscreen){
                document.documentElement.msRequestFullscreen();
            }
      }
      // 关闭全屏
      function exitFullScreen() {
         if(document.exitFullScreen){
                document.exitFullscreen()
            }
            //兼容火狐
            if(document.mozCancelFullScreen){
                document.mozCancelFullScreen()
            }
            //兼容谷歌等
            if(document.webkitExitFullscreen){
                document.webkitExitFullscreen()
            }
            //兼容IE
            if(document.msExitFullscreen){
                document.msExitFullscreen()
            }
      }
      $('.cell-list.full-screen-top').click(function() {
         if($(this).hasClass('close-full-screen')) {
            exitFullScreen();
         }else {
            fullScreen();
         }
         $(this).toggleClass('close-full-screen')
      });
   })(jQuery, window, document);
  </script>
</html>