D:/workspace/chenjingjing/git/gx_tieta/gx_tieta/.gitignore
2019-01-18 2fe250ece8de95b3f70172fe5b45793ab6a3084a
gx_tieta/WebRoot/index.jsp
@@ -94,6 +94,11 @@
       body .layui-layer-dialog {
          min-width:400px;
       }
       .add-panel .addr {
          width: 210px;
          height: 22px;
          border: 1px solid #ccc;
       }
   </style>
   <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
   <script type="text/javascript" src="js/echarts.js"></script>
@@ -121,10 +126,17 @@
                  <div class="map-info-detail">
                     <div class="layui-collapse" lay-filter="test" lay-accordion="">
                        <div class="layui-colla-item">
                           <h2 class="layui-colla-title">搜索机房</h2>
                           <h2 class="layui-colla-title">筛选机房</h2>
                           <div class="layui-colla-content layui-show">
                              <table>
                                 <tbody>
                                    <tr>
                                       <td class="alg-c f-bold"><span class="mrl8">机房类型:</span></td>
                                       <td colspan="2" id="homeType">
                                          <span class="mrl8 mrr8"><input type="checkbox" value="2"  checked="checked">2V</span>
                                          <span><input type="checkbox" checked="checked" value="12">12V</span>
                                       </td>
                                    </tr>
                                    <tr>
                                       <td class="w5em alg-c f-bold"><span class="mrl8">机房名称:</span></td>
                                           <td><input type="text" id="mapToolSearch"></td>
@@ -591,6 +603,7 @@
      
      $('.nav-map').on('click', '.explain-list input', function() {
         setMapImgStyles();
         updateStation(true);
      });
   });
   
@@ -675,6 +688,7 @@
            //map.setMapStyle({style: 'grayscale'});   //  设置地图的风格
            // 添加地图类型控件
            map.addControl(new BMap.MapTypeControl());
            add_control();
            // 给地图添加工具条(地图-卫星-三维)和比例尺控件
            var bottom_left_control = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});
            map.addControl(bottom_left_control);   // 添加比例尺到地图
@@ -787,12 +801,14 @@
   }
   
   //需要实时查询的方法
   function Repeatoperation(){
      searchBattmaintrecords();
      searchUserTask();
      searchAnnounceall();
      searchTestsCale();
   function Repeatoperation(){
      // 判断页面是否正在被访问
      if(pageIsVisit) {
         searchBattmaintrecords();
         searchUserTask();
         searchAnnounceall();
         searchTestsCale();
      }
      setTimeout(Repeatoperation,10000);
   }
   
@@ -926,6 +942,13 @@
      if($('#content .warn-pie').length==0){
         return;
      }
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchalarm_data, 10000);
         return;
      }
      //生成电池告警率饼状图
      var $warn=$('#content .pie-con .warn-pie');   //获取告警容器的jquery对象
      if($warn.length!=0){
@@ -1037,6 +1060,12 @@
         return;
      }
      
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchmaintByMap, 10000);
         return;
      }
      // 判断是否为Echarts对象
      var isEcharts = isObject(brdnPie)?true:false;
      
@@ -1109,6 +1138,13 @@
      if($('#content .repair-pie').length==0){
         return;
      }
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchBatt_maint_inf, 10000);
         return;
      }
      // 判断是否为Echarts对象
      var isEcharts = isObject(repairPie)?true:false;
      if(!isEcharts) {
@@ -1164,6 +1200,13 @@
      if($('#content .health-pie').length==0){      
         return;
      }
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchGood, 10000);
         return;
      }
      //生成电池健康率
      var $health=$('#content .pie-con .health-pie');   //获取故障容器的jquery对象
      if($health.length!=0){
@@ -1217,6 +1260,12 @@
         return;
      }
      
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchEndurHome, 10000);
         return;
      }
      //生成电池告警率饼状图
      var $endur=$('#content .pie-con .endur-pie');   //获取告警容器的jquery对象
      if($endur.length!=0){
@@ -1242,12 +1291,34 @@
                     {name:"续航不足1小时",val:data[0],color:'#FF0000'}
                     ,{name:"续航1~2小时",val:data[1],color:'#D1D105'}
                     ,{name:"续航2~3小时",val:data[2],color:'#31CB36'}
                     ,{name:"续航3小时以上",val:data[3],color:'#800080'}
                     ,{name:"续航3小时以上",val:data[3],color:'#619FA7'}
                  ];
                  
                  if(!isEcharts) {
                     //创建电池故障饼状图
                     createPie(endurPie,endurTle,endurObj);
                     // 点击饼状图进行跳转
                     endurPie.on('click', function(param) {
                        var str = '';
                        switch(param.dataIndex) {
                           case 0:
                              str = 'timelong=60';
                           break;
                           case 1:
                              str = 'timelong=120';
                           break;
                           case 2:
                              str = 'timelong=180';
                           break;
                           case 3:
                              str = 'is_stand=0';
                           break;
                        }
                        window.open('batt-life-manage.jsp?'+str);   // 跳转到落后单体查询
                     });
                  }else {
                     var opts = getOpt(endurTle, endurObj);
                     endurPie.setOption(opts);
@@ -1669,7 +1740,7 @@
   // 生成图标的说明
   function createIconExplain(mapEle) {
      var iconExplain = $('<div id="mapImgDesc" style="position:absolute;background-color: #fff; border: 1px solid #ccc; right: 10px; bottom: 10px; z-index: 99999"></div>');   // 地图图标说明容器
      var iconExplainHt = $('<div class="explain-header" style="padding:4px 8px; border-bottom:1px solid #ccc; background-color: #CDDCFA">地图图标说明<img src="image/explain-down.gif" style="float:right;"/></div>');
      var iconExplainHt = $('<div class="explain-header" style="padding:4px 8px; border-bottom:1px solid #ccc; background-color: #CDDCFA">图标显示与选择<img src="image/explain-down.gif" style="float:right;"/></div>');
      iconExplain.append(iconExplainHt);
      
      changeMapImgDesc(iconExplain, 'normal');
@@ -1697,6 +1768,42 @@
   
   // 普通机房描述
   function mapImgDescNormal(iconExplain) {
      // 掉站机房
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var input = $('<input type="checkbox" data-img="item-timeout" checked="checked">');
      var icon = $('<img src="'+mapImages.timeout+'">');
      var span = $('<span>掉站机房</span>');
      var badge = $('<a href="javascript:;" class="layui-badge-rim mrr8 badge-down">0</a>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconList.append(badge);
      iconExplain.append(iconList);
      // 停电机房
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var input = $('<input type="checkbox" data-img="item-poff" checked="checked">');
      var icon = $('<img src="'+mapImages.powercut+'">');
      var span = $('<span>停电机房</span>');
      var badge = $('<a href="javascript:;" class="layui-badge-rim mrr8 badge-powercut">0</a>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconList.append(badge);
      iconExplain.append(iconList);
      // 续航不足
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var input = $('<input type="checkbox" data-img="item-xuhang" checked="checked">');
      var icon = $('<img src="'+mapImages.xuhang+'">');
      var span = $('<span>续航不足机房</span>');
      var badge = $('<a href="javascript:;" class="layui-badge-rim mrr8 badge-xuhang">0</a>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconList.append(badge);
      iconExplain.append(iconList);
      // 落后机房
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
      var input = $('<input type="checkbox" data-img="item-behind" checked="checked">');
@@ -1722,17 +1829,7 @@
      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 input = $('<input type="checkbox" data-img="item-down" checked="checked">');
      var icon = $('<img src="'+mapImages.timeout+'">');
      var span = $('<span>掉站机房</span>');
      var badge = $('<a href="javascript:;" class="layui-badge-rim mrr8 badge-down">0</a>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconList.append(badge);
      iconExplain.append(iconList);
      
      // 机房延时
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
@@ -1743,18 +1840,6 @@
      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 input = $('<input type="checkbox" data-img="item-poff" checked="checked">');
      var icon = $('<img src="'+mapImages.powercut+'">');
      var span = $('<span>停电机房</span>');
      var badge = $('<a href="javascript:;" class="layui-badge-rim mrr8 badge-powercut">0</a>');
      iconList.append(input);
      iconList.append(span);
      iconList.append(icon);
      iconList.append(badge);
      iconExplain.append(iconList);
      
      // 正常机房
      var iconList = $('<div class="explain-list" style="padding: 4px 6px; border-bottom: 1px slid #ccc; display:block"></div>');
@@ -1789,8 +1874,8 @@
      var down = mapImgDesc.find('.badge-down');         // 掉站机房
      var powercut = mapImgDesc.find('.badge-powercut');   // 停电机房
      var normal = mapImgDesc.find('.badge-normal');      // 正常机房
      var weak = mapImgDesc.find('.badge-weak');         // 续航不足3小时机房
      console.log(warn.length);
      var weak = mapImgDesc.find('.badge-xuhang');         // 续航不足3小时机房
      // console.log(warn.length);
      //  请求后台数据
      $.ajax({
         type: 'post'
@@ -1800,12 +1885,12 @@
         ,dataType: 'json'
         ,success:function(res) {
            var rs = JSON.parse(res.result);
            //console.log(rs);
            console.log(rs);
            powercut.text(rs.sum);      // 停电数
            down.text(rs.code);      // 掉站数
            behind.text(rs.msgN);   // 落后机房
            warn.text(rs.msg);      // 告警机房
            weak.text(rs.msgT);      // 续航不足3小时
            /* var normalNum = Number(rs.newsum) - (Number(rs.sum)+Number(rs.code)+Number(rs.msgN)+Number(rs.msg));
            normal.text(normalNum); */   // 正常机房
         }
@@ -1945,8 +2030,10 @@
   
   // 更新地图图标
   function updateMapDotIcon(map, dotList, isTop) {
      var homeType = getHomeType();
      // 遍历查询内容生成对应的图标
      for(var i = 0; i<dotList.length; i++) {
         var isAcType = checkHomeType(dotList[i].type, homeType);
         var isShow = checkMapImgStyle(dotList[i].msg);
         var dotIcon = new BMap.Icon(getMapStateImg(mapImages, dotList[i].msg), new BMap.Size(36, 30));   // 设置图片
         var mk =  getMapMarker(map, dotList[i].title);
@@ -1960,7 +2047,7 @@
            }
            
            // 隐藏marker点
            isShow?mk.show():mk.hide();
            isShow&&isAcType?mk.show():mk.hide();
         }
      }
   }
@@ -2249,10 +2336,10 @@
         var content = '<div class="add-panel">'+
            '<div style="padding: 6px 4px"><span>地址:</span>'+
            '<span class="addr">'+addComp.province+'-'+addComp.city+'-'+addComp.district+'-'+addComp.street+'</span></div>'+
            '<input type="text" class="addr" value="'+addComp.province+'-'+addComp.city+'-'+addComp.district+'-'+addComp.street+'"></div>'+
            '<div style="padding: 6px 4px">经度:<span class="lng">'+rs.point.lng+'</span>,纬度:<span class="lat">'+rs.point.lat+'</span></div>'+
            '<div style="padding: 6px 4px"><span>设置站点名:</span>'+'<select style="border: 1px solid #ccc; width: 180px">'+options+'</select></div>'+
            '<div style="padding: 6px 4px; margin-top: 20px">'+
            '<div style="padding: 6px 4px"><span>设置站点名:</span>'+'<select style="border: 1px solid #ccc; width: 180px;height: 22px;">'+options+'</select></div>'+
            '<div style="padding: 6px 4px; margin-top: 15px">'+
            '<a href="javascript:getAddHomeInfo();" class="map-panel-btn">确定</a></div>'
         +'</div>';
@@ -2270,7 +2357,7 @@
      var lat = $('.add-panel .lat').text();                        // 获取纬度
      var wgsPoint = GPS.bd2wgs(lat, lng);                        // 百度地图坐标转化为GPS
      
      var addr = $('.add-panel .addr').text();                     // 获取地址
      var addr = $('.add-panel .addr').val();                     // 获取地址
      var homeName = $('.add-panel select option:selected').text();      // 机房名称
      var homeId = $('.add-panel select option:selected').val();         // 机房ID
      if(homeId !=0 && confirm("确认将"+homeName+"机房设置到该位置吗?")){
@@ -2518,7 +2605,7 @@
            // 获取结果集
            var rs = JSON.parse(data.result);
            var list = rs.data;
            // console.log(list);
            //console.log(list);
            allStation = new Array();
            if(list!=undefined && list.length>0){
               // 设置分页信息
@@ -2574,9 +2661,23 @@
   }
   
   // 轮询更新地图的点查询
   function updateStation() {
   var updateTimeout;
   var updateLoad;
   function updateStation(isLoad) {
      var bmap = GLOBAL.BMap;      // BMap的命名空间
      var updateStationData = [];
      // 判断是否被访问
      if(!pageIsVisit) {
         // 关闭并添加延时执行
           clearInterval(updateTimeout);
           updateTimeout = setTimeout(updateStation, 4000);
      }
      if(isLoad) {
         updateLoad = layer.load(1);
      }
      $.ajax({
         type: "post",
         url: "BattMap_informationAction!searchUserManageStation2",            
@@ -2584,19 +2685,19 @@
           dataType:'json',
           data: "json="+JSON.stringify(mapPages),
           success: function(result) {
              layer.close(updateLoad);
              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);
                 updateStationData.push(_list);
                 //_list.msg = 'item-nuclear_cap';
                 // 判断是否更新
                 if(mapPages.pageNew) {
                    bmap.updateDots(_list);
                 }
              }
              //console.log(updateStationData);
              updateMapDotIcon(map, updateStationData, true);
              // 更新分页信息
              mapPages.pageCurr++;
@@ -2604,8 +2705,9 @@
                 mapPages.pageCurr=1;
                 mapPages.pageNew=false;
              }
              setTimeout(updateStation, 4000);
              // 关闭并添加延时执行
              clearInterval(updateTimeout);
              updateTimeout = setTimeout(updateStation, 4000);
              
           }
      });
@@ -2615,7 +2717,6 @@
   function formatUpdateStation(list) {
      var obj = {};
      var data = list.data;
      //console.log(list);
      // GPS坐标转化为百度坐标
      var point = GPS.wgs2bd(data.latitude, data.longitude);
      // 构造结果集
@@ -2626,9 +2727,13 @@
      obj.fbsId = data.FBSDeviceId;
      obj.addr = data.Address;
      obj.msg = list.msg;
      obj.num = list.num;
      obj.num = data.num;
      obj.type = data.monvolstd;
      return obj;
   }
   // 根据显示的类型筛选数据
   
   // 根据allStation的值去更新内容
   function updateMapByAllStation() {
@@ -2986,6 +3091,8 @@
                  //console.info(allStation);
                  console.info(allStation);
                  var temp = getStationMap(allStation, mk.point);
                  console.info(temp);
                  temp.StationName = temp.title;
                  if(confirm("确认从地图上删除'"+temp.title+"'的位置信息吗?")){
                     if(temp != undefined){
                        var json = JSON.stringify(temp);
@@ -3266,6 +3373,7 @@
      var rs = new Object();
      rs.normal = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_normal}";   // 普通机房图标
      rs.behind = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_behind}";   // 落后图标
      //rs.diaozhan = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_diaozhan}";   // 延时机房图标
      rs.timeout = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_timeout}";   // 延时机房图标
      rs.warn = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_warn}";   // 告警机房图标
      rs.nuclear = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_nuclear_cap}";   // 核容放电
@@ -3274,6 +3382,7 @@
      rs.float = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_online_charge}";   // 浮充
      rs.powercut = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_poff}";
      rs.defaults = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:chart_install}";
      rs.xuhang = "User_ChartAction!serchByInfo?json={Chart_file:'"+user_logo+"',Chart_name:Chart_xuhang}";
      return rs;
   }
   
@@ -3474,6 +3583,9 @@
          case 'item-behind':    // 落后
             rs = imgs.behind;
             break;
          case 'item-diaozhan':
             rs = imgs.timeout;  // 掉站
             break;
          case 'item-timeout':   // 延时
             rs = imgs.timeout;
             break;
@@ -3491,6 +3603,9 @@
             break;
          case 'item-pre_charge':   // 61850预充电
             rs = imgs.precharge;
             break;
          case 'item-xuhang':      // 续航不足
             rs = imgs.xuhang;
             break;
          default:
             rs = imgs.defaults;
@@ -3702,6 +3817,11 @@
               type: 1
            });
            $(this).prop('checked', false);
         }else if(num == 0) {
            layerMsg = layer.msg("至少选择一个!", {
               type: 1
            });
            $(this).prop('checked', true);
         }
         
      });
@@ -3720,35 +3840,43 @@
              data:null,      
              success: function(data){ 
               var model = eval('('+data.result+')');
               var resData;
               if(model.code == 1) {
                  var result = model.data;
                  //console.log(result);
                  var formatData = formatPieRsData(result[0]);
                  laytpl(pieConfTpl).render(formatData, function(html) {
                     layer.open({
                        id: 'pie',
                        title: '饼状图配置',
                        maxHeight: 450,
                        content: html,
                        yes: function(index) {
                           var iptList = $('#tplTblOpts .tpl-tbl-opts-header input[type=checkbox]');
                           var iptArr = [];
                           iptList.each(function() {
                              if($(this).is(':checked')) {
                                 iptArr.push(1);
                              }else {
                                 iptArr.push(0);
                              }
                           });
                           var temp = structUpdatePie(iptArr);
                           layer.load();
                           updateUserBieState(temp);
                        }
                     });
                  });
                  resData = result[0];
               }else {
                  resData = {
                     echarts1_enable:1,
                     echarts2_enable:1,
                     echarts3_enable:1,
                     echarts4_enable:1
                  };
               }
               
               // 格式获取到的数据
               var formatData = formatPieRsData(resData);
               laytpl(pieConfTpl).render(formatData, function(html) {
                  layer.open({
                     id: 'pie',
                     title: '饼状图配置',
                     maxHeight: 450,
                     content: html,
                     yes: function(index) {
                        var iptList = $('#tplTblOpts .tpl-tbl-opts-header input[type=checkbox]');
                        var iptArr = [];
                        iptList.each(function() {
                           if($(this).is(':checked')) {
                              iptArr.push(1);
                           }else {
                              iptArr.push(0);
                           }
                        });
                        var temp = structUpdatePie(iptArr);
                        layer.load();
                        updateUserBieState(temp);
                     }
                  });
               });
                }             
         });
      }
@@ -3853,6 +3981,7 @@
      $( "#mapToolSearch" ).on('input propertychange', function(){
         $('#mapToolSearchBtn').data('homeInfo', 0);
      });
      // 定义机房查询信息
      $( "#mapToolSearch" ).autocomplete({
         source: [],
@@ -3860,6 +3989,14 @@
            $('#mapToolSearchBtn').data('homeInfo', ui.item);   // 设置机房信息内容
         }
      });
      // 点击机房类型复选框
      $('#homeType input[type=checkbox]').click(function() {
         var homeType = getHomeType();
         getInstallNum();
         updateStation(true);
      });
      
      // 点击查看homeInfo的值
      $('#mapToolSearchBtn').click(function() {
@@ -3952,14 +4089,65 @@
            success: function(result) {
               // 格式化数据
               var rs = JSON.parse(result.result);
               var txt = rs.newsum+'/'+rs.sum;
               //console.log(rs);
               if(rs.code == 1) {
                  var txt = getInstallNumByType(rs.data,getHomeType());
               
               // 更新文本值
               $('#installnum').text(txt);
                  // 更新文本值
                  $('#installnum').text(txt);
               }
            }
         });
      };
      }
      // 更具选择机房的类型返回文本
      function getInstallNumByType(data,type) {
         var rs = '未知/未知';
         switch(type) {
            case 0:
               rs = '0/0';
            break;
            case 2:
               rs = data[0]+'/'+data[1];
            break;
            case 12:
               rs = data[2]+'/'+data[3];
            break;
            case 14:
               rs = data[4]+'/'+data[5];
            break;
         }
         return rs;
      }
   });
   // 0=全部不选 14=全部选中 2=选中2V 12=选中12V
   function getHomeType() {
      var boxList = $('#homeType input[type=checkbox]')
      var rs = 0;      // 全部
      boxList.each(function() {
         if($(this).is(':checked')) {
            rs += Number($(this).val());
         }
      });
      return rs;
   }
   // 检测当前机房是否符合2V或12V
   function checkHomeType(homeType, type) {
      var rs = false;
      var _homeType = Number(homeType);
      if(type == 14 || homeType == type) {
         rs = true;
      }
      return rs;
   }
   
   // 更新地图工具搜索机房
   function updateSearchSource(data) {
@@ -3978,5 +4166,11 @@
      
      $( "#mapToolSearch" ).autocomplete('option', 'source', homeSource);
   }
   // 添加地图控件
   function add_control(){
      var bottom_left_navigation = new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT});
      map.addControl(bottom_left_navigation);
   }
   </script> 
</html>