xufenglei
2018-06-12 245ab3bcc323dbcc877f8d49fb725b2eec91e118
src/main/webapp/view/map.jsp
@@ -1,7 +1,12 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page isELIgnored="false" %>
<% String version ="1.000003";%>
<%
   String version ="1.000004";
   response.setHeader("Cache-Control","no-store");
   response.setHeader("Pragrma","no-cache");
   response.setDateHeader("Expires",0);
%>
<!DOCTYPE html>
<head>
    <meta charset="utf-8" />
@@ -43,7 +48,17 @@
  padding:0;
  list-style:none;
}
a{
    color: #1900c6;
   text-decoration: none;
   cursor: pointer;
   font-size: 14px;
   font-weight: 300;
}
a:hover {
   text-decoration: underline;
   color: #e60012;
}
#popup_box {
   top: 75px;
   left: 20px;
@@ -100,7 +115,8 @@
   float: right;
   width: 70px;
   height: 28px;
   line-height: 28px
   line-height: 28px;
   cursor:pointer;
}
.list {
@@ -108,26 +124,31 @@
   clear: both;
   zoom: 1
}
.list-chart-span {
   cursor: pointer;
   background-color: #4c9bf1
}
.list li {
   padding: 10px 0;
   border-bottom: 1px dotted #eee;
   line-height: 40px;
   height: 40px;
   font-size: 20px;
   cursor: pointer;
   /*cursor: pointer;*/
}
.list span{
   float: right;
   position: relative;
   right: 18px;
   right: 5px;
   border-radius:4px;
   width: 70px;
   width: 40px;
   text-align: center;
   height: 24px;
   line-height: 24px;
   font-size: 16px;
   font-size: 14px;
   font-weight: bolder;
   color:  white;
   margin: 10px 0;
   padding:2px 0;
   margin-right: 8px;
@@ -139,6 +160,7 @@
.list .state01 {
   background-color: #FF9;
    color: #ff7f00;
}
.list .state02 {
@@ -151,9 +173,9 @@
}
.list .state04 {
   background-color: #eee;
   color: #777
   /*background-color: #eee;*/
   /*color: #777 ;*/
   background-color: #738d99 ;
}
         /*
           * 外面盒子样式---自己定义
@@ -225,9 +247,36 @@
.equ-data-box .equ-data-list li .grade01{color:#282828;background:url(/img/list_num_yellow.png) left top no-repeat}
.equ-data-box .equ-data-list li .grade02{background:url(/img/list_num_orange.png) left top no-repeat}
.equ-data-box .equ-data-list li .grade03{background:url(/img/list_num_red.png) left top no-repeat}
.tools_box{
   position: absolute;
   height: 120px;
   width: 400px;
   right: 1px;
   top: 20px;
   z-index: 1;
}
 .tools_box .charts_btn {
    position: relative;
   float: right;
   margin: 0;
   border: 0;
    height: 85px;
    width: 85px;
    background:url(/img/charts_btn_bg_1.png) left top no-repeat;
   background-size: 70%;
 }
 .tools_box .charts_btn:hover {
    cursor:pointer;
    background:url(/img/charts_btn_bg_2.png) left top no-repeat;
    background-size: 70%;
 }
</style>
<body>
<div class="main_body">
       <div class="tools_box">
         <div class="charts_btn">
         </div>
      </div>
       <div class="search_box">
      <button id="searchBtn" type="button">搜索</button>
      <input id="searchParam"/>
@@ -237,8 +286,8 @@
         </div>
     </div>
     <div id="mapCanvas"></div>
     <div id="map_params" style="display: none;">
        ${requestScope.map_params}
     <div id="mapParams" style="display: none;">
        ${requestScope.mapParams}
     </div>
</div>
</body>
@@ -248,18 +297,20 @@
//页面初始化
(function($) {
   var moralMap = window.moralMap;
   var params = $.parseJSON($("#map_params").html());
   var params = $.parseJSON($("#mapParams").html());
   moralMap['params'] = params;
   //通过地区名称加载地图
   moralMap.mapInit(params["area_name"]);
   moralMap.mapInit(params["regionName"]);
   //列表对象
     var listView  =moralMap.initListView({id: "#equ_list",pageSize:12});
     window["listView"] = listView;
   //展示设备列表,click事件触发
   function showEqus(obj) {
      var params = moralMap['params'];
      var mpoint = obj.currentTarget.getOption();
      var url = 'equipment/findAllEqu?mpId=' + mpoint['id'] + "&orgId=" + params['orgId'];
        $("#searchParam").val(mpoint['name']);
      var url = 'get-devices-by-mid-oid?mpId=' + mpoint['id'] + "&orgId=" + params['orgId'];
      listView.load(url); 
      moralMap.showPopupbox("#popup_box");
   }
@@ -277,10 +328,10 @@
                  data:paramMap,
                  async:false,
                  cache: false,
                  success:function(jsonData){
                  success:function(res){
                     if(callBack!=null){
                        if(jsonData!=null&&typeof jsonData["rows"] ==='object'&&lazyKeyer(key)){
                         callBack(jsonData);
                        if(res.code==1&&lazyKeyer(key)){
                            callBack(res.data);
                        }
                     }
                  }
@@ -299,30 +350,50 @@
          var maxBounds = moralMap.getMaxBounds();
          var paramMap = {};
          paramMap["orgId"]=  params['orgId'];
          $.extend(paramMap,maxBounds);
          // 为了适配旧接口
            paramMap["Fe"]=  maxBounds.northeastLat;//东北角纬度,大一点
            paramMap["Ge"]=  maxBounds.northeastLng;//东北角经度,大一点
            paramMap["Ke"]=  maxBounds.southwestLat;//西北角纬度坐标,小一点
            paramMap["Le"]=  maxBounds.southwestLng;//西北角经度坐标,小一点
          // $.extend(paramMap,maxBounds);
         loadLazy(url,paramMap,callback);
       }
   }
   function addOverEquipments(jsonData){
      if(moralMap.layer()=="equipments"){
      var objs = jsonData["rows"]==null?[]:jsonData["rows"];
      var objs = jsonData = null?[]:jsonData;
      for(var i in objs) {
            var obj = objs[i];
            if(moralMap.getEquipment(obj["mac"])==null){
                    obj['mouseover'] = function (type) {
                        if(type.target.getData()==null){
                            //当前设备数据为空时,设备悬停事件中 刷新一下数据
                            refreshAllState();
                        }
                    }
               obj['click'] = function(){
                           var _obj = this.getOption();
                                       var _obj = this.getOption();
                                       if(_obj['mac']==null){
                                           alert("mac项未配置,请联系管理员设置");
                                           return;
                                       }
                                  var equ = {
                               methodName : 'showDeviceMonitor',
                              name: _obj['name'],
                              mac: (_obj['mac']).toLowerCase(),
                              longitude: _obj['longitude'],
                              latitude: _obj['latitude'],
                               version:moralMap.getVersion(_obj['mac'])
                                        monitorPointId: _obj['monitorPointId'],
                               version:_obj['deviceVersion']['version']
                           }
                           var equStr = JSON.stringify(equ);
                           if(window["console"]!=undefined){
                              console.log(equStr);
                           }
                            if(window['external']&&window['external']['showMonitorInfo']){
                                 if(!!window['external']&&window['external']['callWin']){
                                        window['external'].callWin(equStr);
                           }else
                            if(!!window['external']&&window['external']['showMonitorInfo']){
                                window['external'].showMonitorInfo(equStr);
                             }else{
                                alert(equStr);
@@ -334,9 +405,9 @@
       }
      }
   }
  function addOverMpoints(jsonData){
  function addOverMpoints(data){
         if(moralMap.layer()=="monitorpoints"){
         var mpoints = jsonData["rows"]==null?[]:jsonData["rows"];
         var mpoints = data = null?[]:data;
      for(var i in mpoints) {
            var mpParam = mpoints[i];
            if(moralMap.getMpoint(mpParam["id"])==null){
@@ -353,41 +424,39 @@
            var bounds = moralMap.getBounds();
           paramMap["areaCode"]=  params['areaCode'];
           paramMap["orgId"]=  params['orgId'];
           paramMap["Fe"]=  bounds['Fe'];//东北角纬度,大一点
           paramMap["Ge"]=  bounds['Ge'];//东北角经度,大一点
           paramMap["Ke"]=  bounds['Ke'];//西北角纬度坐标,小一点
           paramMap["Le"]=  bounds['Le'];//西北角经度坐标,小一点
            loadLazy("getmonitorpoints",paramMap,addOverMpoints);
           // 为了适配旧接口
           paramMap["Fe"]=  bounds.northeastLat;//东北角纬度,大一点
           paramMap["Ge"]=  bounds.northeastLng;//东北角经度,大一点
           paramMap["Ke"]=  bounds.southwestLat;//西北角纬度坐标,小一点
           paramMap["Le"]=  bounds.southwestLng;//西北角经度坐标,小一点
            loadLazy("getMonitorpointList",paramMap,addOverMpoints);
            startRefreshPage();
   });
   //地图加载完成后 加载监控点,速度慢
   moralMap.addEventListener("tilesloaded", function(type, target) {
//        var endZoom = this.getZoom();
//        if(endZoom>=moralMap.getZooMConfine()){//超过界限加载设备
//              loadOverlays("getequipments",addOverEquipments);
//        }else{
//            loadOverlays("getmonitorpoints",addOverMpoints);
//        }
//        moralMap.closePopupbox("#popup_box");
   });
   // 点击事件关闭 弹窗列表
    moralMap.addEventListener("click", function(type, target) {
        moralMap.closePopupbox("#popup_box");
    });
   //地图放大缩小事件时,关闭弹窗
   moralMap.addEventListener('zoomstart', function(type) {});
   //地图放大缩小事件时,关闭弹窗
   moralMap.addEventListener('zoomend', function(type) {
        var endZoom = this.getZoom();
        if(endZoom>=moralMap.getZooMConfine()){//超过界限加载设备
              loadOverlays("getequipments",addOverEquipments);
              loadOverlays("get-devices",addOverEquipments);
        }else{
            loadOverlays("getmonitorpoints",addOverMpoints);
            loadOverlays("get-monitorpoints",addOverMpoints);
        }
        moralMap.closePopupbox("#popup_box");
   });
   moralMap.addEventListener('moveend', function(type) {
        var endZoom = this.getZoom();
        if(endZoom>=moralMap.getZooMConfine()){//超过界限加载设备
              loadOverlays("getequipments",addOverEquipments);
              loadOverlays("get-devices",addOverEquipments);
        }else{
            loadOverlays("getmonitorpoints",addOverMpoints);
            loadOverlays("get-monitorpoints",addOverMpoints);
        }
        moralMap.closePopupbox("#popup_box");
   });
@@ -396,10 +465,31 @@
      function(e) {
         var param = encodeURI($("#searchParam").val());
         moralMap.showPopupbox("#popup_box");
         var url = 'equipment/findAllEqu?name=' + param + "&orgId=" + params['orgId'];
         var url = 'get-devices-for-popup?name=' + param + "&orgId=" + params['orgId'];
         listView.load(url); 
      }
   )
   );
   $("#searchParam").keydown(function (event) {
        if(event.keyCode ==13) {
            $("#searchBtn").trigger("click");
        }
    })
   //跳转表单页面按钮事件
   $(".charts_btn").click(
       function (e) {
            var obj = {};
            obj['methodName'] = 'showChart';
            var objStr = JSON.stringify(obj);
            if(!!window['external']&&window['external']['callWin']){
                window['external'].callWin(objStr);
            }else
            if(!!window['external']&&window['external']['showChartInfo']){
                window['external'].showChartInfo("");
            }else{
                alert(objStr);
            }
        }
   );
   //页面刷新
})(jQuery);
@@ -412,7 +502,7 @@
         }
         setTimeout(function(){
            refreshAllState();
         },2000);
         },5000);
    }
    function stopRefreshPage(){
        window.clearInterval(_intervalNum);
@@ -442,49 +532,52 @@
       parma["markerKeys"] = markerKeys;
        parma["areaCode"] = moralMap['params']["areaCode"];
        parma["orgId"] = moralMap['params']["orgId"];
        $.ajax({
         type: "post",
         url: "getstatesformap",
         data:JSON.stringify(parma),
         dataType:"json",
         contentType:"application/json;charset=utf-8",
         cache: false,
         async: true,
         success: function(data) {
            if(data!=null&&typeof data === 'object') {
                var resultMap = data["extData"];
                if(resultMap==null){
                   return;
                }
                  var markers = resultMap["markers"];
                  var layer = resultMap["layer"];
                  if(markers!=null&&markers.length>0){
                         if(layer=="monitorpoints"){
                             for(var a_i in markers){
                                var marker = markers[a_i];
                                var marker_id = marker["id"];
                                var mpoint = moralMap.getMpoint(marker_id);
                                if(mpoint!=null){
                                   mpoint.refreshState(marker["state"]);
                                }
        if((!!parma["popupEquMacs"]&&!!parma["popupEquMacs"].length)
         ||(!!parma["markerKeys"]&&!!parma["markerKeys"].length)){
            $.ajax({
                type: "post",
                url: "get-real-state-data",
                data:JSON.stringify(parma),
                dataType:"json",
                contentType:"application/json;charset=utf-8",
                cache: false,
                async: true,
                success: function(data) {
                    if(data!=null&&typeof data === 'object') {
                        var resultMap = data["extData"];
                        if(resultMap==null){
                            return;
                        }
                        var markers = resultMap["markers"];
                        var layer = resultMap["layer"];
                        if(markers!=null&&markers.length>0){
                            if(layer=="monitorpoints"){
                                for(var a_i in markers){
                                    var marker = markers[a_i];
                                    var marker_id = marker["id"];
                                    var mpoint = moralMap.getMpoint(marker_id);
                                    if(mpoint!=null){
                                        mpoint.refreshState(marker["state"]);
                                    }
//                           mpoint.refreshState(4);
                             }
                         }else{
                               for(var b_i in markers){
                                var marker = markers[b_i];
                                var marker_mac = marker["mac"];
                                var equipment = moralMap.getEquipment(marker_mac);
                                if(equipment!=null){
                                   equipment.refreshState(marker);
                                }
                               }
                         }
                  }
                  if(resultMap["popupEquStates"]!=null){
                     listView.refreshState(resultMap["popupEquStates"]);
                  }
            }
         }
      });
                                }
                            }else{
                                for(var b_i in markers){
                                    var marker = markers[b_i];
                                    var marker_mac = marker["mac"];
                                    var equipment = moralMap.getEquipment(marker_mac);
                                    if(equipment!=null){
                                        equipment.refreshState(marker);
                                    }
                                }
                            }
                        }
                        if(resultMap["popupEquStates"]!=null){
                            listView.refreshState(resultMap["popupEquStates"]);
                        }
                    }
                }
            });
      }
   }
</script>