import { View, Text, Image } from "@tarojs/components"; import Taro from "@tarojs/taro"; import img from "../../config/images"; import { ListCardProps } from "../../../types/list/types"; import { formatGameTime, calculateDuration } from "@/utils/timeUtils"; import "./index.scss"; const ListCard: React.FC = ({ id, title, original_start_time, start_time, end_time, location, distance_km, current_players, max_players, skill_level_min, skill_level_max, play_type, image_list = [], court_type, key, participants, // 参与者图片 venue_image_list, // 场馆图片 venue_description, game_type, // 球局类型 }) => { // 参与者要前三个数据 const participantsImageList = participants?.slice(0, 3) || []; // 场地 要第一个数据 // const venueImageList = venue_image_list?.slice(0, 1) || []; const venueImage = venue_image_list?.[0]?.url || ""; // 是否显示畅打球局 const isShowSmoothPlayingGame = game_type === "畅打球局"; const renderItemImage = (src: string) => { return ( ); }; const handleViewDetail = () => { Taro.navigateTo({ url: `/game_pages/detail/index?id=${id || 1}&from=list`, }); }; // 根据图片数量决定展示样式 const renderImages = () => { if (image_list?.length === 0) return null; if (image_list?.length === 1) { return ( {renderItemImage(image_list?.[0])} ); } if (image_list?.length === 2) { return ( {renderItemImage(image_list?.[0])} {renderItemImage(image_list?.[1])} ); } // 3张或更多图片 return ( {renderItemImage(image_list?.[0])} {renderItemImage(image_list?.[1])} {renderItemImage(image_list?.[2])} ); }; return ( {/* 左侧内容区域 */} {/* 标题 */} {title && ( {title} )} {/* 时间信息 */} {formatGameTime(original_start_time || start_time)} {/* 时长 如 2小时 */} {end_time && ( {" "} {calculateDuration(original_start_time || start_time, end_time)} )} {/* 地点,室内外,距离 */} {location && ( {location} )} {court_type && `・${court_type}`} {distance_km && `・${distance_km}km`} {/* 底部信息行:头像组、报名人数、技能等级、比赛类型 */} {(participantsImageList || []).map((item, index) => ( ))} 报名人数 {current_players}/ {max_players} {skill_level_min} 至 {skill_level_max} {play_type && ( {play_type} )} {/* 右侧图片区域 */} {renderImages()} {/* 畅打球局 */} {isShowSmoothPlayingGame && ( {game_type} 场馆方: {venue_description} )} ); }; export default ListCard;