|
...
|
...
|
@@ -4,7 +4,7 @@ import util from '../../utils/util'; |
|
|
|
import App from '../../utils/api';
|
|
|
|
import DA from './data';
|
|
|
|
const {regeneratorRuntime} = global
|
|
|
|
const mapScale=18;
|
|
|
|
const mapScale=16//18;
|
|
|
|
const transverseViewHeight=172;
|
|
|
|
const renNum=function(){
|
|
|
|
let arr=[]
|
|
...
|
...
|
@@ -40,6 +40,7 @@ Page({ |
|
|
|
//qqmapsdk:null,
|
|
|
|
sellers: [],
|
|
|
|
sellersIds:[],
|
|
|
|
sellersNow:[],//本次视图内商户
|
|
|
|
searchAddrTop:50,
|
|
|
|
user:{
|
|
|
|
latitude: 23.099994,
|
|
...
|
...
|
@@ -253,11 +254,12 @@ Page({ |
|
|
|
},
|
|
|
|
})
|
|
|
|
},
|
|
|
|
hasMarkertap:false,
|
|
|
|
markertap(e,flag=true){
|
|
|
|
this.hasMarkertap=false
|
|
|
|
let markers=this.data.markers;
|
|
|
|
console.log(e)
|
|
|
|
console.log('markertap',e)
|
|
|
|
let bl=1.2;
|
|
|
|
let current=0;
|
|
|
|
markers.forEach((m,i)=>{
|
|
|
|
m.iconPath=m.iconPath.replace('/cates-active/','/cates/')
|
|
|
|
m.zIndex=m.zIndexBak
|
|
...
|
...
|
@@ -274,7 +276,6 @@ Page({ |
|
|
|
m.callout.bgColor= '#626262';
|
|
|
|
}
|
|
|
|
if(m.id==e.markerId){
|
|
|
|
current=i;
|
|
|
|
m.iconPath=m.iconPath.replace('/cates/','/cates-active/')
|
|
|
|
if(m.width==20){
|
|
|
|
m.width=20*bl;
|
|
...
|
...
|
@@ -294,8 +295,17 @@ Page({ |
|
|
|
markers:markers,
|
|
|
|
};
|
|
|
|
if(flag){
|
|
|
|
let current=0;
|
|
|
|
//obj.scrollIntoView='seller-'+e.markerId;
|
|
|
|
obj.current=current
|
|
|
|
this.sellers.forEach(se=>{
|
|
|
|
if(se.id==e.markerId){
|
|
|
|
obj.current=current;
|
|
|
|
return true;
|
|
|
|
}else if(se.display!='none'){
|
|
|
|
current++;
|
|
|
|
}
|
|
|
|
})
|
|
|
|
this.hasMarkertap=true;
|
|
|
|
}
|
|
|
|
this.setData(obj)
|
|
|
|
},
|
|
...
|
...
|
@@ -336,7 +346,7 @@ Page({ |
|
|
|
},300)
|
|
|
|
}
|
|
|
|
let markers = [];
|
|
|
|
let sellers=[];
|
|
|
|
let sellers=this.data.sellers;
|
|
|
|
let param={
|
|
|
|
lat: this.user.latitude,
|
|
|
|
lng: this.user.longitude,
|
|
...
|
...
|
@@ -351,79 +361,88 @@ Page({ |
|
|
|
if(this.data.multiIndex[1]>0){
|
|
|
|
param.cuisine=await DA.getCatesID(this.data.multiIndex[1]-1);
|
|
|
|
}
|
|
|
|
let now_sid=[];
|
|
|
|
App.Customer.SellerList(param).then(res => {
|
|
|
|
this.mapData.region.southwest.latitude='';
|
|
|
|
if (res.ret == 200) {
|
|
|
|
// let sellersIds=["scale"+this.mapData.scale];
|
|
|
|
// res.data.forEach(seller=>{
|
|
|
|
// sellersIds.push(seller.id);
|
|
|
|
// })
|
|
|
|
// if(sellersIds.toString()==this.sellersIds.toString()) {
|
|
|
|
// return;
|
|
|
|
// }
|
|
|
|
// this.sellersIds=sellersIds;
|
|
|
|
sellers=res.data;
|
|
|
|
let sellersLength=sellers.length;
|
|
|
|
sellers.forEach((seller,si) => {
|
|
|
|
seller.distance=parseInt(seller.distance);
|
|
|
|
if(seller.distance>1000){
|
|
|
|
seller.distance=(seller.distance/1000).toFixed(2)+'公里'
|
|
|
|
}else{
|
|
|
|
seller.distance+='米';
|
|
|
|
let sellersList=res.data;
|
|
|
|
let sellersLength=sellersList.length;
|
|
|
|
sellersList.forEach((seller,si) => {
|
|
|
|
now_sid.push(seller.id);
|
|
|
|
let hasMark=false;
|
|
|
|
if(this.sellersIds._indexOf(seller.id)<0){
|
|
|
|
seller.distance=parseInt(seller.distance);
|
|
|
|
if(seller.distance>1000){
|
|
|
|
seller.distance=(seller.distance/1000).toFixed(2)+'公里'
|
|
|
|
}else{
|
|
|
|
seller.distance+='米';
|
|
|
|
}
|
|
|
|
this.sellersIds.push(seller.id);
|
|
|
|
hasMark=true;
|
|
|
|
sellers.push(seller);
|
|
|
|
}
|
|
|
|
|
|
|
|
let namelength = seller.sellername.replace(/[^\x00-\xff]/g, "01").length + 8;
|
|
|
|
let marker={
|
|
|
|
id: seller.id,
|
|
|
|
iconPath: "http://qn.colorcun.com/custom/lite-online/cates/circle1x5.png"+cates_version,
|
|
|
|
latitude: seller.lat,
|
|
|
|
longitude: seller.long,
|
|
|
|
width: 8,
|
|
|
|
height: 8,
|
|
|
|
//title:seller.seller_name,
|
|
|
|
zIndex:sellersLength-si,
|
|
|
|
zIndexBak:sellersLength-si,
|
|
|
|
};
|
|
|
|
if(seller.mode.length>0){
|
|
|
|
seller.mode.forEach(x=>{
|
|
|
|
if(x.id==1){//大图标
|
|
|
|
marker.iconPath="http://qn.colorcun.com/custom/lite-online/cates/其他菜品.png";
|
|
|
|
if(seller.cate.length>0){
|
|
|
|
marker.iconPath=seller.cate[0].icon
|
|
|
|
if(hasMark){
|
|
|
|
let marker={
|
|
|
|
id: seller.id,
|
|
|
|
iconPath: "http://qn.colorcun.com/custom/lite-online/cates/circle1x5.png"+cates_version,
|
|
|
|
latitude: seller.lat,
|
|
|
|
longitude: seller.long,
|
|
|
|
width: 8,
|
|
|
|
height: 8,
|
|
|
|
//title:seller.seller_name,
|
|
|
|
zIndex:sellersLength-si,
|
|
|
|
zIndexBak:sellersLength-si,
|
|
|
|
};
|
|
|
|
if(seller.mode.length>0){
|
|
|
|
seller.mode.forEach(x=>{
|
|
|
|
if(x.id==1){//大图标
|
|
|
|
marker.iconPath="http://qn.colorcun.com/custom/lite-online/cates/其他菜品.png";
|
|
|
|
if(seller.cate.length>0){
|
|
|
|
marker.iconPath=seller.cate[0].icon
|
|
|
|
}
|
|
|
|
marker.iconPath=marker.iconPath.replace(/\/cates\/(.*)\.png/,function ($0,$1) {
|
|
|
|
return '/cates/'+encodeURI($1)+'.png'
|
|
|
|
})
|
|
|
|
marker.iconPath+=cates_version
|
|
|
|
marker.width=20;
|
|
|
|
marker.height=25;
|
|
|
|
}
|
|
|
|
if(x.id==2){//商家名
|
|
|
|
marker.callout={
|
|
|
|
content: ' ' + seller.sellername + ' ',
|
|
|
|
color: '#fefefe',
|
|
|
|
fontSize: 12,
|
|
|
|
borderWidth: 0,
|
|
|
|
borderColor: '#626262',
|
|
|
|
borderRadius: 50,
|
|
|
|
bgColor: '#626262',
|
|
|
|
padding: 5,
|
|
|
|
textAlign: 'left',
|
|
|
|
display:'ALWAYS',
|
|
|
|
};
|
|
|
|
}
|
|
|
|
marker.iconPath=marker.iconPath.replace(/\/cates\/(.*)\.png/,function ($0,$1) {
|
|
|
|
return '/cates/'+encodeURI($1)+'.png'
|
|
|
|
})
|
|
|
|
marker.iconPath+=cates_version
|
|
|
|
marker.width=20;
|
|
|
|
marker.height=25;
|
|
|
|
}
|
|
|
|
if(x.id==2){//商家名
|
|
|
|
marker.callout={
|
|
|
|
content: ' ' + seller.sellername + ' ',
|
|
|
|
color: '#fefefe',
|
|
|
|
fontSize: 12,
|
|
|
|
borderWidth: 0,
|
|
|
|
borderColor: '#626262',
|
|
|
|
borderRadius: 50,
|
|
|
|
bgColor: '#626262',
|
|
|
|
padding: 5,
|
|
|
|
textAlign: 'left',
|
|
|
|
display:'ALWAYS',
|
|
|
|
};
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
markers.push(marker)
|
|
|
|
}
|
|
|
|
markers.push(marker)
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
console.log('接口报错了');
|
|
|
|
}
|
|
|
|
this.sellersNow=now_sid;
|
|
|
|
sellers.forEach(se=>{
|
|
|
|
se.display='none'
|
|
|
|
if(now_sid._indexOf(se.id)>-1){
|
|
|
|
se.display='';
|
|
|
|
}
|
|
|
|
})
|
|
|
|
this.sellers = sellers;
|
|
|
|
let obj={
|
|
|
|
markers: markers,
|
|
|
|
sellers:sellers,
|
|
|
|
}
|
|
|
|
if(markers.length>0){
|
|
|
|
obj.markers=this.data.markers.concat(markers);
|
|
|
|
}
|
|
|
|
if(sellers.length<this.data.current){
|
|
|
|
obj.current=0
|
|
|
|
}
|
|
...
|
...
|
@@ -489,11 +508,15 @@ Page({ |
|
|
|
},300)
|
|
|
|
},
|
|
|
|
bindtransition(e){
|
|
|
|
console.log(e.detail.current);
|
|
|
|
console.log('bindtransition',this.sellersNow,e.detail.current,this.sellersNow[e.detail.current]);
|
|
|
|
if(this.hasMarkertap){
|
|
|
|
this.hasMarkertap=false;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
let i=e.detail.current
|
|
|
|
this.activeSellerID=this.sellers[i];
|
|
|
|
this.activeSellerID=this.sellersNow[i];
|
|
|
|
this.markertap({
|
|
|
|
markerId:this.sellers[i].id
|
|
|
|
markerId:this.activeSellerID
|
|
|
|
},false)
|
|
|
|
},
|
|
|
|
gotoDetail(e){
|
...
|
...
|
|