1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee
epp/weixin-miniprogram/pages/shop/orderDetail.js

269 lines
6.4 KiB
JavaScript

// pages/shop/orderDetail.js
const orderService = require("../../services/order")
Page({
/**
* 页面的初始数据
*/
data: {
// 订单 ID
orderId: '',
// 订单详情
order: {},
/**
* 用于界面渲染
*/
// 订单商品列表
orderGoodList: [],
// 订单状态
orderStatusCode: '',
// 订单创建时间
orderTime: '',
// 订单总金额
orderPrice: '',
},
clearPageData() {
this.setData({
order: {},
orderGoodList: [],
orderStatusCode: '',
orderTime: '',
orderPrice: '',
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(options)
if (!options || !options.orderId) {
wx.showModal({
title: '订单查询失败',
content: '请刷新页面后重试',
showCancel: false,
complete: (res) => {
wx.navigateBack()
}
})
}
this.setData({
_options: options,
orderId: options.orderId,
})
this.loadPageData()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
},
refreshMyOrderPage() {
// 刷新
console.log("刷新上级订单列表页")
let myOrderPage = getCurrentPages().find(p => p.route == "pages/shop/myOrder")
myOrderPage && myOrderPage.onPullDownRefresh()
},
// 订单状态:等待确认
confirmPayment() {
// 点击确认支付按钮
wx.showModal({
title: '拉起支付',
content: '点击确认完成支付,点击取消放弃支付',
complete: (res) => {
if (res.cancel) {
wx.showToast({
title: '用户取消支付',
icon: 'error',
})
}
if (res.confirm) {
(async () => {
this.clearPageData()
let payResult = await orderService.payOrder(this.data.orderId)
console.log("payResult", payResult)
this.onLoad(this.data._options)
this.refreshMyOrderPage()
wx.showModal({
title: '支付结果',
content: payResult,
showCancel: false,
complete: (res) => {
// wx.navigateBack({
// delta: getCurrentPages().length - 1
// })
// wx.navigateTo({
// url: "/pages/shop/orderDetail?orderId=" + this.data.orderId,
// })
}
})
})();
}
}
})
},
// 订单状态:等待确认
cancelPayment() {
// 点击取消订单按钮
wx.showModal({
title: '是否取消订单?',
content: '点击确认取消订单,点击取消关闭弹窗(未发货前可取消订单)',
complete: (res) => {
if (res.confirm) {
(async () => {
this.clearPageData()
let cancelResult = await orderService.cancelOrder(this.data.orderId)
console.log("cancelResult", cancelResult)
this.onLoad(this.data._options)
this.refreshMyOrderPage()
wx.showModal({
title: '操作结果',
content: cancelResult || "操作失败,请重试",
showCancel: false,
complete: (res) => {
// wx.navigateBack({
// delta: getCurrentPages().length - 1
// })
// wx.navigateTo({
// url: "/pages/shop/orderDetail?orderId=" + this.data.orderId,
// })
}
})
})();
}
}
})
},
// 订单状态:已发货,点击确认收货
confirmReceipt() {
// 点击确认收货按钮
wx.showModal({
title: '是否确认收货?',
content: '未收到货时请不要点击确认',
complete: (res) => {
if (res.confirm) {
(async () => {
this.clearPageData()
let confirmResult = await orderService.confirmOrder(this.data.orderId)
console.log("confirmResult", confirmResult)
this.onLoad(this.data._options)
this.refreshMyOrderPage()
wx.showModal({
title: '操作结果',
content: confirmResult || "操作失败,请重试",
showCancel: false,
complete: (res) => {
// wx.navigateBack({
// delta: getCurrentPages().length - 1
// })
// wx.navigateTo({
// url: "/pages/shop/orderDetail?orderId=" + this.data.orderId,
// })
}
})
})();
}
}
})
},
loadPageData() {
(async () => {
console.log("orderId", this.data.orderId)
let orderDetail = await orderService.getOrderDetail(this.data.orderId)
console.log("orderDetail", orderDetail)
if (!orderDetail) {
wx.showModal({
title: '订单查询失败',
content: '',
showCancel: false,
complete: (res) => {
wx.navigateBack()
}
})
return
}
let orderGoodList = []
for (let item of orderDetail.orderItem) {
orderGoodList.push({
wxid: item.goodId, // 用于列表渲染
good: orderDetail.goods.find(good => good.id == item.goodId),
goodCount: item.goodCount,
unitPrice: item.unitPrice,
})
}
console.log("orderGoodList", orderGoodList)
let orderStatusCode = orderDetail.order.orderStatusCode
console.log("orderStatusCode", orderStatusCode)
let orderPrice = orderDetail.order.orderPrice
console.log("orderPrice", orderPrice)
this.setData({
order: orderDetail.order,
orderGoodList: orderGoodList,
orderTime: orderDetail.order.orderDate.replace("T", " "),
orderStatusCode: orderStatusCode,
orderPrice: orderPrice,
})
})();
}
})