fix: 时间展示修复
This commit is contained in:
@@ -1,41 +1,13 @@
|
|||||||
import Taro from "@tarojs/taro";
|
import Taro from "@tarojs/taro";
|
||||||
import dayjs, { Dayjs } from "dayjs";
|
import dayjs, { Dayjs } from "dayjs";
|
||||||
import "dayjs/locale/zh-cn";
|
import "dayjs/locale/zh-cn";
|
||||||
import { calculateDistance } from "@/utils";
|
import { calculateDistance, genGameLength } from "@/utils";
|
||||||
import { View, Image, Text, Map } from "@tarojs/components";
|
import { View, Image, Text, Map } from "@tarojs/components";
|
||||||
import img from "@/config/images";
|
import img from "@/config/images";
|
||||||
import styles from "./index.module.scss";
|
import styles from "./index.module.scss";
|
||||||
|
|
||||||
dayjs.locale("zh-cn");
|
dayjs.locale("zh-cn");
|
||||||
|
|
||||||
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) {
|
function genGameRange(startTime: Dayjs, endTime: Dayjs) {
|
||||||
if (!startTime || !endTime) {
|
if (!startTime || !endTime) {
|
||||||
return "";
|
return "";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { forwardRef, useState, useEffect, useImperativeHandle } from "react";
|
import { forwardRef, useState, useEffect, useImperativeHandle } from "react";
|
||||||
import { View, Button, Image, Text } from "@tarojs/components";
|
import { View, Button, Image, Text } from "@tarojs/components";
|
||||||
import Taro, { useShareAppMessage } from "@tarojs/taro";
|
import Taro, { useShareAppMessage } from "@tarojs/taro";
|
||||||
import dayjs from "dayjs";
|
import dayjs, { Dayjs } from "dayjs";
|
||||||
import "dayjs/locale/zh-cn";
|
import "dayjs/locale/zh-cn";
|
||||||
import classnames from "classnames";
|
import classnames from "classnames";
|
||||||
import { generateShareImage } from "@/utils";
|
import { generateShareImage } from "@/utils";
|
||||||
@@ -12,7 +12,7 @@ import WechatLogo from "@/static/detail/wechat_icon.svg";
|
|||||||
// import WechatTimeline from "@/static/detail/wechat_timeline.svg";
|
// import WechatTimeline from "@/static/detail/wechat_timeline.svg";
|
||||||
import LinkIcon from "@/static/detail/link.svg";
|
import LinkIcon from "@/static/detail/link.svg";
|
||||||
import CrossIcon from "@/static/detail/cross.svg";
|
import CrossIcon from "@/static/detail/cross.svg";
|
||||||
import { genNTRPRequirementText, navto } from "@/utils/helper";
|
import { genNTRPRequirementText, navto, genGameLength } from "@/utils/helper";
|
||||||
import { waitForAuthInit } from "@/utils/authInit";
|
import { waitForAuthInit } from "@/utils/authInit";
|
||||||
import { useUserActions } from "@/store/userStore";
|
import { useUserActions } from "@/store/userStore";
|
||||||
import { OSS_BASE } from "@/config/api";
|
import { OSS_BASE } from "@/config/api";
|
||||||
@@ -43,13 +43,12 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => {
|
|||||||
|
|
||||||
// const posterRef = useRef();
|
// const posterRef = useRef();
|
||||||
const { max_participants, participant_count } = detail || {};
|
const { max_participants, participant_count } = detail || {};
|
||||||
|
|
||||||
// useEffect(() => {
|
// useEffect(() => {
|
||||||
// if (id) {
|
// if (id) {
|
||||||
// changeMessageType();
|
// changeMessageType();
|
||||||
// }
|
// }
|
||||||
// }, [id]);
|
// }, [id]);
|
||||||
|
|
||||||
|
|
||||||
async function changeMessageType() {
|
async function changeMessageType() {
|
||||||
try {
|
try {
|
||||||
@@ -65,11 +64,14 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => {
|
|||||||
activityId: res.data.activity_id, // 动态消息的活动 id
|
activityId: res.data.activity_id, // 动态消息的活动 id
|
||||||
templateInfo: {
|
templateInfo: {
|
||||||
parameterList: [
|
parameterList: [
|
||||||
{ name: 'member_count', value: (participant_count ?? 0).toString() },
|
{
|
||||||
{ name: 'room_limit', value: (max_participants ?? 0).toString() },
|
name: "member_count",
|
||||||
|
value: (participant_count ?? 0).toString(),
|
||||||
|
},
|
||||||
|
{ name: "room_limit", value: (max_participants ?? 0).toString() },
|
||||||
],
|
],
|
||||||
templateId: '666F374D69D16C932E45D7E7D9F10CEF6177F5F5'
|
templateId: "666F374D69D16C932E45D7E7D9F10CEF6177F5F5",
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -162,7 +164,8 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => {
|
|||||||
const startTime = dayjs(start_time);
|
const startTime = dayjs(start_time);
|
||||||
const endTime = dayjs(end_time);
|
const endTime = dayjs(end_time);
|
||||||
const dayofWeek = DayOfWeekMap.get(startTime.day());
|
const dayofWeek = DayOfWeekMap.get(startTime.day());
|
||||||
const gameLength = `${endTime.diff(startTime, "hour")}小时`;
|
// const gameLength = `${endTime.diff(startTime, "hour")}小时`;
|
||||||
|
const game_length = genGameLength(startTime, endTime);
|
||||||
let qrCodeUrl = "";
|
let qrCodeUrl = "";
|
||||||
try {
|
try {
|
||||||
const qrCodeUrlRes = await DetailService.getQrCodeUrl({
|
const qrCodeUrlRes = await DetailService.getQrCodeUrl({
|
||||||
@@ -190,7 +193,7 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => {
|
|||||||
title,
|
title,
|
||||||
locationName: location_name,
|
locationName: location_name,
|
||||||
date: `${startTime.format("M月D日")} (${dayofWeek})`,
|
date: `${startTime.format("M月D日")} (${dayofWeek})`,
|
||||||
time: `${startTime.format("ah")}点 ${gameLength}`,
|
time: `${startTime.format("ah")}点 ${game_length}`,
|
||||||
qrCodeUrl,
|
qrCodeUrl,
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import {
|
|||||||
getOrderStatus,
|
getOrderStatus,
|
||||||
generateOrderActions,
|
generateOrderActions,
|
||||||
isPhoneNumber,
|
isPhoneNumber,
|
||||||
|
genGameLength,
|
||||||
} from "@/utils";
|
} from "@/utils";
|
||||||
import { getStorage, setStorage } from "@/store/storage";
|
import { getStorage, setStorage } from "@/store/storage";
|
||||||
import { useGlobalStore } from "@/store/global";
|
import { useGlobalStore } from "@/store/global";
|
||||||
@@ -75,34 +76,6 @@ function genGameNotice(order_status, start_time) {
|
|||||||
return gameNoticeMap.get(key) || {};
|
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) {
|
function genGameRange(startTime: Dayjs, endTime: Dayjs) {
|
||||||
if (!startTime || !endTime) {
|
if (!startTime || !endTime) {
|
||||||
return "";
|
return "";
|
||||||
@@ -318,7 +291,7 @@ function GameInfo(props) {
|
|||||||
<View className={styles.gameInfoDateWeatherCalendarDateDate}>
|
<View className={styles.gameInfoDateWeatherCalendarDateDate}>
|
||||||
<View className={styles.date}>{startDate}</View>
|
<View className={styles.date}>{startDate}</View>
|
||||||
<View className={styles.venueTime}>
|
<View className={styles.venueTime}>
|
||||||
{gameRange} ({game_length}小时)
|
{gameRange} ({game_length})
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import Taro from "@tarojs/taro";
|
import Taro from "@tarojs/taro";
|
||||||
import { check_login_status, get_user_info } from "@/services/loginService";
|
import { check_login_status, get_user_info } from "@/services/loginService";
|
||||||
import { useUser } from "@/store/userStore";
|
import { useUser } from "@/store/userStore";
|
||||||
|
import { Dayjs } from "dayjs";
|
||||||
|
|
||||||
// 普通函数,不调用 useLoad
|
// 普通函数,不调用 useLoad
|
||||||
export const sceneRedirectLogic = (options, defaultPage: string) => {
|
export const sceneRedirectLogic = (options, defaultPage: string) => {
|
||||||
@@ -135,3 +136,31 @@ export function genNTRPRequirementText(min, max) {
|
|||||||
export function isPhoneNumber(str) {
|
export function isPhoneNumber(str) {
|
||||||
return /^1[3-9]\d{9}$/.test(str);
|
return /^1[3-9]\d{9}$/.test(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export 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))}小时`;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user