修改待支付订单剩余支付时间部分的逻辑
This commit is contained in:
parent
3ed1cbed6d
commit
f5c197620c
@ -171,31 +171,76 @@ export default {
|
|||||||
},
|
},
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
const item = JSON.parse(options?.item);
|
const item = JSON.parse(options?.item);
|
||||||
// 启动倒计时
|
|
||||||
item.order_status == "1" ? this.startCountdown() : "";
|
|
||||||
this.status = JSON.stringify(item.order_status);
|
|
||||||
this.orderInfo = item;
|
this.orderInfo = item;
|
||||||
|
// 启动倒计时
|
||||||
|
// item.order_status == "1" ? this.startCountdown() : "";
|
||||||
|
this.startCountdown()
|
||||||
|
this.status = JSON.stringify(item.order_status);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
startCountdown() {
|
startCountdown() {
|
||||||
// 倒计时模拟
|
// 检查订单信息中是否有时效时间戳
|
||||||
let seconds = 10 * 60; // 10分钟
|
if (!this.orderInfo.timeout_time_stamp) {
|
||||||
const timer = setInterval(() => {
|
console.error('订单时效时间戳不存在');
|
||||||
seconds--;
|
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 hours = Math.floor(seconds / 3600);
|
||||||
const minutes = Math.floor((seconds % 3600) / 60);
|
const minutes = Math.floor((seconds % 3600) / 60);
|
||||||
const secs = seconds % 60;
|
const secs = seconds % 60;
|
||||||
this.countdown = `${hours}:${minutes.toString().padStart(2, "0")}:${secs
|
this.countdown = `${hours}:${minutes.toString().padStart(2, "0")}:${secs.toString().padStart(2, "0")}`;
|
||||||
.toString()
|
};
|
||||||
.padStart(2, "0")}`;
|
|
||||||
if (seconds <= 0) {
|
// 立即更新一次显示
|
||||||
|
updateCountdownDisplay(remainingSeconds);
|
||||||
|
|
||||||
|
// 设置定时器,每秒更新一次倒计时
|
||||||
|
const timer = setInterval(() => {
|
||||||
|
remainingSeconds--;
|
||||||
|
|
||||||
|
updateCountdownDisplay(remainingSeconds);
|
||||||
|
|
||||||
|
// 检查是否已经超时
|
||||||
|
if (remainingSeconds <= 0) {
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
// 倒计时结束,处理订单
|
// 倒计时结束,取消订单
|
||||||
uni.showToast({ title: "订单已取消", icon: "none" });
|
this.handleOrderCancellation();
|
||||||
setTimeout(() => uni.navigateBack(), 1500);
|
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 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() {
|
cancelOrder() {
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: "提示",
|
title: "提示",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user