diff --git a/src/components/StockChart/KLineChartModal.tsx b/src/components/StockChart/KLineChartModal.tsx index 9fa83134..e04e82a6 100644 --- a/src/components/StockChart/KLineChartModal.tsx +++ b/src/components/StockChart/KLineChartModal.tsx @@ -1,27 +1,9 @@ // src/components/StockChart/KLineChartModal.tsx - K线图弹窗组件 import React, { useEffect, useRef, useState } from 'react'; import { createPortal } from 'react-dom'; -import { - Modal, - ModalOverlay, - ModalContent, - ModalHeader, - ModalCloseButton, - ModalBody, - VStack, - HStack, - Text, - Box, - Flex, - CircularProgress, - Alert, - AlertIcon, - ChakraProvider, -} from '@chakra-ui/react'; import * as echarts from 'echarts'; import { stockService } from '@services/eventService'; import { logger } from '@utils/logger'; -import theme from '@theme/theme'; /** * 股票信息 @@ -477,79 +459,153 @@ const KLineChartModal: React.FC = ({ // 获取 Portal 容器 const portalContainer = document.getElementById('kline-modal-root') || document.body; + // 如果不显示则返回 null + if (!isOpen) return null; + const modalContent = ( - - + {/* 遮罩层 */} +
+ {/* 弹窗内容 */} +
- - - - - - +
+
+ {stock.stock_name || stock.stock_code} ({stock.stock_code}) - + {data.length > 0 && ( - + 共{data.length}个交易日(最多1年) - + )} - - - - 日K线图 - - +
+
+ 日K线图 + 💡 鼠标滚轮缩放 | 拖动查看不同时间段 - - - - - - + +
+
+ +
+ + {/* Body */} +
{error && ( - - - {error} - +
+ + {error} +
)} - +
{loading && ( - - - - 加载K线数据... - - +
+ 加载K线数据... +
)}
- - - - - +
+
+
+ {/* 添加旋转动画的 CSS */} + + ); return createPortal(modalContent, portalContainer);