修改待支付订单剩余支付时间部分的逻辑
This commit is contained in:
parent
3ed1cbed6d
commit
f5c197620c
@ -171,31 +171,76 @@ export default {
|
||||
},
|
||||
onLoad(options) {
|
||||
const item = JSON.parse(options?.item);
|
||||
// 启动倒计时
|
||||
item.order_status == "1" ? this.startCountdown() : "";
|
||||
this.status = JSON.stringify(item.order_status);
|
||||
this.orderInfo = item;
|
||||
// 启动倒计时
|
||||
// item.order_status == "1" ? this.startCountdown() : "";
|
||||
this.startCountdown()
|
||||
this.status = JSON.stringify(item.order_status);
|
||||
},
|
||||
methods: {
|
||||
startCountdown() {
|
||||
// 倒计时模拟
|
||||
let seconds = 10 * 60; // 10分钟
|
||||
const timer = setInterval(() => {
|
||||
seconds--;
|
||||
// 检查订单信息中是否有时效时间戳
|
||||
if (!this.orderInfo.timeout_time_stamp) {
|
||||
console.error('订单时效时间戳不存在');
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取当前时间和订单超时时间
|
||||
const now = Math.floor(new Date().getTime() / 1000);
|
||||
const timeoutTime = this.orderInfo.timeout_time_stamp;
|
||||
|
||||
// 判断当前时间是否已超过超时时间
|
||||
if (now > timeoutTime) {
|
||||
// 已超过超时时间,直接取消订单
|
||||
this.handleOrderCancellation();
|
||||
return;
|
||||
}
|
||||
|
||||
// 计算剩余时间(秒)
|
||||
let remainingSeconds = timeoutTime - now;
|
||||
// 确保剩余时间不为负数
|
||||
remainingSeconds = Math.max(0, remainingSeconds);
|
||||
|
||||
// 更新倒计时显示的函数
|
||||
const updateCountdownDisplay = (seconds) => {
|
||||
const hours = Math.floor(seconds / 3600);
|
||||
const minutes = Math.floor((seconds % 3600) / 60);
|
||||
const secs = seconds % 60;
|
||||
this.countdown = `${hours}:${minutes.toString().padStart(2, "0")}:${secs
|
||||
.toString()
|
||||
.padStart(2, "0")}`;
|
||||
if (seconds <= 0) {
|
||||
this.countdown = `${hours}:${minutes.toString().padStart(2, "0")}:${secs.toString().padStart(2, "0")}`;
|
||||
};
|
||||
|
||||
// 立即更新一次显示
|
||||
updateCountdownDisplay(remainingSeconds);
|
||||
|
||||
// 设置定时器,每秒更新一次倒计时
|
||||
const timer = setInterval(() => {
|
||||
remainingSeconds--;
|
||||
|
||||
updateCountdownDisplay(remainingSeconds);
|
||||
|
||||
// 检查是否已经超时
|
||||
if (remainingSeconds <= 0) {
|
||||
clearInterval(timer);
|
||||
// 倒计时结束,处理订单
|
||||
uni.showToast({ title: "订单已取消", icon: "none" });
|
||||
setTimeout(() => uni.navigateBack(), 1500);
|
||||
// 倒计时结束,取消订单
|
||||
this.handleOrderCancellation();
|
||||
}
|
||||
}, 1000);
|
||||
},
|
||||
|
||||
// 处理订单取消
|
||||
handleOrderCancellation() {
|
||||
const params = {
|
||||
order_id: this.orderInfo.id,
|
||||
method: 1,
|
||||
cancel_reason: '倒计时结束取消',
|
||||
};
|
||||
request(afterSaleApi.cancelOrConfirm, "POST", params).then((res) => {
|
||||
uni.showToast({ title: "订单已取消", icon: "none" });
|
||||
setTimeout(() => {
|
||||
uni.navigateBack();
|
||||
}, 1500);
|
||||
});
|
||||
},
|
||||
cancelOrder() {
|
||||
uni.showModal({
|
||||
title: "提示",
|
||||
@ -217,7 +262,7 @@ export default {
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 申请退款
|
||||
applyRefund() {
|
||||
uni.showModal({
|
||||
@ -238,7 +283,7 @@ export default {
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
// 确认收货
|
||||
confirmReceiving() {
|
||||
uni.showModal({
|
||||
@ -298,7 +343,7 @@ export default {
|
||||
update_time: this.orderInfo.update_time,
|
||||
user_id: this.orderInfo.user_id
|
||||
}));
|
||||
|
||||
|
||||
NavgateTo(`/packages/shop/groupPurchaseSubmit/index?shopCarList=${JSON.stringify(transformedItems)}`)
|
||||
},
|
||||
checkLogistics() {
|
||||
@ -308,7 +353,7 @@ export default {
|
||||
orderEvaluate() {
|
||||
NavgateTo(`/packages/myOrders/orderEvaluate/index?item=${JSON.stringify(this.orderInfo)}`);
|
||||
},
|
||||
|
||||
|
||||
// 售后按钮
|
||||
afterSale() {
|
||||
NavgateTo(`/packages/myOrders/afterSale/index`);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user