Compare commits

..

2 Commits

Author SHA1 Message Date
zdl
0e862d82a0 fix: 修复投资日历切换月份时自动打开事件弹窗的问题
- 利用 Ant Design Calendar onSelect 的 info.source 参数区分选择来源
- 只有点击日期单元格 (source='date') 时才打开弹窗
- 切换月份/年份时不再触发弹窗

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 15:36:17 +08:00
zdl
27fff4e60b fix: 修复 CompanyOverview 中 Hooks 顺序错误
问题:在 JSX 内部调用 useColorModeValue,违反 React Hooks 规则
- 第 1377/1388/1786/1797 行直接在 JSX 属性中调用 hook

修复:将 useColorModeValue 调用移到组件顶层
- 添加 blueBg/greenBg/purpleBg/orangeBg 变量
- JSX 中使用变量代替直接调用

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-09 15:35:39 +08:00
2 changed files with 15 additions and 5 deletions

View File

@@ -220,7 +220,12 @@ const InvestmentCalendar = () => {
};
// 处理日期选择
const handleDateSelect = (value) => {
// info.source 区分选择来源:'date' = 点击日期,'month'/'year' = 切换月份/年份
const handleDateSelect = (value, info) => {
// 只有点击日期单元格时才打开弹窗,切换月份/年份时不打开
if (info?.source !== 'date') {
return;
}
setSelectedDate(value);
loadDateEvents(value);
setModalVisible(true);

View File

@@ -910,6 +910,11 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
const toast = useToast();
const bgColor = useColorModeValue('gray.50', 'gray.900');
const cardBg = useColorModeValue('white', 'gray.800');
// 高亮区域颜色(修复:不能在 JSX 中调用 hooks
const blueBg = useColorModeValue('blue.50', 'blue.900');
const greenBg = useColorModeValue('green.50', 'green.900');
const purpleBg = useColorModeValue('purple.50', 'purple.900');
const orangeBg = useColorModeValue('orange.50', 'orange.900');
const { isOpen: isAnnouncementOpen, onOpen: onAnnouncementOpen, onClose: onAnnouncementClose } = useDisclosure();
const [selectedAnnouncement, setSelectedAnnouncement] = useState(null);
@@ -1374,7 +1379,7 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
<GridItem colSpan={{ base: 2, md: 1 }}>
<VStack align="stretch" spacing={3}>
<Text fontWeight="bold" fontSize="sm" color="gray.600">投资亮点</Text>
<Box p={3} bg={useColorModeValue('blue.50', 'blue.900')} borderRadius="md">
<Box p={3} bg={blueBg} borderRadius="md">
<Text fontSize="sm" whiteSpace="pre-wrap">
{comprehensiveData.qualitative_analysis.core_positioning?.investment_highlights || '暂无数据'}
</Text>
@@ -1385,7 +1390,7 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
<GridItem colSpan={{ base: 2, md: 1 }}>
<VStack align="stretch" spacing={3}>
<Text fontWeight="bold" fontSize="sm" color="gray.600">商业模式</Text>
<Box p={3} bg={useColorModeValue('green.50', 'green.900')} borderRadius="md">
<Box p={3} bg={greenBg} borderRadius="md">
<Text fontSize="sm" whiteSpace="pre-wrap">
{comprehensiveData.qualitative_analysis.core_positioning?.business_model_desc || '暂无数据'}
</Text>
@@ -1783,7 +1788,7 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
<GridItem colSpan={{ base: 2, md: 1 }}>
<VStack align="stretch" spacing={3}>
<Text fontWeight="bold" fontSize="sm" color="gray.600">战略方向</Text>
<Box p={4} bg={useColorModeValue('purple.50', 'purple.900')} borderRadius="md">
<Box p={4} bg={purpleBg} borderRadius="md">
<Text fontSize="sm">
{comprehensiveData.qualitative_analysis.strategy.strategy_description || '暂无数据'}
</Text>
@@ -1794,7 +1799,7 @@ const CompanyAnalysisComplete = ({ stockCode: propStockCode }) => {
<GridItem colSpan={{ base: 2, md: 1 }}>
<VStack align="stretch" spacing={3}>
<Text fontWeight="bold" fontSize="sm" color="gray.600">战略举措</Text>
<Box p={4} bg={useColorModeValue('orange.50', 'orange.900')} borderRadius="md">
<Box p={4} bg={orangeBg} borderRadius="md">
<Text fontSize="sm">
{comprehensiveData.qualitative_analysis.strategy.strategic_initiatives || '暂无数据'}
</Text>