You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

211 lines
4.6 KiB
JavaScript

9 months ago
const app = getApp();
const mqttMessage = require('../../../utils/mqttMessage.js');
Page({
/**
* 页面的初始数据
*/
data: {
isLoading: false,
showGoodsStatus: false,
orderId: "",
orderNo: "",
order: {},
intervalSeconds: 30,
storeId: "",
store: {},
product: {
imgUrl: ""
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
var that = this;
var storeId = undefined == options.storeId ? "" : options.storeId;
var orderId = undefined == options.orderId ? "" : options.orderId;
var orderNo = undefined == options.orderNo ? "" : options.orderNo;
that.setData({
orderId: orderId,
orderNo: orderNo,
storeId: storeId
});
//启动定时查询订单详情
// wx.showLoading({
// title: '加载中...'
// });
// that.loadOrderInfo();
},
/**
* mqtt消息
*/
onMessage: function(top, message) {
var that = this;
if (message.status == 1) {
that.loadOrderInfo();
}
if(message.deliverStatus==1){
wx.showToast({
title: '骑手已接单',
icon:"none"
})
return ;
}else if(message.deliverStatus==14){
wx.showToast({
title: '您的配送单已取消',
icon:"none"
})
return ;
}
},
/**
*
*/
onShow: function() {
mqttMessage.mqttOn(this);
},
/**
* 加载订单详情
*/
loadOrderInfo: function() {
var that = this;
var params = {
"method": "wxdc.sales.order.info",
"wxStoreId": that.data.storeId,
"ticketId": that.data.orderId,
"ticketNo": that.data.orderNo
}
// 不签名参数
var ignores = [];
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores,
function(json) {
var result = json.data;
if (result.status == 1) {
wx.stopPullDownRefresh();
wx.hideNavigationBarLoading();
wx.hideLoading();
// 清除定时查询
clearInterval(that.data.interval);
// 设置数据源
that.setData({
intervalSeconds: 20,
order: result.data
});
} else {
if (!that.data.isLoading) {
that.setData({
isLoading: true
});
that.beginPolling();
}
}
},
function(error) {
clearInterval(that.data.interval);
that.setData({
intervalSeconds: 20
});
app.msg.showMsg("提示", "网络中断,获取品类失败");
}
);
},
// 轮询查询订单详情
beginPolling: function() {
var that = this;
/* 加载数据 */
var interval = setInterval(function() {
that.loadData();
}, 2000);
that.setData({
interval: interval
});
},
/**
* 加载订单数据
*/
loadData: function() {
var that = this;
if (that.data.intervalSeconds == 0) {
clearInterval(that.data.interval);
that.setData({
intervalSeconds: 20
});
wx.stopPullDownRefresh();
wx.hideNavigationBarLoading();
wx.hideLoading();
wx.showModal({
title: '提示',
content: '加载订单详情失败',
});
} else {
var intervalSeconds = that.intervalSeconds;
intervalSeconds = intervalSeconds - 2;
that.setData({
intervalSeconds: intervalSeconds
});
that.loadOrderInfo();
}
},
/**
* 进入门店
*/
bindGoStore: function() {
},
/**
* 展开/关闭商品清淡
*/
bindShowGoods: function() {
this.setData({
showGoodsStatus: !this.data.showGoodsStatus
});
},
/**
* 取消订单
*/
bindCancelOrder: function() {
var that = this;
var order = that.data.order;
wx.navigateTo({
url: '../reason/reason?type=cancel&storeId=' + that.data.storeId + '&ticketId=' + order.ticketId + '&ticketNo=' + order.ticketNo,
});
// 0-等待付款;1-已支付;2-已退单;3-已取消;4-商家已确认;5-已完成;
},
/**
* 退单
*/
bindRefundOrder: function() {
var that = this;
var order = that.data.order;
wx.navigateTo({
url: '../reason/reason?type=refund&storeId=' + that.data.storeId + '&ticketId=' + order.ticketId + '&ticketNo=' + order.ticketNo,
});
},
/**
* 监听页面下拉事件
*/
onPullDownRefresh: function() {
//在标题栏中显示加载
wx.showNavigationBarLoading()
wx.showLoading({
title: '加载订单...',
});
this.setData({
order: {}
});
this.loadData();
},
})