Files

64 lines
3.9 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends "base.html" %}
{% block title %}数据管理{% endblock %}
{% block page_title %}数据管理{% endblock %}
{% block content %}
<div class="grid grid-2">
<div class="card">
<div class="card-title"><span class="bar"></span>数据库统计(SQLite</div>
<div id="dbBox"><div class="loading">加载中…</div></div>
</div>
<div class="card">
<div class="card-title"><span class="bar"></span>向量库状态(Chroma + bge 1024维)</div>
<div id="vecBox"><div class="loading">加载中…</div></div>
</div>
</div>
<div class="card mt16">
<div class="card-title"><span class="bar" style="background:#8b5cf6"></span>📧 定时报告(工作日 9:00 盘前 / 交易日 15:30 盘后)</div>
<div class="flex wrap">
<button class="btn btn-primary" onclick="sendReport('premarket')">🌅 手动发送盘前分析</button>
<button class="btn btn-primary" onclick="sendReport('postmarket')">🌇 手动发送盘后总结</button>
</div>
<div class="mt16" style="color:var(--muted);font-size:12px;line-height:1.8">
自动触发已配置系统 cron<code>0 9 * * 1-5</code> 盘前 · <code>30 15 * * 1-5</code> 盘后。<br>
每期发送两封形态:<b>简单版</b>(邮件正文速览)+ <b>详细版</b>(HTML 附件)。发送记录见下方表格。
</div>
<div class="mt16" style="border-top:1px solid var(--border);padding-top:10px">
<div class="between mt16">
<div class="card-title" style="font-size:14px;margin-bottom:0"><span class="bar" style="background:#f472b6"></span>🌙 静默期 —— 某些时段不发送报告邮件</div>
<label class="switch"><input type="checkbox" id="reportQuietEnabled"><span></span></label>
</div>
<div class="mt8 settings-form">
<div class="sf-row" style="align-items:flex-start"><label>静默时段</label><input class="input" id="reportQuietRanges" placeholder="如 09:30-10:00,11:30-13:00(多段逗号分隔,支持跨午夜)" style="width:100%"></div>
</div>
<div class="mt8"><button class="btn btn-primary" onclick="saveReportQuiet()">💾 保存报告静默期</button></div>
<div style="color:var(--muted);font-size:12px;line-height:1.8">开启后,落在静默时段内的定时/手动报告将<span style="color:var(--gold)">不生成、不发送</span>(发送记录标记为“静默”)。</div>
</div>
<div class="card-title mt16" style="font-size:14px"><span class="bar" style="background:#8b5cf6"></span>发送记录</div>
<div style="overflow:auto;max-height:300px">
<table>
<thead><tr><th>时间</th><th>类型</th><th>主题</th><th>状态</th><th>说明</th></tr></thead>
<tbody id="reportLogTb"><tr><td colspan="5" class="empty">暂无记录</td></tr></tbody>
</table>
</div>
</div>
<div class="card mt16">
<div class="card-title"><span class="bar" style="background:var(--gold)"></span>系统维护</div>
<div class="flex wrap">
<button class="btn btn-primary" onclick="reseed()">♻️ 一键重灌数据(含向量重建)</button>
<button class="btn" onclick="rebuildBt()">📈 重建量化回测</button>
<button class="btn" onclick="health()">🔌 依赖连通性检查</button>
<button class="btn" onclick="refreshStats()">🔄 刷新统计</button>
</div>
<div id="healthBox" class="mt16"></div>
<div class="mt16" style="border-top:1px solid var(--border);padding-top:14px;color:var(--muted);font-size:13px;line-height:2">
<b>当前为模拟数据</b>,用于功能演示与系统验证。接入真实数据后(行情/新闻/机构),修改 <code>config.py</code> 中的 <code>IS_MOCK=False</code>,并替换 <code>seed_data.py</code> 为真实数据源即可,其余分析/检索逻辑无需改动。<br>
技术栈:Python Flask + SQLite + Chroma 向量库 + bge-large-zh 语义检索 + DeepSeek 大模型(RAG 增强研报)。
</div>
</div>
{% endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='js/admin.js') }}"></script>
{% endblock %}