From 2583e1923f3dac624b5841233b56d78745506a2e Mon Sep 17 00:00:00 2001 From: hly <2783385703@qq.com> Date: Mon, 18 Aug 2025 18:22:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=AE=A2=E5=8D=95):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=93=8D=E4=BD=9C=E6=8C=89=E9=92=AE=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=80=BB=E8=BE=91=E5=B9=B6=E6=B7=BB=E5=8A=A024?= =?UTF-8?q?=E5=B0=8F=E6=97=B6=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改订单详情页和订单列表页的取消订单和修改订单按钮显示逻辑,增加对服务日期在24小时内的判断 支付成功后跳转至支付成功页面,失败时返回订单列表 --- pages/newOrder/confirmOrder.vue | 5 ++-- pages_order/order/orderDetail.vue | 28 +++++++++++++++++++-- pages_order/order/orderList.vue | 53 ++++++++++++++++++++++++++++----------- 3 files changed, 68 insertions(+), 18 deletions(-) diff --git a/pages/newOrder/confirmOrder.vue b/pages/newOrder/confirmOrder.vue index 157f9e8..d0bc594 100644 --- a/pages/newOrder/confirmOrder.vue +++ b/pages/newOrder/confirmOrder.vue @@ -913,7 +913,8 @@ needPreFamiliarize: [] } uni.reLaunch({ - url: '/pages_order/order/orderList' + // url: '/pages_order/order/orderList' + url: '/pages_order/order/payOrderSuccessful' }); }, fail: (err) => { @@ -921,7 +922,7 @@ console.log('支付失败', err) this.$modal.showToast('支付失败') uni.reLaunch({ - url: '/pages_order/order/' + url: '/pages_order/order/orderList' }); }, complete: () => { diff --git a/pages_order/order/orderDetail.vue b/pages_order/order/orderDetail.vue index 01f5623..b437141 100644 --- a/pages_order/order/orderDetail.vue +++ b/pages_order/order/orderDetail.vue @@ -25,13 +25,13 @@ - + 取消订单 去付款 - + 修改订单 @@ -341,6 +341,30 @@ uni.navigateTo({ url: `/pages_order/order/orderModify?orderId=${this.orderId}` }); + }, + + // 判断服务日期是否在24小时内 + isServiceDateWithin24Hours() { + if (!this.detail.orderServiceList || this.detail.orderServiceList.length === 0) { + return false; + } + + // 获取最早的服务日期 + const earliestServiceDate = this.detail.orderServiceList + .map(service => service.serviceDate) + .sort((a, b) => dayjs(a).valueOf() - dayjs(b).valueOf())[0]; + + if (!earliestServiceDate) { + return false; + } + + // 计算时间差 + const now = dayjs(); + const serviceDate = dayjs(earliestServiceDate); + const hoursDiff = serviceDate.diff(now, 'hour'); + + // 如果服务日期距离现在小于24小时,返回true + return hoursDiff < 24 && hoursDiff >= 0; } } } diff --git a/pages_order/order/orderList.vue b/pages_order/order/orderList.vue index ba2bc59..f9f740d 100644 --- a/pages_order/order/orderList.vue +++ b/pages_order/order/orderList.vue @@ -59,20 +59,20 @@ - - - 取消订单 - - - 查看详情 - - - 去付款 - - - 修改订单 - + + + 取消订单 + + + 查看详情 + + + 去付款 + + + 修改订单 + @@ -157,6 +157,7 @@ getOrderServiceText, getProductNameText } from '@/utils/serviceTime.js' + import dayjs from '@/utils/lib/dayjs.min.js' export default { components: { Kefu, @@ -448,6 +449,30 @@ }); }, + // 判断服务日期是否在24小时内 + isServiceDateWithin24Hours(order) { + if (!order.orderServiceList || order.orderServiceList.length === 0) { + return false; + } + + // 获取最早的服务日期 + const earliestServiceDate = order.orderServiceList + .map(service => service.serviceDate) + .sort((a, b) => dayjs(a).valueOf() - dayjs(b).valueOf())[0]; + + if (!earliestServiceDate) { + return false; + } + + // 计算时间差 + const now = dayjs(); + const serviceDate = dayjs(earliestServiceDate); + const hoursDiff = serviceDate.diff(now, 'hour'); + + // 如果服务日期距离现在小于24小时,返回true + return hoursDiff < 24 && hoursDiff >= 0; + }, + }, onLoad() { // 页面加载时获取订单列表