EP-WachatApp/eaterplanet_ecommerce/moduleB/rider/grab.js

169 lines
3.7 KiB
JavaScript

var app = getApp();
var timer = null;
var location = require("../../utils/Location")
const bgMusic = wx.getBackgroundAudioManager();
Page({
/**
* 页面的初始数据
*/
data: {
list: [],
noData: 0
},
_onPlay: false,
handlerGobackClick(delta) {
const pages = getCurrentPages();
if (pages.length >= 2) {
wx.navigateBack({
delta: delta
});
} else {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
}
},
handlerGohomeClick(url) {
wx.switchTab({
url: '/eaterplanet_ecommerce/pages/index/index'
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getData();
},
onReady: function() {
bgMusic.onEnded(()=>{
this._onPlay = false;
})
},
initFn: function(){
timer = setInterval(()=>{
this.getData();
}, 1500)
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
this.initFn();
},
onHide: function () {
clearInterval(timer);
timer = null;
},
onUnload: function () {
clearInterval(timer);
timer = null;
},
getData: function () {
let token = wx.getStorageSync('token');
app.util.ProReq('localtown.get_localtown_delivery', { token }).then(res => {
let list = res.data || [];
if(res.new_order_notice==1 && !this._onPlay) {
this._onPlay = true;
bgMusic.src = "https://demo.ch871.com/assets/ep/mp3/click.mp3";
bgMusic.title = '您有新订单';
bgMusic.play()
}
this.setData({
noData: false,
list
})
}).catch(err => {
console.log(err)
if(err.code==2) {
this.setData({
list: [],
noData: true
})
return;
}
app.util.message(err.msg || '请求出错', 'switchTo:/eaterplanet_ecommerce/pages/user/me', 'error');
})
},
/**
* 查看地图
*/
gotoMap: function (e) {
let idx = e.currentTarget.dataset.idx;
if(idx<0) { return; }
let list = this.data.list || [];
let item = list[idx];
let longitude = parseFloat(item.member_lon),
latitude = parseFloat(item.member_lat),
name = item.shop_name,
address = item.member_address;
wx.openLocation({
latitude: latitude,
longitude: longitude,
name: name,
address: address,
scale: 28
})
},
/**
* 抢单
*/
rob: function(e){
let order_id = e.currentTarget.dataset.orderid;
if(!order_id) {
app.util.message('订单ID错误', '', 'error');
return;
}
let ps_lon=0, ps_lat=0;
location.getGps().then(res=>{
console.log('经纬度结果', res);
if(res.errCode==2) {
console.log(res.errMsg)
app.util.message('请检查手机定位是否开启', '', 'error');
return;
}
ps_lon = res.latitude
ps_lat = res.longitude
let token = wx.getStorageSync('token');
app.util.ProReq('localtown.rob_distribution_order', { token, order_id, ps_lon, ps_lat }).then(res => {
app.util.message('抢单失败,请重试', '', 'error');
this.getData();
}).catch(err => {
if(err.code==1) {
app.util.message(err.msg || '抢单成功', '', 'error');
} else {
app.util.message(err.msg || '抢单失败', '', 'error');
}
this.getData();
})
}).catch(()=>{
app.util.message('请先开启定位服务', '', 'error');
return;
})
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
}
})