From dc38199ae697cd06d4cf869cfd58bea3f874278e Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Mon, 27 Oct 2025 15:39:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0mock=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mocks/data/market.js | 91 ++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/src/mocks/data/market.js b/src/mocks/data/market.js index 94b46de3..e2e56ae5 100644 --- a/src/mocks/data/market.js +++ b/src/mocks/data/market.js @@ -8,65 +8,74 @@ export const generateMarketData = (stockCode) => { return { stockCode, - // 成交数据 + // 成交数据 - 必须包含K线所需的字段 tradeData: { + success: true, + data: Array(30).fill(null).map((_, i) => { + const open = basePrice + (Math.random() - 0.5) * 0.5; + const close = basePrice + (Math.random() - 0.5) * 0.5; + const high = Math.max(open, close) + Math.random() * 0.3; + const low = Math.min(open, close) - Math.random() * 0.3; + return { + date: new Date(Date.now() - (29 - i) * 24 * 60 * 60 * 1000).toISOString().split('T')[0], + open: parseFloat(open.toFixed(2)), + close: parseFloat(close.toFixed(2)), + high: parseFloat(high.toFixed(2)), + low: parseFloat(low.toFixed(2)), + volume: Math.floor(Math.random() * 500000000) + 100000000, // 1-6亿股 + amount: Math.floor(Math.random() * 7000000000) + 1300000000, // 13-80亿元 + turnover_rate: (Math.random() * 2 + 0.5).toFixed(2), // 0.5-2.5% + change_pct: (Math.random() * 6 - 3).toFixed(2) // -3% to +3% + }; + }) + }, + + // 资金流向 - 融资融券数据数组 + fundingData: { success: true, data: Array(30).fill(null).map((_, i) => ({ date: new Date(Date.now() - (29 - i) * 24 * 60 * 60 * 1000).toISOString().split('T')[0], - volume: Math.floor(Math.random() * 500000000) + 100000000, // 1-6亿股 - amount: Math.floor(Math.random() * 7000000000) + 1300000000, // 13-80亿元 - turnover_rate: (Math.random() * 2 + 0.5).toFixed(2), // 0.5-2.5% - change_pct: (Math.random() * 6 - 3).toFixed(2) // -3% to +3% + financing: { + balance: Math.floor(Math.random() * 5000000000) + 10000000000, // 融资余额 + buy: Math.floor(Math.random() * 500000000) + 100000000, // 融资买入 + repay: Math.floor(Math.random() * 500000000) + 80000000 // 融资偿还 + }, + securities: { + balance: Math.floor(Math.random() * 100000000) + 50000000, // 融券余额 + sell: Math.floor(Math.random() * 10000000) + 5000000, // 融券卖出 + repay: Math.floor(Math.random() * 10000000) + 3000000 // 融券偿还 + } })) }, - // 资金流向 - fundingData: { - success: true, - data: { - main_inflow: 125600000, // 主力净流入(元) - retail_inflow: -45300000, // 散户净流入 - large_inflow: 89200000, // 大单净流入 - medium_inflow: 23400000, // 中单净流入 - small_outflow: -68600000, // 小单净流出 - trend: Array(30).fill(null).map((_, i) => ({ - date: new Date(Date.now() - (29 - i) * 24 * 60 * 60 * 1000).toISOString().split('T')[0], - main_inflow: Math.floor(Math.random() * 200000000) - 100000000 - })) - } - }, - - // 大单统计 + // 大单统计 - 包含 daily_stats 数组 bigDealData: { success: true, - data: { - today: { - buy_large: 234500000, - sell_large: 189600000, - net_large: 44900000, - buy_count: 1256, - sell_count: 1089 - }, - history: Array(30).fill(null).map((_, i) => ({ - date: new Date(Date.now() - (29 - i) * 24 * 60 * 60 * 1000).toISOString().split('T')[0], - net_large: Math.floor(Math.random() * 200000000) - 100000000 - })) - } + data: [], + daily_stats: Array(10).fill(null).map((_, i) => ({ + date: new Date(Date.now() - (9 - i) * 24 * 60 * 60 * 1000).toISOString().split('T')[0], + big_buy: Math.floor(Math.random() * 300000000) + 100000000, + big_sell: Math.floor(Math.random() * 300000000) + 80000000, + medium_buy: Math.floor(Math.random() * 200000000) + 60000000, + medium_sell: Math.floor(Math.random() * 200000000) + 50000000, + small_buy: Math.floor(Math.random() * 100000000) + 30000000, + small_sell: Math.floor(Math.random() * 100000000) + 25000000 + })) }, - // 异动分析 + // 异动分析 - 包含 grouped_data 数组 unusualData: { success: true, - data: { + data: [], + grouped_data: Array(5).fill(null).map((_, i) => ({ + date: new Date(Date.now() - (4 - i) * 24 * 60 * 60 * 1000).toISOString().split('T')[0], events: [ { time: '14:35:22', type: '快速拉升', change: '+2.3%', description: '5分钟内上涨2.3%' }, { time: '11:28:45', type: '大单买入', amount: '5680万', description: '单笔大单买入' }, { time: '10:15:30', type: '量比异动', ratio: '3.2', description: '量比达到3.2倍' } ], - volume_ratio: 1.85, // 量比 - turnover_rate: 1.23, // 换手率 - amplitude: 3.45 // 振幅% - } + count: 3 + })) }, // 股权质押