fix: 修复外部因素数据源 - 北向资金改为南向资金,修复P0-P7全部外部因素
- P0资金面:DB数据过期时用麦蕊API获取资金流向 - P1市场情绪:去掉turnover字段依赖(DB无此字段) - P2南向资金:北向实时数据已停公布,改用南向资金(港股通)替代 - P3美股:用腾讯财经API替代失效的AKShare接口 - P4大宗商品:用腾讯财经API替代,修复var_name解析 - P7汇率:用新浪财经API替代失效的AKShare接口 - 修复评分详情API技术得分硬编码问题 - 前端传入tech_score参数确保明细与列表分数一致
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
<link rel="stylesheet" href="/static/css/components.css?v=20260718v1">
|
||||
<link rel="stylesheet" href="/static/css/auth.css?v=20260718v1">
|
||||
<link rel="stylesheet" href="/static/css/pages.css?v=20260719v2">
|
||||
<link rel="stylesheet" href="/static/css/scan.css?v=20260719v3">
|
||||
<link rel="stylesheet" href="/static/css/scan.css?v=20260719v5">
|
||||
<link rel="stylesheet" href="/static/css/responsive.css?v=20260719v1">
|
||||
</head>
|
||||
<body>
|
||||
@@ -956,6 +956,66 @@
|
||||
<span class="tech-recommend-rate" v-if="techSignalResult.recommend_rate">{{ techSignalResult.recommend_rate }}%</span>
|
||||
<div class="tech-recommend-reason">{{ techSignalResult.recommend_reason }}</div>
|
||||
</div>
|
||||
<!-- 综合评分明细(外部因素) -->
|
||||
<div v-if="techSignalResult.final_score != null" class="scan-score-breakdown">
|
||||
<div class="score-breakdown-item">
|
||||
<span class="breakdown-label">技术得分</span>
|
||||
<span class="breakdown-value">{{ techSignalResult.technical_score }}</span>
|
||||
</div>
|
||||
<div class="score-breakdown-item">
|
||||
<span class="breakdown-label">外部得分</span>
|
||||
<span class="breakdown-value" :class="techSignalResult.external_score >= 0 ? 'pos' : 'neg'">
|
||||
{{ techSignalResult.external_score >= 0 ? '+' : '' }}{{ techSignalResult.external_score }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="score-breakdown-item highlight">
|
||||
<span class="breakdown-label">综合得分</span>
|
||||
<span class="breakdown-value">{{ techSignalResult.final_score }}</span>
|
||||
</div>
|
||||
<div class="score-breakdown-item">
|
||||
<span class="breakdown-label">评级</span>
|
||||
<span class="breakdown-value">{{ techSignalResult.verdict }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 外部因素详情 -->
|
||||
<div v-if="techSignalResult.score_detail_loading" class="scan-external-factors loading">
|
||||
<span class="loading-spinner"></span> 正在加载外部因素...
|
||||
</div>
|
||||
<div v-else-if="techSignalResult.score_factors" class="scan-external-factors">
|
||||
<div v-if="techSignalResult.score_factors.fund_flow" class="ext-factor-item">
|
||||
<span class="ext-factor-label">💰 资金面</span>
|
||||
<span class="ext-factor-score" :class="techSignalResult.score_factors.fund_flow.score >= 0 ? 'pos' : 'neg'">
|
||||
{{ techSignalResult.score_factors.fund_flow.score >= 0 ? '+' : '' }}{{ techSignalResult.score_factors.fund_flow.score }}
|
||||
</span>
|
||||
<span class="ext-factor-summary">{{ techSignalResult.score_factors.fund_flow.summary }}</span>
|
||||
</div>
|
||||
<div v-if="techSignalResult.score_factors.market_sentiment" class="ext-factor-item">
|
||||
<span class="ext-factor-label">📊 市场情绪</span>
|
||||
<span class="ext-factor-score" :class="techSignalResult.score_factors.market_sentiment.score >= 0 ? 'pos' : 'neg'">
|
||||
{{ techSignalResult.score_factors.market_sentiment.score >= 0 ? '+' : '' }}{{ techSignalResult.score_factors.market_sentiment.score }}
|
||||
</span>
|
||||
<span class="ext-factor-summary">{{ techSignalResult.score_factors.market_sentiment.sentiment || techSignalResult.score_factors.market_sentiment.summary }}</span>
|
||||
</div>
|
||||
<div v-if="techSignalResult.score_factors.external" class="ext-factor-item">
|
||||
<span class="ext-factor-label">🌍 外部环境</span>
|
||||
<span class="ext-factor-score" :class="techSignalResult.score_factors.external.total_score >= 0 ? 'pos' : 'neg'">
|
||||
{{ techSignalResult.score_factors.external.total_score >= 0 ? '+' : '' }}{{ techSignalResult.score_factors.external.total_score }}
|
||||
</span>
|
||||
<span class="ext-factor-summary">{{ techSignalResult.score_factors.external.summary }}</span>
|
||||
</div>
|
||||
<div v-if="techSignalResult.score_factors.policy" class="ext-factor-item">
|
||||
<span class="ext-factor-label">📜 政策面</span>
|
||||
<span class="ext-factor-score" :class="techSignalResult.score_factors.policy.score >= 0 ? 'pos' : 'neg'">
|
||||
{{ techSignalResult.score_factors.policy.score >= 0 ? '+' : '' }}{{ techSignalResult.score_factors.policy.score }}
|
||||
</span>
|
||||
<span class="ext-factor-summary">{{ techSignalResult.score_factors.policy.summary }}</span>
|
||||
</div>
|
||||
<div v-if="techSignalResult.score_factors.news" class="ext-factor-item">
|
||||
<span class="ext-factor-label">📰 公告/异动</span>
|
||||
<span class="ext-factor-score">{{ techSignalResult.score_factors.news.total_score }}</span>
|
||||
<span class="ext-factor-summary">{{ techSignalResult.score_factors.news.summary }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="techSignalResult.signal_status && techSignalResult.signal_status.length > 0" class="signal-status-list">
|
||||
<div v-for="ss in techSignalResult.signal_status" :key="'scan-'+ss.type"
|
||||
:class="['signal-status-item', ss.triggered ? 'triggered' : 'inactive']">
|
||||
@@ -2239,6 +2299,6 @@
|
||||
</div>
|
||||
|
||||
{% endraw %}
|
||||
<script src="/static/js/app.js?v=20260511v3"></script>
|
||||
<script src="/static/js/app.js?v=20260718v2"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user