feat: 事件详情添加浏览量点击机制
This commit is contained in:
@@ -49,6 +49,10 @@ const DynamicNewsDetailPanel = ({ event }) => {
|
|||||||
const isFollowing = event?.id ? (eventFollowStatus[event.id]?.isFollowing || false) : false;
|
const isFollowing = event?.id ? (eventFollowStatus[event.id]?.isFollowing || false) : false;
|
||||||
const followerCount = event?.id ? (eventFollowStatus[event.id]?.followerCount || event.follower_count || 0) : 0;
|
const followerCount = event?.id ? (eventFollowStatus[event.id]?.followerCount || event.follower_count || 0) : 0;
|
||||||
|
|
||||||
|
// 🎯 浏览量机制:存储从 API 获取的完整事件详情(包含最新 view_count)
|
||||||
|
const [fullEventDetail, setFullEventDetail] = useState(null);
|
||||||
|
const [loadingDetail, setLoadingDetail] = useState(false);
|
||||||
|
|
||||||
// 权限判断函数
|
// 权限判断函数
|
||||||
const hasAccess = useCallback((requiredTier) => {
|
const hasAccess = useCallback((requiredTier) => {
|
||||||
const tierLevel = { free: 0, pro: 1, max: 2 };
|
const tierLevel = { free: 0, pro: 1, max: 2 };
|
||||||
@@ -76,6 +80,30 @@ const DynamicNewsDetailPanel = ({ event }) => {
|
|||||||
loadChainAnalysis
|
loadChainAnalysis
|
||||||
} = useEventStocks(event?.id, event?.created_at, { autoLoad: false });
|
} = useEventStocks(event?.id, event?.created_at, { autoLoad: false });
|
||||||
|
|
||||||
|
// 🎯 加载事件详情(增加浏览量)- 与 EventDetailModal 保持一致
|
||||||
|
const loadEventDetail = useCallback(async () => {
|
||||||
|
if (!event?.id) return;
|
||||||
|
|
||||||
|
setLoadingDetail(true);
|
||||||
|
try {
|
||||||
|
const response = await eventService.getEventDetail(event.id);
|
||||||
|
if (response.success) {
|
||||||
|
setFullEventDetail(response.data);
|
||||||
|
console.log('%c📊 [浏览量] 事件详情加载成功', 'color: #10B981; font-weight: bold;', {
|
||||||
|
eventId: event.id,
|
||||||
|
viewCount: response.data.view_count,
|
||||||
|
title: response.data.title
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('[DynamicNewsDetailPanel] loadEventDetail 失败:', error, {
|
||||||
|
eventId: event?.id
|
||||||
|
});
|
||||||
|
} finally {
|
||||||
|
setLoadingDetail(false);
|
||||||
|
}
|
||||||
|
}, [event?.id]);
|
||||||
|
|
||||||
// 相关股票、相关概念、历史事件和传导链的权限
|
// 相关股票、相关概念、历史事件和传导链的权限
|
||||||
const canAccessStocks = hasAccess('pro');
|
const canAccessStocks = hasAccess('pro');
|
||||||
const canAccessConcepts = hasAccess('pro');
|
const canAccessConcepts = hasAccess('pro');
|
||||||
@@ -168,6 +196,9 @@ const DynamicNewsDetailPanel = ({ event }) => {
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
console.log('%c🔄 [事件切换] 重置所有子模块状态', 'color: #F59E0B; font-weight: bold;', { eventId: event?.id });
|
console.log('%c🔄 [事件切换] 重置所有子模块状态', 'color: #F59E0B; font-weight: bold;', { eventId: event?.id });
|
||||||
|
|
||||||
|
// 🎯 加载事件详情(增加浏览量)
|
||||||
|
loadEventDetail();
|
||||||
|
|
||||||
// PRO 会员的相关股票默认展开,其他情况收起
|
// PRO 会员的相关股票默认展开,其他情况收起
|
||||||
const shouldOpenStocks = canAccessStocks && userTier === 'pro';
|
const shouldOpenStocks = canAccessStocks && userTier === 'pro';
|
||||||
setIsStocksOpen(shouldOpenStocks);
|
setIsStocksOpen(shouldOpenStocks);
|
||||||
@@ -185,7 +216,7 @@ const DynamicNewsDetailPanel = ({ event }) => {
|
|||||||
setHasLoadedHistorical(false);
|
setHasLoadedHistorical(false);
|
||||||
setIsTransmissionOpen(false);
|
setIsTransmissionOpen(false);
|
||||||
setHasLoadedTransmission(false);
|
setHasLoadedTransmission(false);
|
||||||
}, [event?.id, canAccessStocks, userTier, loadStocksData]);
|
}, [event?.id, canAccessStocks, userTier, loadStocksData, loadEventDetail]);
|
||||||
|
|
||||||
// 切换关注状态
|
// 切换关注状态
|
||||||
const handleToggleFollow = useCallback(async () => {
|
const handleToggleFollow = useCallback(async () => {
|
||||||
@@ -249,9 +280,9 @@ const DynamicNewsDetailPanel = ({ event }) => {
|
|||||||
<Card bg={cardBg} borderColor={borderColor} borderWidth="1px">
|
<Card bg={cardBg} borderColor={borderColor} borderWidth="1px">
|
||||||
<CardBody>
|
<CardBody>
|
||||||
<VStack align="stretch" spacing={3}>
|
<VStack align="stretch" spacing={3}>
|
||||||
{/* 头部信息区 */}
|
{/* 头部信息区 - 优先使用完整详情数据(包含最新浏览量) */}
|
||||||
<EventHeaderInfo
|
<EventHeaderInfo
|
||||||
event={event}
|
event={fullEventDetail || event}
|
||||||
importance={importance}
|
importance={importance}
|
||||||
isFollowing={isFollowing}
|
isFollowing={isFollowing}
|
||||||
followerCount={followerCount}
|
followerCount={followerCount}
|
||||||
|
|||||||
Reference in New Issue
Block a user