update pay ui
This commit is contained in:
@@ -38,14 +38,10 @@ import {
|
||||
import {
|
||||
FaArrowUp,
|
||||
FaArrowDown,
|
||||
FaFire,
|
||||
FaChartLine,
|
||||
FaNewspaper,
|
||||
FaRocket,
|
||||
FaBolt,
|
||||
FaEye,
|
||||
FaCrown,
|
||||
FaThermometerHalf,
|
||||
} from 'react-icons/fa';
|
||||
import { BsLightningFill, BsGraphUp, BsGraphDown } from 'react-icons/bs';
|
||||
|
||||
@@ -153,13 +149,6 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => {
|
||||
{ name: '钢铁冶炼', change_pct: -4.21, stock_count: 28, news_count: 9 },
|
||||
{ name: '纺织服装', change_pct: -3.98, stock_count: 15, news_count: 4 },
|
||||
],
|
||||
active_concepts: [
|
||||
{ name: '人工智能', news_count: 89, report_count: 15, total_mentions: 104 },
|
||||
{ name: '芯片概念', news_count: 76, report_count: 12, total_mentions: 88 },
|
||||
{ name: '新能源汽车', news_count: 65, report_count: 18, total_mentions: 83 },
|
||||
{ name: '生物医药', news_count: 54, report_count: 9, total_mentions: 63 },
|
||||
{ name: '量子科技', news_count: 41, report_count: 7, total_mentions: 48 },
|
||||
],
|
||||
volatile_concepts: [
|
||||
{ name: '区块链', volatility: 23.45, avg_change: 3.21, max_change: 12.34 },
|
||||
{ name: '元宇宙', volatility: 21.87, avg_change: 2.98, max_change: 11.76 },
|
||||
@@ -453,89 +442,6 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => {
|
||||
</Flex>
|
||||
),
|
||||
},
|
||||
{
|
||||
label: '活跃榜',
|
||||
icon: FaFire,
|
||||
color: 'orange',
|
||||
data: statsData.active_concepts,
|
||||
renderItem: (item, index) => (
|
||||
<Flex
|
||||
justify="space-between"
|
||||
align="center"
|
||||
p={3}
|
||||
borderRadius="xl"
|
||||
bg={index < 3 ? 'rgba(251, 146, 60, 0.15)' : 'whiteAlpha.50'}
|
||||
border="1px solid"
|
||||
borderColor={index < 3 ? 'orange.500' : 'whiteAlpha.100'}
|
||||
_hover={{
|
||||
transform: 'translateY(-1px)',
|
||||
shadow: 'md',
|
||||
cursor: 'pointer',
|
||||
bg: index < 3 ? 'rgba(251, 146, 60, 0.25)' : 'whiteAlpha.100'
|
||||
}}
|
||||
transition="all 0.2s"
|
||||
onClick={() => onConceptClick?.(null, item.name)}
|
||||
>
|
||||
<HStack spacing={3} flex={1}>
|
||||
<Box position="relative">
|
||||
<Badge
|
||||
bg={index === 0 ? 'orange.500' : index < 3 ? 'yellow.500' : 'whiteAlpha.200'}
|
||||
color="white"
|
||||
borderRadius="full"
|
||||
minW="24px"
|
||||
h="24px"
|
||||
textAlign="center"
|
||||
fontSize="xs"
|
||||
fontWeight="bold"
|
||||
display="flex"
|
||||
alignItems="center"
|
||||
justifyContent="center"
|
||||
>
|
||||
{index + 1}
|
||||
</Badge>
|
||||
{index === 0 && (
|
||||
<Icon
|
||||
as={FaFire}
|
||||
position="absolute"
|
||||
top="-8px"
|
||||
right="-8px"
|
||||
color="orange.400"
|
||||
boxSize={3}
|
||||
/>
|
||||
)}
|
||||
</Box>
|
||||
<VStack align="start" spacing={0} flex={1}>
|
||||
<Text fontSize="sm" fontWeight="bold" noOfLines={1} color="white">
|
||||
{item.name}
|
||||
</Text>
|
||||
<HStack spacing={2} fontSize="xs" color="whiteAlpha.600">
|
||||
<HStack spacing={1}>
|
||||
<Icon as={FaNewspaper} boxSize={2.5} />
|
||||
<Text>{item.news_count}</Text>
|
||||
</HStack>
|
||||
<Text>·</Text>
|
||||
<HStack spacing={1}>
|
||||
<Icon as={FaEye} boxSize={2.5} />
|
||||
<Text>{item.report_count}</Text>
|
||||
</HStack>
|
||||
</HStack>
|
||||
</VStack>
|
||||
</HStack>
|
||||
<Badge
|
||||
bg="orange.500"
|
||||
color="white"
|
||||
borderRadius="lg"
|
||||
fontSize="xs"
|
||||
fontWeight="bold"
|
||||
px={2}
|
||||
py={1}
|
||||
>
|
||||
<Icon as={FaFire} boxSize={2} mr={1} />
|
||||
{item.total_mentions}
|
||||
</Badge>
|
||||
</Flex>
|
||||
),
|
||||
},
|
||||
{
|
||||
label: '波动榜',
|
||||
icon: BsLightningFill,
|
||||
@@ -879,7 +785,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => {
|
||||
<Tabs
|
||||
index={activeTab}
|
||||
onChange={(index) => {
|
||||
const tabNames = ['涨幅榜', '跌幅榜', '活跃榜', '波动榜', '连涨榜'];
|
||||
const tabNames = ['涨幅榜', '跌幅榜', '波动榜', '连涨榜'];
|
||||
// 🎯 追踪Tab切换
|
||||
trackTabChanged(index, tabNames[index]);
|
||||
setActiveTab(index);
|
||||
|
||||
Reference in New Issue
Block a user