// src/views/Community/components/EventCard/EventPriceDisplay.js import React from 'react'; import { HStack, Badge, Text, Tooltip } from '@chakra-ui/react'; import { PriceArrow } from '../../../../utils/priceFormatters'; /** * 事件价格变动显示组件 * @param {Object} props * @param {number|null} props.avgChange - 平均涨跌幅 * @param {number|null} props.maxChange - 最大涨跌幅 * @param {number|null} props.weekChange - 周涨跌幅 * @param {boolean} props.compact - 是否为紧凑模式(只显示平均值,默认 false) * @param {boolean} props.inline - 是否内联显示(默认 false) */ const EventPriceDisplay = ({ avgChange, maxChange, weekChange, compact = false, inline = false }) => { // 获取颜色方案 const getColorScheme = (value) => { if (value == null) return 'gray'; return value > 0 ? 'red' : value < 0 ? 'green' : 'gray'; }; // 格式化百分比 const formatPercent = (value) => { if (value == null) return '--'; return `${value > 0 ? '+' : ''}${value.toFixed(2)}%`; }; // 紧凑模式:只显示平均值,内联在标题后 if (compact && avgChange != null) { return ( {formatPercent(avgChange)} ); } // 详细模式:显示所有价格变动 return ( {/* 平均涨幅 - 始终显示,无数据时显示 -- */} 平均 {formatPercent(avgChange)} {/* 最大涨幅 - 始终显示,无数据时显示 -- */} 最大 {formatPercent(maxChange)} {/* 周涨幅 - 始终显示,无数据时显示 -- */} {weekChange != null && } {formatPercent(weekChange)} ); }; export default EventPriceDisplay;