问题:
- 点击"股票行情"标签页:MarketDataView 组件需要市场数据接口
- 点击"财务全景"标签页:FinancialPanorama 组件需要财务数据接口
- 这些接口都没有 mock 数据,导致页面显示空白
需要添加的接口:
股票行情 (MarketDataView) - 7个接口
1. /api/market/trade/:stockCode - 成交数据
2. /api/market/funding/:stockCode - 资金流向
3. /api/market/bigdeal/:stockCode - 大单统计
4. /api/market/unusual/:stockCode - 异动分析
5. /api/market/pledge/:stockCode - 股权质押
6. /api/market/summary/:stockCode - 市场摘要
7. /api/market/rise-analysis/:stockCode - 涨停分析
8. /api/stock/:stockCode/latest-minute - 最新分时数据
财务全景 (FinancialPanorama) - 9个接口
1. /api/financial/stock-info/:stockCode - 股票基本信息
2. /api/financial/balance-sheet/:stockCode - 资产负债表
3. /api/financial/income-statement/:stockCode - 利润表
4. /api/financial/cashflow/:stockCode - 现金流量表
5. /api/financial/financial-metrics/:stockCode - 财务指标
6. /api/financial/main-business/:stockCode - 主营业务
7. /api/financial/forecast/:stockCode - 业绩预告
8. /api/financial/industry-rank/:stockCode - 行业排名
9. /api/financial/comparison/:stockCode - 期间对比
实施步骤:
1. 创建 src/mocks/data/market.js - 市场数据
2. 创建 src/mocks/data/financial.js - 财务数据
3. 创建 src/mocks/handlers/market.js - 市场接口handlers
4. 创建 src/mocks/handlers/financial.js - 财务接口handlers
5. 更新 src/mocks/handlers/index.js - 注册新handlers
数据内容:
- 为平安银行 (000001) 提供完整真实数据
- 其他股票代码生成合理的模拟数据
75 lines
2.4 KiB
JavaScript
75 lines
2.4 KiB
JavaScript
// src/mocks/handlers/market.js
|
|
// 市场行情相关的 Mock Handlers
|
|
|
|
import { http, HttpResponse } from 'msw';
|
|
import { generateMarketData } from '../data/market';
|
|
|
|
// 模拟延迟
|
|
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
|
|
export const marketHandlers = [
|
|
// 1. 成交数据
|
|
http.get('/api/market/trade/:stockCode', async ({ params, request }) => {
|
|
await delay(200);
|
|
const { stockCode } = params;
|
|
const data = generateMarketData(stockCode);
|
|
return HttpResponse.json(data.tradeData);
|
|
}),
|
|
|
|
// 2. 资金流向
|
|
http.get('/api/market/funding/:stockCode', async ({ params }) => {
|
|
await delay(200);
|
|
const { stockCode } = params;
|
|
const data = generateMarketData(stockCode);
|
|
return HttpResponse.json(data.fundingData);
|
|
}),
|
|
|
|
// 3. 大单统计
|
|
http.get('/api/market/bigdeal/:stockCode', async ({ params }) => {
|
|
await delay(200);
|
|
const { stockCode } = params;
|
|
const data = generateMarketData(stockCode);
|
|
return HttpResponse.json(data.bigDealData);
|
|
}),
|
|
|
|
// 4. 异动分析
|
|
http.get('/api/market/unusual/:stockCode', async ({ params }) => {
|
|
await delay(200);
|
|
const { stockCode } = params;
|
|
const data = generateMarketData(stockCode);
|
|
return HttpResponse.json(data.unusualData);
|
|
}),
|
|
|
|
// 5. 股权质押
|
|
http.get('/api/market/pledge/:stockCode', async ({ params }) => {
|
|
await delay(200);
|
|
const { stockCode } = params;
|
|
const data = generateMarketData(stockCode);
|
|
return HttpResponse.json(data.pledgeData);
|
|
}),
|
|
|
|
// 6. 市场摘要
|
|
http.get('/api/market/summary/:stockCode', async ({ params }) => {
|
|
await delay(200);
|
|
const { stockCode } = params;
|
|
const data = generateMarketData(stockCode);
|
|
return HttpResponse.json(data.summaryData);
|
|
}),
|
|
|
|
// 7. 涨停分析
|
|
http.get('/api/market/rise-analysis/:stockCode', async ({ params }) => {
|
|
await delay(200);
|
|
const { stockCode } = params;
|
|
const data = generateMarketData(stockCode);
|
|
return HttpResponse.json(data.riseAnalysisData);
|
|
}),
|
|
|
|
// 8. 最新分时数据
|
|
http.get('/api/stock/:stockCode/latest-minute', async ({ params }) => {
|
|
await delay(300);
|
|
const { stockCode } = params;
|
|
const data = generateMarketData(stockCode);
|
|
return HttpResponse.json(data.latestMinuteData);
|
|
}),
|
|
];
|