var deptMap; var deptList; var deptParent; var deptParentId; var map = new BMapGL.Map("container"); var timer; var layer; var showDeptFlag = true; $(function () { layui.use(['layer', 'laydate', 'form'], function () { layer = layui.layer; //旋转动画 // rotate(); }); }); //页面初始化后,查看是否有初始化仓库编码 window.onload = function () { //初次定位到库区位置 if (dept) { deptParent = dept; //setTimeout('firstSetCenter()', 5000); firstSetCenter(); } }; //定位库区位置 function firstSetCenter() { map.enableScrollWheelZoom(true); //适应地图大小,设置地图中心点坐标及地图级别 map.centerAndZoom(new BMapGL.Point(dept.lon, dept.lat), 10); setTimeout(function () { map.setMapType(BMAP_NORMAL_MAP); map.setMapStyleV2({ styleId: '2d7e9be25edbcb299c48ff8d14119eef' }); $("#topdiv").css("display", "block"); currentSetCenter(); if (dept.type == "10") { deptParentId = dept.id; showChildDept(); getDeptChild() } }, 1000); } /** * 将当前部门设为中心 */ function currentSetCenter() { map.centerAndZoom(new BMapGL.Point(deptParent.lon, deptParent.lat), 15); } /** * 显示部门列表 */ function showChildDept() { if (showDeptFlag) { $("#rightdiv").addClass("show"); showDeptFlag = false; } else { $("#rightdiv").removeClass("show"); showDeptFlag = true; } } /** * 渲染列表 * @param data */ function renderDept() { //先清除之前的标记点 map.clearOverlays(); deptList = deptParent.children; // console.log(deptList); if (deptList) { deptMap = {}; //右侧列表html var html = ""; var myIcon; var pt; var pts = []; var marker; //把自己加进去一块标记出来 for(var i = 0; i < deptList.length; i ++){ !function(i){ var data1 = deptList[i]; if (data1.type == "10" || data1.type == "20") { html += "
  • \n"; if (data1.type == "10") { html += " \n"; } else { html += " \n"; } html += "
    \n" + "

    " + (data1.name ? data1.name : "") + "

    \n" + (data1.address ? data1.address : "") + "
    \n"; html += "
  • "; } }(i); } //创建标记点 deptList.push(deptParent); for(var i = 0; i < deptList.length; i ++){ !function(i){ var data2 = deptList[i]; if (data2.type == "10" || data2.type == "20") { deptMap[data2.id] = data2; if (data2.type == "10") { myIcon = new BMapGL.Icon("../../static/images/zuobiao_blue.png", new BMapGL.Size(70, 70)); } else { myIcon = new BMapGL.Icon("../../static/images/zuobiao_yellow.png", new BMapGL.Size(70, 70)); } // 创建Marker标注, pt = new BMapGL.Point(data2.lon, data2.lat); pts.push(pt); marker = new BMapGL.Marker(pt, { icon: myIcon }); // 将标注添加到地图 map.addOverlay(marker); marker.addEventListener('click', function () { openInfo(this, data2.id); }); } }(i); } $("#deptUl").html(html); //将所有的点显示出来 var view = map.getViewport(eval(pts)); var mapZoom = view.zoom; var centerPoint = view.center; map.centerAndZoom(centerPoint, mapZoom); } else { layer.msg("没有下属部门信息!"); } } //点位点击事件 function openInfo(marker, deptId) { var d = deptMap[deptId]; if (d) { var sContent = ""; sContent += "
    联系人:" + (d.contact ? d.contact : "") + "
    联系电话:" + (d.phone ? d.phone : "") + "
    "; // sContent += "详细地址:" + (d.address?d.address:"") ; // sContent +="

    " ; // sContent += d.desc ? d.desc:""; // sContent += "

    " ; if (d.type == "20") { sContent += "" } sContent += "
    "; var infoWindow = new BMapGL.InfoWindow(sContent, { title: d.name, //标题 width: 200, //宽度 height: 120 //高度 }); marker.openInfoWindow(infoWindow); } else { console.log("没有从map中获取到部门") } } /** * 打开首页事件 */ function openHome(deptId) { //首先主动更换当前人临时部门 layer.msg("开始验证部门……"); $.ajax({ type: "GET", cache: false, url: "../../basic/common/change-deptId?deptId=" + deptId + "&userId=" + userId, dataType: "json", contentType: "application/json;charset=UTF-8", success: function (result) { if(model == "all"){ window.open("../../index?g=1", "_parent"); }else { window.open("../../home?t=" + model + "&g=1", "_parent"); } }, error: function (result) { if("SUCCESS" == result.responseText){ if(model == "all"){ window.open("../../index?g=1", "_parent"); }else { window.open("../../home?t=" + model + "&g=1", "_parent"); } }else{ layer.alert("系统验证当前用户所在部门异常,请联系管理员!"); } } }); } /** * 渲染按钮 * @param data */ function renderBtnBack() { //console.log(deptParent); var html = ""; if (deptParent.id == dept.id) { html += " \n" + "

    当前下属分支

    \n"; } else { html += " \n" + "

    返回上级

    "; } $("#btBack").html(html) } /** * 返回上层 */ function backParent() { var nowTime = new Date().getTime(); var clickTime = $(this).attr("ctime"); if (clickTime != 'undefined' && (nowTime - clickTime < 3000)) { alert('操作过于频繁,稍后再试'); return false; } else { $(this).attr("ctime", nowTime); getDeptparent(); } } /** * 仓库点击事件 * @param deptId */ function setCenter(deptId) { // console.log(deptId); // console.log(deptMap); var d = deptMap[deptId]; console.log(d); if (d) { if (d.type == 10) { //是公司还需要加载子部门数据并且渲染 deptParentId = d.id; getDeptChild(); } else { map.centerAndZoom(new BMapGL.Point(d.lon, d.lat), 15); } } else { console.log("没有从map中获取到部门") } } /** * 获取数据 */ function getDeptChild() { $.ajax({ type: "POST", url: "../../basic/gis/dept-child", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify({ "deptId": deptParentId }), success: function (result) { console.log(result); if (result.code != "0000") { layer.msg(result.msg); } else { deptParent = result.data; deptParentId = result.data.id; renderBtnBack(); renderDept(); //currentSetCenter(); } }, error: function () { layer.msg("获取信息失败!"); } }); } /** * 获取数据 */ function getDeptparent() { $.ajax({ type: "POST", url: "../../basic/gis/back-parent", dataType: "json", contentType: "application/json;charset=UTF-8", data: JSON.stringify({ "deptId": deptParentId }), success: function (result) { console.log(result); if (result.code != "0000") { layer.msg(result.msg); } else { deptParent = result.data; deptParentId = result.data.id; renderBtnBack(); renderDept(); //currentSetCenter(); } }, error: function () { layer.msg("获取信息失败!"); } }); } /** * 初始动画 */ function rotate() { //开启鼠标滚轮缩放 map.enableScrollWheelZoom(true); //开启地球模式 map.setMapType(BMAP_EARTH_MAP); // 初始化地图,设置动画起始点坐标和地图级别 map.centerAndZoom(new BMapGL.Point(214.406, 40.000), 5); //旋转动画开始 setTimeout(function () { map.panTo(new BMapGL.Point(204.406, 40.000)); }, 2000); setTimeout(function () { map.panTo(new BMapGL.Point(194.406, 40.000)); //旋转动画 }, 2250); setTimeout(function () { map.panTo(new BMapGL.Point(184.406, 40.000)); //旋转动画 }, 2500); setTimeout(function () { map.panTo(new BMapGL.Point(174.406, 40.000)); //旋转动画 }, 2775); setTimeout(function () { map.panTo(new BMapGL.Point(164.406, 40.000)); //旋转动画 }, 3000); setTimeout(function () { map.panTo(new BMapGL.Point(154.406, 40.000)); //旋转动画 }, 3250); setTimeout(function () { map.panTo(new BMapGL.Point(144.406, 40.000)); //旋转动画 }, 3500); setTimeout(function () { map.panTo(new BMapGL.Point(134.406, 40.000)); //旋转动画 }, 3750); setTimeout(function () { map.panTo(new BMapGL.Point(124.406, 40.000)); //旋转动画 }, 4000); //旋转动画结束 setTimeout(function () { map.panTo(new BMapGL.Point(114.403, 40.000)); }, 4250); } //格式化时间 function dateFormatStr(time) { if (time) { var d = new Date(time); return dateFtt("yyyy-MM-dd hh:mm:ss", d); } return ""; }