diff --git a/src/views/Concept/ConceptTimelineModal.js b/src/views/Concept/ConceptTimelineModal.js index 4b5df638..c84caf5d 100644 --- a/src/views/Concept/ConceptTimelineModal.js +++ b/src/views/Concept/ConceptTimelineModal.js @@ -33,21 +33,21 @@ import { useBreakpointValue, } from '@chakra-ui/react'; import { - ChevronDownIcon, - ChevronRightIcon, - ExternalLinkIcon, - ViewIcon, - CalendarIcon, -} from '@chakra-ui/icons'; + ChevronDown, + ChevronRight, + ExternalLink, + Eye, + Calendar, +} from 'lucide-react'; import { - FaChartLine, - FaArrowUp, - FaArrowDown, - FaHistory, - FaNewspaper, - FaFileAlt, - FaClock, -} from 'react-icons/fa'; + LineChart, + ArrowUp, + ArrowDown, + History, + Newspaper as NewspaperIcon, + FileText, + Clock, +} from 'lucide-react'; import { keyframes } from '@emotion/react'; dayjs.locale('zh-cn'); @@ -179,13 +179,13 @@ const ConceptTimelineModal = ({ if (value > 0) { return { color: 'red', - icon: FaArrowUp, + icon: ArrowUp, text: `+${value.toFixed(2)}%` }; } else if (value < 0) { return { color: 'green', - icon: FaArrowDown, + icon: ArrowDown, text: `${value.toFixed(2)}%` }; } else { @@ -691,7 +691,7 @@ const ConceptTimelineModal = ({ > @@ -815,7 +815,7 @@ const ConceptTimelineModal = ({ borderColor="red.400" flexShrink={0} > - + 上涨 - + 下跌 @@ -991,7 +991,7 @@ const ConceptTimelineModal = ({ borderColor="blue.500" > - + {selectedDateData.events.filter(e => e.type === 'news').length} @@ -1007,7 +1007,7 @@ const ConceptTimelineModal = ({ borderColor="green.500" > - + {selectedDateData.events.filter(e => e.type === 'report').length} @@ -1109,7 +1109,7 @@ const ConceptTimelineModal = ({ {event.time && ( - + {formatDateTime(event.time)} @@ -1120,7 +1120,7 @@ const ConceptTimelineModal = ({ size="sm" colorScheme={event.type === 'news' ? 'blue' : 'green'} variant="solid" - leftIcon={} + leftIcon={} boxShadow="sm" _hover={{ transform: 'scale(1.05)', @@ -1175,7 +1175,7 @@ const ConceptTimelineModal = ({ borderColor="whiteAlpha.200" > } + leftIcon={} onClick={() => { const url = formatUrl(selectedReport.content_url); if (url) { @@ -1379,7 +1379,7 @@ const ConceptTimelineModal = ({ size="sm" bg="whiteAlpha.100" color="white" - leftIcon={} + leftIcon={} onClick={() => window.open(selectedNews.url, '_blank')} _hover={{ bg: 'whiteAlpha.200' }} > diff --git a/src/views/Concept/components/BreadcrumbNav.js b/src/views/Concept/components/BreadcrumbNav.js index 541f8611..aa0aae00 100644 --- a/src/views/Concept/components/BreadcrumbNav.js +++ b/src/views/Concept/components/BreadcrumbNav.js @@ -16,8 +16,7 @@ import { Flex, Tooltip, } from '@chakra-ui/react'; -import { ChevronRightIcon } from '@chakra-ui/icons'; -import { FaFilter, FaTimes, FaHome } from 'react-icons/fa'; +import { ChevronRight, Filter, X, Home } from 'lucide-react'; const BreadcrumbNav = ({ filter, @@ -139,7 +138,7 @@ const BreadcrumbNav = ({ py={1} borderRadius="full" > - + 层级筛选 @@ -161,7 +160,7 @@ const BreadcrumbNav = ({ alignItems="center" gap={1} > - + 全部 @@ -169,7 +168,7 @@ const BreadcrumbNav = ({ {/* 面包屑路径 */} {breadcrumbs.map((crumb, index) => ( - + } + icon={} {...(isDarkMode ? {} : { colorScheme: 'red' })} color={isDarkMode ? styles.clearBtn.color : undefined} variant="ghost" diff --git a/src/views/Concept/components/ConceptStatsPanel.js b/src/views/Concept/components/ConceptStatsPanel.js index 30c40cb5..cb6eede1 100644 --- a/src/views/Concept/components/ConceptStatsPanel.js +++ b/src/views/Concept/components/ConceptStatsPanel.js @@ -37,14 +37,16 @@ import { useToast, } from '@chakra-ui/react'; import { - FaArrowUp, - FaArrowDown, - FaChartLine, - FaNewspaper, - FaRocket, - FaCrown, -} from 'react-icons/fa'; -import { BsLightningFill, BsGraphUp, BsGraphDown } from 'react-icons/bs'; + ArrowUp, + ArrowDown, + LineChart, + Newspaper, + Rocket, + Crown, + Zap, + TrendingUp, + TrendingDown, +} from 'lucide-react'; const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { // 获取正确的API基础URL @@ -274,7 +276,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { const tabsData = [ { label: '涨幅榜', - icon: FaArrowUp, + icon: ArrowUp, color: 'red', data: statsData.hot_concepts, renderItem: (item, index) => ( @@ -314,7 +316,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { {index === 0 && ( { - + {item.stock_count}股 · - + {item.news_count}讯 @@ -349,7 +351,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { px={2} py={1} > - + {formatChange(item.change_pct)} @@ -357,7 +359,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { }, { label: '跌幅榜', - icon: FaArrowDown, + icon: ArrowDown, color: 'green', data: statsData.cold_concepts, renderItem: (item, index) => ( @@ -400,12 +402,12 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { - + {item.stock_count}股 · - + {item.news_count}讯 @@ -420,7 +422,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { px={2} py={1} > - + {formatChange(item.change_pct)} @@ -428,7 +430,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { }, { label: '波动榜', - icon: BsLightningFill, + icon: Zap, color: 'purple', data: statsData.volatile_concepts, renderItem: (item, index) => ( @@ -468,7 +470,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { {index === 0 && ( { px={2} py={1} > - + {item.volatility?.toFixed(1)}% @@ -503,7 +505,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { }, { label: '连涨榜', - icon: FaRocket, + icon: Rocket, color: 'cyan', data: statsData.momentum_concepts, renderItem: (item, index) => ( @@ -543,7 +545,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { {index === 0 && ( { px={2} py={1} > - + {item.consecutive_days}天 @@ -620,7 +622,7 @@ const ConceptStatsPanel = ({ apiBaseUrl, onConceptClick }) => { - + diff --git a/src/views/Concept/components/ForceGraphView.js b/src/views/Concept/components/ForceGraphView.js index fdf12547..1d8245e0 100644 --- a/src/views/Concept/components/ForceGraphView.js +++ b/src/views/Concept/components/ForceGraphView.js @@ -31,18 +31,18 @@ import { } from '@chakra-ui/react'; import { keyframes } from '@emotion/react'; import { - FaLayerGroup, - FaSync, - FaExpand, - FaCompress, - FaHome, - FaArrowUp, - FaArrowDown, - FaCircle, - FaTh, - FaChevronRight, - FaArrowLeft, -} from 'react-icons/fa'; + Layers, + RefreshCw, + Maximize2, + Minimize2, + Home, + ArrowUp, + ArrowDown, + Circle, + Grid3x3, + ChevronRight, + ArrowLeft, +} from 'lucide-react'; import { logger } from '../../../utils/logger'; // 极光动画 - 黑金色主题 @@ -1052,7 +1052,7 @@ const ForceGraphView = ({ borderColor="whiteAlpha.100" > - + 加载失败:{error}