beefast-mini-deliveryman/pages/order-detail/index.js
2025-02-27 22:15:09 +08:00

162 lines
3.6 KiB
JavaScript

import orderApi from '../../api/order';
import userApi from '../../api/user';
import {hidePhoneNumber} from '../../utils/util';
Page({
orderId:'',
/**
* 页面的初始数据
*/
data: {
orderDetail:{},
refreshTrigger:false,
orderStatus:orderApi.status,
orderStatusKV:orderApi.statusKV,
deliverStatusKV:orderApi.deliverStatusKV,
genderKV:userApi.genderKV,
orderStep:0
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.orderId = options.id;
this.getOrderDetail();
},
getOrderDetail(){
orderApi.detail(this.orderId).then((data)=>{
let orderStep = 0;
if(data.status==this.data.orderStatus.received){
orderStep = 1;
}else if(data.status==this.data.orderStatus.delivering){
orderStep = 2;
}else if(data.status==this.data.orderStatus.unpaid||data.status==this.data.orderStatus.completed){
orderStep = 3;
}
data.complete_time = this.formatTime(data.complete_time);
data.pickup_time = this.formatTime(data.pickup_time);
data.received_time = this.formatTime(data.received_time);
const receivedStatusCode = wx.getStorageSync(data.orderid);
data.packages.map((item)=>{
if(receivedStatusCode){
if(item.pickup_codes.length==(receivedStatusCode[item.id]||[]).length){
item.receivedAll = true;
}
(receivedStatusCode[item.id]||[]).map((code)=>{
item[code] = true;
})
}
});
if(data.status==this.data.orderStatus.created||data.status==this.data.orderStatus.completed||data.status==this.data.orderStatus.unpaid){
data.address_phone = hidePhoneNumber(data.address_phone);
}
this.setData({
orderDetail:data,
refreshTrigger:false,
orderStep
})
}).catch((res)=>{
console.log(res);
this.setData({
refreshTrigger:false
})
})
},
copyOrderId(){
wx.setClipboardData({
data: this.data.orderDetail.orderid,
})
},
formatTime(time){
return (time||'').substr(5,11);
},
preview(event){
const current = event.currentTarget.dataset.url;
wx.previewImage({
current:current,
urls: this.data.orderDetail.complete_images,
})
},
previewPackageImage(event){
const current = event.currentTarget.dataset.item;
wx.previewImage({
current:current,
urls: this.data.orderDetail.pickup_images,
})
},
selectPackageCode(event){
const index = event.currentTarget.dataset.index;
const item = this.data.orderDetail.packages[index];
let receviedStatus = wx.getStorageSync(item.orderid)||{};
const checkedCode = event.detail.value;
item.pickup_codes.map((code)=>{
item[code] = !!checkedCode.find((c)=>c==code);
})
let receivedAll = item.pickup_codes.length==checkedCode.length;
item.receivedAll = receivedAll
this.setData({
[`orderDetail.packages[${index}]`]:item
});
receviedStatus[item.id] = checkedCode;
wx.setStorage({
key:item.orderid,
data:receviedStatus
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})