hdw
2018-11-01 d45d08d36896d96e12f3bd4fb283c523dff52eb5
gx_tieta/WebRoot/index.jsp
@@ -24,10 +24,12 @@
    
    <title><s:text name="HomePage"></s:text></title>
   <meta name="renderer" content="webkit">
   <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
   <!-- 导入百度地图API -->
   <link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css" />
   <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=QAerSFEiGDCx1oHPB7Z5XYcBHI6R3qwx"></script>
   <script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.js"></script>
   <link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.5/src/SearchInfoWindow_min.css" />
   <script type="text/javascript" src="js/AreaRestriction_min.js"></script>
   <link href="css/basic.css" type="text/css" rel="stylesheet" />
   <link href="css/common.css" type="text/css" rel="stylesheet" />
   <link href="css/index_layout.css" type="text/css" rel="stylesheet" />
@@ -37,7 +39,7 @@
   <link rel="stylesheet" href="src/css/layui.css">
   <link rel="stylesheet" href="pages/css/mylayui.css">
   <style type="text/css">
      #map .explain-header:hover {
      .explain-header:hover {
         cursor: pointer;
         background-color: #84ABFA !important;
         color: #D6D1D1
@@ -83,12 +85,17 @@
         overflow-y: auto; 
         overflow-x: hidden;
       }
       .BMapLib_bubble_content a {
          color: #2A3AF0;
       }
       .BMapLib_bubble_content a:hover {
          text-decoration: underline;
       }
       body .layui-layer-dialog {
          min-width:400px;
       }
   </style>
   <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
   <script type="text/javascript" src="js/echarts.js"></script>
   <script type="text/javascript" src="js/createTab.js"></script>
   
@@ -102,21 +109,45 @@
      <jsp:include page="nav.jsp" flush="true"/>
      <!--导航结束-->
      <div id="content">
         <!-- <div id="mapStatusOpts" class="map-status-container">
            <div class="layui-form layui-form-pane">
               <label class="layui-form-label">机房类型</label>
               <div class="layui-input-inline">
                  <select name="warnType" id="warnType">
                      <option value="0">全部</option>
                      <option value="1">落后</option>
                      <option value="2">告警</option>
                      <option value="3">延时</option>
                      <option value="4">正常</option>
                  </select>
         <div class="nav-map small">
            <!-- 地图内容筛选  -->
            <div class="map-info-panel-left">
               <div class="map-info-panel-content">
                  <div class="map-info">
                     <span>限制显示区域: </span><span class="k-point red" id="mapVsArea">中国</span>
                     <span class="mr5">机房显示类型:</span><span class="k-point red" id="mapIconStyle">全部</span>
                     <span class="map-info-btn-icon" id="showMapInfoDetail" title="详情"><i class="fa fa-angle-double-down"></i></span>
                  </div>
                  <div class="map-info-detail">
                     <table>
                        <tbody>
                           <tr>
                              <td class="w8em alg-c">限制显示区域:</td>
                              <td>
                                 <select name="mapVsAreaSel" id="mapVsAreaSel">
                                    <option>中国</option>
                                    <option>中国-广西</option>
                                 </select>
                              </td>
                           </tr>
                           <tr>
                              <td class="w8em alg-c">机房显示类型:</td>
                              <td>
                                 <select name="mapIconStyleSel" id="mapIconStyleSel">
                                    <option>全部</option>
                                 </select>
                              </td>
                           </tr>
                        </tbody>
                     </table>
                     <div class="map-info-footer alg-r">
                        <button type="button" class="mr10 map-panel-hide" value="确定" id="mapPanelEn">确定</button>
                        <button type="button" class="mr10 map-panel-hide" value="隐藏">隐藏</button>
                     </div>
                  </div>
               </div>
            </div>
         </div> -->
         <div class="nav-map small">
            <!-- 电池分布图 -->
            <div class="china-map" id="map">
               <div class="img-change" style="display:none;">
@@ -338,6 +369,7 @@
   <script type="text/javascript" src="pages/js/common.js"></script>
   <script type="text/javascript" src="pages/js/pages/siderbar.js"></script>
   <script type="text/javascript" src="pages/js/pages/index-common.js"></script>
   <script type="text/javascript" src="pages/js/GPS.js"></script>
   <script type="text/javascript" src="js/panel.js"></script>
   <script type="text/javascript" src="js/search.js"></script>
   <script type="text/javascript" src="js/changePinYin.js"></script>
@@ -364,6 +396,7 @@
   var search;
   var warnOpts;
   //console.info(BMap);
   var mapDefults = new Image().src = 'image/mapDefault.gif';
   var mapImages = getMapImageUrl();
   // 定义省-市资源内容
   var area = [
@@ -504,12 +537,16 @@
   });
   
   $(function() {   // 显示和隐藏图标说明
      $('#map').on('click', '.explain-header', function() {
         $('#map .explain-list').fadeToggle();
      $('.nav-map').on('click', '.explain-header', function() {
         $('.explain-list').fadeToggle();
      });
      
      $('#map').on('dblclick', '.explain-header', function() {
         return false;
      });
      $('.nav-map').on('click', '.explain-list input', function() {
         setMapImgStyles();
      });
   });
   
@@ -591,7 +628,7 @@
            centerMapByPoint(map); // 根据当前用户设定的位置显示中心点
            map.enableScrollWheelZoom();
            map.disableDoubleClickZoom();
            map.setMapStyle({style: 'grayscale'});   //  设置地图的风格
            //map.setMapStyle({style: 'grayscale'});   //  设置地图的风格
            // 添加地图类型控件
            map.addControl(new BMap.MapTypeControl());
            // 给地图添加工具条(地图-卫星-三维)和比例尺控件
@@ -632,6 +669,17 @@
            var menu = new BMap.ContextMenu();
            var txtMenuItem = [
               {
                  text: '设置中心点',
                  callback: function(e) {
                     myConfirm.show({
                        title: '设置地图默认显示位置',
                        content: '是否确认修改地图默认中心坐标',
                        enfun:updateMapCenterPoint,
                        enparams:[e]
                     });
                  }
               },
               {
                  text: '搜索地址',
                  callback: function(e) {
                     search.showSearch();
@@ -652,15 +700,11 @@
                     smallMap();
                  }
               },
               {
                  text: '设置中心点',
                  callback: function(e) {
                     myConfirm.show({
                        title: '设置地图默认显示位置',
                        content: '是否确认修改地图默认中心坐标',
                        enfun:updateMapCenterPoint,
                        enparams:[e]
                     });
                  text: '返回中心点',
                  callback: function(e){
                     centerMapByPoint(map); // 根据当前用户设定的位置显示中心点
                  }
               }
            ];
@@ -1365,6 +1409,7 @@
   });
   
   $(window).resize(function() {
      console.log(123);
      getMapHt();
   });
   // 改变div的大小
@@ -1468,9 +1513,11 @@
      
      changeMapImgDesc(iconExplain, 'normal');
      
      mapEle.prepend(iconExplain);
      mapEle.parent().append(iconExplain);
      // 设置地图图标种类
      setMapImgStyles();
   }
   // 切换地图图标说明
   function changeMapImgDesc(iconExplain, type) {
      iconExplain.find('.explain-list').remove();
@@ -1488,35 +1535,43 @@
   function mapImgDescNormal(iconExplain) {
      // 机房落后
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var icon = $('<img src="'+mapImages.behind+'" style="float:left">');
      var span = $('<span style="line-height: 30px; text-align:center; margin-left: 4px">电池组落后机房</span>');
      iconList.append(icon);
      var input = $('<input type="checkbox" data-img="item-behind" checked="checked">');
      var icon = $('<img src="'+mapImages.behind+'">');
      var span = $('<span>电池组落后机房</span>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconExplain.append(iconList);
      
      // 机房告警
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var icon = $('<img src="'+mapImages.warn+'" style="float:left;">');
      var span = $('<span style="line-height: 30px; text-align:center; margin-left: 4px">电池组告警机房</span>');
      iconList.append(icon);
      var input = $('<input type="checkbox" data-img="item-warn" checked="checked">');
      var icon = $('<img src="'+mapImages.warn+'">');
      var span = $('<span>电池组告警机房</span>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconList.append('<div class="clear"></div>');
      iconExplain.append(iconList);
      
      // 机房延时
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var icon = $('<img src="'+mapImages.timeout+'" style="float:left">');
      var span = $('<span style="line-height: 30px; text-align:center; margin-left: 4px">电池组放电延时机房</span>');
      iconList.append(icon);
      var input = $('<input type="checkbox" data-img="item-timeout" checked="checked">');
      var icon = $('<img src="'+mapImages.timeout+'">');
      var span = $('<span>电池组放电延时机房</span>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconExplain.append(iconList);
      
      // 正常机房
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var icon = $('<img src="'+mapImages.normal+'" style="float:left">');
      var span = $('<span style="line-height: 30px; text-align:center; margin-left: 4px">正常机房</span>');
      iconList.append(icon);
      var input = $('<input type="checkbox" data-img="item-normal" checked="checked">');
      var icon = $('<img src="'+mapImages.normal+'">');
      var span = $('<span>正常机房</span>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconExplain.append(iconList);
   }
   
@@ -1526,16 +1581,16 @@
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var icon = $('<img src="'+mapImages.nuclear+'" style="float:left">');
      var span = $('<span style="line-height: 30px; text-align:center; margin-left: 4px">核容/停电放电</span>');
      iconList.append(icon);
      iconList.append(span);
      iconList.append(icon);
      iconExplain.append(iconList);
      
      // 告警
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var icon = $('<img src="'+mapImages.devalarm+'" style="float:left;">');
      var span = $('<span style="line-height: 30px; text-align:center; margin-left: 4px">61850设备告警</span>');
      iconList.append(icon);
      iconList.append(span);
      iconList.append(icon);
      iconList.append('<div class="clear"></div>');
      iconExplain.append(iconList);
      
@@ -1543,16 +1598,16 @@
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var icon = $('<img src="'+mapImages.precharge+'" style="float:left">');
      var span = $('<span style="line-height: 30px; text-align:center; margin-left: 4px">61850预充电</span>');
      iconList.append(icon);
      iconList.append(span);
      iconList.append(icon);
      iconExplain.append(iconList);
      
      // 在线浮充
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var icon = $('<img src="'+mapImages.float+'" style="float:left">');
      var span = $('<span style="line-height: 30px; text-align:center; margin-left: 4px">61850在线浮充</span>');
      iconList.append(icon);
      iconList.append(span);
      iconList.append(icon);
      iconExplain.append(iconList);
   }
   
@@ -1602,17 +1657,16 @@
   }
   
   // 生成地图图标
   function createMapDot(map, dotList) {
   function createMapDot(map, dotList, isTop) {
      // 清空覆盖物和对应的mk点
      mkList = [];
      // 遍历查询内容生成对应的图标
      for(var i = 0; i < dotList.length; i++) {
      for(var i = 0; i<dotList.length; i++) {
         var isShow = checkMapImgStyle(dotList[i].msg);
         var dotIcon = new BMap.Icon(getMapStateImg(mapImages, dotList[i].msg), new BMap.Size(36, 30));   // 设置图片
         var pt = new BMap.Point(dotList[i].lng, dotList[i].lat);
         
         var mk = new BMap.Marker(pt, {icon: dotIcon});   // 定义marker点
         // 删除指定的点(该点会在本函数后面重新创建)
         deletePoint(map, dotList[i].title);
         
@@ -1637,16 +1691,23 @@
            //showMapPanel(target, dotList);
            searchPanelInfo(target);
         });
         if(isTop) {
            mk.setTop(true);
         }
         mkList.push(mk);
         // 向地图添加覆盖物
         map.addOverlay(mk);
         if(isShow) {
            map.addOverlay(mk);
         }
      }
   }
   
   // 删除地图上的指定点
   function deletePoint(map, msg){
      var allOverlay = map.getOverlays();
      for (var i = 0; i < allOverlay.length -1; i++){
      for (var i = 0; i < allOverlay.length; i++){
         try{
            if(allOverlay[i].getLabel().content == msg){
               map.removeOverlay(allOverlay[i]);
@@ -1659,6 +1720,35 @@
      }
   }
   
   // 获取地图需要显示图标的类型
   var magImgStyles = [];
   function setMapImgStyles() {
      var ipts = $('#mapImgDesc .explain-list input');
      magImgStyles = [];
      ipts.each(function(i) {
         var imgStyle = $(this).data('img');
         if($(this).is(':checked')) {
            magImgStyles.push(imgStyle);
         }
      });
      magImgStyles.push('');
      // 根据当前内容更新地图图标
      searchStation();
   }
   // 检测当前图标是否符合
   function checkMapImgStyle(imgStyle) {
      var isShow = false;
      for(var i=0; i<magImgStyles.length; i++) {
         if(magImgStyles[i] == imgStyle) {
            isShow = true;
            break;
         }
      }
      return isShow;
   }
   // 创建告警点
   function createWarnDot(map, warnDotList) {
      for(var i = 0; i < warnDotList.length; i++) {
@@ -1763,7 +1853,7 @@
   
   function showMapPanel(target, warnList) {
      var point = target.point;
      console.log(target.getLabel());
      //console.log(target.getLabel());
      var searchInforWin = null;
      for(var i = 0; i < warnList.length; i++) {
         if(warnList[i].lng == point.lng && warnList[i].lat == point.lat) {
@@ -1897,6 +1987,8 @@
   function getAddHomeInfo() {
      var lng = $('.add-panel .lng').text();                        // 获取经度
      var lat = $('.add-panel .lat').text();                        // 获取纬度
      var wgsPoint = GPS.bd2wgs(lat, lng);                        // 百度地图坐标转化为GPS
      var addr = $('.add-panel .addr').text();                     // 获取地址
      var homeName = $('.add-panel select option:selected').text();      // 机房名称
      var homeId = $('.add-panel select option:selected').val();         // 机房ID
@@ -1905,8 +1997,8 @@
            StationId:homeId,         //机房编号
            StationName:homeName,      //机房名称
            Address:addr,            //机房物理信息
            longitude:lng,            // 经度
            latitude:lat,            // 纬度
            longitude: wgsPoint.lon,            // 经度
            latitude: wgsPoint.lat,            // 纬度
            information:"",            //备注
         };
         var json = JSON.stringify(temp);
@@ -1989,6 +2081,16 @@
      // 根据可视范围显示坐标点
      var dots = [];
      var currMarkers = {};
      // 初始化
      function init() {
         dots = [];
         currMarkers = {};
      }
      // init函数绑定到GLOBAL.BMap下
      gl.BMap.init = init;
      // 查询当前范围内容的图标
      function queryInRect(map, callback) {
         var cp = map.getBounds(); // 返回map可视区域,以地理坐标表示  
@@ -2108,22 +2210,21 @@
   
   var allStation = [];
   var mapPages = {
      pageSize:100,             // 每页的行数
      pageSize:50,             // 每页的行数
      pageCurr:1,              // 当前页码数
      pageAll:1,               // 数目
      pageNum: 0,
      pageNew: true
   };
   //查询机房
   function searchStation(setRect){
      var temp = createSearchParam();
      var json = JSON.stringify(temp);
      var bmap = GLOBAL.BMap;      // BMap的命名空间
      var bmap_s = bmap.Search;   // Search的命名空间
      commonDot = new Array();
      warnDotList = new Array();
      dischargeDotList = [];
      behindCellList = [];
      var init = bmap.init;
      //init();
      // 查询后台
      $.ajax({    
           type: "post",             
           //url: "BattMap_informationAction!searchAll",            
@@ -2142,21 +2243,22 @@
               // 设置分页信息
               mapPages.pageAll = list.length;
               setMapPages();
               //console.log(123);
               // 遍历查询结果
               for(var i=0;i<list.length;i++){
                  var _list = list[i];
                  allStation.push(formatAllStation(_list));
               }
               // 显示区域的图标
               bmap.setDots(allStation);
               bmap.queryInRect(map, createMapDot);
               updateStation();
               // 是否第一次执行
               if(setRect) {
                  map.addEventListener("moveend", bmap.queryInRect.bind({},map, createMapDot));  // 拖动
                  map.addEventListener("zoomend", bmap.queryInRect.bind({},map, createMapDot)); // 缩放
                  updateStation();
               }
            }
           }             
@@ -2166,9 +2268,11 @@
   // 格式化查询结果
   function formatAllStation(list) {
      var obj = new Object();
      // GPS坐标转化为百度坐标
      var point = GPS.wgs2bd(list.latitude, list.longitude);
      // 构造结果集
      obj.lng = list.longitude;
      obj.lat = list.latitude;
      obj.lng = point.lon;
      obj.lat = point.lat;
      obj.title = list.StationName;
      obj.sId = list.StationId;
      obj.fbsId = list.FBSDeviceId;
@@ -2197,6 +2301,7 @@
           data: "json="+JSON.stringify(mapPages),
           success: function(result) {
              var data = JSON.parse(result.result);
              //console.log(data);
              for(var i=0; i<data.length; i++) {
                 var _data = data[i];
                 var _list =  formatUpdateStation(_data);
@@ -2208,16 +2313,16 @@
                 }
              }
              
              createMapDot(map, updateStationData);
              createMapDot(map, updateStationData, true);
              // 更新分页信息
              mapPages.pageCurr++;
              if(mapPages.pageCurr>mapPages.pageNum) {
              if(mapPages.pageCurr>mapPages.pageNum || updateStationData.length<mapPages.pageSize) {
                 mapPages.pageCurr=1;
                 mapPages.pageNew=false;
              }
              
              setTimeout(updateStation, 4000);
           }
      });
   }
@@ -2226,9 +2331,12 @@
   function formatUpdateStation(list) {
      var obj = {};
      var data = list.data;
      console.log(list);
      // GPS坐标转化为百度坐标
      var point = GPS.wgs2bd(data.latitude, data.longitude);
      // 构造结果集
      obj.lng = data.longitude;
      obj.lat = data.latitude;
      obj.lng = point.lon;
      obj.lat = point.lat;
      obj.title = data.StationName;
      obj.sId = data.StationId;
      obj.fbsId = data.FBSDeviceId;
@@ -2236,6 +2344,19 @@
      obj.msg = list.msg;
      obj.num = list.num;
      return obj;
   }
   // 根据allStation的值去更新内容
   function updateMapByAllStation() {
      var bmap = GLOBAL.BMap;      // BMap的命名空间
      var init = bmap.init; // 初始化内容
      // 初始化地图内容
      init();
      // 显示区域的图标
      bmap.setDots(allStation);
      bmap.queryInRect(map, createMapDot);
   }
   
   // 查询机房面板信息
@@ -2246,7 +2367,6 @@
         alert('面板信息查询失败!');
         return;
      }
      var temp = {
         StationId: stationInfo.sId
      };
@@ -2261,7 +2381,7 @@
            var rs = JSON.parse(result.result);
            if(rs.length != 0) {
               var data = rs[0];
               console.info(data);
               //console.info(data);
               var content = '<div style="padding:6px;"><span>蓄电池组告警数目:</span>'+data.code+'<a style="margin-left: 14px" href="javascript:loadToWarnPage();">详情>></a></div>'+
                     '<div style="padding:6px;"><span>蓄电池组落后数目:</span>'+data.sum+'<a style="margin-left: 14px" href="javascript:loadToBehindPage();">详情>></a></div>'+
                     '<div style="padding:6px;"><span>蓄电池组延时数目:</span>'+data.newsum+'<a style="margin-left: 14px" href="javascript:loadToDischargeDelay();">详情>></a></div>'+
@@ -2859,6 +2979,7 @@
      rs.devalarm = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_dev_alarm}";   // 设备告警
      rs.precharge = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_pre_charge}";   // 预充电
      rs.float = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_online_charge}";   // 浮充
      rs.defaults = mapDefults;
      return rs;
   }
   /* $(function(){
@@ -3137,6 +3258,9 @@
    function getMapStateImg(imgs, cla) {
       var rs = imgs.normal;
       switch(cla) {
          case 'item-normal':
             rs = imgs.normal;
             break
          case 'item-warn':   // 告警
             rs = imgs.warn;
             break;
@@ -3157,6 +3281,9 @@
             break;
          case 'item-pre_charge':   // 61850预充电
             rs = imgs.precharge;
             break;
          default:
             rs = imgs.defaults;
             break;
       }
       
@@ -3479,6 +3606,62 @@
         });
      }
      
      // 地图左上方面板模块
      var mapViewArea = GLOBAL.BMap.mapViewArea;   // 地图显示区域的信息
      // 点击面板上方的小图标显示设定信息
      $('#showMapInfoDetail').click(function() {
         $('.map-info-detail').slideToggle();
      });
      // 点击隐藏
      $('.map-info-detail .map-panel-hide').click(function() {
         $('.map-info-detail').slideUp();
      });
      // 遍历mapViewArea获取mapVsAreaSel下拉框的值
      var mapVsAreaSel = $('#mapVsAreaSel');
      var mapVsAreaSelOpts = [];
      for(var i=0; i<mapViewArea.length; i++) {
         var _data = mapViewArea[i];
         var tmp = getOptionsData(_data.name, _data.area, _data);
         mapVsAreaSelOpts.push(tmp);
      }
      // 生成面板中的mapVsAreaSel
      createOptions(mapVsAreaSel, mapVsAreaSelOpts);
      // 显示默认区域-中国
      setMapViewArea(mapViewArea[0]);
      centerMapByPoint(map); // 根据当前用户设定的位置显示中心点
      // 点击面板确定按钮
      $('#mapPanelEn').click(function() {
         var areaData = mapVsAreaSel.find('option:selected').data('attr');
         // 设置头部可视区域的文本
         $('#mapVsArea').text(areaData.name);
         // 设置可视区域
         setMapViewArea(areaData);
      });
      // 设置地图的可视区域
      function setMapViewArea(data) {
         var left = new BMap.Point(data.left.lng, data.left.lat);
         var right = new BMap.Point(data.right.lng, data.right.lat);
         var b = new BMap.Bounds(left, right);
         var cLng = (data.left.lng+data.right.lng)/2;
         var cLat = (data.left.lat+data.right.lat)/2;
         var f = new BMap.Point(cLng, cLat);
         map.panTo(f, {
                noAnimation: "no"
            });
         try {
            BMapLib.AreaRestriction.setBounds(map, b);
         } catch (e) {
            alert(e);
         }
      }
   });
   </script> 
</html>