String.prototype.replaceAll = function(s1, s2) { return this.replace(new RegExp(s1, "gm"), s2); } var isFirst = true; var taxMap = { fullName: '', locationCode: '', locationName: '', chooseCode: '', chooseName: '', searchValue:'', oldScroll:0, listMap: '', //加载纳税局信息 loadTaxMapList: function () { var targetArea = subParams('targetArea'); var needDw = false; if (targetArea && isFirst) { var address = targetAreaMap[targetArea]; if (targetAreaMap[targetArea].code && targetArea.substr(targetArea.length -6 , targetArea.length) != '000000') { taxMap.chooseCode = targetAreaMap[targetArea].code.substr(1, targetAreaMap[targetArea].code.length); } else if (targetArea.substr(targetArea.length -6 , targetArea.length) == '000000') { taxMap.chooseCode = ''; needDw = true; } else { taxMap.chooseCode = targetArea.substr(1, targetArea.length); } taxMap.chooseName = targetAreaMap[targetArea].district ? targetAreaMap[targetArea].district: targetAreaMap[targetArea].city; BMapTools.setLocationAddressStorage(address); isFirst = false; } if (!taxMap.chooseCode) { if (needDw) { needDw = false; //地区定位 taxMap.getGeolocation(function (adr) { if (adr.province == targetAreaMap[targetArea].province) { // 取定位数据 taxMap.getBMapDataList(adr); BMapTools.setLocationAddressStorage(adr); } else { // 取targetArea数据 //地区定位 BMapTools.cityLocation("", function (localAddress, adr) { taxMap.getBMapDataList(adr); }); } }); } else { //地区定位 BMapTools.cityLocation("", function (localAddress, adr) { taxMap.getBMapDataList(adr); }); } } else if (needDw) { needDw = false; //地区定位 taxMap.getGeolocation(function (adr) { if (adr.province == targetAreaMap[targetArea].province) { // 取定位数据 taxMap.getBMapDataList(adr); } else { //地区定位 var addr = BMapTools.getLocationAddressStorage(); if (addr) { taxMap.chooseCode = addr.code.substr(1, addr.code.length); taxMap.getChooseMapList(addr); } else { taxMap.getBMapDataList(adr); } } }); } else { //地区定位 BMapTools.cityLocation("", function (localAddress, adr) { /*if (adr.city == adr.province && adr.district) { $("#choose_location").text(adr.district); } else { $("#choose_location").text(adr.city); }*/ $("#choose_location").text(taxMap.chooseName); taxMap.getChooseMapList(adr); }); } taxMap.setStorage();//重置存储内容; }, // 从百度地区获取定位信息 getGeolocation: function (callback) { var geolocation = new BMap.Geolocation(); geolocation.getCurrentPosition(function (r) { if (this.getStatus() == BMAP_STATUS_SUCCESS) { //获取地址信息描述信息 var adr = r.address; adr.latitude = r.latitude; adr.longitude = r.longitude; if (!adr.city) { var adr = {"city":"北京市","city_code":0,"district":"东城区","province":"北京市","street":"" ,"street_number":"", "latitude": "116.403918", "longitude": "39.915011"}; } // 跳转回调方法 if ('function' === typeof callback) { callback(adr); } } else { // 跳转回调方法 if ('function' === typeof callback) { var adr = {"city":"北京市","city_code":0,"district":"东城区","province":"北京市","street":"" ,"street_number":"", "latitude": "116.403918", "longitude": "39.915011"}; callback(adr); } } }); }, // 根据百度返回数据获取地图列表 getBMapDataList: function (r) { var province = r.province; var city = r.city; var district = r.district; if (!district) { district = city; } var localAddress = district; // 地区切换页 定位数据 if (province == city && district) { // 直辖市,展示区的信息 $("#choose_location").text(district); taxMap.fullName = province + district; $('#listmap #address_location').text(district); } else { // 省,展示市的数据 $("#choose_location").text(city); localAddress = city; taxMap.fullName = province + city; $('#listmap #address_location').text(city); } taxMap.locationName = localAddress; taxMap.chooseName = localAddress; request({ type: 'get', url: 'bsfw/bsdt/getNsjxxByXzqhmc', data: { 'xzqhmc': Base64.encode(taxMap.fullName), 'longitude': r.longitude, 'latitude': r.latitude } }, function (response) { var result = JSON.parse(response); taxMap.locationCode = result.msg; taxMap.chooseCode = result.msg; // 展示列表 taxMap.addTaxMapList(result.data); }); }, // 根据所选地区获取地图列表 getChooseMapList: function (r) { // 选择地区 $("#listmap #address_location").text(taxMap.chooseName); request({ type: 'get', url: 'bsfw/bsdt/getNsjxxByXzqhbh', data: { 'sjbh': this.chooseCode, 'search': Base64.encode(this.searchValue), 'longitude': r.longitude, 'latitude': r.latitude } }, function (response) { var result = JSON.parse(response); taxMap.addTaxMapList(result.data); }); }, //检索 searchTaxMapList: function (searchValue) { taxMap.searchValue = searchValue; request({ type: 'get', url: 'bsfw/bsdt/getNsjxxByXzqhbh', data: { 'sjbh': this.chooseCode, 'search': Base64.encode(searchValue) } }, function (response) { var result = JSON.parse(response); taxMap.addTaxMapList(result.data); taxMap.setStorage();//重置存储内容; }); }, //字符串处理 detaileStr: function (str) { if (str == null) { return ""; } else if (!str) { return ""; } else { return str; } }, //纳税局数据填充 addTaxMapList: function (data) { var str = ''; if (data && data[0]) { var point = new BMap.Point(data[0].x, data[0].y); var marker1 = new BMap.Marker(new BMap.Point(data[0].x, data[0].y)); taxMap.listMap.addOverlay(marker1); taxMap.listMap.panTo(point); } for (var i in data) { var phoneCalss = ' onclick="telPhone(this)" '; if (!data[i].swjglxdh || data[i].swjglxdh == 'null') { phoneCalss = ' style="display: none;" ' } //百度地图路线地址 var baiduUrl = 'https://api.map.baidu.com/marker?location=' + data[i].y + ',' + data[i].x + '&title=' + data[i].swjgdz + '&content=' + data[i].swjgmc + '&output=html&src=webapp.baidu.openAPIdemo'; var title = commonUtils.markedRed(taxMap.detaileStr(data[i].swjgmc),taxMap.searchValue); var distanceObj = ''; if (taxMap.detaileStr(data[i].jl)) { distanceObj = ''+taxMap.detaileStr(data[i].jl)+''; } var backgroundClass= ''; if (i == 0) { backgroundClass = 'cardbox-selected'; } str += '
' + '
' + '

' + title + '

' + '
' + '
' + ' ' + '
' + ' ' + '
' } if(str){ $(".map-list").html(str); if(taxMap.oldScroll){ $('.content').scrollTop(taxMap.oldScroll); taxMap.oldScroll = 0; } } else { //加载占位图 $(".map-list").html('

暂无相关数据,请查看其它栏目

'); } }, //详情地图页 loadMapDetail: function (data) { //百度地图路线地址 var baiduUrl = 'https://api.map.baidu.com/marker?location=' + data.Y + ',' + data.X + '&title=' + data.SWJGDZ + '&content=' + data.SWJGMC + '&output=html&src=webapp.baidu.openAPIdemo'; var str = '
' + '
' + '
' + data.SWJGMC + '
'; if (data.SWJGDZ && data.SWJGDZ != 'null') { str += '
' + data.SWJGDZ + '
'; } var phoneCalss = ' onclick="telPhone(this)" '; var dhstr = ''; if (!data.SWJGLXDH || data.SWJGLXDH == 'null') { phoneCalss = ' style="display: none;" '; dhstr = ' style="display: none;" '; } str += '
' + '
电话:' + data.SWJGLXDH + '
' + '

主要职责:' + (data.SWJGJJ?data.SWJGJJ:'无') + '

' + '
' + '
' + '' + '
'; $("#tax_mapinfo").html(str); }, //记录页面检索内容和定位内容 setStorage : function(){ var storage = { searchValue : taxMap.searchValue, chooseCode : taxMap.chooseCode, chooseName : taxMap.chooseName, scroll : $('.content').scrollTop(), }; sessionStorage.setItem('tax_map_storage', JSON.stringify(storage)); }, //获取记录中的检索内容和定位内容 getStorage : function(){ return sessionStorage.getItem('tax_map_storage'); } }; /** * 点击放大镜进行检索 */ function searchMap() { var searchValue = $('#search').val(); //执行ajax刷新页面 // if (searchValue && searchValue != '') { taxMap.searchTaxMapList(searchValue); // } } /** * 搜索框输入回车进行检索 */ function search() { if (event.keyCode == 13) { //如果按的是enter键 13是enter event.preventDefault(); //禁止默认事件(默认是换行) var searchValue = $('#search').val(); //执行ajax刷新页面 // if (searchValue && searchValue != '') { taxMap.searchTaxMapList(searchValue); // } } } /** * 清空检索框 */ function cleanSearchText() { $('#search').val(''); taxMap.searchTaxMapList(''); } /** * 地区选择 */ var tax_area = { province_city_map: new Map(), initLocalCity: function () { //$("#choose_location").attr("city", taxMap.locationCode); //$("#choose_location").attr("name", taxMap.locationName); //$("#choose_location").text(taxMap.locationName); }, initChooseCity: function () { }, loadProvince: function () { request({ url: 'bsfw/bsdt/getXzqh', type: 'get', async: false, data: {} }, function (response) { response = JSON.parse(response); if (response.code === 1) { var xzqhList = response.data.sort(function (a, b) { return a.xzqhbm - b.xzqhbm;//排序 }); var provinceHtml = ""; for (var i = 0; i < xzqhList.length; i++) { var xzqh = xzqhList[i]; tax_area.province_city_map.set(xzqh.xzqhbm, xzqh.sjList.sort(function (a, b) { return a.xzqhbm - b.xzqhbm;//排序 })); var provinceName = BMapTools.simpleProvinceName(xzqh.xzqhmc); provinceHtml += '' + provinceName + '\n'; } $("#provinceList").html(provinceHtml); } }) }, loadCity: function (xzqhbm) { var loadFlag = false; var sjList = this.province_city_map.get(xzqhbm); if(sjList){ var cityHtml = ""; for (var i = 0; i < sjList.length; i++) { var xzqh = sjList[i]; var xzqhmc = BMapTools.simpleCityName(xzqh.xzqhmc); cityHtml += '' + xzqhmc + ''; } $("#cityList").html(cityHtml); loadFlag = true; } return loadFlag; }, //省份选择 areaChange: function (obj) { var loadFlag = this.loadCity($(obj).attr("city")); if(loadFlag){ $("#provinceDiv").hide(); $("#province_choose").text($(obj).attr("name")); $("#cityDiv").show(); } }, //市级的选择 cityCheck: function (obj) { taxMap.chooseCode = $(obj).attr("city"); taxMap.chooseName = $(obj).attr("name"); taxMap.loadTaxMapList(); $.router.back(); }, //返回选择省局 backProvince: function () { $("#cityDiv").hide(); $("#provinceDiv").show(); }, //初始化 init: function () { this.initChooseCity(); this.loadProvince(); } }; //省份选择 function areaChange(obj) { tax_area.areaChange(obj); } //市级的选择 function cityCheck(obj) { tax_area.cityCheck(obj); } function locationCityCheck(obj) { obj = $(obj).find("b"); tax_area.cityCheck(obj); } function backProvince() { tax_area.backProvince(); } function show_map_detail(id) { utils.setCookie("tax_map_id", id); $.router.load("#mapdetail"); } //路线导航 function navigation(baiduUrl) { taxMap.setStorage();//重置存储内容; window.location.href = baiduUrl; } // 点击详情 function map_text_detail() { $('.map_infodetail').toggle(); } $(function () { $(".back_android").on("click", function (e) { let rooter = subParams('rooter'); if (rooter === 'ios') { // backToMain(); window.webkit.messageHandlers.backToMain.postMessage({}); } else if (rooter === 'android') { if (needRealName()) { window.android.backToMain2(); } else { window.android.backToMain(); } } else { $.router.back(); } }); var localStorage = taxMap.getStorage(); if(localStorage){ localStorage = JSON.parse(localStorage); var search = localStorage.searchValue; var chooseCode = localStorage.chooseCode; var chooseName = localStorage.chooseName; if(search){ $('#search').val(search); taxMap.searchValue = search; } if(chooseCode) { taxMap.chooseCode = chooseCode; taxMap.chooseName = chooseName; //$("#choose_location").attr("city", chooseCode); //$("#choose_location").attr("name", chooseName); //$("#choose_location").text(chooseName); } taxMap.oldScroll = localStorage.scroll; } //加载纳税局列表 taxMap.loadTaxMapList(); tax_area.init(); var mapView = new BMap.Map("container"); mapView.centerAndZoom(new BMap.Point(116.404, 39.915), 15); mapView.enableScrollWheelZoom(true); mapView.addControl(new BMap.NavigationControl( { type: BMAP_NAVIGATION_CONTROL_ZOOM, //缩放控件类型 anchor: BMAP_ANCHOR_TOP_LEFT, //左上角 offset: new BMap.Size(1, 1) //进一步控制缩放按钮的水平竖直偏移量 } )); taxMap.listMap = new BMap.Map("container2"); taxMap.listMap.centerAndZoom(new BMap.Point(116.404, 39.915), 15); taxMap.listMap.enableScrollWheelZoom(true); taxMap.listMap.addControl(new BMap.NavigationControl( { type: BMAP_NAVIGATION_CONTROL_ZOOM, //缩放控件类型 anchor: BMAP_ANCHOR_TOP_LEFT, //左上角 offset: new BMap.Size(1, 1) //进一步控制缩放按钮的水平竖直偏移量 } )); // 搜索输入框输入事件 $('#search').on('input', function () { showMind($(this).val()); }); //搜索框失去焦点 $('#search').on("blur", function(){ setTimeout(function() { $('.searchlaw').hide(); }, 100); }); //搜索框获得焦点 $('#search').on('focus', function(){ var searchValue = $('#search').val(); if(searchValue && $('.searchlaw ul li').length >=1){ $('.searchlaw').show(); } else if(searchValue){ showMind(searchValue); } }) //地图页 $(document).on("pageInit", "#mapdetail", function (e, id, page) { // 回退绑定 $(".go2back").off("click"); CommonUtil.go2Back(); var tax_id = utils.getCookie("tax_map_id");//从缓存获取需要定位的纳税局id if (!tax_id) { //跳转到办税地图页 $.toast("地图加载异常..."); $.router.back(); return; } mapView.zoomTo(15);//重置缩放比例 mapView.clearOverlays();//清空覆盖层 //发起请求获得当前纳税局的详细信息 request({ type: 'get', async: false, url: 'bsfw/bsdt/getbstbyid', data: { 'id': tax_id } }, function (response) { var resulst = JSON.parse(response); var swjxx = resulst.data; //详情信息 taxMap.loadMapDetail(swjxx); var longitude = swjxx.X; var altitude = swjxx.Y; var new_point = new BMap.Point(longitude, altitude); mapView.panTo(new_point); var marker = new BMap.Marker(new_point); // 创建标注 mapView.addOverlay(marker);// 将标注添加到地图中 //创建信息窗口对象 var infoContent = "" + swjxx.SWJGMC + ""; var infoWindow = new BMap.InfoWindow(infoContent, {width: 250, height: 70}); //打开信息窗口 marker.openInfoWindow(infoWindow); //点击时打开信息窗口 marker.addEventListener("click", function (e) { marker.openInfoWindow(infoWindow); }); // 日志埋点 rdata-module="栏目编号" data-tag="类别编码" data-id="数据id" data-title="数据标题" var tax_id = utils.getCookie("tax_map_id");//从缓存获取需要定位的纳税局id loadLogScript(jslog+"/js/arlog.js?time="+new Date().getTime(),"arlogAnchor",{"data-module":'bsdt',"data-id":tax_id,"data-tag":"","data-title":swjxx.SWJGMC}); }); }); $.init(); }); //显示联想查询 function showMind(searchContent){ if(!searchContent || searchContent.replace(/\s/," ").length == 0) { emptyMind(); return false; } request({ type: 'get', url: 'bsfw/bsdt/getNsjxxByXzqhbh', data: { 'sjbh': taxMap.chooseCode, 'search': Base64.encode(searchContent) }, pageIndex:"1", listCount:"5", }, function(response) { var resulst = JSON.parse(response); var list = resulst.data; if(list && list.length > 0){ var html = ''; for(var i=0;i' + '
' + list[i].swjgmc + '
' + ''; } if(html){ $('.searchlaw ul').empty().append(html); $('.searchlaw').show(); } else { $('.searchlaw').hide(); } } }) } //关闭联想框 function closeMind (){ $('.searchlaw').hide(); } //清空联想框 function emptyMind (){ $('.searchlaw ul').empty(); $('.searchlaw').hide(); } //点击联想查询内容 function chooseSearch(searchContent){ $('#search').val(searchContent); taxMap.searchValue = searchContent; taxMap.loadTaxMapList(); emptyMind(); } function telPhone(ele) { var $this = $(ele); var thisphone = $(ele).attr("data-lxdh"); var allphone = []; thisphone = thisphone.replaceAll(",", ";"); thisphone = thisphone.replaceAll(",", ";"); thisphone = thisphone.replaceAll(";", ";"); allphone = thisphone.split(";"); if (allphone.length == 1) { var callPhone = allphone[0]; if (callPhone.indexOf("转") > 0) { callPhone = callPhone.substring(0, callPhone.indexOf("转")); } toPhone(callPhone); } else { var buttons1 = [ { text: '请选择拨打电话', label: true } ]; for (var i = 0; i < allphone.length; i++) { var phoneblock = {}; phoneblock.text = allphone[i]; phoneblock.onClick = function () { var callPhone = this.text; if (callPhone.indexOf("转") > 0) { callPhone = callPhone.substring(0, callPhone.indexOf("转")); } toPhone(callPhone); } buttons1.push(phoneblock); } var buttons2 = [ { text: '取消', bg: '' } ]; var groups = [buttons1, buttons2]; $.actions(groups); } } function toPhone(phone) { window.location.href = "tel:" + phone; } // 点击地图列表 切换 function changeListMap(e) { var $this = $(e); // 灰色背景样式 $this.parent().addClass('cardbox-selected').siblings().removeClass('cardbox-selected'); var data_x = $this.attr('data-x'); var data_y = $this.attr('data-y'); var data_title = $this.attr('data-title'); taxMap.listMap.clearOverlays(); taxMap.listMap.setZoom(15); var point = new BMap.Point(data_x, data_y); var marker = new BMap.Marker(point); taxMap.listMap.addOverlay(marker); taxMap.listMap.panTo(point); }