update pay function
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
// src/components/StockChart/KLineChartModal.tsx - K线图弹窗组件
|
// src/components/StockChart/KLineChartModal.tsx - K线图弹窗组件
|
||||||
import React, { useEffect, useRef, useState } from 'react';
|
import React, { useEffect, useRef, useState } from 'react';
|
||||||
|
import { createPortal } from 'react-dom';
|
||||||
import {
|
import {
|
||||||
Modal,
|
Modal,
|
||||||
ModalOverlay,
|
ModalOverlay,
|
||||||
@@ -15,10 +16,12 @@ import {
|
|||||||
CircularProgress,
|
CircularProgress,
|
||||||
Alert,
|
Alert,
|
||||||
AlertIcon,
|
AlertIcon,
|
||||||
|
ChakraProvider,
|
||||||
} from '@chakra-ui/react';
|
} from '@chakra-ui/react';
|
||||||
import * as echarts from 'echarts';
|
import * as echarts from 'echarts';
|
||||||
import { stockService } from '@services/eventService';
|
import { stockService } from '@services/eventService';
|
||||||
import { logger } from '@utils/logger';
|
import { logger } from '@utils/logger';
|
||||||
|
import theme from '@theme/theme';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 股票信息
|
* 股票信息
|
||||||
@@ -453,26 +456,44 @@ const KLineChartModal: React.FC<KLineChartModalProps> = ({
|
|||||||
}
|
}
|
||||||
}, [isOpen, stock?.stock_code, eventTime]);
|
}, [isOpen, stock?.stock_code, eventTime]);
|
||||||
|
|
||||||
|
// 创建或获取 Portal 容器
|
||||||
|
useEffect(() => {
|
||||||
|
let container = document.getElementById('kline-modal-root');
|
||||||
|
if (!container) {
|
||||||
|
container = document.createElement('div');
|
||||||
|
container.id = 'kline-modal-root';
|
||||||
|
container.style.cssText = 'position: fixed; top: 0; left: 0; z-index: 10000;';
|
||||||
|
document.body.appendChild(container);
|
||||||
|
}
|
||||||
|
return () => {
|
||||||
|
// 组件卸载时不删除容器,因为可能会被复用
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
|
||||||
if (!stock) return null;
|
if (!stock) return null;
|
||||||
|
|
||||||
console.log('[KLineChartModal] 渲染 Modal, isOpen:', isOpen);
|
console.log('[KLineChartModal] 渲染 Modal, isOpen:', isOpen);
|
||||||
|
|
||||||
return (
|
// 获取 Portal 容器
|
||||||
<Modal
|
const portalContainer = document.getElementById('kline-modal-root') || document.body;
|
||||||
isOpen={isOpen}
|
|
||||||
onClose={onClose}
|
const modalContent = (
|
||||||
size={size}
|
<ChakraProvider theme={theme}>
|
||||||
blockScrollOnMount={false}
|
<Modal
|
||||||
isCentered
|
isOpen={isOpen}
|
||||||
>
|
onClose={onClose}
|
||||||
<ModalOverlay bg="blackAlpha.700" />
|
size={size}
|
||||||
<ModalContent
|
blockScrollOnMount={false}
|
||||||
maxW="90vw"
|
isCentered
|
||||||
maxH="85vh"
|
|
||||||
bg="#1a1a1a"
|
|
||||||
border="2px solid #ffd700"
|
|
||||||
boxShadow="0 0 30px rgba(255, 215, 0, 0.5)"
|
|
||||||
>
|
>
|
||||||
|
<ModalOverlay bg="blackAlpha.700" />
|
||||||
|
<ModalContent
|
||||||
|
maxW="90vw"
|
||||||
|
maxH="85vh"
|
||||||
|
bg="#1a1a1a"
|
||||||
|
border="2px solid #ffd700"
|
||||||
|
boxShadow="0 0 30px rgba(255, 215, 0, 0.5)"
|
||||||
|
>
|
||||||
<ModalHeader pb={3} borderBottomWidth="1px" borderColor="#404040">
|
<ModalHeader pb={3} borderBottomWidth="1px" borderColor="#404040">
|
||||||
<VStack align="flex-start" spacing={1}>
|
<VStack align="flex-start" spacing={1}>
|
||||||
<HStack spacing={3}>
|
<HStack spacing={3}>
|
||||||
@@ -528,7 +549,10 @@ const KLineChartModal: React.FC<KLineChartModalProps> = ({
|
|||||||
</ModalBody>
|
</ModalBody>
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
</ChakraProvider>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
return createPortal(modalContent, portalContainer);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default KLineChartModal;
|
export default KLineChartModal;
|
||||||
|
|||||||
@@ -296,9 +296,6 @@ const InvestmentCalendar = () => {
|
|||||||
formattedEventTime: formattedEventTime
|
formattedEventTime: formattedEventTime
|
||||||
});
|
});
|
||||||
|
|
||||||
// 先关闭相关股票模态框,避免 z-index 冲突
|
|
||||||
setStockModalVisible(false);
|
|
||||||
|
|
||||||
setSelectedStock({
|
setSelectedStock({
|
||||||
stock_code: stockCode, // 添加交易所后缀
|
stock_code: stockCode, // 添加交易所后缀
|
||||||
stock_name: stock[1]
|
stock_name: stock[1]
|
||||||
|
|||||||
Reference in New Issue
Block a user