448 lines
13 KiB
JavaScript
448 lines
13 KiB
JavaScript
// pages/o2oCity/o2oCity.js
|
||
var QQMapWX = require('../../../mymap/qqmap-wx-jssdk.min.js');
|
||
var qqmapsdk;
|
||
var app = getApp();
|
||
Page({
|
||
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
city: '',
|
||
suggestion: [],
|
||
suggestion1: [],
|
||
suggestionshow1: false,
|
||
suggestionshow: false,
|
||
address_detail: '',
|
||
address_latitude: '',
|
||
address_longitude: '',
|
||
mksData: [],
|
||
markers: [],
|
||
mapmessageData: {
|
||
title: '',
|
||
message: '',
|
||
latitude: '',
|
||
longitude: '',
|
||
city: ''
|
||
},
|
||
scaleData: 16,
|
||
mapshow: false
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function(options) {
|
||
if(options.id){
|
||
this.setData({
|
||
id:options.id
|
||
});
|
||
}
|
||
if(!app.globalData.qqmapkey) {
|
||
app._getTemplate().then(res => {
|
||
qqmapsdk = new QQMapWX({
|
||
key: app.globalData.qqmapkey
|
||
});
|
||
if (options.tag) {
|
||
this.setData({
|
||
tag: options.tag
|
||
});
|
||
}
|
||
if (options.city) {
|
||
this.setData({
|
||
city: options.city
|
||
});
|
||
}
|
||
this._getLocation();
|
||
});
|
||
}else {
|
||
qqmapsdk = new QQMapWX({
|
||
key: app.globalData.qqmapkey
|
||
});
|
||
if (options.tag) {
|
||
this.setData({
|
||
tag: options.tag
|
||
});
|
||
}
|
||
if (options.city) {
|
||
this.setData({
|
||
city: options.city
|
||
});
|
||
}
|
||
this._getLocation();
|
||
}
|
||
|
||
},
|
||
_getLocation() {
|
||
let _this = this;
|
||
|
||
qqmapsdk.getSuggestion({
|
||
//获取输入框值并设置keyword参数
|
||
keyword: _this.data.city, //用户输入的关键词,可设置固定值,如keyword:'KFC'
|
||
region: _this.data.city, //设置城市名,限制关键词所示的地域范围,非必填参数
|
||
sig: app.globalData.qqmapsig,
|
||
success: function(res) { //搜索成功后的回调
|
||
var sug = [];
|
||
for (var i = 0; i < res.data.length; i++) {
|
||
sug.push({ // 获取返回结果,放到sug数组中
|
||
title: res.data[i].title,
|
||
id: res.data[i].id,
|
||
addr: res.data[i].address,
|
||
city: res.data[i].city,
|
||
district: res.data[i].district,
|
||
latitude: res.data[i].location.lat,
|
||
longitude: res.data[i].location.lng
|
||
});
|
||
}
|
||
_this.setData({ //设置suggestion属性,将关键词搜索结果以列表形式展示
|
||
suggestion1: sug,
|
||
suggestionshow1: true
|
||
});
|
||
},
|
||
fail: function(error) {
|
||
console.error(error);
|
||
},
|
||
complete: function(res) {
|
||
|
||
}
|
||
});
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady: function() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow: function() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide: function() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload: function() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom: function() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function() {
|
||
|
||
},
|
||
goback() {
|
||
wx.navigateBack({
|
||
delta: 1
|
||
});
|
||
this.setData({
|
||
mapshow: false,
|
||
address_detail: '',
|
||
suggestionshow1: true
|
||
});
|
||
},
|
||
searchconfirmbtn(e) {
|
||
var val = e.detail.value;
|
||
this.addressinp(val);
|
||
},
|
||
addressinpbtn(e) {
|
||
var val = e.detail.value;
|
||
this.addressinp(val);
|
||
},
|
||
addressinp(val) {
|
||
var _this = this;
|
||
if (!val) {
|
||
this.setData({
|
||
suggestionshow: false
|
||
});
|
||
return;
|
||
}
|
||
//调用关键词提示接口
|
||
qqmapsdk.getSuggestion({
|
||
//获取输入框值并设置keyword参数
|
||
keyword: val, //用户输入的关键词,可设置固定值,如keyword:'KFC'
|
||
region: _this.data.city, //设置城市名,限制关键词所示的地域范围,非必填参数
|
||
sig: app.globalData.qqmapsig,
|
||
success: function(res) { //搜索成功后的回调
|
||
var sug = [];
|
||
for (var i = 0; i < res.data.length; i++) {
|
||
sug.push({ // 获取返回结果,放到sug数组中
|
||
title: res.data[i].title,
|
||
id: res.data[i].id,
|
||
addr: res.data[i].address,
|
||
city: res.data[i].city,
|
||
district: res.data[i].district,
|
||
latitude: res.data[i].location.lat,
|
||
longitude: res.data[i].location.lng
|
||
});
|
||
}
|
||
_this.setData({ //设置suggestion属性,将关键词搜索结果以列表形式展示
|
||
suggestion: sug,
|
||
suggestionshow: true
|
||
});
|
||
},
|
||
fail: function(error) {
|
||
console.error(error);
|
||
},
|
||
complete: function(res) {
|
||
|
||
}
|
||
});
|
||
},
|
||
//点击数据回填方法
|
||
backfill1: function(e) {
|
||
console.log(e.currentTarget.id,"e.currentTarget.id");
|
||
var id = e.currentTarget.id;
|
||
for (var i = 0; i < this.data.suggestion1.length; i++) {
|
||
if (i == id) {
|
||
this.setData({
|
||
address_detail: this.data.suggestion1[i].title,
|
||
address_latitude: this.data.suggestion1[i].latitude,
|
||
address_longitude: this.data.suggestion1[i].longitude,
|
||
'mapmessageData.title': this.data.suggestion1[i].title,
|
||
'mapmessageData.message': this.data.suggestion1[i].addr,
|
||
'mapmessageData.latitude': this.data.suggestion1[i].latitude,
|
||
'mapmessageData.longitude': this.data.suggestion1[i].longitude,
|
||
'mapmessageData.city': this.data.suggestion1[i].city,
|
||
suggestionshow1: false,
|
||
mapshow: true
|
||
});
|
||
this.nearby_search();
|
||
}
|
||
}
|
||
},
|
||
//数据回填方法
|
||
backfill: function(e) {
|
||
console.log(e.currentTarget.id,"e.currentTarget.id");
|
||
var id = e.currentTarget.id;
|
||
for (var i = 0; i < this.data.suggestion.length; i++) {
|
||
if (i == id) {
|
||
this.setData({
|
||
address_detail: this.data.suggestion[i].title,
|
||
address_latitude: this.data.suggestion[i].latitude,
|
||
address_longitude: this.data.suggestion[i].longitude,
|
||
'mapmessageData.title': this.data.suggestion[i].title,
|
||
'mapmessageData.message': this.data.suggestion[i].addr,
|
||
'mapmessageData.latitude': this.data.suggestion[i].latitude,
|
||
'mapmessageData.longitude': this.data.suggestion[i].longitude,
|
||
'mapmessageData.city': this.data.suggestion[i].city,
|
||
suggestionshow: false,
|
||
mapshow: true
|
||
});
|
||
this.nearby_search();
|
||
}
|
||
}
|
||
},
|
||
// 事件触发,调用接口
|
||
nearby_search: function() {
|
||
var _this = this;
|
||
// 调用接口
|
||
qqmapsdk.search({
|
||
keyword: this.data.address_detail, //搜索关键词
|
||
location: {
|
||
latitude: this.data.address_latitude,
|
||
longitude: this.data.address_longitude
|
||
}, //设置周边搜索中心点
|
||
sig: app.globalData.qqmapsig,
|
||
success: function(res) { //搜索成功后的回调
|
||
// console.log('ccccc', res)
|
||
var mks = [];
|
||
var mksData = [];
|
||
for (var i = 0; i < res.data.length; i++) {
|
||
mks.push({ // 获取返回结果,放到mks数组中
|
||
title: res.data[i].title,
|
||
id: res.data[i].id,
|
||
latitude: res.data[i].location.lat,
|
||
longitude: res.data[i].location.lng,
|
||
iconPath: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png", //图标路径
|
||
width: 20,
|
||
height: 25,
|
||
callout: {
|
||
padding: '10rpx',
|
||
borderRadius: '5rpx',
|
||
content: res.data[i].title
|
||
}
|
||
});
|
||
mksData.push({
|
||
address: res.data[i].address,
|
||
title: res.data[i].title,
|
||
latitude: res.data[i].location.lat,
|
||
longitude: res.data[i].location.lng,
|
||
id: res.data[i].id,
|
||
city: res.data[i].ad_info.city ? res.data[i].ad_info.city : res.res.data[i].ad_info.province
|
||
});
|
||
}
|
||
_this.setData({ //设置markers属性,将搜索结果显示在地图中
|
||
markers: mks,
|
||
mksData: mksData
|
||
});
|
||
},
|
||
fail: function(res) {
|
||
console.log(res);
|
||
},
|
||
complete: function(res) {
|
||
console.log(res);
|
||
}
|
||
});
|
||
},
|
||
getmarkertap(e) {
|
||
let markerId = e.markerId;
|
||
for (var i = 0; i < this.data.mksData.length; i++) {
|
||
let id = this.data.mksData[i].id;
|
||
if (markerId == id) {
|
||
this.setData({
|
||
'mapmessageData.title': this.data.mksData[i].title,
|
||
'mapmessageData.message': this.data.mksData[i].address,
|
||
'mapmessageData.latitude': this.data.mksData[i].latitude,
|
||
'mapmessageData.longitude': this.data.mksData[i].longitude,
|
||
'mapmessageData.city': this.data.mksData[i].city
|
||
});
|
||
}
|
||
}
|
||
},
|
||
addbtn() {
|
||
let mapCtx = wx.createMapContext('myMap');
|
||
let that = this;
|
||
mapCtx.getScale({
|
||
success: function(e) {
|
||
let scale = e.scale;
|
||
that.setData({
|
||
scaleData: scale + 1
|
||
});
|
||
}
|
||
});
|
||
},
|
||
minusbtn() {
|
||
let mapCtx = wx.createMapContext('myMap');
|
||
let that = this;
|
||
mapCtx.getScale({
|
||
success: function(e) {
|
||
let scale = e.scale;
|
||
that.setData({
|
||
scaleData: scale - 1
|
||
});
|
||
}
|
||
});
|
||
},
|
||
buttonbtn() {
|
||
if(this.data.tag == 'activityHome' || this.data.tag == 'activitySearch' || this.data.tag == 'activitySort'){
|
||
wx.setStorage({
|
||
key: "address-point",
|
||
data: { point: { lat: this.data.mapmessageData.latitude, lng: this.data.mapmessageData.longitude }, city: this.data.mapmessageData.city }
|
||
});
|
||
}else if(this.data.tag == 'storeConsume'){
|
||
wx.setStorage({
|
||
key: "address-point",
|
||
data: { point: { lat: this.data.mapmessageData.latitude, lng: this.data.mapmessageData.longitude }, city: this.data.mapmessageData.message }
|
||
});
|
||
}else if(this.data.tag && this.data.tag.indexOf("project_verification")!==-1){
|
||
wx.setStorage({
|
||
key: "address-point",
|
||
data: { point: { lat: this.data.mapmessageData.latitude, lng: this.data.mapmessageData.longitude }, city: this.data.mapmessageData.message }
|
||
});
|
||
switch(this.data.tag){
|
||
case "project_verification/MyProject":
|
||
wx.reLaunch({
|
||
url: '/packageH/project_verification/MyProject/MyProject?location_change=1&Location='+JSON.stringify(this.data.mapmessageData),
|
||
});
|
||
break;
|
||
case "project_verification/VerificationProjectList":
|
||
wx.reLaunch({
|
||
url: '/packageH/project_verification/VerificationProjectList/VerificationProjectList?location_change=1',
|
||
});
|
||
break;
|
||
}
|
||
return;
|
||
}else{
|
||
wx.setStorage({
|
||
key: "address-point",
|
||
data: { point: { lat: this.data.mapmessageData.latitude, lng: this.data.mapmessageData.longitude }, city: this.data.mapmessageData.city }
|
||
});
|
||
}
|
||
wx.setStorage({
|
||
key: "address-status",
|
||
data: '1'
|
||
});
|
||
if (this.data.tag == "hotel") {
|
||
wx.reLaunch({
|
||
url: '/packageC/hotel/HotelIndex/HotelIndex?addressData=' + JSON.stringify(this.data.mapmessageData)
|
||
});
|
||
} else if (this.data.tag == "home") {
|
||
wx.reLaunch({
|
||
url: '/packageG/index/index?addressData=' + JSON.stringify(this.data.mapmessageData)
|
||
});
|
||
} else if (this.data.tag == "diy") {
|
||
let urls = wx.getStorageSync('diyurl');
|
||
wx.reLaunch({
|
||
url:urls
|
||
});
|
||
} else if (this.data.tag == "easyRefuel") {
|
||
wx.reLaunch({
|
||
url: '/packageD/easyRefuel/easyRefuel'
|
||
});
|
||
} else if(this.data.tag == 'activityHome'){
|
||
wx.reLaunch({
|
||
url: '/packageC/Myshaky/activityHome/activityHome?addressData=' + JSON.stringify(this.data.mapmessageData),
|
||
});
|
||
} else if(this.data.tag == 'activitySearch'){
|
||
wx.reLaunch({
|
||
url: '/packageC/Myshaky/activityHome/activityHome?addressData=' + JSON.stringify(this.data.mapmessageData),
|
||
});
|
||
} else if(this.data.tag == 'activitySort'){
|
||
wx.navigateBack({
|
||
delta: 2,
|
||
});
|
||
} else if(this.data.tag == "appointment"){
|
||
wx.reLaunch({
|
||
url: '/packageE/appointment/appointment_index'
|
||
});
|
||
} else if(this.data.tag == "communityStore"){
|
||
wx.reLaunch({
|
||
url: '/packageH/o2o/communityStore/communityStore'
|
||
});
|
||
} else if(this.data.tag == "communityStoreDetails"){
|
||
let urls = wx.getStorageSync('communityStoreDetailsUrl');
|
||
wx.reLaunch({
|
||
url: urls
|
||
});
|
||
} else if(this.data.tag == "storeConsume"){
|
||
wx.reLaunch({
|
||
url: '/packageH/o2o/storeConsumeIndex/storeConsumeIndex?addressData=' + JSON.stringify(this.data.mapmessageData) + '&id='+this.data.id
|
||
});
|
||
} else if(this.data.tag == "tagCloud"){
|
||
wx.navigateBack({
|
||
delta: 2
|
||
});
|
||
} else {
|
||
wx.reLaunch({
|
||
url: '/packageC/o2o/o2oHome/o2oHome?addressData=' + JSON.stringify(this.data.mapmessageData)
|
||
});
|
||
}
|
||
}
|
||
});
|