diff --git a/src/mocks/data/market.js b/src/mocks/data/market.js index 64158873..266754f5 100644 --- a/src/mocks/data/market.js +++ b/src/mocks/data/market.js @@ -170,22 +170,84 @@ export const generateMarketData = (stockCode) => { } }, - // 涨停分析 - 返回数组格式,每个元素对应一个交易日 + // 涨幅分析 - 匹配 RiseAnalysis 类型,每个交易日一条记录 riseAnalysisData: { success: true, data: Array(30).fill(null).map((_, i) => { const tradeDate = new Date(Date.now() - (29 - i) * 24 * 60 * 60 * 1000).toISOString().split('T')[0]; - const isLimitUp = Math.random() < 0.05; // 5%概率涨停 + const riseRate = parseFloat(((Math.random() - 0.5) * 10).toFixed(2)); // -5% ~ +5% + const closePrice = parseFloat((basePrice * (1 + riseRate / 100)).toFixed(2)); + const volume = Math.floor(Math.random() * 500000000) + 100000000; + const amount = Math.floor(volume * closePrice); + + // 涨幅分析详情模板 + const riseReasons = [ + { + brief: '业绩超预期', + detail: `## 业绩驱动\n\n${stockInfo.name}发布业绩公告,主要经营指标超出市场预期:\n\n- **营业收入**:同比增长15.3%,环比增长5.2%\n- **净利润**:同比增长18.7%,创历史新高\n- **毛利率**:提升2.1个百分点至35.8%\n\n### 核心亮点\n\n1. 主营业务增长强劲,市场份额持续提升\n2. 成本管控效果显著,盈利能力改善\n3. 新产品放量,贡献增量收入`, + announcements: `**重要公告**\n\n1. [${stockInfo.name}:关于2024年度业绩预告的公告](javascript:void(0))\n2. [${stockInfo.name}:关于获得政府补助的公告](javascript:void(0))` + }, + { + brief: '政策利好', + detail: `## 政策催化\n\n近期行业政策密集出台,对${stockInfo.name}形成重大利好:\n\n### 政策要点\n\n- **行业支持政策**:国家出台支持措施,加大对行业的扶持力度\n- **税收优惠**:符合条件的企业可享受税收减免\n- **融资支持**:拓宽企业融资渠道,降低融资成本\n\n### 受益分析\n\n公司作为行业龙头,有望充分受益于政策红利,预计:\n\n1. 订单量将显著增长\n2. 毛利率有望提升\n3. 市场份额进一步扩大`, + announcements: `**相关公告**\n\n1. [${stockInfo.name}:关于行业政策影响的说明公告](javascript:void(0))` + }, + { + brief: '资金流入', + detail: `## 资金面分析\n\n今日${stockInfo.name}获得主力资金大幅流入:\n\n### 资金流向\n\n| 指标 | 数值 | 变化 |\n|------|------|------|\n| 主力净流入 | 3.2亿 | +156% |\n| 超大单净流入 | 1.8亿 | +89% |\n| 大单净流入 | 1.4亿 | +67% |\n\n### 分析结论\n\n1. 机构资金持续加仓,看好公司长期价值\n2. 北向资金连续3日净买入\n3. 融资余额创近期新高`, + announcements: '' + }, + { + brief: '技术突破', + detail: `## 技术面分析\n\n${stockInfo.name}今日实现技术突破:\n\n### 技术信号\n\n- **突破关键阻力位**:成功站上${(closePrice * 0.95).toFixed(2)}元重要阻力\n- **量价配合良好**:成交量较昨日放大1.5倍\n- **均线多头排列**:5日、10日、20日均线呈多头排列\n\n### 后市展望\n\n技术面看,股价有望继续向上挑战${(closePrice * 1.05).toFixed(2)}元目标位。建议关注:\n\n1. 能否持续放量\n2. 均线支撑情况\n3. MACD金叉确认`, + announcements: '' + } + ]; + + const reasonIndex = i % riseReasons.length; + const reason = riseReasons[reasonIndex]; + + // 研报数据 + const publishers = ['中信证券', '华泰证券', '国泰君安', '招商证券', '中金公司', '海通证券']; + const authors = ['张三', '李四', '王五', '赵六', '钱七', '孙八']; + const matchScores = ['好', '中', '差']; + return { + stock_code: stockCode, + stock_name: stockInfo.name, trade_date: tradeDate, - is_limit_up: isLimitUp, - limit_up_price: (basePrice * 1.10).toFixed(2), - current_price: (basePrice + (Math.random() - 0.5) * 0.5).toFixed(2), - distance_to_limit: (Math.random() * 10).toFixed(2), // % - consecutive_days: isLimitUp ? Math.floor(Math.random() * 3) + 1 : 0, - reason: isLimitUp ? '业绩超预期' : '', - concept_tags: ['银行', '深圳国资', 'MSCI', '沪深300'], - analysis: isLimitUp ? '股价触及涨停板,资金流入明显' : '股价正常波动,交投活跃' + rise_rate: riseRate, + close_price: closePrice, + volume: volume, + amount: amount, + main_business: stockInfo.business || '金融服务、零售银行、对公业务、资产管理等', + rise_reason_brief: reason.brief, + rise_reason_detail: reason.detail, + announcements: reason.announcements || '', + verification_reports: [ + { + publisher: publishers[i % publishers.length], + match_score: matchScores[Math.floor(Math.random() * 3)], + match_ratio: parseFloat((Math.random() * 0.5 + 0.5).toFixed(2)), + declare_date: tradeDate, + report_title: `${stockInfo.name}深度研究:${reason.brief}带来投资机会`, + author: authors[i % authors.length], + verification_item: `${reason.brief}对公司业绩的影响分析`, + content: `我们认为${stockInfo.name}在${reason.brief}的背景下,有望实现业绩的持续增长。维持"买入"评级,目标价${(closePrice * 1.2).toFixed(2)}元。` + }, + { + publisher: publishers[(i + 1) % publishers.length], + match_score: matchScores[Math.floor(Math.random() * 3)], + match_ratio: parseFloat((Math.random() * 0.4 + 0.3).toFixed(2)), + declare_date: tradeDate, + report_title: `${stockInfo.name}跟踪报告:关注${reason.brief}`, + author: authors[(i + 1) % authors.length], + verification_item: '估值分析与投资建议', + content: `当前估值处于历史中低位,安全边际充足。建议投资者积极关注。` + } + ], + update_time: new Date().toISOString().split('T')[0] + ' 18:30:00', + create_time: tradeDate + ' 15:30:00' }; }) }, diff --git a/src/views/Company/components/FinancialPanorama/utils/chartOptions.ts b/src/views/Company/components/FinancialPanorama/utils/chartOptions.ts index 09b77af2..3c785aa2 100644 --- a/src/views/Company/components/FinancialPanorama/utils/chartOptions.ts +++ b/src/views/Company/components/FinancialPanorama/utils/chartOptions.ts @@ -266,27 +266,27 @@ export const getMainBusinessPieOption = ( }, legend: { orient: 'horizontal', - bottom: 0, + bottom: 5, left: 'center', textStyle: { color: '#E2E8F0', - fontSize: 11, + fontSize: 10, }, - itemWidth: 12, - itemHeight: 12, - itemGap: 8, + itemWidth: 10, + itemHeight: 10, + itemGap: 6, }, color: BLACK_GOLD_PIE_COLORS, series: [ { type: 'pie', - radius: '50%', - center: ['50%', '48%'], + radius: '45%', + center: ['50%', '45%'], data: data, label: { show: true, color: '#E2E8F0', - fontSize: 11, + fontSize: 10, formatter: '{d}%', }, labelLine: {