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 += '
' +
' ' +
'
' +
'
' +
' - ' + taxMap.detaileStr(data[i].swjgdz) + distanceObj + '
' +
' - ' + taxMap.detaileStr(data[i].swjglxdh) + '
' +
' - ' + taxMap.detaileStr(data[i].bssj) + '
' +
'
' +
'
' +
' ' +
'
'
}
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);
}