feat: 添加mock接口

This commit is contained in:
zdl
2025-11-03 17:31:25 +08:00
parent 8ebfad9992
commit 6a0a8e8e2b
2 changed files with 32 additions and 1 deletions

View File

@@ -49,7 +49,7 @@ const generateStocksForConcept = (seed, count = 4) => {
}; };
// 生成热门概念数据 // 生成热门概念数据
const generatePopularConcepts = (size = 20) => { export const generatePopularConcepts = (size = 20) => {
const concepts = [ const concepts = [
'人工智能', '新能源汽车', '半导体', '光伏', '锂电池', '人工智能', '新能源汽车', '半导体', '光伏', '锂电池',
'储能', '氢能源', '风电', '特高压', '工业母机', '储能', '氢能源', '风电', '特高压', '工业母机',

View File

@@ -4,6 +4,7 @@
import { http, HttpResponse } from 'msw'; import { http, HttpResponse } from 'msw';
import { getEventRelatedStocks, generateMockEvents, generateHotEvents, generatePopularKeywords, generateDynamicNewsEvents } from '../data/events'; import { getEventRelatedStocks, generateMockEvents, generateHotEvents, generatePopularKeywords, generateDynamicNewsEvents } from '../data/events';
import { getMockFutureEvents, getMockEventCountsForMonth } from '../data/account'; import { getMockFutureEvents, getMockEventCountsForMonth } from '../data/account';
import { generatePopularConcepts } from './concept';
// 模拟网络延迟 // 模拟网络延迟
const delay = (ms = 300) => new Promise(resolve => setTimeout(resolve, ms)); const delay = (ms = 300) => new Promise(resolve => setTimeout(resolve, ms));
@@ -183,6 +184,36 @@ export const eventHandlers = [
} }
}), }),
// 获取事件相关概念
http.get('/api/events/:eventId/concepts', async ({ params }) => {
await delay(300);
const { eventId } = params;
console.log('[Mock] 获取事件相关概念, eventId:', eventId);
try {
// 返回热门概念列表(模拟真实场景下根据事件标题搜索的结果)
const concepts = generatePopularConcepts(5);
return HttpResponse.json({
success: true,
data: concepts,
message: '获取成功'
});
} catch (error) {
console.error('[Mock] 获取事件相关概念失败:', error);
return HttpResponse.json(
{
success: false,
error: '获取事件相关概念失败',
data: []
},
{ status: 500 }
);
}
}),
// 获取事件传导链分析数据 // 获取事件传导链分析数据
http.get('/api/events/:eventId/transmission', async ({ params }) => { http.get('/api/events/:eventId/transmission', async ({ params }) => {
await delay(500); await delay(500);