279 lines
7.2 KiB
JavaScript
279 lines
7.2 KiB
JavaScript
![]() |
// pages/index/index_address/index_address.js
|
|||
|
const qqMap = require('../../../utils/qqmap-wx-jssdk.js')
|
|||
|
const qqmapsdk = new qqMap({
|
|||
|
key: 'UTFBZ-PQZLW-AX5R6-OWOG6-SRRBH-7FFEL'
|
|||
|
});
|
|||
|
const app = getApp();
|
|||
|
Page({
|
|||
|
|
|||
|
/**
|
|||
|
* 页面的初始数据
|
|||
|
*/
|
|||
|
data: {
|
|||
|
point: [],
|
|||
|
addressName: '当前地址',
|
|||
|
pay:false,
|
|||
|
},
|
|||
|
|
|||
|
//复制
|
|||
|
fz(e){
|
|||
|
wx.setClipboardData({
|
|||
|
data: e.currentTarget.dataset.fz,
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
//选择地址
|
|||
|
pointXz: function (e) {
|
|||
|
let index = e.currentTarget.dataset.index;
|
|||
|
let dataList = this.data.point;
|
|||
|
console.log(dataList[index].storesProvince + dataList[index].storesCity + dataList[index].storesArea + dataList[index].storesDetailed)
|
|||
|
const pages = getCurrentPages()
|
|||
|
const prevPage = pages[pages.length - 2] // 上一页
|
|||
|
|
|||
|
// 调用上一个页面的setData 方法,将数据存储
|
|||
|
prevPage.setData({
|
|||
|
address: dataList[index].storesProvince + dataList[index].storesCity + dataList[index].storesArea + dataList[index].storesDetailed,
|
|||
|
addressId: dataList[index].id,
|
|||
|
orderPick: 1,
|
|||
|
})
|
|||
|
wx.navigateBack();
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面加载
|
|||
|
*/
|
|||
|
onLoad: function (options) {
|
|||
|
if(options.pay){
|
|||
|
//支付选择自提点进入
|
|||
|
this.setData({
|
|||
|
pay:options.pay
|
|||
|
})
|
|||
|
}
|
|||
|
this.map({
|
|||
|
type: 1//当前地址 2重新定位
|
|||
|
})
|
|||
|
},
|
|||
|
map(options) {
|
|||
|
var that = this;
|
|||
|
wx.getSetting({
|
|||
|
success(res) {
|
|||
|
console.log('get-setting', res.authSetting);
|
|||
|
// 只返回用户请求过的授权
|
|||
|
let auth = res.authSetting;
|
|||
|
if (auth['scope.userLocation']) {
|
|||
|
// 已授权,申请定位地址
|
|||
|
if (options.type == 1) {
|
|||
|
that.toAddress();
|
|||
|
} else {
|
|||
|
that.again();
|
|||
|
}
|
|||
|
} else if (auth['scope.userLocation'] === undefined) {
|
|||
|
// 用户没有请求过的授权,不需要我们主动弹窗,微信会提供弹窗
|
|||
|
if (options.type == 1) {
|
|||
|
that.toAddress();
|
|||
|
} else {
|
|||
|
that.again();
|
|||
|
}
|
|||
|
} else if (!auth['scope.userLocation']) {
|
|||
|
// 没有授权过,需要用户重新授权
|
|||
|
// 这个弹窗是为了实现点击,不然openSetting会失败
|
|||
|
wx.showModal({
|
|||
|
title: '是否授权位置信息?',
|
|||
|
content: '需要获取您的位置信息,请确认授权',
|
|||
|
success: res => {
|
|||
|
if (res.confirm) {
|
|||
|
wx.openSetting({
|
|||
|
success(res) {
|
|||
|
console.log('位置信息', res.authSetting);
|
|||
|
console.log('open-setting-suc', res.authSetting);
|
|||
|
let setting = res.authSetting;
|
|||
|
if (!setting['scope.userLocation']) {
|
|||
|
wx.showToast({
|
|||
|
title: '位置信息授权失败',
|
|||
|
icon: 'none',
|
|||
|
});
|
|||
|
} else {
|
|||
|
// 地址授权成功,申请定位地址
|
|||
|
if (options.type == 1) {
|
|||
|
that.toAddress();
|
|||
|
} else {
|
|||
|
that.again();
|
|||
|
}
|
|||
|
}
|
|||
|
},
|
|||
|
fail(err) {
|
|||
|
// 需要点击,有时候没有点击,是无法触发openSetting
|
|||
|
console.log('open-setting-fail', err);
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
},
|
|||
|
// 调用地址
|
|||
|
toAddress: function () {
|
|||
|
var that = this
|
|||
|
wx.showLoading({
|
|||
|
title: '加载中..',
|
|||
|
mask: true
|
|||
|
})
|
|||
|
wx.getLocation({
|
|||
|
//定位类型 wgs84, gcj02
|
|||
|
// wgs84 返回 gps 坐标,gcj02 返回可用于wx.openLocation的坐标
|
|||
|
type: 'gcj02',
|
|||
|
//获取位置成功
|
|||
|
success: function (ress) {
|
|||
|
console.log(ress) //获取的的当前位置的详细信息
|
|||
|
that.setData({
|
|||
|
latitude: ress.latitude,
|
|||
|
longitude: ress.longitude
|
|||
|
})
|
|||
|
//经纬度转化为详细位置
|
|||
|
qqmapsdk.reverseGeocoder({
|
|||
|
location: {
|
|||
|
latitude: ress.latitude,
|
|||
|
longitude: ress.longitude
|
|||
|
},
|
|||
|
success: function (resss) {
|
|||
|
wx.hideLoading()
|
|||
|
console.log(resss)
|
|||
|
var region = [];
|
|||
|
that.setData({
|
|||
|
addressNo: 1,//地址授权
|
|||
|
region: region,
|
|||
|
addressName: resss.result.address + resss.result.formatted_addresses.recommend,
|
|||
|
})
|
|||
|
//获取自提点
|
|||
|
that.getStores()
|
|||
|
},
|
|||
|
fail: function (err) {
|
|||
|
wx.hideLoading()
|
|||
|
console.log(err)
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
},
|
|||
|
//获取位置失败
|
|||
|
fail: function (err) {
|
|||
|
console.log("获取位置信息失败,请返回重试")
|
|||
|
wx.showToast({
|
|||
|
title: '获取位置信息失败,请返回重试',
|
|||
|
icon: 'none'
|
|||
|
})
|
|||
|
wx.hideLoading()
|
|||
|
},
|
|||
|
//接口调用结束的回调函数(调用成功、失败都会执行)
|
|||
|
complete: function (info) {
|
|||
|
console.log("完成")
|
|||
|
},
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
again: function (e) {
|
|||
|
console.log(this.data.latitude)
|
|||
|
console.log(this.data.longitude)
|
|||
|
let latitude = this.data.latitude;
|
|||
|
let longitude = this.data.longitude;
|
|||
|
wx.chooseLocation({
|
|||
|
latitude: latitude,
|
|||
|
longitude: longitude,
|
|||
|
success: res => {
|
|||
|
// success
|
|||
|
console.log(res)
|
|||
|
this.setData({
|
|||
|
addressName: res.address + res.name,
|
|||
|
latitude: res.latitude,
|
|||
|
longitude: res.longitude,
|
|||
|
})
|
|||
|
//获取自提点
|
|||
|
this.getStores()
|
|||
|
},
|
|||
|
fail: function () { },
|
|||
|
complete: function () {
|
|||
|
// complete
|
|||
|
},
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
//获取门店列表
|
|||
|
getStores() {
|
|||
|
wx.showLoading({
|
|||
|
title: '加载中',
|
|||
|
})
|
|||
|
wx.request({
|
|||
|
url: app.globalData.ip + '/wisdommining/api/user/getStores',
|
|||
|
method: 'GET',
|
|||
|
header: {
|
|||
|
"content-type": "application/x-www-form-urlencoded",
|
|||
|
},
|
|||
|
data: {
|
|||
|
latitude: this.data.latitude,
|
|||
|
longitude: this.data.longitude,
|
|||
|
},
|
|||
|
success: res => {
|
|||
|
console.log(res)
|
|||
|
wx.hideLoading()
|
|||
|
if (res.data.code == 1) {
|
|||
|
let point = res.data.value;
|
|||
|
for (let i = 0; i < point.length; i++) {
|
|||
|
point[i].location = (point[i].distance / 1000).toFixed(2)
|
|||
|
}
|
|||
|
this.setData({
|
|||
|
point: point
|
|||
|
})
|
|||
|
} else {
|
|||
|
wx.showModal({
|
|||
|
title: '获取数据失败!',
|
|||
|
content: res.data.message,
|
|||
|
showCancel: false,
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面初次渲染完成
|
|||
|
*/
|
|||
|
onReady: function () {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面显示
|
|||
|
*/
|
|||
|
onShow: function () {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面隐藏
|
|||
|
*/
|
|||
|
onHide: function () {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 生命周期函数--监听页面卸载
|
|||
|
*/
|
|||
|
onUnload: function () {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 页面相关事件处理函数--监听用户下拉动作
|
|||
|
*/
|
|||
|
onPullDownRefresh: function () {
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
/**
|
|||
|
* 页面上拉触底事件的处理函数
|
|||
|
*/
|
|||
|
onReachBottom: function () {
|
|||
|
|
|||
|
},
|
|||
|
})
|