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.

509 lines
12 KiB
JavaScript

9 months ago
const app = getApp();
const mqttMessage = require('../../../utils/mqttMessage.js');
var util = require('../../../utils/util.js')
const myOrder = require('../../../utils/myOrder.js');
Page({
/**
* 页面的初始数据
*/
data: {
tradeNo: "",
isInit: false,
hidden: false,
storeId: "",
once: "再来一单",
status: "等待接单",
order: null,
isShowDetail: false,
orderDesc: " "
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
color: app.globalData.color
})
//清除订单促销标记
app.orderTicket.promotionFlag = 0;
mqttMessage.mqttSubscribe(1);
this.data.isInit = options.init;
if(options.isMemberPay){
if(options.tempData){
this.cy_programorderpay(JSON.parse(options.tempData));
}else{
wx.showToast({
title: '会员卡支付上传流水失败请联系开发者',
icon:'none',
duration:60000
})
}
}else{
this.data.tradeNo = options.no;
app.globalData.tradeNo = options.no;
if (options.once) {
this.setData({
once: options.once,
});
}
this.cy_getOrderInfo();
}
},
/**
* 支付点上传
*/
cy_programorderpay: function (tempData) {
console.log("支付上传");
var that = this;
var saleDate = app.utils.getFormatTime(new Date(), 1);
var payCard = tempData.cardList[0];
var jsonString = myOrder.getMemberOrder();
app.globalData.tradeNo= tempData.tradeNo;
that.data.tradeNo = tempData.tradeNo;
jsonString.paid = app.utils.getTwo(payCard.amount / 100);
jsonString.money = app.utils.getTwo(payCard.amount / 100);
jsonString.cardNo = payCard.cardNo;
jsonString.payNo = payCard.tradeVoucherNo;
jsonString.payDate = saleDate;
jsonString.voucherNo = tempData.tradeVoucherNo;
console.log(jsonString);
var params = {
method: "program.order.pay",
programId: app.globalData.programId, //
openId: app.openId, //
busNo: tempData.tradeNo, //
jsonString: JSON.stringify(jsonString)
};
var ignores = ["programId", "openId", "jsonString"];
// app.globalData.serverUrl
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
console.log("支付上传------", json);
that.setData({
hidden: true
})
var data = json.data;
if (data.status == 1) {
var result = data.data;
app.globalData.tradeNo= result.busNo;
that.data.tradeNo = result.busNo;
that.cy_getOrderInfo();
} else {
that.setData({
hidden: true
})
wx.showToast({
title: data.message,
icon: "none"
})
}
},
function (err) {
wx.showToast({
title: "网络连接失败,订单上传异常",
icon: "none"
})
that.setData({
hidden: true
})
});
},
/**
*
*/
onShow: function () {
mqttMessage.mqttOn(this);
console.log(app.appTop1);
},
/**
* mqtt消息
*/
onMessage: function (top, message) {
console.log("mqtt消息", message);
var busNo = message.busNo;
var type = message.type;
if (message.deliverStatus == 1) {
util.showSuccessMsg("骑手已接单");
return;
} else if (message.deliverStatus == 4) {
util.showFailureMsg("您的配送单已取消");
return;
}
if (busNo == this.data.tradeNo) {
var status = "待接单";
var title = "待接单";
app.globalData.tradeNo = busNo;
this.data.tradeNo = busNo;
if (type == 0) {
title = "商家拒单";
status = "商家拒单";
}
if (type == 1) {
title = "商家已接单";
status = "已接单";
}
if (type == 2) {
title = "商家同意退款";
status = "已退款";
}
if (type == 3) {
title = "商家拒绝退款";
status = "拒绝退款";
}
wx.showToast({
title: title,
duration: 3000
})
this.setData({
status: status
})
this.cy_getOrderInfo();
}
},
cy_getOrderDeliveryInfo: function (storeId) {
var that = this;
var params = {
method: "program.order.delivery.query",
storeId: storeId,
busNo: this.data.tradeNo
}
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, [], function (json) {
console.log(json);
var data = json.data;
if (data.status == 1) {
var result = data.data;
if (result.deliverStatus != -1) {
that.setData({
orderDesc: result.deliverStatusDesc
})
} else {
that.setData({
orderDesc: result.statusDesc
})
}
that.setData({
deliveryInfo: data.data
})
} else {
wx.showToast({
title: data.message,
icon: "none"
})
}
}, function (err) {
console.log(err);
wx.showToast({
title: "网络连接失败,请刷新查看",
icon: "none"
})
});
},
/**
* 获取订单信息
*/
cy_getOrderInfo: function () {
var that = this;
var params = {
method: "program.order.detail",
programId: app.globalData.programId,
openId: app.openId,
tradeNo: this.data.tradeNo,
}
var ignores = ["programId", "openId", "tradeNo"];
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
wx.stopPullDownRefresh();
console.log(json);
var data = json.data;
if (data.status == 1) {
console.log(data);
var result = data.data;
that.cy_getOrderDeliveryInfo(result.storeId);
for (var product of result.orderProduct) {
product.makeDes = product.specName;
for (var make of result.makeInfo) {
if (product.clientId == make.orderItemId) {
if (product.makeDes != "") {
product.makeDes = product.makeDes + "、";
}
product.makeDes = product.makeDes + make.makeName;
}
}
}
app.globalData.orderNo = result.no;
mqttMessage.mqttSubscribe(6);
that.setData({
hidden: true,
busMode: result.busMode,
seqNo: result.seqNo,
status: that.cy_getOrderStatus(result.status, result.refundStatus),
no: result.no,
packageFee: result.packageFee,
deliverFee: result.deliverFee,
receivable: (parseFloat(result.receivable) + parseFloat(result.packageFee) + parseFloat(result.deliverFee)).toFixed(2),
saleDate: result.saleDate,
name: result.mobile,
storeId: result.storeId,
tableName: result.tableName,
ext2: result.ext2,
reserveTime: result.reserveTime,
address: result.ticketDeliver[0].address,
name: result.ticketDeliver[0].name,
orderTel: result.ticketDeliver[0].orderTel,
list: result.orderProduct,
order: result
})
} else {
wx.showToast({
title: data.message,
icon: "none"
})
}
}, function (err) {
console.log(err);
wx.showToast({
title: "网络连接失败,请刷新查看",
icon: "none"
})
});
},
cy_call_knight: function (e) {
if (e.currentTarget.dataset.phone != "") {
wx.makePhoneCall({
phoneNumber: e.currentTarget.dataset.phone,
})
} else {
wx.showToast({
title: '订单还未配送,请等待~',
icon:"none"
})
}
},
/**
* 再来一单
*/
cy_tapOnceOrder: function (e) {
console.log(e);
var once = this.data.once;
if (once == "再来一单") {
wx.navigateBack({
})
}
if (once == "申请退款") {
var order = this.data.order;
if (order.status != 1 || order.refundStatus != 0) {
var title = "不支持申请退款";
if (order.refundStatus == 1) {
title = "申请退款中";
}
wx.showToast({
title: title,
icon: 'none'
})
return;
}
var that = this;
this.data.formId = e.detail.formId;
wx.showModal({
title: '提示',
content: '确定申请退款吗?',
success: res => {
if (res.confirm) {
that.cy_orderRefund();
}
}
})
}
},
/**
* 申请退款
*/
cy_orderRefund: function () {
var that = this;
var params = {
method: "program.order.refundapply",
programId: app.globalData.programId,
openId: app.openId,
busNo: this.data.tradeNo
}
console.log(params);
var ignores = ["programId", "openId"];
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
console.log(json);
var data = json.data;
if (data.status == 1) {
wx.showToast({
title: "申请退款,等待商家同意退款",
icon: "none"
})
that.cy_programuserweixinformid(that.data.tradeNo);
that.cy_getOrderInfo();
} else {
wx.showToast({
title: data.message,
icon: "none"
})
}
}, function (err) {
console.log(err);
wx.showToast({
title: '网络连接异常,请检查',
icon: "none"
})
});
},
/**
*
*/
cy_tapEvaluate: function () {
wx.redirectTo({
url: '../../list/shopEvaluate?storeId=' + this.data.storeId,
})
},
/**
* 联系商家
*/
cy_callPhone: function () {
var store = wx.getStorageSync("store");
wx.makePhoneCall({
phoneNumber: store.orderTel,
})
},
/**
* 提交fromId
*/
cy_programuserweixinformid: function (busNo) {
var formId = this.data.formId;
var params = {
method: "program.userweixin.formid",
formId: formId,
openId: app.openId,
programId: app.globalData.programId,
sendType: "orderBack",
busNo: busNo,
}
console.log(params);
var ignores = ["openId"];
app.jsapi.api(app.globalData.appKey, app.globalData.appSecret, app.globalData.serverUrl).ajax(params, ignores, function (json) {
console.log(json);
}, function (err) {
console.log(err)
});
},
/**
* 订单状态
*/
// 单据状态(- 1待支付0待接单1已确认2已配送3已取消4已完成)
cy_getOrderStatus: function (status, refundStatus) {
var result = "";
switch (status) {
case -1:
result = "待支付";
break;
case 0:
result = "待接单";
break;
case 1:
result = "已接单";
break;
case 2:
result = "已配送";
break;
case 3:
result = "已取消";
break;
case 4:
result = "已完成";
break;
}
if (refundStatus == 1) {
result = "申请退款中";
}
if (refundStatus == 2) {
result = "商家拒绝退款";
}
if (refundStatus == 4) {
result = "已退款";
}
return result;
},
closeDelivery: function () {
this.setData({
isShowDetail: false
})
},
cy_showDelivery: function () {
this.setData({
isShowDetail: true
})
},
preventTouchMove: function () {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
console.log("下拉刷新");
this.cy_getOrderInfo();
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
if (this.data.isInit) {
app.orderTicket.orderList = [];
}
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
if (this.data.isInit) {
app.orderTicket.orderList = [];
}
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})