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(); }, })