赞
踩
- <template>
- <div class="mapSeekShop">
- <div class="nav clearfix">
- <img class="navBack fl" src="../../../static/images/common/back.png" alt="" @click="navBack()">
- <h2 class="navTitle fl">地图找房</h2>
- </div>
- <div id="container"></div>
- <!-- <div class="containerTab"> -->
- <ul class="containerTab">
- <li @click="sellBtn" :class="{'lastLi':tab===0}">销售</li>
- <li @click="merchantsBtn" :class="{'lastLi':tab===1}">招商</li>
- </ul>
- <!-- </div> -->
- </div>
- </template>
-
- <script>
- import $ from '../../../static/js/jquery.min.js';
- import axios from 'axios';
- import qs from 'qs';
- export default {
- name: "mapSeekShop",
- data () {
- return {
- sessionCityId: "110100", // 全局城市Id
- sessionProvinceId: "11000", // 全局省Id
- seekMapArr: [],
- tab: 1
- }
- },
- computed:{
-
- },
- methods:{
- // 点击返回按钮
- navBack(){
- this.$router.push({path: '/home'});
- },
- seekMapData(type){
- let url = this.changeData() + '/project/projectOnMap'
- axios(url,{
- method: 'post',
- params: {
- cityId: this.sessionCityId || 110100, //所属城市【必传】
- projectType: type, // 项目类型【必传】,1是销售、2是招商
- }
- }).then(data => {
- // console.log(data);
- var lnglats = data.data.projectList;
- // console.log(this.seekMapArr);
- // 百度地图API功能
- var mp = new BMap.Map("container");
- mp.centerAndZoom(new BMap.Point(116.4573195952, 39.911365), 11);
- mp.enableScrollWheelZoom();
- var geoc = new BMap.Geocoder();//逆地址解析
- // 复杂的自定义覆盖物
- function ComplexCustomOverlay(point, text){
- this._point = point;
- this._text = text;
- }
- // 继承API的BMap.Overlay
- ComplexCustomOverlay.prototype = new BMap.Overlay();
- // 实现初始化方法
- ComplexCustomOverlay.prototype.initialize = function(map){
- this._map = map;
- var div = this._div = document.createElement("div");
- div.style.position = "absolute";
- div.style.zIndex = BMap.Overlay.getZIndex(this._point.lat);
- div.style.backgroundColor = "#84C0F7";
- div.style.border = "1px solid #84C0F7";
- div.style.color = "white";
- div.style.height = ".4rem";
- div.style.borderRadius = "5px";
- div.style.padding = ".02rem .05rem";
- div.style.lineHeight = ".4rem";
- div.style.whiteSpace = "nowrap";
- div.style.MozUserSelect = "none";
- div.style.fontSize = ".24rem"
- var span = this._span = document.createElement("span");
- div.appendChild(span);
- span.appendChild(document.createTextNode(this._text));
- var that = this;
-
- var arrow = this._arrow = document.createElement("div");
- arrow.style.background = "url(../../../static/images/home/blueSquare.png) no-repeat";
- arrow.style.position = "absolute";
- arrow.style.width = ".8rem";
- arrow.style.height = ".2rem";
- arrow.style.top = ".42rem";
- arrow.style.left = "50%";
- arrow.style.marginLeft = "-.1rem";
- arrow.style.overflow = "hidden";
- div.appendChild(arrow);
-
- mp.getPanes().labelPane.appendChild(div);
-
- return div;
- }
- // 实现绘制方法
- ComplexCustomOverlay.prototype.draw = function(){
- var map = this._map;
- // 根据地理坐标转换为像素坐标,并设置给容器
- var pixel = map.pointToOverlayPixel(this._point);
- this._div.style.left = pixel.x - parseInt(this._arrow.style.left) + "px";
- this._div.style.top = pixel.y - 30 + "px";
- }
- //在调用聚合方法时会将会调用标注的getPosition方法
- //获取该覆盖物的位置
- ComplexCustomOverlay.prototype.getPosition = function () {
- return this._point;
- };
- // 自定义覆盖物添加事件方法
- ComplexCustomOverlay.prototype.addEventListener = function (event, fun) {
- this._div['on' + event] = fun;
- }
-
- for (var i = 0; i < lnglats.length; i++) {
- //测试定位//开始自定义覆盖物
- var typeName;
- if(lnglats[i].projectType == 1){
- typeName = "销售";
- }else{
- typeName = "招商";
- }
-
- var myCompOverlay = new ComplexCustomOverlay(new BMap.Point(lnglats[i].lng,lnglats[i].lat), typeName+"-"+lnglats[i].projectName,lnglats[i].projectId);
- // console.log(myCompOverlay);
- mp.addOverlay(myCompOverlay); // 将标注添加到地图中
- //显示定位图标
- myCompOverlay.addEventListener("touchend", createClickEvent(lnglats[i].projectId,lnglats[i].projectType,lnglats[i].houseType)); //覆盖物点击事件
- }
- //不使用覆盖物,使用百度标注
- // var marker = new BMap.Marker(new BMap.Point(104.082042, 30.663608)); // 创建标注
- // mp.addOverlay(marker);
- // marker.addEventListener("touchend", createClickEvent(marker));
- function createClickEvent(id,type,houseType){
- return function (e) {
- if(type == 1){
- window.location.href = "./sellDetail?id="+id+"&url=mapSeekShop&type=1&houseType="+houseType;
- }else{
- window.location.href = "./merchantsDetail?id="+id+"&url=mapSeekShop&type=2&houseType="+houseType;
- }
- }
- }
- }).catch(err => {
- console.log(err)
- });
- },
- // 点击销售按钮
- sellBtn(){
- this.tab = 1;
- this.seekMapData(1);
- },
- // 点击招商按钮
- merchantsBtn(){
- this.tab = 0;
- this.seekMapData(2);
- }
- },
- mounted() {
- this.sessionCityId = sessionStorage.cityId;
- this.sessionProvinceId = sessionStorage.provinceId;
-
- //截取Url里面的参数
- function GetRequest() {
- var urlInfo = location.search; //获取url中"?"符后的字串
- var theRequest = new Object();
- if (urlInfo.indexOf("?") != -1) {
- var str = urlInfo.substr(1);
- var strs = str.split("&");
- for (var i = 0; i < strs.length; i++) {
- theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
- }
- }
- return theRequest;
- }
- //通过url取数
- var request = new Object();
- request = GetRequest();
- var typeIndex = request['type'];
- if(typeIndex){
- if(typeIndex == "1"){
- this.tab = 1;
- this.seekMapData(1);
- }else if(typeIndex == "2"){
- this.tab = 0;
- this.seekMapData(2);
- }
- }else{
- this.seekMapData(1);
- }
- },
- created(){
-
- }
- }
- </script>
-
- <style lang="scss" type="text/scss" scoped>
- @import "../../../static/css/commonNav.css";
-
- .mapSeekShop{
- width: 7.5rem;
- margin: 0 auto;
- }
- #container{
- width: 7.5rem;
- margin: 0 auto;
- }
- .containerTab{
- width: 2.3rem;
- height: .4rem;
- border: 1px solid #ebebeb;
- position: fixed;
- bottom: .72rem;
- left: .3rem;
- background: #fff;
- padding-top: .1rem;
- padding-bottom: .1rem;
- border-radius: 6px;
- box-shadow: 2px 0px 12px rgba(254,254,254,.6);
- li{
- width: 50%;
- color: #84C0F7;
- float: left;
- text-align: center;
- font-size: .28rem;
-
- }
- .lastLi{
- color: #666;
- border-left: 1px solid #ebebeb;
- box-sizing: border-box;
- }
- }
- </style>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。