diff --git a/src/game_pages/detail/components/Participants/index.tsx b/src/game_pages/detail/components/Participants/index.tsx
index 9c18c23..7b555cb 100644
--- a/src/game_pages/detail/components/Participants/index.tsx
+++ b/src/game_pages/detail/components/Participants/index.tsx
@@ -489,7 +489,7 @@ export default function Participants(props) {
- {displayNtrp}
+ NTRP {displayNtrp}
{role}
diff --git a/src/order_pages/orderDetail/index.tsx b/src/order_pages/orderDetail/index.tsx
index cc3c4e8..9f697d0 100644
--- a/src/order_pages/orderDetail/index.tsx
+++ b/src/order_pages/orderDetail/index.tsx
@@ -2,7 +2,7 @@ import React, { useState, useRef } from "react";
import { View, Text, Button, Image } from "@tarojs/components";
import { Dialog } from "@nutui/nutui-react-taro";
import Taro, { useDidShow, useRouter } from "@tarojs/taro";
-import dayjs from "dayjs";
+import dayjs, { Dayjs } from "dayjs";
import "dayjs/locale/zh-cn";
import classnames from "classnames";
import orderService, {
@@ -75,6 +75,45 @@ function genGameNotice(order_status, start_time) {
return gameNoticeMap.get(key) || {};
}
+function genGameLength(startTime: Dayjs, endTime: Dayjs) {
+ if (!startTime || !endTime) {
+ return "";
+ }
+ const totalMinutes = endTime.diff(startTime, "minute");
+ const totalHours = totalMinutes / 60;
+
+ if (totalHours >= 24) {
+ const days = Math.floor(totalHours / 24);
+ const remainingHours = totalHours % 24;
+
+ if (remainingHours === 0) {
+ return `${days}天`;
+ }
+
+ // 保留一位小数
+ const displayHours = parseFloat(remainingHours.toFixed(1));
+ return `${days}天${displayHours}小时`;
+ }
+
+ // 如果是整数小时,不显示小数点
+ if (Number.isInteger(totalHours)) {
+ return `${totalHours}小时`;
+ }
+ // 保留一位小数,去除末尾的0
+ return `${parseFloat(totalHours.toFixed(1))}小时`;
+}
+
+function genGameRange(startTime: Dayjs, endTime: Dayjs) {
+ if (!startTime || !endTime) {
+ return "";
+ }
+ // 如果跨天(自然日)
+ if (!startTime.isSame(endTime, "day")) {
+ return `${startTime.format("HH:mm")} - ${endTime.format("MM月DD日 HH:mm")}`;
+ }
+ return `${startTime.format("HH:mm")} - ${endTime.format("HH:mm")}`;
+}
+
function GameInfo(props) {
const { detail, currentLocation, orderDetail, init } = props;
const { order_status, refund_status, amount, refund_amount } = orderDetail;
@@ -111,15 +150,17 @@ function GameInfo(props) {
const startTime = dayjs(start_time);
const endTime = dayjs(end_time);
- const game_length = Number(
- (endTime.diff(startTime, "minutes") / 60).toFixed(),
- );
+ // const game_length = Number(
+ // (endTime.diff(startTime, "minutes") / 60).toFixed(),
+ // );
+ const game_length = genGameLength(startTime, endTime);
const startMonth = startTime.format("M");
const startDay = startTime.format("D");
const theDayOfWeek = startTime.format("dddd");
const startDate = `${startMonth}月${startDay}日 ${theDayOfWeek}`;
- const gameRange = `${startTime.format("HH:mm")} - ${endTime.format("HH:mm")}`;
+ // const gameRange = `${startTime.format("HH:mm")} - ${endTime.format("HH:mm")}`;
+ const gameRange = genGameRange(startTime, endTime);
const orderStatus = getOrderStatus(orderDetail);