diff --git a/app.py b/app.py
index 4ad9dc54..76bf3027 100755
--- a/app.py
+++ b/app.py
@@ -351,6 +351,7 @@ def generate_events_cache_key(args_dict):
params_str = json.dumps(filtered_params, sort_keys=True)
params_hash = hashlib.md5(params_str.encode()).hexdigest()
+
return f"{EVENTS_CACHE_PREFIX}{params_hash}"
diff --git a/src/views/Community/components/DynamicNews/DynamicNewsCard.js b/src/views/Community/components/DynamicNews/DynamicNewsCard.js
index 83344ccc..6a027793 100644
--- a/src/views/Community/components/DynamicNews/DynamicNewsCard.js
+++ b/src/views/Community/components/DynamicNews/DynamicNewsCard.js
@@ -16,12 +16,6 @@ import {
Badge,
Center,
Spinner,
- Modal,
- ModalOverlay,
- ModalContent,
- ModalHeader,
- ModalBody,
- ModalCloseButton,
useColorModeValue,
useToast,
useDisclosure,
@@ -34,7 +28,7 @@ import { useNotification } from '@contexts/NotificationContext';
import EventScrollList from './EventScrollList';
import ModeToggleButtons from './ModeToggleButtons';
import PaginationControl from './PaginationControl';
-import DynamicNewsDetailPanel from '@components/EventDetailPanel';
+import EventDetailModal from '../EventDetailModal';
import CompactSearchBox from '../SearchFilters/CompactSearchBox';
import {
fetchDynamicNews,
@@ -692,21 +686,12 @@ const [currentMode, setCurrentMode] = useState('vertical');
- {/* 四排模式详情弹窗 - 未打开时不渲染 */}
- {isModalOpen && (
-
-
-
-
- {modalEvent?.title || '事件详情'}
-
-
-
- {modalEvent && }
-
-
-
- )}
+ {/* 四排/主线模式详情弹窗 - 深色风格 */}
+
);
});
diff --git a/src/views/Community/components/EventDetailModal/EventDetailModal.less b/src/views/Community/components/EventDetailModal/EventDetailModal.less
index c25258ad..062bb0dc 100644
--- a/src/views/Community/components/EventDetailModal/EventDetailModal.less
+++ b/src/views/Community/components/EventDetailModal/EventDetailModal.less
@@ -7,13 +7,11 @@
@glass-border: rgba(255, 255, 255, 0.12);
@glass-text: #F7FAFC;
@glass-text-secondary: #CBD5E0;
-@glass-card-bg: #354259;
-@glass-section-bg: #3D4A5C;
-// 深色抽屉样式
-.event-detail-drawer-dark {
- // 整个抽屉容器
- &.ant-drawer {
+// 使用 :global 确保样式全局生效
+:global {
+ // 深色抽屉样式
+ .event-detail-drawer-dark {
// 内容包装器 - 移除白边
.ant-drawer-content-wrapper {
box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.4) !important;
@@ -64,10 +62,3 @@
}
}
}
-
-// 原有基础样式保留(非深色模式)
-.event-detail-drawer:not(.event-detail-drawer-dark) {
- .ant-drawer-title {
- color: #1A202C;
- }
-}
diff --git a/src/views/Community/components/EventDetailModal/EventDetailModal.tsx b/src/views/Community/components/EventDetailModal/EventDetailModal.tsx
index dd1a60ec..9cd25cae 100644
--- a/src/views/Community/components/EventDetailModal/EventDetailModal.tsx
+++ b/src/views/Community/components/EventDetailModal/EventDetailModal.tsx
@@ -1,10 +1,9 @@
import React from 'react';
import { useSelector } from 'react-redux';
-import { Drawer } from 'antd';
+import { Drawer, ConfigProvider, theme } from 'antd';
import { CloseOutlined } from '@ant-design/icons';
import { selectIsMobile } from '@store/slices/deviceSlice';
import DynamicNewsDetailPanel from '@components/EventDetailPanel';
-import './EventDetailModal.less';
interface EventDetailModalProps {
/** 是否打开弹窗 */
@@ -15,17 +14,16 @@ interface EventDetailModalProps {
event: any; // TODO: 后续可替换为具体的 Event 类型
}
-// 深色主题颜色 - 比背景亮,形成层次感(使用实色确保覆盖)
-const GLASS_THEME = {
+// 深色主题颜色 - 比背景亮,形成层次感
+const THEME = {
bg: '#2D3748',
headerBg: '#3D4A5C',
borderColor: 'rgba(255, 255, 255, 0.12)',
textColor: '#F7FAFC',
- secondaryText: '#CBD5E0',
};
/**
- * 事件详情抽屉组件(从底部弹出)- 深色毛玻璃风格
+ * 事件详情抽屉组件(从底部弹出)- 深色风格
*/
const EventDetailModal: React.FC = ({
open,
@@ -35,48 +33,62 @@ const EventDetailModal: React.FC = ({
const isMobile = useSelector(selectIsMobile);
return (
-
- }
- styles={{
- wrapper: isMobile ? {} : {
- maxWidth: 1400,
- margin: '0 auto',
+
- {event && }
-
+ }
+ styles={{
+ wrapper: isMobile ? {} : {
+ maxWidth: 1400,
+ margin: '0 auto',
+ },
+ mask: {
+ background: 'rgba(0, 0, 0, 0.5)',
+ },
+ content: {
+ borderRadius: '16px 16px 0 0',
+ background: THEME.bg,
+ },
+ header: {
+ background: THEME.headerBg,
+ borderBottom: `1px solid ${THEME.borderColor}`,
+ borderRadius: '16px 16px 0 0',
+ },
+ body: {
+ padding: 0,
+ background: THEME.bg,
+ },
+ }}
+ >
+ {event && }
+
+
);
};