From 8ea24dd5fb6e1b24d3a7ef62a0060ef516f8f759 Mon Sep 17 00:00:00 2001 From: xufenglei <xufenglei> Date: Thu, 24 May 2018 08:58:16 +0800 Subject: [PATCH] 更新 监测点 数据 --- src/main/webapp/js/moralmap.js | 165 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 119 insertions(+), 46 deletions(-) diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js index 107a9c1..4bcc87a 100644 --- a/src/main/webapp/js/moralmap.js +++ b/src/main/webapp/js/moralmap.js @@ -26,20 +26,20 @@ /* * ������mac������������version */ - moralMap.getVersion = function(mac){ - var version = null; - $.ajax({ - type:"get", - url:"getversion?mac="+mac, - async:false, - success:function(jsonData){ - if(jsonData!=null&&typeof jsonData=='object'){ - version = jsonData['version']; - } - } - }); - return version; - } + // moralMap.getVersion = function(mac){ + // var version = null; + // $.ajax({ + // type:"get", + // url:"getversion?mac="+mac, + // async:false, + // success:function(jsonData){ + // if(jsonData!=null&&typeof jsonData=='object'){ + // version = jsonData['version']; + // } + // } + // }); + // return version; + // } /* * ��������������������� */ @@ -208,11 +208,22 @@ } return moralMarker; } + moralMap.clearCloseInfoWindow = function () { + if(!!moralMap["_closeInfoWinTimer"]){ + clearTimeout(moralMap["_closeInfoWinTimer"]); + moralMap["_closeInfoWinTimer"] = null; + } + } moralMap.openInfoWindow = function() { - baiduMap.openInfoWindow.apply(baiduMap, arguments); + moralMap.clearCloseInfoWindow(); + baiduMap.openInfoWindow.apply(baiduMap, arguments);; //������������������ } moralMap.closeInfoWindow = function() { - baiduMap.closeInfoWindow.apply(baiduMap, arguments); + var timer = setTimeout(function () { + baiduMap.closeInfoWindow.apply(baiduMap, arguments); + moralMap["_closeInfoWinTimer"] = null; + },1200); + moralMap["_closeInfoWinTimer"] = timer; } moralMap.clearOverlays = function() { baiduMap.clearOverlays(); @@ -245,32 +256,48 @@ } //������������ moralMap.showPopupbox = function(id) { - $(id).css('display', 'block'); + setTimeout(function () { + $(id).css('display', 'block'); + },1); } moralMap.closePopupbox = function(id) { - $(id).css('display', 'none'); + $(id).css('display', 'none'); } moralMap.isPopupBoxShow = function(id) { return $(id).css('display') == 'block'; } - moralMap.onItermClick = function(index) { + moralMap.onItermClick = function(index,select) { var row = moralMap.getPopupEqu(index); + if(row['mac']==null){ + alert("mac���������������������������������������"); + return; + } var equ = { + methodName : 'chart'== select ?'showChart':'showDeviceMonitor', name: row['name'], mac: (row['mac']).toLowerCase(), longitude: row['longitude'], latitude: row['latitude'], - version:moralMap.getVersion(row['mac']) - } + monitorPointId: row['monitorPointId'], + version:row['deviceVersion']['version'] + }; + !!select?equ['monitorPointId'] = row["monitorPointId"]:null; var equStr = JSON.stringify(equ); - if(window["console"]!=undefined){ - console.log(equStr); - } - if(window['external']&&window['external']['showMonitorInfo']){ - window['external'].showMonitorInfo(equStr); - }else{ - alert(equStr); + if(window["console"]!=undefined){ + console.log(equStr); } + if(!!window['external']&&window['external']['callWin']){ + window['external'].callWin(equStr); + }else{ + if(!!select&&select==='chart'&&!!window['external']&&window['external']['showChartInfo']){ + window['external'].showChartInfo(equStr); + }else if(!!window['external']&&window['external']['showMonitorInfo']){ + window['external'].showMonitorInfo(equStr); + }else{ + alert(equStr); + } + } + } moralMap.setPopupEqus = function(arr) { moralMap["_equs"] = arr; @@ -346,7 +373,7 @@ break; case 4: state = 'state04'; - stateName = '������'; + stateName = '������'; break; } return { @@ -402,7 +429,9 @@ } name = name.substring(0, stop1) + "..." + name.substring(stop2, name.length); } - var li = "<li id='listview_item_" + e['mac'] + "' onclick=moralMap.onItermClick(" + i + ")><span id='listview_state_" + e['mac'] + "' class='" + state + "'>" + stateName + "</span>" + name + "</li>"; + var li = "<li id='listview_item_" + e['mac'] + "'><span class='list-chart-span' onclick=moralMap.onItermClick(\"" + i + "\",'chart')><img src='/img/chart.png'></span>" + +"<span id='listview_state_" + e['mac'] + "'class='" + state + "'>" + stateName + "</span>" + + "<div style='cursor: pointer;' onclick=moralMap.onItermClick(\"" + i + "\")>" + name + "</div></li>"; outHtml += li; } outHtml += "</ul>"; @@ -452,7 +481,7 @@ enableMassClear: true }) //������������ - var eventType = ['click', 'mouseover', 'mouseout']; + var eventType = ['click']; for(var index in eventType) { var eventName = eventType[index]; if(_option[eventName] != undefined && typeof _option[eventName] == "function") { @@ -466,9 +495,12 @@ } return $.extend(this, { refreshState: function(state) { - _option['state'] = state; - var iconObj = _getMapIcon(state); - this.setIcon(iconObj); + //��������������������������������� ������ + if(_option['state'] != state){ + _option['state'] = state; + var iconObj = _getMapIcon(state); + this.setIcon(iconObj); + } }, getOption: function() { return _option; @@ -479,7 +511,7 @@ }) } //new BMap.Marker()������������IE7��������������������� - moralMap.MoralMarker.prototype = BMap.Marker.prototype; + moralMap.MoralMarker.prototype = new BMap.Marker(); //��������������� ������Mark������ moralMap.Monitorpoint = function(option) { var icon = {}; @@ -494,7 +526,7 @@ //��������������� var winOpts = { width: 110, // ������������������ - height: 50, // ������������������ + height: 80, // ������������������ title: getTitleOutHtml(), // ������������������ offset: new BMap.Size(-2, -21) //��������������������� } @@ -518,24 +550,27 @@ address = address.slice(0, 18) + "..."; } var adressOutHtml = ""; - adressOutHtml += "<div style='font:12px arial,sans-serif;margin-top:12px'><table cellspacing='0' style='overflow:hidden;table-layout:fixed;width:100%;font:12px arial,sans-serif'>"; + adressOutHtml += "<div onmouseover='moralMap.clearCloseInfoWindow()'"; + adressOutHtml += "onmouseout='moralMap.closeInfoWindow()'"; + adressOutHtml +=" style='font:12px arial,sans-serif;margin-top:12px'><table cellspacing='0' style='overflow:hidden;table-layout:fixed;width:100%;font:12px arial,sans-serif'>"; adressOutHtml += "<tbody><tr><td style='vertical-align:top;width:38px;white-space:nowrap;word-break:keep-all'>��������� </td><td style='line-height:16px'>"; adressOutHtml += address + " "; - adressOutHtml += "</td></tr></tbody></table></div>"; + adressOutHtml += "</td></tr>"; + adressOutHtml += "<tr><td style='width:98%;padding-top:10px;'colspan='2'><a href='javascript:void(0);' style='display:block;position: relative;float: right;' onclick='moralMap.showPointMonitor("+option.id+")'>������������>></a></td></tr>"; + adressOutHtml += "</tbody></table></div>"; return adressOutHtml; } return new BMap.InfoWindow(getAdressOutHtml(), winOpts); })(); - if(moralMask["infoWindow"] == undefined) { moralMask["infoWindow"] = infoWindow; } //��������������������� moralMask.addEventListener("mouseover", function() { - baiduMap.openInfoWindow(infoWindow, this._point); //������������������ + moralMap.openInfoWindow(infoWindow, this._point); //������������������ }); moralMask.addEventListener("mouseout", function() { - baiduMap.closeInfoWindow(); + moralMap.closeInfoWindow(); }); //==================infoWindow-end============================ //��������������� @@ -605,7 +640,7 @@ var dataHandle = { _getDataOutHtml: function(data) { if(data==null||data["state"]==4){ - return "<br/><h3>������������������������,������������������!</h3>"; + return "<br/><h3>������������������������,������������������!</h3>"; } var mac = data['mac']; var itme_mac_key = "item-" + mac + "-" + key; @@ -658,8 +693,14 @@ if(moralMask["infoWindow"] == undefined) { moralMask["infoWindow"] = infoWindow; } + var mouseOverHandle = option['mouseover']; //��������������������� moralMask.addEventListener("mouseover", function() { + if(mouseOverHandle!=null&&mouseOverHandle instanceof Function){ + //���arguments��������������� + var args = Array.prototype.slice.call(arguments); + mouseOverHandle.apply(this, args); + } moralMap.closeSearchBox(); baiduMap.openInfoWindow(infoWindow, this._point); //������������������ if(infoWindow.getContent() == "") { @@ -736,11 +777,13 @@ } //������MonitorPoint������ moralMap.putEquipment = function(key, obj) { - key = String.prototype.toLowerCase.call(key); - if(moralMap['_equipments'] == undefined) { - moralMap['_equipments'] = {}; + if(key!=null&&key!=""){ + key = String.prototype.toLowerCase.call(key); + if(moralMap['_equipments'] == undefined) { + moralMap['_equipments'] = {}; + } + moralMap['_equipments'][key] = obj; } - moralMap['_equipments'][key] = obj; } moralMap.getEquipment = function(key) { if(key == null){ @@ -789,5 +832,35 @@ } return markers; } + moralMap.showPointMonitor = function (id) { + var mpointMarker = moralMap.getMpoint(id); + var mpoint = mpointMarker.getOption(); + if(!!mpoint){ + delete mpoint['organization']; + delete mpoint['icon']; + delete mpoint['click']; + if(window["console"]!=undefined){ + console.log(mpoint); + } + $.get("getvers?mptid="+id,function (res) { + if(!!res&&res.code==1){ + mpoint['versions'] = res.data; + mpoint['methodName'] = 'showPointMonitor'; + var mpointStr = JSON.stringify(mpoint); + if(!!window['external']&&window['external']['callWin']){ + window['external'].callWin(mpointStr); + }else{ + alert(JSON.stringify(mpointStr)); + } + } + }) + }else{ + if(window["console"]!=undefined){ + console.log("option of mpointMarker is null"); + console.log(mpointMarker); + } + } + + } window.moralMap = moralMap; })(jQuery, BMap, window); \ No newline at end of file -- Gitblit v1.8.0