Files

91 lines
4.5 KiB
HTML

{% extends "base.html" %}
{% block title %}股票详情{% endblock %}
{% block page_title %}<span id="headName">加载中…</span>{% endblock %}
{% block content %}
<div class="card" id="headCard">
<div class="flex between wrap">
<div class="flex">
<div>
<div style="font-size:22px;font-weight:800"><span id="stName"></span> <span id="stCode" style="color:var(--muted);font-size:15px"></span></div>
<div class="mt8 flex" style="gap:14px;color:var(--muted);font-size:13px">
<span id="stIndustry"></span><span id="stBoard"></span>
<span>市值 <b id="stCap" style="color:var(--text)"></b></span>
<span>PE <b id="stPe" style="color:var(--text)"></b></span>
<span>PB <b id="stPb" style="color:var(--text)"></b></span>
</div>
</div>
<div style="margin-left:28px">
<div id="stPrice" class="num" style="font-size:32px;font-weight:800"></div>
<div class="flex mt8" style="gap:14px">
<span id="stChg" class="num" style="font-weight:700"></span>
<span id="stChg5" class="num" style="font-size:13px;color:var(--muted)"></span>
<span id="stChg20" class="num" style="font-size:13px;color:var(--muted)"></span>
</div>
</div>
</div>
<div class="flex">
<div class="card" style="padding:12px 18px;text-align:center">
<div class="kpi-label" style="font-size:12px;color:var(--muted)">综合评分</div>
<div class="score-wrap" style="justify-content:center;margin-top:4px">
<div class="score-ring" id="ring"></div>
</div>
<div class="mt8"><span class="tag tag-观望" id="stRating"></span></div>
</div>
<div style="display:flex;flex-direction:column;gap:8px;justify-content:center">
<button class="btn btn-primary" id="watchBtn">⭐ 加入自选</button>
<button class="btn" onclick="location.href='/?watch=1'">去仪表盘</button>
</div>
</div>
</div>
<div class="mt16 kpi-grid" id="kpiBox"></div>
<div class="mt16" id="reasonBox" style="color:var(--text2);line-height:1.9"></div>
</div>
<div class="grid grid-2-1 mt16">
<div class="card">
<div class="card-title"><span class="bar"></span>K线走势(日线)</div>
<div id="klineChart" style="height:420px"></div>
<div class="flex mt8">
<button class="btn" data-days="30">1月</button>
<button class="btn" data-days="60">3月</button>
<button class="btn btn-primary" data-days="120">半年</button>
<button class="btn" data-days="180">1年</button>
</div>
</div>
<div class="card">
<div class="card-title"><span class="bar"></span>六因子评分</div>
<div id="scoreBarsBox" class="mt8"></div>
<div class="card-title mt16" style="font-size:14px"><span class="bar" style="background:var(--gold)"></span>评分说明</div>
<div style="color:var(--text2);font-size:12px;line-height:1.9">
趋势(25) 均线多头排列<br>动量(20) 5日涨幅<br>技术(15) RSI健康度<br>量能(10) 量比<br>消息(15) 近7日新闻情感<br>机构(15) 评级+持仓动向
</div>
</div>
</div>
<div class="card mt16">
<div class="card-title"><span class="bar" style="background:var(--gold)"></span>AI 深度分析(RAG 增强)</div>
<div class="input-group">
<input class="input" id="focusInput" placeholder="输入关注点,如:业绩预期 / 技术面 / 机构持仓(可选)" style="flex:1;min-width:220px">
<button class="btn btn-primary" id="analyzeBtn">🤖 生成研报</button>
</div>
<div id="reportBox" class="mt16">
<div class="empty">点击「生成研报」,系统将基于 新闻RAG检索 + 技术指标 + 机构数据 调用 DeepSeek 生成结构化研报(首次生成约需 30-90 秒)</div>
</div>
<div class="card-title mt16" style="font-size:14px"><span class="bar" style="background:var(--cyan)"></span>历史分析记录</div>
<div id="historyBox"><div class="loading">加载中…</div></div>
</div>
<div class="card mt16">
<div class="pill-bar" id="tabs">
<button class="pill active" data-tab="news">相关新闻</button>
<button class="pill" data-tab="ratings">机构评级</button>
<button class="pill" data-tab="holdings">基金持仓</button>
<button class="pill" data-tab="profile">公司概况</button>
</div>
<div id="tabBox"><div class="loading">加载中…</div></div>
</div>
{% endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='js/stock_detail.js') }}"></script>
{% endblock %}