fix: 修改相关概念组件以匹配真实API数据结构

修改内容:
- SimpleConceptCard.js: 改用 concept.concept 和 concept.score 字段
- DetailedConceptCard.js: 改用 concept.concept、concept.score 和 concept.price_info.avg_change_pct
- RelatedConceptsSection/index.js: 导航时使用 concept.concept 字段
- events.js mock数据: 更新keywords生成函数,使用concept/score/price_info结构

数据结构变更:
- name → concept (概念名称)
- relevance (0-100) → score (0-1)
- avg_change_pct → price_info.avg_change_pct (嵌套结构)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
zdl
2025-11-03 14:18:17 +08:00
parent 5611c06991
commit e31e4118a0
4 changed files with 30 additions and 19 deletions

View File

@@ -696,17 +696,24 @@ function generateKeywords(industry, seed) {
return selectedStocks;
};
// 将字符串数组转换为对象数组,包含完整字段
return keywordNames.map((name, index) => ({
name: name,
stock_count: 10 + Math.floor((seed + index) % 30), // 10-39个相关股票
relevance: 70 + Math.floor((seed * 7 + index * 11) % 30), // 70-99的相关度
description: descriptionTemplates[name] || `${name}相关概念,市场关注度较高,具有一定的投资价值。`,
avg_change_pct: (Math.random() * 15 - 5).toFixed(2), // -5% ~ +10% 的涨跌幅
match_type: matchTypes[(seed + index) % 3], // 随机匹配类型
happened_times: generateHappenedTimes(seed + index), // 历史触发时间
stocks: generateRelatedStocks(name, seed + index) // 核心相关股票
}));
// 将字符串数组转换为对象数组,匹配真实API数据结构
return keywordNames.map((name, index) => {
const score = (70 + Math.floor((seed * 7 + index * 11) % 30)) / 100; // 0.70-0.99的分数
const avgChangePct = (Math.random() * 15 - 5).toFixed(2); // -5% ~ +10% 的涨跌幅
return {
concept: name, // 使用 concept 字段而不是 name
stock_count: 10 + Math.floor((seed + index) % 30), // 10-39个相关股票
score: parseFloat(score.toFixed(2)), // 0-1之间的分数而不是0-100
description: descriptionTemplates[name] || `${name}相关概念,市场关注度较高,具有一定的投资价值。`,
price_info: { // 将 avg_change_pct 嵌套在 price_info 对象中
avg_change_pct: parseFloat(avgChangePct)
},
match_type: matchTypes[(seed + index) % 3], // 随机匹配类型
happened_times: generateHappenedTimes(seed + index), // 历史触发时间
stocks: generateRelatedStocks(name, seed + index) // 核心相关股票
};
});
}
/**