269 lines
6.4 KiB
JavaScript
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,
|
|
})
|
|
})();
|
|
}
|
|
})
|