Paooofuu/miniprogram/pages/my-bookings/index.js

90 lines
1.9 KiB
JavaScript

const { myBookings } = require("../../mock/photoBook");
Page({
data: {
list: myBookings,
},
findOrder(id) {
return (this.data.list || []).find((item) => item.id === id);
},
onTapOrder(e) {
const id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/booking-detail/index?id=${id}`,
});
},
onTapPrimary(e) {
const id = e.currentTarget.dataset.id;
const order = this.findOrder(id);
if (!order) {
return;
}
if (order.primaryText === "再次预约") {
wx.navigateTo({
url: "/pages/booking/index",
});
return;
}
if (!order.canContact) {
return;
}
wx.showToast({
title: "已复制摄影师联系方式",
icon: "none",
});
},
onTapSecondary(e) {
const id = e.currentTarget.dataset.id;
const list = this.data.list || [];
const index = list.findIndex((item) => item.id === id);
if (index === -1) {
return;
}
const order = list[index];
if (order.secondaryText === "取消预约" && order.canCancel) {
wx.showModal({
title: "确认取消",
content: "取消后可重新预约,你确认要取消本次拍摄吗?",
confirmColor: "#E5484D",
success: (res) => {
if (!res.confirm) {
return;
}
const next = [...list];
next[index] = {
...order,
status: "已取消",
statusType: "cancelled",
statusReason: "你已取消该订单",
canCancel: false,
secondaryText: "已结束",
};
this.setData({ list: next });
wx.showToast({
title: "已取消预约",
icon: "none",
});
},
});
return;
}
if (order.secondaryText === "改期申请") {
wx.showToast({
title: "改期申请已发起",
icon: "none",
});
}
},
});