@@ -112,10 +92,24 @@ const CitedContent = ({
)}
{/* 带引用的文本内容 */}
-
+
+ {/* AI 标识 - 行内显示在文字前面 */}
+ {showAIBadge && (
+ }
+ color="purple"
+ style={{
+ fontSize: 12,
+ padding: '2px 8px',
+ marginRight: 8,
+ verticalAlign: 'middle',
+ display: 'inline-flex',
+ }}
+ className="ai-badge-responsive"
+ >
+ AI合成
+
+ )}
{/* 前缀标签(如果有) */}
{prefix && (
{
logger.info('NotificationContext', 'Auto-requesting browser permission on notification');
await requestBrowserPermission();
}
- // 如果权限是denied(已拒绝),提供设置指引
- else if (browserPermission === 'denied') {
+ // 如果权限是denied(已拒绝),提供设置指引(仅 PC 端显示)
+ else if (browserPermission === 'denied' && !isMobile) {
const toastId = 'browser-permission-denied-guide';
if (!toast.isActive(toastId)) {
toast({
diff --git a/src/styles/bytedesk-override.css b/src/styles/bytedesk-override.css
index 8cd81c2c..2e705635 100644
--- a/src/styles/bytedesk-override.css
+++ b/src/styles/bytedesk-override.css
@@ -36,3 +36,37 @@ iframe[src*="/visitor/"] {
[class*="bytedesk-badge"] {
z-index: 1000000 !important;
}
+
+/* ========== H5 端客服组件整体缩小 ========== */
+@media (max-width: 768px) {
+ /* 整个客服容器缩小(包括按钮和提示框) */
+ [class*="bytedesk"],
+ [id*="bytedesk"],
+ [class*="BytedeskWeb"] {
+ transform: scale(0.7) !important;
+ transform-origin: bottom right !important;
+ }
+}
+
+/* ========== 提示框 3 秒后自动消失 ========== */
+/* 提示框("在线客服 点击咨询"气泡)- 扩展选择器 */
+[class*="bytedesk-bubble"],
+[class*="bytedesk-tooltip"],
+[class*="BytedeskWeb"] [class*="bubble"],
+[class*="BytedeskWeb"] [class*="tooltip"],
+[class*="bytedesk"] > div:not(button):not(iframe),
+[class*="BytedeskWeb"] > div:not(button):not(iframe),
+[id*="bytedesk"] > div:not(button):not(iframe) {
+ animation: bytedeskFadeOut 0.3s ease-out 3s forwards !important;
+}
+
+@keyframes bytedeskFadeOut {
+ from {
+ opacity: 1;
+ visibility: visible;
+ }
+ to {
+ opacity: 0;
+ visibility: hidden;
+ }
+}
diff --git a/src/views/Community/components/DynamicNewsCard.js b/src/views/Community/components/DynamicNewsCard.js
index 1ba97dbe..67897c08 100644
--- a/src/views/Community/components/DynamicNewsCard.js
+++ b/src/views/Community/components/DynamicNewsCard.js
@@ -543,7 +543,7 @@ const [currentMode, setCurrentMode] = useState('vertical');
{/* 左侧:标题 + 模式切换按钮 */}
-
+
实时要闻·动态追踪
@@ -610,7 +610,9 @@ const [currentMode, setCurrentMode] = useState('vertical');
-
-
-
- {mobileSelectedEvent?.title || '事件详情'}
-
-
-
- {mobileSelectedEvent && (
-
- )}
-
-
-
+
)}
);
diff --git a/src/views/Community/components/DynamicNewsDetail/CompactMetaBar.js b/src/views/Community/components/DynamicNewsDetail/CompactMetaBar.js
index 7abe78ad..d8d9c1ea 100644
--- a/src/views/Community/components/DynamicNewsDetail/CompactMetaBar.js
+++ b/src/views/Community/components/DynamicNewsDetail/CompactMetaBar.js
@@ -47,7 +47,7 @@ const CompactMetaBar = ({ event, importance, isFollowing, followerCount, onToggl
spacing={3}
zIndex={1}
>
- {/* 重要性徽章 - 与 EventHeaderInfo 样式一致,尺寸略小 */}
+ {/* 重要性徽章 - 与 EventHeaderInfo 样式一致,尺寸略小 - H5 隐藏 */}
diff --git a/src/views/Community/components/DynamicNewsDetail/CompactStockItem.js b/src/views/Community/components/DynamicNewsDetail/CompactStockItem.js
index 2eb1ea34..b7c35204 100644
--- a/src/views/Community/components/DynamicNewsDetail/CompactStockItem.js
+++ b/src/views/Community/components/DynamicNewsDetail/CompactStockItem.js
@@ -2,13 +2,15 @@
// 精简模式股票卡片组件(浮动卡片样式)
import React from 'react';
+import { useSelector } from 'react-redux';
import {
Box,
Text,
Tooltip,
useColorModeValue,
} from '@chakra-ui/react';
-import { getChangeColor, getChangeBackgroundGradient, getChangeBorderColor } from '../../../../utils/colorUtils';
+import { selectIsMobile } from '@store/slices/deviceSlice';
+import { getChangeColor, getChangeBackgroundGradient, getChangeBorderColor } from '@utils/colorUtils';
/**
* 精简模式股票卡片组件
@@ -17,6 +19,7 @@ import { getChangeColor, getChangeBackgroundGradient, getChangeBorderColor } fro
* @param {Object} props.quote - 股票行情数据(可选)
*/
const CompactStockItem = ({ stock, quote = null }) => {
+ const isMobile = useSelector(selectIsMobile);
const nameColor = useColorModeValue('gray.700', 'gray.300');
const handleViewDetail = () => {
@@ -45,10 +48,10 @@ const CompactStockItem = ({ stock, quote = null }) => {
>
{
}}
transition="all 0.3s ease-in-out"
display="inline-block"
- minW="150px"
+ minW="100px"
>
{/* 股票代码 */}
{stock.stock_code}
@@ -84,7 +87,7 @@ const CompactStockItem = ({ stock, quote = null }) => {
{/* 涨跌幅 - 超大号显示 */}
{
{/* 股票名称(小字) */}
{
{/* 讨论区(评论区) - 所有登录用户可用 */}
-
+
diff --git a/src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/SimpleConceptCard.js b/src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/SimpleConceptCard.js
index 212269d0..f89a9d3a 100644
--- a/src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/SimpleConceptCard.js
+++ b/src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/SimpleConceptCard.js
@@ -37,16 +37,16 @@ const SimpleConceptCard = ({ concept, onClick, getRelevanceColor }) => {
return (
{
{/* 第二行:相关度 + 涨跌幅 */}
-
+
{/* 相关度标签 */}
-
+
相关度: {relevanceScore}%
@@ -87,8 +87,8 @@ const SimpleConceptCard = ({ concept, onClick, getRelevanceColor }) => {
{changePct !== null && (
diff --git a/src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/index.js b/src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/index.js
index 81cd1640..f0581be4 100644
--- a/src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/index.js
+++ b/src/views/Community/components/DynamicNewsDetail/RelatedConceptsSection/index.js
@@ -243,7 +243,7 @@ const RelatedConceptsSection = ({
}
}}
>
- {isExpanded ? '收起' : '查看详细描述'}
+ {isExpanded ? '收起' : '查看详细'}
{/* 第二行:交易日期信息 */}
diff --git a/src/views/Community/components/DynamicNewsDetail/StockListItem.js b/src/views/Community/components/DynamicNewsDetail/StockListItem.js
index c6de6078..fa789387 100644
--- a/src/views/Community/components/DynamicNewsDetail/StockListItem.js
+++ b/src/views/Community/components/DynamicNewsDetail/StockListItem.js
@@ -2,6 +2,7 @@
// 股票卡片组件(融合表格功能的卡片样式)
import React, { useState } from 'react';
+import { useSelector } from 'react-redux';
import {
Box,
Flex,
@@ -16,13 +17,15 @@ import {
useColorModeValue,
} from '@chakra-ui/react';
import { StarIcon } from '@chakra-ui/icons';
+import { Tag } from 'antd';
+import { RobotOutlined } from '@ant-design/icons';
+import { selectIsMobile } from '@store/slices/deviceSlice';
import MiniTimelineChart from '../StockDetailPanel/components/MiniTimelineChart';
import MiniKLineChart from './MiniKLineChart';
-import TimelineChartModal from '../../../../components/StockChart/TimelineChartModal';
-import KLineChartModal from '../../../../components/StockChart/KLineChartModal';
-import CitedContent from '../../../../components/Citation/CitedContent';
-import { getChangeColor } from '../../../../utils/colorUtils';
-import { PROFESSIONAL_COLORS } from '../../../../constants/professionalTheme';
+import TimelineChartModal from '@components/StockChart/TimelineChartModal';
+import KLineChartModal from '@components/StockChart/KLineChartModal';
+import { getChangeColor } from '@utils/colorUtils';
+import { PROFESSIONAL_COLORS } from '@constants/professionalTheme';
/**
* 股票卡片组件
@@ -44,6 +47,7 @@ const StockListItem = ({
isInWatchlist = false,
onWatchlistToggle
}) => {
+ const isMobile = useSelector(selectIsMobile);
const cardBg = PROFESSIONAL_COLORS.background.card;
const borderColor = PROFESSIONAL_COLORS.border.default;
const codeColor = '#3B82F6';
@@ -128,9 +132,9 @@ const StockListItem = ({
transition="all 0.2s"
>
{/* 单行紧凑布局:名称+涨跌幅 | 分时图 | K线图 | 关联描述 */}
-
+
{/* 左侧:股票信息区 */}
-
+
{/* 股票代码 + 名称 + 涨跌幅 */}
- {/* 分时图 - 更紧凑 */}
+ {/* 分时图 - 自适应 */}
{
e.stopPropagation();
setIsTimelineModalOpen(true);
}}
cursor="pointer"
- flexShrink={0}
align="stretch"
spacing={0}
- h="fit-content"
_hover={{
borderColor: '#3B82F6',
boxShadow: '0 0 10px rgba(59, 130, 246, 0.3)',
@@ -228,7 +232,7 @@ const StockListItem = ({
>
📈 分时
-
+
- {/* K线图 - 更紧凑 */}
+ {/* K线图 - 自适应 */}
{
e.stopPropagation();
setIsKLineModalOpen(true);
}}
cursor="pointer"
- flexShrink={0}
align="stretch"
spacing={0}
- h="fit-content"
_hover={{
borderColor: '#A855F7',
boxShadow: '0 0 10px rgba(168, 85, 247, 0.3)',
@@ -270,7 +274,7 @@ const StockListItem = ({
>
📊 日线
-
+
+
{stock.relation_desc?.data ? (
// 升级:带引用来源的版本 - 添加折叠功能
-
-
+ {/* AI 标识 - 行内显示在文字前面 */}
+ }
+ color="purple"
+ style={{
+ fontSize: 12,
+ padding: '2px 8px',
+ marginRight: 8,
+ verticalAlign: 'middle',
+ display: 'inline-flex',
}}
- />
+ >
+ AI合成
+
+ {/* 直接渲染文字内容 */}
+
+ {stock.relation_desc?.data?.map(item => item.sentences || item.query_part).filter(Boolean).join(',')}
+
@@ -339,8 +353,6 @@ const StockListItem = ({
setIsDescExpanded(!isDescExpanded);
}}
cursor="pointer"
- px={3}
- py={2}
bg={PROFESSIONAL_COLORS.background.secondary}
borderRadius="md"
_hover={{
@@ -350,7 +362,7 @@ const StockListItem = ({
position="relative"
>
{/* 去掉"关联描述"标题 */}
-
+
)
}
diff --git a/src/views/Community/components/EventDetailModal.less b/src/views/Community/components/EventDetailModal.less
new file mode 100644
index 00000000..c448bed8
--- /dev/null
+++ b/src/views/Community/components/EventDetailModal.less
@@ -0,0 +1,36 @@
+.event-detail-modal {
+ top: 20% !important;
+ margin: 0 auto !important;
+ padding-bottom: 0 !important;
+
+ .ant-modal-content {
+ border-radius: 24px !important;
+ background: transparent;
+ }
+
+ // 标题样式 - 深色文字(白色背景)
+ .ant-modal-title {
+ color: #1A202C;
+ }
+
+ // 关闭按钮样式 - 深色(白色背景)
+ .ant-modal-close {
+ color: #4A5568;
+
+ &:hover {
+ color: #1A202C;
+ }
+ }
+}
+
+// 自底向上滑入动画
+@keyframes slideUp {
+ from {
+ transform: translateY(100%);
+ opacity: 0;
+ }
+ to {
+ transform: translateY(0);
+ opacity: 1;
+ }
+}
diff --git a/src/views/Community/components/EventDetailModal.tsx b/src/views/Community/components/EventDetailModal.tsx
new file mode 100644
index 00000000..7b61af97
--- /dev/null
+++ b/src/views/Community/components/EventDetailModal.tsx
@@ -0,0 +1,48 @@
+import React from 'react';
+import { useSelector } from 'react-redux';
+import { Modal } from 'antd';
+import { selectIsMobile } from '@store/slices/deviceSlice';
+import DynamicNewsDetailPanel from './DynamicNewsDetail/DynamicNewsDetailPanel';
+import './EventDetailModal.less';
+
+interface EventDetailModalProps {
+ /** 是否打开弹窗 */
+ open: boolean;
+ /** 关闭弹窗回调 */
+ onClose: () => void;
+ /** 事件对象 */
+ event: any; // TODO: 后续可替换为具体的 Event 类型
+}
+
+/**
+ * 事件详情弹窗组件
+ */
+const EventDetailModal: React.FC = ({
+ open,
+ onClose,
+ event,
+}) => {
+ const isMobile = useSelector(selectIsMobile);
+
+ return (
+
+ {event && }
+
+ );
+};
+
+export default EventDetailModal;
diff --git a/src/views/Community/components/HotEvents.js b/src/views/Community/components/HotEvents.js
index 8d7411d8..cd403793 100644
--- a/src/views/Community/components/HotEvents.js
+++ b/src/views/Community/components/HotEvents.js
@@ -2,19 +2,11 @@
import React, { useState } from 'react';
import { Card, Badge, Tag, Empty, Carousel, Tooltip } from 'antd';
import { ArrowUpOutlined, ArrowDownOutlined, LeftOutlined, RightOutlined } from '@ant-design/icons';
-import {
- Modal,
- ModalOverlay,
- ModalContent,
- ModalHeader,
- ModalBody,
- ModalCloseButton,
- useDisclosure
-} from '@chakra-ui/react';
+import { useDisclosure } from '@chakra-ui/react';
+import EventDetailModal from './EventDetailModal';
import dayjs from 'dayjs';
import './HotEvents.css';
import defaultEventImage from '../../../assets/img/default-event.jpg';
-import DynamicNewsDetailPanel from './DynamicNewsDetail';
// 自定义箭头组件
const CustomArrow = ({ className, style, onClick, direction }) => {
@@ -196,21 +188,12 @@ const HotEvents = ({ events, onPageChange, onEventClick }) => {
)}
- {/* 事件详情弹窗 - 使用 Chakra UI Modal(与平铺模式一致) */}
- {isModalOpen ? (
-
-
-
-
- {modalEvent?.title || '事件详情'}
-
-
-
- {modalEvent && }
-
-
-
- ): null}
+ {/* 事件详情弹窗 */}
+
);
};
diff --git a/src/views/EventDetail/components/HistoricalEvents.js b/src/views/EventDetail/components/HistoricalEvents.js
index e5539ea4..de3b911c 100644
--- a/src/views/EventDetail/components/HistoricalEvents.js
+++ b/src/views/EventDetail/components/HistoricalEvents.js
@@ -29,10 +29,12 @@ import {
FaChartLine,
FaInfoCircle
} from 'react-icons/fa';
-import { stockService } from '../../../services/eventService';
-import { logger } from '../../../utils/logger';
-import CitedContent from '../../../components/Citation/CitedContent';
-import { PROFESSIONAL_COLORS } from '../../../constants/professionalTheme';
+import { Tag } from 'antd';
+import { RobotOutlined } from '@ant-design/icons';
+import { stockService } from '@services/eventService';
+import { logger } from '@utils/logger';
+import CitedContent from '@components/Citation/CitedContent';
+import { PROFESSIONAL_COLORS } from '@constants/professionalTheme';
const HistoricalEvents = ({
events = [],
@@ -244,7 +246,7 @@ const HistoricalEvents = ({
key={event.id}
bg={cardBg}
borderWidth="1px"
- borderColor={borderColor}
+ borderColor="gray.500"
borderRadius="lg"
position="relative"
overflow="visible"
@@ -267,16 +269,16 @@ const HistoricalEvents = ({
}}
transition="all 0.2s"
>
-
+
{/* 顶部区域:左侧(标题+时间) + 右侧(按钮) */}
{/* 左侧:标题 + 时间信息(允许折行) */}
-
+
{/* 标题 */}
{
@@ -290,27 +292,28 @@ const HistoricalEvents = ({
{/* 时间 + Badges(允许折行) */}
-
+
{formatDate(getEventDate(event))}
-
+
({getRelativeTime(getEventDate(event))})
{event.importance && (
-
+
重要性: {event.importance}
)}
{event.avg_change_pct !== undefined && event.avg_change_pct !== null && (
0 ? 'red' : event.avg_change_pct < 0 ? 'green' : 'gray'}
- size="sm"
+ fontSize="xs"
+ px={2}
>
涨幅: {event.avg_change_pct > 0 ? '+' : ''}{event.avg_change_pct.toFixed(2)}%
)}
{event.similarity !== undefined && event.similarity !== null && (
-
+
相关度: {event.similarity}
)}
@@ -344,10 +347,9 @@ const HistoricalEvents = ({
data={content}
title=""
showAIBadge={true}
- textColor={PROFESSIONAL_COLORS.text.primary}
+ textColor="#E2E8F0"
containerStyle={{
- backgroundColor: useColorModeValue('#f7fafc', 'rgba(45, 55, 72, 0.6)'),
- borderRadius: '8px',
+ backgroundColor: 'transparent',
padding: '0',
}}
/>
diff --git a/src/views/EventDetail/components/TransmissionChainAnalysis.js b/src/views/EventDetail/components/TransmissionChainAnalysis.js
index ab6896a8..cfe86023 100644
--- a/src/views/EventDetail/components/TransmissionChainAnalysis.js
+++ b/src/views/EventDetail/components/TransmissionChainAnalysis.js
@@ -1,18 +1,18 @@
import React, { useEffect, useState, useRef } from 'react';
-import {
- Box,
- Button,
- Flex,
- Spinner,
- Alert,
- AlertIcon,
- Text,
- Stat,
- StatLabel,
- StatNumber,
- HStack,
- VStack,
- Tag,
+import {
+ Box,
+ Button,
+ Flex,
+ Spinner,
+ Alert,
+ AlertIcon,
+ Text,
+ Stat,
+ StatLabel,
+ StatNumber,
+ HStack,
+ VStack,
+ Tag,
Badge,
List,
ListItem,
@@ -28,9 +28,11 @@ import {
ModalCloseButton,
Icon,
useColorModeValue,
- Tooltip
+ Tooltip,
+ Center
} from '@chakra-ui/react';
import { InfoIcon, ViewIcon } from '@chakra-ui/icons';
+import { Share2, GitBranch, Inbox } from 'lucide-react';
import ReactECharts from 'echarts-for-react';
import { eventService } from '../../../services/eventService';
import CitedContent from '../../../components/Citation/CitedContent';
@@ -637,7 +639,7 @@ const TransmissionChainAnalysis = ({ eventId }) => {
};
return (
-
+
{/* 统计信息条 */}
{
borderColor={PROFESSIONAL_COLORS.border.default}
bg={PROFESSIONAL_COLORS.background.secondary}
>
-
-
- 总节点数
- {stats.totalNodes}
+
+
+ 总节点数
+ {stats.totalNodes}
-
- 涉及行业
- {stats.involvedIndustries}
+
+ 涉及行业
+ {stats.involvedIndustries}
-
- 相关公司
- {stats.relatedCompanies}
+
+ 相关公司
+ {stats.relatedCompanies}
-
- 正向影响
- {stats.positiveImpact}
+
+ 正向影响
+ {stats.positiveImpact}
-
- 负向影响
- {stats.negativeImpact}
+
+ 负向影响
+ {stats.negativeImpact}
-
- 循环效应
- {stats.circularEffect}
+
+ 循环效应
+ {stats.circularEffect}
-
+
{/* 自定义图例 */}
-
-
- {Object.entries(NODE_STYLES).map(([type, style]) => (
-
-
- {NODE_TYPE_LABELS[type] || type}
-
- ))}
-
-
+
+ {Object.entries(NODE_STYLES).map(([type, style]) => (
+
+
+ {NODE_TYPE_LABELS[type] || type}
+
+ ))}
+
{/* 视图切换按钮 */}
}
bg={viewMode === 'graph' ? PROFESSIONAL_COLORS.gold[500] : PROFESSIONAL_COLORS.background.secondary}
color={viewMode === 'graph' ? 'black' : PROFESSIONAL_COLORS.text.primary}
_hover={{
@@ -710,6 +713,7 @@ const TransmissionChainAnalysis = ({ eventId }) => {
力导向图
}
bg={viewMode === 'sankey' ? PROFESSIONAL_COLORS.gold[500] : PROFESSIONAL_COLORS.background.secondary}
color={viewMode === 'sankey' ? 'black' : PROFESSIONAL_COLORS.text.primary}
_hover={{
@@ -722,7 +726,6 @@ const TransmissionChainAnalysis = ({ eventId }) => {
>
桑基图
-
{loading && (
@@ -748,86 +751,108 @@ const TransmissionChainAnalysis = ({ eventId }) => {
{!loading && !error && (
- {/* 提示信息 */}
-
-
-
-
- 点击图表中的节点可以查看详细信息
-
-
-
- {/* 图表容器 */}
+ {/* 图表容器 - 宽高比 2:1,H5 自适应 */}
+
+ {/* 提示信息 - 固定在左上角 */}
+
+
+ 点击节点查看详情
+
{chartReady && (
<>
- {viewMode === 'graph' ? (
- {
- // 减少不必要的重新渲染
- return JSON.stringify(prevProps.option) !== JSON.stringify(props.option);
- }}
- />
+ {/* 空状态提示 */}
+ {(viewMode === 'graph' && (!graphData || !graphData.nodes || graphData.nodes.length === 0)) ||
+ (viewMode === 'sankey' && (!sankeyData || !sankeyData.nodes || sankeyData.nodes.length === 0)) ? (
+
+
+
+ 暂无传导链数据
+
+
) : (
- {
- // 减少不必要的重新渲染
- return JSON.stringify(prevProps.option) !== JSON.stringify(props.option);
- }}
- />
+ <>
+ {viewMode === 'graph' ? (
+ {
+ // 减少不必要的重新渲染
+ return JSON.stringify(prevProps.option) !== JSON.stringify(props.option);
+ }}
+ />
+ ) : (
+ {
+ // 减少不必要的重新渲染
+ return JSON.stringify(prevProps.option) !== JSON.stringify(props.option);
+ }}
+ />
+ )}
+ >
)}
>
)}
+
)}
-
+
{/* 节点详情弹窗 */}
{isModalOpen && (
-
-
+
+
{selectedNode ? '节点详情' : '传导链分析'}
{selectedNode && (
{
)}
-
+
{selectedNode ? (
@@ -1084,11 +1112,15 @@ const TransmissionChainAnalysis = ({ eventId }) => {
prefix="机制:"
prefixStyle={{ fontSize: 12, color: PROFESSIONAL_COLORS.text.secondary, fontWeight: 'bold' }}
textColor={PROFESSIONAL_COLORS.text.primary}
- containerStyle={{ marginTop: 8 }}
+ containerStyle={{
+ marginTop: 8,
+ backgroundColor: 'transparent',
+ padding: 0,
+ }}
showAIBadge={false}
/>
) : parent.transmission_mechanism ? (
-
+
机制: {parent.transmission_mechanism}(AI合成)
) : null}
@@ -1105,23 +1137,42 @@ const TransmissionChainAnalysis = ({ eventId }) => {
{/* 影响输出 */}
{(() => {
const targetsFromAPI = nodeDetail && nodeDetail.children && nodeDetail.children.length > 0;
-
+
if (targetsFromAPI) {
return (
-
- 影响输出 ({nodeDetail.children.length})
+
+ 影响输出 ({nodeDetail.children.length})(AI合成)
{nodeDetail.children.map((child, index) => (
-
+
{child.direction && (
@@ -1132,7 +1183,7 @@ const TransmissionChainAnalysis = ({ eventId }) => {
)}
- {child.name}
+ {child.name}
{child.transmission_mechanism?.data ? (
{
prefix="机制:"
prefixStyle={{ fontSize: 12, color: PROFESSIONAL_COLORS.text.secondary, fontWeight: 'bold' }}
textColor={PROFESSIONAL_COLORS.text.primary}
- containerStyle={{ marginTop: 8 }}
+ containerStyle={{
+ marginTop: 8,
+ backgroundColor: 'transparent',
+ padding: 0,
+ }}
showAIBadge={false}
/>
) : child.transmission_mechanism ? (
-
+
机制: {child.transmission_mechanism}(AI合成)
) : null}
@@ -1169,7 +1224,14 @@ const TransmissionChainAnalysis = ({ eventId }) => {
-
+