From 8d3e92dfaf4faa3bd2c4274a8871964bbe2070c9 Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Thu, 4 Dec 2025 13:46:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E8=8E=B7=E5=8F=96K=E7=BA=BF=E6=95=B0=E6=8D=AE=E7=9A=84=20mock?= =?UTF-8?q?=20handler?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 /api/stock/batch-kline POST 接口 mock - 支持批量获取多只股票的分时图和日K线数据 - 修复事件详情页面相关股票的K线和分时图无数据问题 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/mocks/handlers/stock.js | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/src/mocks/handlers/stock.js b/src/mocks/handlers/stock.js index 623702c2..701c97f0 100644 --- a/src/mocks/handlers/stock.js +++ b/src/mocks/handlers/stock.js @@ -224,4 +224,59 @@ export const stockHandlers = [ ); } }), + + // 批量获取股票K线数据 + http.post('/api/stock/batch-kline', async ({ request }) => { + await delay(400); + + try { + const body = await request.json(); + const { codes, type = 'timeline', event_time } = body; + + console.log('[Mock Stock] 批量获取K线数据:', { + stockCount: codes?.length, + type, + eventTime: event_time + }); + + if (!codes || !Array.isArray(codes) || codes.length === 0) { + return HttpResponse.json( + { error: '股票代码列表不能为空' }, + { status: 400 } + ); + } + + // 为每只股票生成数据 + const batchData = {}; + codes.forEach(stockCode => { + let data; + if (type === 'timeline') { + data = generateTimelineData('000001.SH'); + } else if (type === 'daily') { + data = generateDailyData('000001.SH', 60); + } else { + data = []; + } + + batchData[stockCode] = { + success: true, + data: data, + stock_code: stockCode + }; + }); + + return HttpResponse.json({ + success: true, + data: batchData, + type: type, + message: '批量获取成功' + }); + } catch (error) { + console.error('[Mock Stock] 批量获取K线数据失败:', error); + return HttpResponse.json( + { error: '批量获取K线数据失败' }, + { status: 500 } + ); + } + }), ];