diff --git a/src/components/Charts/Stock/MiniTimelineChart.js b/src/components/Charts/Stock/MiniTimelineChart.js index c9717654..f18d277c 100644 --- a/src/components/Charts/Stock/MiniTimelineChart.js +++ b/src/components/Charts/Stock/MiniTimelineChart.js @@ -202,10 +202,25 @@ const MiniTimelineChart = React.memo(function MiniTimelineChart({ stockCode, eve return h * 60 + m; }; const eventMin = parseMinuteTime(eventMinute); + + // 盘前时间定义:15:00之后(上个交易日收盘后)或09:30之前 + // 盘中时间:09:30 - 15:00 + const marketOpenMin = 9 * 60 + 30; // 09:30 + const marketCloseMin = 15 * 60; // 15:00 + + // 判断事件是否在盘前(上个交易日15:00之后 或 当天09:30之前) + const isPreMarket = eventMin >= marketCloseMin || eventMin < marketOpenMin; + let nearestIdx = 0; - for (let i = 1; i < times.length; i++) { - if (Math.abs(parseMinuteTime(times[i]) - eventMin) < Math.abs(parseMinuteTime(times[nearestIdx]) - eventMin)) { - nearestIdx = i; + if (isPreMarket) { + // 盘前消息:黄线显示在最左侧(开盘位置) + nearestIdx = 0; + } else { + // 盘中消息:找最接近的时间点 + for (let i = 1; i < times.length; i++) { + if (Math.abs(parseMinuteTime(times[i]) - eventMin) < Math.abs(parseMinuteTime(times[nearestIdx]) - eventMin)) { + nearestIdx = i; + } } } eventMarkLineData.push({