From d45d08d36896d96e12f3bd4fb283c523dff52eb5 Mon Sep 17 00:00:00 2001 From: hdw <496960745@qq.com> Date: 星期四, 01 十一月 2018 10:59:49 +0800 Subject: [PATCH] 添加自动下拉选择 --- gx_tieta/WebRoot/index.jsp | 276 ++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 201 insertions(+), 75 deletions(-) diff --git a/gx_tieta/WebRoot/index.jsp b/gx_tieta/WebRoot/index.jsp index bb12f73..0a5081b 100644 --- a/gx_tieta/WebRoot/index.jsp +++ b/gx_tieta/WebRoot/index.jsp @@ -39,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 @@ -109,36 +109,45 @@ <jsp:include page="nav.jsp" flush="true"/> <!--瀵艰埅缁撴潫--> <div id="content"> - <!-- 鍦板浘鍐呭绛涢�� --> - <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> - </div> - <div class="map-info-detail"> - <table> - <tbody> - <tr> - <td class="w8em alg-c">鏈烘埧鏄剧ず绫诲瀷:</td> - <td> - <select name="mapIconStyleSel" id="mapIconStyleSel"> - <option>鍏ㄩ儴</option> - <option>宸插畨瑁�</option> - <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 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;"> @@ -360,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> @@ -527,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(); }); }); @@ -689,10 +703,10 @@ { text: '杩斿洖涓績鐐�', - callback: function(e) { - centerMapByPoint(map); + callback: function(e){ + centerMapByPoint(map); // 鏍规嵁褰撳墠鐢ㄦ埛璁惧畾鐨勪綅缃樉绀轰腑蹇冪偣 } - }, + } ]; //console.info(getPermit('taskchange_edit_permit', permits)+"*******"); if(getPermit('batt_map_edit_permit', permits)) { @@ -1499,9 +1513,11 @@ changeMapImgDesc(iconExplain, 'normal'); - mapEle.prepend(iconExplain); + mapEle.parent().append(iconExplain); + + // 璁剧疆鍦板浘鍥炬爣绉嶇被 + setMapImgStyles(); } - // 鍒囨崲鍦板浘鍥炬爣璇存槑 function changeMapImgDesc(iconExplain, type) { iconExplain.find('.explain-list').remove(); @@ -1519,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); // 姝e父鏈烘埧 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">姝e父鏈烘埧</span>'); - iconList.append(icon); + var input = $('<input type="checkbox" data-img="item-normal" checked="checked">'); + var icon = $('<img src="'+mapImages.normal+'">'); + var span = $('<span>姝e父鏈烘埧</span>'); + iconList.append(input); iconList.append(span); + iconList.append(icon); iconExplain.append(iconList); } @@ -1557,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); @@ -1574,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); } @@ -1636,14 +1660,13 @@ function createMapDot(map, dotList, isTop) { // 娓呯┖瑕嗙洊鐗╁拰瀵瑰簲鐨刴k鐐� 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); @@ -1675,14 +1698,16 @@ 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]); @@ -1695,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++) { @@ -1933,6 +1987,8 @@ function getAddHomeInfo() { var lng = $('.add-panel .lng').text(); // 鑾峰彇缁忓害 var lat = $('.add-panel .lat').text(); // 鑾峰彇绾害 + var wgsPoint = GPS.bd2wgs(lat, lng); // 鐧惧害鍦板浘鍧愭爣杞寲涓篏PS + var addr = $('.add-panel .addr').text(); // 鑾峰彇鍦板潃 var homeName = $('.add-panel select option:selected').text(); // 鏈烘埧鍚嶇О var homeId = $('.add-panel select option:selected').val(); // 鏈烘埧ID @@ -1941,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); @@ -2025,6 +2081,16 @@ // 鏍规嵁鍙鑼冨洿鏄剧ず鍧愭爣鐐� var dots = []; var currMarkers = {}; + + // 鍒濆鍖� + function init() { + dots = []; + currMarkers = {}; + } + // init鍑芥暟缁戝畾鍒癎LOBAL.BMap涓� + gl.BMap.init = init; + + // 鏌ヨ褰撳墠鑼冨洿鍐呭鐨勫浘鏍� function queryInRect(map, callback) { var cp = map.getBounds(); // 杩斿洖map鍙鍖哄煙锛屼互鍦扮悊鍧愭爣琛ㄧず @@ -2150,16 +2216,15 @@ 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", @@ -2178,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(); + } } } @@ -2202,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; @@ -2245,9 +2313,7 @@ } } - //console.log(updateStationData); createMapDot(map, updateStationData, true); - // 鏇存柊鍒嗛〉淇℃伅 mapPages.pageCurr++; if(mapPages.pageCurr>mapPages.pageNum || updateStationData.length<mapPages.pageSize) { @@ -2256,6 +2322,7 @@ } setTimeout(updateStation, 4000); + } }); } @@ -2264,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; @@ -2274,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); } // 鏌ヨ鏈烘埧闈㈡澘淇℃伅 @@ -2298,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>'+ @@ -3522,14 +3605,57 @@ } }); } - var mapViewArea = GLOBAL.BMap.mapViewArea; + + // 鍦板浘宸︿笂鏂归潰鏉挎ā鍧� + 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]); + 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) { -- Gitblit v1.9.1