From c820cfa804c0193fcc74533b68e9535aed7a28b6 Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Thu, 25 Dec 2025 12:25:28 +0800 Subject: [PATCH] =?UTF-8?q?refactor(icons):=20=E8=BF=81=E7=A7=BB=E5=85=B6?= =?UTF-8?q?=E4=BB=96=20views=20=E7=9B=AE=E5=BD=95=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E5=88=B0=20lucide-react?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - views/Center, views/Community, views/DataBrowser 等 - views/EventDetail, views/LimitAnalyse, views/StockOverview - views/TradingSimulation, views/Pages, views/Authentication - views/Profile, views/Settings - 处理 Tag/TagIcon 命名冲突 - 涉及 52 个组件文件 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/views/Authentication/Lock/LockBasic.js | 1 - .../Verification/VerificationBasic.js | 4 +- .../Verification/VerificationCover.js | 4 +- .../Verification/VerificationIllustration.js | 4 +- src/views/Center/components/EventCard.tsx | 28 ++++----- src/views/Center/components/EventPanel.tsx | 4 +- src/views/Center/components/FUIEventCard.tsx | 28 ++++----- .../components/FeatureEntryPanel/index.tsx | 10 ++-- .../components/InvestmentPlanningCenter.tsx | 20 +++---- src/views/Center/components/MyFutureEvents.js | 22 +++---- .../components/DynamicNews/DynamicNewsCard.js | 9 ++- .../DynamicNews/PaginationControl.js | 9 +-- .../layouts/MainlineTimelineView.js | 17 +++--- .../DynamicNews/layouts/VerticalModeLayout.js | 4 +- .../EventCard/atoms/EventFollowButton.js | 18 ++---- .../EventCard/atoms/EventImportanceBadge.js | 4 +- .../components/EventCard/atoms/EventStats.js | 8 +-- src/views/DataBrowser/KLineChartView.tsx | 16 +++--- src/views/DataBrowser/MetricDataModal.tsx | 10 ++-- src/views/DataBrowser/SimpleLineChart.tsx | 16 +++--- src/views/DataBrowser/index.tsx | 44 +++++++------- .../EventDetail/components/EventHeader.js | 29 +++++----- .../components/HistoricalEvents.js | 14 ++--- .../EventDetail/components/LimitAnalyse.js | 44 +++++++------- .../EventDetail/components/RelatedConcepts.js | 20 +++---- .../EventDetail/components/RelatedStocks.js | 20 +++---- .../components/TransmissionChainAnalysis.js | 5 +- .../components/DataVisualizationComponents.js | 4 +- .../components/EnhancedCalendar.js | 8 +-- .../components/HighPositionStocks.js | 8 +-- .../components/SearchComponents.js | 8 +-- .../LimitAnalyse/components/SectorDetails.js | 8 +-- src/views/LimitAnalyse/index.js | 9 +-- src/views/Pages/Account/Billing.js | 25 ++++---- src/views/Pages/Account/Settings.js | 51 ++++++++--------- src/views/Pages/Pricing.js | 38 ++++++------- src/views/Pages/Profile/Overview.js | 30 +++++----- src/views/Pages/Profile/Projects.js | 22 ++++--- src/views/Pages/Profile/Teams.js | 57 +++++++++---------- src/views/Pages/Users/NewUser.js | 14 +++-- src/views/Pages/Users/Reports.js | 16 +++--- src/views/Pages/WechatCallback.js | 6 +- src/views/Profile/ProfilePage.js | 10 ++-- src/views/Settings/SettingsPage.js | 24 ++++---- .../FlexScreen/components/QuoteTile.tsx | 6 +- .../components/FlexScreen/index.tsx | 36 ++++-------- src/views/StockOverview/index.js | 30 +++++----- .../components/AccountOverview.js | 12 ++-- .../components/MarginTrading.js | 34 +++++------ .../components/PositionsList.js | 12 ++-- .../components/TradingHistory.js | 6 +- .../components/TradingPanel.js | 8 +-- 52 files changed, 426 insertions(+), 468 deletions(-) diff --git a/src/views/Authentication/Lock/LockBasic.js b/src/views/Authentication/Lock/LockBasic.js index b678697d..2dc247c2 100755 --- a/src/views/Authentication/Lock/LockBasic.js +++ b/src/views/Authentication/Lock/LockBasic.js @@ -32,7 +32,6 @@ import { // Assets import BasicImage from "assets/img/BasicImage.png"; import React from "react"; -import { FaApple, FaFacebook, FaGoogle } from "react-icons/fa"; import AuthBasic from "layouts/AuthBasic"; function LockBasic() { diff --git a/src/views/Authentication/Verification/VerificationBasic.js b/src/views/Authentication/Verification/VerificationBasic.js index d3536ed0..179e9033 100755 --- a/src/views/Authentication/Verification/VerificationBasic.js +++ b/src/views/Authentication/Verification/VerificationBasic.js @@ -30,7 +30,7 @@ import BasicImage from "assets/img/BasicImage.png"; import React from "react"; import AuthBasic from "layouts/AuthBasic"; import { PinInputLight } from "components/PinInput/PinInput"; -import { IoIosRocket } from "react-icons/io"; +import { Rocket } from "lucide-react"; function LockBasic() { // Chakra color mode @@ -75,7 +75,7 @@ function LockBasic() { align="center" mb="30px" > - + - + - + (({ {/* 标题行 */} - + {event.title} @@ -206,7 +206,7 @@ export const EventCard = memo(({ {/* list 模式显示日期 */} {isListMode && ( - + {dayjs(event.event_date || event.date).format('YYYY年MM月DD日')} @@ -219,7 +219,7 @@ export const EventCard = memo(({ {onEdit && ( } + icon={} size="sm" variant="ghost" onClick={() => onEdit(event)} @@ -228,7 +228,7 @@ export const EventCard = memo(({ )} {onDelete && ( } + icon={} size="sm" variant="ghost" colorScheme="red" @@ -258,7 +258,7 @@ export const EventCard = memo(({ variant="ghost" colorScheme={colorScheme} mt={1} - rightIcon={isExpanded ? : } + rightIcon={isExpanded ? : } onClick={() => setIsExpanded(!isExpanded)} > {isExpanded ? '收起' : '展开'} @@ -280,7 +280,7 @@ export const EventCard = memo(({ const displayText = typeof stock === 'string' ? stock : `${stock.name}(${stock.code})`; return ( - + {displayText} ); diff --git a/src/views/Center/components/EventPanel.tsx b/src/views/Center/components/EventPanel.tsx index 40a0eed8..86069724 100644 --- a/src/views/Center/components/EventPanel.tsx +++ b/src/views/Center/components/EventPanel.tsx @@ -19,7 +19,7 @@ import { Icon, useToast, } from '@chakra-ui/react'; -import { FiFileText } from 'react-icons/fi'; +import { FileText } from 'lucide-react'; import { useAppDispatch, useAppSelector } from '@/store/hooks'; import { @@ -165,7 +165,7 @@ export const EventPanel: React.FC = ({ ) : events.length === 0 ? (
- + 暂无投资{label}
diff --git a/src/views/Center/components/FUIEventCard.tsx b/src/views/Center/components/FUIEventCard.tsx index 4452bb6e..f210eedc 100644 --- a/src/views/Center/components/FUIEventCard.tsx +++ b/src/views/Center/components/FUIEventCard.tsx @@ -21,14 +21,16 @@ import { Button, } from '@chakra-ui/react'; import { - FiEdit2, - FiTrash2, - FiCalendar, - FiTrendingUp, - FiChevronDown, - FiChevronUp, -} from 'react-icons/fi'; -import { FileText, Heart, Target } from 'lucide-react'; + Pencil, + Trash2, + Calendar, + TrendingUp, + ChevronDown, + ChevronUp, + FileText, + Heart, + Target, +} from 'lucide-react'; import dayjs from 'dayjs'; import 'dayjs/locale/zh-cn'; @@ -170,7 +172,7 @@ export const FUIEventCard = memo(({ {onEdit && ( } + icon={} size="xs" variant="ghost" color={FUI_THEME.text.secondary} @@ -181,7 +183,7 @@ export const FUIEventCard = memo(({ )} {onDelete && ( } + icon={} size="xs" variant="ghost" color={FUI_THEME.text.secondary} @@ -197,7 +199,7 @@ export const FUIEventCard = memo(({ {/* 日期行 */} - + {dayjs(event.event_date || event.date).format('YYYY年MM月DD日')} @@ -243,7 +245,7 @@ export const FUIEventCard = memo(({ mt={1} ml={4} _hover={{ bg: 'rgba(212, 175, 55, 0.1)' }} - rightIcon={isExpanded ? : } + rightIcon={isExpanded ? : } onClick={() => setIsExpanded(!isExpanded)} > {isExpanded ? '收起' : '展开'} @@ -270,7 +272,7 @@ export const FUIEventCard = memo(({ border="1px solid" borderColor="rgba(212, 175, 55, 0.2)" > - + {displayText} ); diff --git a/src/views/Center/components/FeatureEntryPanel/index.tsx b/src/views/Center/components/FeatureEntryPanel/index.tsx index e11321ee..69d1dfa9 100644 --- a/src/views/Center/components/FeatureEntryPanel/index.tsx +++ b/src/views/Center/components/FeatureEntryPanel/index.tsx @@ -3,8 +3,8 @@ * 黑金色主题,展示平台核心功能快捷入口 */ import React, { useCallback } from 'react'; -import { Box, SimpleGrid, HStack, Text, Icon } from '@chakra-ui/react'; -import { CheckCircleIcon } from '@chakra-ui/icons'; +import { Box, SimpleGrid, HStack, Text } from '@chakra-ui/react'; +import { CheckCircle } from 'lucide-react'; import { useNavigate } from 'react-router-dom'; import GlassCard from '@components/GlassCard'; import { CORE_FEATURES } from '@/constants/homeFeatures'; @@ -35,10 +35,10 @@ const FeatureEntryPanel: React.FC = () => { > {/* 标题栏 - 参考投资仪表盘样式 */} - { {/* 视图切换按钮组 - H5隐藏 */} @@ -276,7 +276,7 @@ const KLineChartView: React.FC = ({ _hover={{ color: themeColors.primary.gold }} onClick={handleScreenshot} > - + @@ -287,7 +287,7 @@ const KLineChartView: React.FC = ({ _hover={{ color: themeColors.primary.gold }} onClick={toggleFullscreen} > - + diff --git a/src/views/DataBrowser/MetricDataModal.tsx b/src/views/DataBrowser/MetricDataModal.tsx index 6d9fe7db..436ea15e 100644 --- a/src/views/DataBrowser/MetricDataModal.tsx +++ b/src/views/DataBrowser/MetricDataModal.tsx @@ -29,7 +29,7 @@ import { Input, useToast, } from '@chakra-ui/react'; -import { FaTable, FaChartLine, FaCalendar, FaDownload } from 'react-icons/fa'; +import { Table2, LineChart, Calendar, Download } from 'lucide-react'; import { fetchMetricData, MetricDataResponse, TreeMetric } from '@services/categoryService'; import SimpleLineChart from './SimpleLineChart'; @@ -182,7 +182,7 @@ const MetricDataModal: React.FC = ({ isOpen, onClose, metr > - + = ({ isOpen, onClose, metr variant="outline" borderColor={themeColors.border.gold} color={themeColors.text.gold} - leftIcon={} + leftIcon={} onClick={handleExportCSV} isDisabled={!metricData || !metricData.data || metricData.data.length === 0} > @@ -260,7 +260,7 @@ const MetricDataModal: React.FC = ({ isOpen, onClose, metr bg: themeColors.bg.card, }} > - + 折线图 = ({ isOpen, onClose, metr bg: themeColors.bg.card, }} > - + 数据表格 diff --git a/src/views/DataBrowser/SimpleLineChart.tsx b/src/views/DataBrowser/SimpleLineChart.tsx index 7ea6597c..b0349795 100644 --- a/src/views/DataBrowser/SimpleLineChart.tsx +++ b/src/views/DataBrowser/SimpleLineChart.tsx @@ -11,11 +11,11 @@ import { Tooltip, } from '@chakra-ui/react'; import { - FaExpand, - FaCompress, - FaCamera, - FaRedo, -} from 'react-icons/fa'; + Maximize, + Minimize, + Camera, + RotateCcw, +} from 'lucide-react'; import { MetricDataPoint } from '@services/categoryService'; // 黑金主题配色 @@ -386,7 +386,7 @@ const SimpleLineChart: React.FC = ({ _hover={{ color: themeColors.primary.gold }} onClick={handleReset} > - + @@ -397,7 +397,7 @@ const SimpleLineChart: React.FC = ({ _hover={{ color: themeColors.primary.gold }} onClick={handleScreenshot} > - + @@ -408,7 +408,7 @@ const SimpleLineChart: React.FC = ({ _hover={{ color: themeColors.primary.gold }} onClick={toggleFullscreen} > - + diff --git a/src/views/DataBrowser/index.tsx b/src/views/DataBrowser/index.tsx index d77699d5..c52464ab 100644 --- a/src/views/DataBrowser/index.tsx +++ b/src/views/DataBrowser/index.tsx @@ -21,17 +21,17 @@ import { useDisclosure, } from '@chakra-ui/react'; import { - FaDatabase, - FaFolder, - FaFolderOpen, - FaFile, - FaSearch, - FaHome, - FaChevronRight, - FaChevronDown, - FaTimes, - FaEye, -} from 'react-icons/fa'; + Database, + Folder, + FolderOpen, + File, + Search, + Home, + ChevronRight, + ChevronDown, + X, + Eye, +} from 'lucide-react'; import { motion } from 'framer-motion'; import { fetchCategoryTree, @@ -126,7 +126,7 @@ const TreeNodeComponent: React.FC<{ ) : hasChildren || !hasMetrics ? ( @@ -244,7 +244,7 @@ const MetricCard: React.FC<{ metric: TreeMetric; onClick: () => void }> = ({ met size="xs" variant="ghost" color={themeColors.primary.gold} - leftIcon={} + leftIcon={} _hover={{ bg: themeColors.bg.cardHover }} > 查看数据 @@ -489,7 +489,7 @@ const DataBrowser: React.FC = () => { > - + { }} /> {searchQuery && ( diff --git a/src/views/EventDetail/components/RelatedStocks.js b/src/views/EventDetail/components/RelatedStocks.js index 7a67fba8..492906b5 100644 --- a/src/views/EventDetail/components/RelatedStocks.js +++ b/src/views/EventDetail/components/RelatedStocks.js @@ -41,12 +41,12 @@ import { useToast } from '@chakra-ui/react'; import { - FaPlus, - FaTrash, - FaChartLine, - FaRedo, - FaSearch -} from 'react-icons/fa'; + Plus, + Trash2, + LineChart, + RefreshCw, + Search +} from 'lucide-react'; import { echarts } from '@lib/echarts'; import StockChartModal from '../../../components/StockChart/StockChartModal'; @@ -297,7 +297,7 @@ const RelatedStocks = ({ {/* 搜索框 */} - + } + icon={} size="sm" onClick={handleRefreshQuotes} isLoading={quotesLoading} @@ -487,7 +487,7 @@ const RelatedStocks = ({ } + icon={} size="xs" onClick={() => handleShowChart(stock)} aria-label="查看K线图" @@ -496,7 +496,7 @@ const RelatedStocks = ({ } + icon={} size="xs" colorScheme="red" variant="ghost" diff --git a/src/views/EventDetail/components/TransmissionChainAnalysis.js b/src/views/EventDetail/components/TransmissionChainAnalysis.js index cf10f159..4b8d0892 100644 --- a/src/views/EventDetail/components/TransmissionChainAnalysis.js +++ b/src/views/EventDetail/components/TransmissionChainAnalysis.js @@ -32,8 +32,7 @@ import { Tooltip, Center } from '@chakra-ui/react'; -import { InfoIcon, ViewIcon } from '@chakra-ui/icons'; -import { Share2, GitBranch, Inbox } from 'lucide-react'; +import { Info, Eye, Share2, GitBranch, Inbox } from 'lucide-react'; import ReactECharts from 'echarts-for-react'; import { eventService } from '../../../services/eventService'; import CitedContent from '../../../components/Citation/CitedContent'; @@ -875,7 +874,7 @@ const TransmissionChainAnalysis = ({ eventId }) => { py={1} borderRadius="md" > - + 点击节点查看详情 {chartReady && ( diff --git a/src/views/LimitAnalyse/components/DataVisualizationComponents.js b/src/views/LimitAnalyse/components/DataVisualizationComponents.js index b8261a8b..bdb37e95 100644 --- a/src/views/LimitAnalyse/components/DataVisualizationComponents.js +++ b/src/views/LimitAnalyse/components/DataVisualizationComponents.js @@ -37,7 +37,7 @@ import { useColorModeValue, } from '@chakra-ui/react'; import { getFormattedTextProps } from '../../../utils/textUtils'; -import { ExternalLinkIcon } from '@chakra-ui/icons'; +import { ExternalLink } from 'lucide-react'; import RiskDisclaimer from '../../../components/RiskDisclaimer'; import ReactECharts from 'echarts-for-react'; import 'echarts-wordcloud'; @@ -760,7 +760,7 @@ export const StockDetailModal = ({ isOpen, onClose, selectedStock }) => { - diff --git a/src/views/LimitAnalyse/components/EnhancedCalendar.js b/src/views/LimitAnalyse/components/EnhancedCalendar.js index 7445bcde..31b8210d 100644 --- a/src/views/LimitAnalyse/components/EnhancedCalendar.js +++ b/src/views/LimitAnalyse/components/EnhancedCalendar.js @@ -16,7 +16,7 @@ import { Alert, AlertIcon, } from '@chakra-ui/react'; -import { ChevronLeftIcon, ChevronRightIcon, CalendarIcon } from '@chakra-ui/icons'; +import { ChevronLeft, ChevronRight, Calendar } from 'lucide-react'; const EnhancedCalendar = ({ selectedDate, @@ -110,20 +110,20 @@ const EnhancedCalendar = ({ } + icon={} size={compact ? 'sm' : 'md'} variant="ghost" onClick={() => setCurrentMonth(new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1))} aria-label="上个月" /> - + {currentMonth.getFullYear()}年 {monthNames[currentMonth.getMonth()]} } + icon={} size={compact ? 'sm' : 'md'} variant="ghost" onClick={() => setCurrentMonth(new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1))} diff --git a/src/views/LimitAnalyse/components/HighPositionStocks.js b/src/views/LimitAnalyse/components/HighPositionStocks.js index f955b23c..ae0f06d1 100644 --- a/src/views/LimitAnalyse/components/HighPositionStocks.js +++ b/src/views/LimitAnalyse/components/HighPositionStocks.js @@ -26,7 +26,7 @@ import { Flex, Icon, } from '@chakra-ui/react'; -import { StarIcon, TriangleUpIcon } from '@chakra-ui/icons'; +import { Star, TrendingUp } from 'lucide-react'; import { logger } from '../../../utils/logger'; import ztStaticService from '../../../services/ztStaticService'; @@ -124,7 +124,7 @@ const HighPositionStocks = ({ dateStr }) => { - + 高位股统计 @@ -203,7 +203,7 @@ const HighPositionStocks = ({ dateStr }) => { {stock.stock_name} {stock.continuous_limit_up >= 5 && ( - + )} @@ -241,7 +241,7 @@ const HighPositionStocks = ({ dateStr }) => { {/* 风险提示 */} - + 风险提示:高位股通常具有较高的波动性和风险,请谨慎投资。 连续涨停天数越多,风险相对越高。 diff --git a/src/views/LimitAnalyse/components/SearchComponents.js b/src/views/LimitAnalyse/components/SearchComponents.js index 405c1dca..7b254df4 100644 --- a/src/views/LimitAnalyse/components/SearchComponents.js +++ b/src/views/LimitAnalyse/components/SearchComponents.js @@ -34,7 +34,7 @@ import { AlertIcon, } from '@chakra-ui/react'; import { formatTooltipText, getFormattedTextProps } from '../../../utils/textUtils'; -import { SearchIcon, DownloadIcon } from '@chakra-ui/icons'; +import { Search, Download } from 'lucide-react'; // 简化版搜索组件 - 仅支持股票代码/名称精确匹配 export const AdvancedSearch = ({ onSearch, loading }) => { @@ -73,7 +73,7 @@ export const AdvancedSearch = ({ onSearch, loading }) => { - + { onClick={handleSearch} isLoading={loading} px={8} - leftIcon={} + leftIcon={} > 搜索 @@ -152,7 +152,7 @@ export const SearchResultsModal = ({ isOpen, onClose, searchResults, onStockClic @@ -277,7 +276,7 @@ function Billing() { variant='no-effects' > @@ -369,7 +368,7 @@ function Billing() { Show Less
- + @@ -1460,7 +1457,7 @@ function Settings() { > @@ -167,7 +167,7 @@ function Pricing() { @@ -179,7 +179,7 @@ function Pricing() { @@ -191,7 +191,7 @@ function Pricing() { @@ -203,7 +203,7 @@ function Pricing() { @@ -215,7 +215,7 @@ function Pricing() { @@ -244,7 +244,7 @@ function Pricing() { @@ -256,7 +256,7 @@ function Pricing() { @@ -268,7 +268,7 @@ function Pricing() { @@ -280,7 +280,7 @@ function Pricing() { @@ -292,7 +292,7 @@ function Pricing() { @@ -304,7 +304,7 @@ function Pricing() { @@ -333,7 +333,7 @@ function Pricing() { @@ -345,7 +345,7 @@ function Pricing() { @@ -357,7 +357,7 @@ function Pricing() { @@ -369,7 +369,7 @@ function Pricing() { @@ -381,7 +381,7 @@ function Pricing() { @@ -393,7 +393,7 @@ function Pricing() { diff --git a/src/views/Pages/Profile/Overview.js b/src/views/Pages/Profile/Overview.js index 32b94d78..a7a7127a 100755 --- a/src/views/Pages/Profile/Overview.js +++ b/src/views/Pages/Profile/Overview.js @@ -42,14 +42,14 @@ import ImageArchitect1 from "assets/img/ImageArchitect1.png"; import ImageArchitect2 from "assets/img/ImageArchitect2.png"; import ImageArchitect3 from "assets/img/ImageArchitect3.png"; import { - FaCube, - FaFacebook, - FaInstagram, - FaPenFancy, - FaPlus, - FaTwitter, -} from "react-icons/fa"; -import { IoDocumentsSharp } from "react-icons/io5"; + Box, + Facebook, + Instagram, + PenTool, + Plus, + Twitter, + Files, +} from "lucide-react"; // Custom components import Card from "components/Card/Card"; import CardBody from "components/Card/CardBody"; @@ -170,7 +170,7 @@ function Overview() { dispatch({ type: "SWITCH_ACTIVE", payload: "overview" }) } > - + OVERVIEW @@ -200,7 +200,7 @@ function Overview() { dispatch({ type: "SWITCH_ACTIVE", payload: "teams" }) } > - + TEAMS @@ -229,7 +229,7 @@ function Overview() { dispatch({ type: "SWITCH_ACTIVE", payload: "projects" }) } > - + PROJECTS @@ -411,7 +411,7 @@ function Overview() { me="10px" _hover={{ color: "blue.500" }} > - + - + - + @@ -741,7 +741,7 @@ function Overview() { minHeight={{ sm: "200px", md: "100%" }} > - + Create a New Project diff --git a/src/views/Pages/Profile/Projects.js b/src/views/Pages/Profile/Projects.js index a500c4c1..138142e3 100755 --- a/src/views/Pages/Profile/Projects.js +++ b/src/views/Pages/Profile/Projects.js @@ -53,9 +53,7 @@ import { } from "components/Icons/Icons"; import { HSeparator } from "components/Separator/Separator"; import React, { useReducer } from "react"; -import { BsPlus } from "react-icons/bs"; -import { FaCube, FaPenFancy } from "react-icons/fa"; -import { IoDocumentsSharp, IoEllipsisVerticalSharp } from "react-icons/io5"; +import { Plus, Box, PenTool, Files, MoreVertical } from "lucide-react"; const reducer = (state, action) => { if (action.type === "SWITCH_ACTIVE") { @@ -205,7 +203,7 @@ function Projects() { dispatch({ type: "SWITCH_ACTIVE", payload: "overview" }) } > - + OVERVIEW @@ -235,7 +233,7 @@ function Projects() { dispatch({ type: "SWITCH_ACTIVE", payload: "teams" }) } > - + TEAMS @@ -264,7 +262,7 @@ function Projects() { dispatch({ type: "SWITCH_ACTIVE", payload: "projects" }) } > - + PROJECTS @@ -324,7 +322,7 @@ function Projects() { dispatch({ type: 'SWITCH_ACTIVE', payload: 'overview' })}> - + OVERVIEW @@ -182,7 +179,7 @@ function Teams() { bg={state.teams ? colorMode === 'dark' ? 'navy.900' : '#fff' : null} transition='all .5s ease' onClick={() => dispatch({ type: 'SWITCH_ACTIVE', payload: 'teams' })}> - + TEAMS @@ -200,7 +197,7 @@ function Teams() { bg={state.projects ? colorMode === 'dark' ? 'navy.900' : '#fff' : null} transition='all .5s ease' onClick={() => dispatch({ type: 'SWITCH_ACTIVE', payload: 'projects' })}> - + PROJECTS @@ -224,7 +221,7 @@ function Teams() { w='62px' h='58px' mb='7px'> - + @@ -407,7 +404,7 @@ function Teams() { ) : ( - )} @@ -297,7 +293,7 @@ export default function SettingsPage() { - + {user?.email} {user?.email_confirmed && ( 已验证 @@ -307,7 +303,7 @@ export default function SettingsPage() { 邮箱用于登录和接收重要通知 - @@ -323,7 +319,7 @@ export default function SettingsPage() { - + {user?.has_wechat ? '已绑定微信' : '未绑定微信'} @@ -337,7 +333,7 @@ export default function SettingsPage() { {user?.has_wechat ? ( ) : ( - @@ -361,7 +361,7 @@ export default function MarginTrading({ account, onMarginBuy, onShortSell }) { {formatCurrency(marginData.availableShortCredit)} - + 杠杆比例: 1:0.5 @@ -399,7 +399,7 @@ export default function MarginTrading({ account, onMarginBuy, onShortSell }) { colorScheme="red" size="lg" isDisabled={true} - leftIcon={} + leftIcon={} > 融券卖出功能(演示版本暂不可用) @@ -414,7 +414,7 @@ export default function MarginTrading({ account, onMarginBuy, onShortSell }) { - + 融资融券知识 diff --git a/src/views/TradingSimulation/components/PositionsList.js b/src/views/TradingSimulation/components/PositionsList.js index f12d1bcb..504138be 100644 --- a/src/views/TradingSimulation/components/PositionsList.js +++ b/src/views/TradingSimulation/components/PositionsList.js @@ -48,7 +48,7 @@ import { SimpleGrid, Flex } from '@chakra-ui/react'; -import { FiTrendingUp, FiTrendingDown, FiMinus, FiBarChart2, FiPieChart } from 'react-icons/fi'; +import { TrendingUp, TrendingDown, Minus, BarChart2, PieChart } from 'lucide-react'; // 导入图表组件 import { PositionDistributionChart } from './PositionDistributionChart'; @@ -260,7 +260,7 @@ export default function PositionsList({ positions, account, onSellStock, trading - + 暂无持仓 请前往交易面板买入股票 @@ -309,7 +309,7 @@ export default function PositionsList({ positions, account, onSellStock, trading h={"40px"} w={"40px"} bg="linear-gradient(90deg, #4481EB 0%, #04BEFE 100%)" - icon={} + icon={} /> @@ -341,7 +341,7 @@ export default function PositionsList({ positions, account, onSellStock, trading } icon={ = 0 ? FiTrendingUp : FiTrendingDown} + as={totalProfit >= 0 ? TrendingUp : TrendingDown} color="white" w="20px" h="20px" @@ -361,7 +361,7 @@ export default function PositionsList({ positions, account, onSellStock, trading 持仓分布 - + @@ -451,7 +451,7 @@ export default function PositionsList({ positions, account, onSellStock, trading = 0 ? FiTrendingUp : FiTrendingDown} + as={profit >= 0 ? TrendingUp : TrendingDown} color={profit >= 0 ? 'green.500' : 'red.500'} /> = 0 ? 'green.500' : 'red.500'}> diff --git a/src/views/TradingSimulation/components/TradingHistory.js b/src/views/TradingSimulation/components/TradingHistory.js index 31797bd2..c1a103e3 100644 --- a/src/views/TradingSimulation/components/TradingHistory.js +++ b/src/views/TradingSimulation/components/TradingHistory.js @@ -31,7 +31,7 @@ import { Tooltip, useToast } from '@chakra-ui/react'; -import { FiSearch, FiFilter, FiClock, FiTrendingUp, FiTrendingDown } from 'react-icons/fi'; +import { Search, Filter, Clock, TrendingUp, TrendingDown } from 'lucide-react'; import { logger } from '../../../utils/logger'; export default function TradingHistory({ history, onCancelOrder, tradingEvents }) { @@ -197,7 +197,7 @@ export default function TradingHistory({ history, onCancelOrder, tradingEvents } - + 暂无交易记录 完成首笔交易后,历史记录将在这里显示 @@ -253,7 +253,7 @@ export default function TradingHistory({ history, onCancelOrder, tradingEvents } 搜索 - + } + icon={} /> 智能交易面板 @@ -344,7 +344,7 @@ export default function TradingPanel({ account, onBuyStock, onSellStock, searchS - + } + leftIcon={} > 立即买入