128 lines
8.4 KiB
HTML
128 lines
8.4 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}自动化{% endblock %}
|
||
{% block page_title %}自动化监控{% endblock %}
|
||
{% block content %}
|
||
<div class="card">
|
||
<div class="tabs">
|
||
<button class="tab-item active" data-tab="monitor">📰 舆情驱动自动化</button>
|
||
<button class="tab-item" data-tab="tracking">🧭 持仓跟踪智能体</button>
|
||
</div>
|
||
|
||
<!-- ======================= 舆情驱动 ======================= -->
|
||
<div class="tab-panel" id="panel-monitor">
|
||
<div class="between mt16">
|
||
<div class="card-title" style="margin-bottom:0"><span class="bar" style="background:var(--cyan)"></span>定期扫描最新新闻,重要信息邮件通知</div>
|
||
<label class="switch"><input type="checkbox" id="monitorEnabled"><span></span></label>
|
||
</div>
|
||
<div class="mt8 settings-form">
|
||
<div class="sf-row"><label>扫描间隔(分钟)</label><input class="input" id="monitorInterval" type="number" min="5" style="width:120px"></div>
|
||
<div class="sf-row"><label>重要度阈值 (0-100)</label><input class="input" id="monitorImportance" type="number" min="0" max="100" style="width:120px"></div>
|
||
<div class="sf-row"><label>情感权重</label><input class="input" id="monitorSentiment" type="number" step="0.05" style="width:120px"></div>
|
||
<div class="sf-row" style="align-items:flex-start"><label>监控分类</label>
|
||
<div class="chk-group" id="monitorCats">
|
||
<label><input type="checkbox" value="公司"> 公司</label>
|
||
<label><input type="checkbox" value="业绩"> 业绩</label>
|
||
<label><input type="checkbox" value="机构观点"> 机构观点</label>
|
||
<label><input type="checkbox" value="行业"> 行业</label>
|
||
<label><input type="checkbox" value="市场"> 市场</label>
|
||
</div>
|
||
</div>
|
||
<div class="sf-row" style="align-items:flex-start"><label>关键词(逗号分隔)</label><textarea class="input" id="monitorKeywords" rows="2" style="width:100%"></textarea></div>
|
||
</div>
|
||
<div class="mt16" style="border-top:1px solid var(--border);padding-top:6px">
|
||
<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="monitorQuietEnabled"><span></span></label>
|
||
</div>
|
||
<div class="mt8 settings-form">
|
||
<div class="sf-row" style="align-items:flex-start"><label>静默时段</label><input class="input" id="monitorQuietRanges" placeholder="如 22:00-07:30(跨午夜)或 23:00-07:30,12:00-13:00(多段逗号分隔)" style="width:100%"></div>
|
||
</div>
|
||
<div style="color:var(--muted);font-size:12px;line-height:1.8">开启后,落在静默时段内的扫描将<span style="color:var(--gold)">不发送邮件</span>(通知日志标记为“静默”,水位正常推进,不会在结束后补发积压)。</div>
|
||
</div>
|
||
<div class="flex mt16 wrap">
|
||
<button class="btn btn-primary" onclick="saveMonitor()">💾 保存监控设置</button>
|
||
<button class="btn" onclick="scanNow()">⚡ 立即扫描</button>
|
||
</div>
|
||
<div class="mt16 mini-stats" id="monitorState"></div>
|
||
<div class="mt16" style="border-top:1px solid var(--border);padding-top:6px">
|
||
<div class="card-title mt16" style="font-size:14px"><span class="bar" style="background:var(--cyan)"></span>通知日志</div>
|
||
<div style="overflow:auto;max-height:340px">
|
||
<table>
|
||
<thead><tr><th>时间</th><th>标题</th><th>分类</th><th>情感</th><th>重要度</th><th>状态</th></tr></thead>
|
||
<tbody id="logTb"><tr><td colspan="6" class="empty">暂无记录</td></tr></tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- ======================= 持仓跟踪 ======================= -->
|
||
<div class="tab-panel" id="panel-tracking" style="display:none">
|
||
<div class="between mt16">
|
||
<div class="card-title" style="margin-bottom:0"><span class="bar" style="background:#8b5cf6"></span>AI 智能体定期跟踪持仓,深度分析产业链上下游</div>
|
||
<label class="switch"><input type="checkbox" id="trackingEnabled"><span></span></label>
|
||
</div>
|
||
<div class="mt8 settings-form">
|
||
<div class="sf-row"><label>跟踪间隔(分钟)</label><input class="input" id="trackingInterval" type="number" min="15" style="width:120px"></div>
|
||
<div class="sf-row"><label>重大判定阈值</label><input class="input" id="trackingImpact" type="number" min="0" max="100" style="width:120px"></div>
|
||
<div class="sf-row"><label>重大变化邮件通知</label>
|
||
<label class="switch"><input type="checkbox" id="trackingNotify"><span></span></label>
|
||
</div>
|
||
</div>
|
||
<div class="mt16" style="border-top:1px solid var(--border);padding-top:6px">
|
||
<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="trackingQuietEnabled"><span></span></label>
|
||
</div>
|
||
<div class="mt8 settings-form">
|
||
<div class="sf-row" style="align-items:flex-start"><label>静默时段</label><input class="input" id="trackingQuietRanges" placeholder="如 22:00-07:30(跨午夜)或 23:00-07:30,12:00-13:00(多段逗号分隔)" style="width:100%"></div>
|
||
</div>
|
||
<div style="color:var(--muted);font-size:12px;line-height:1.8">开启后,落在静默时段内发现的重大变化将<span style="color:var(--gold)">不发送邮件</span>(跟踪报告照常生成入库)。</div>
|
||
</div>
|
||
<div class="flex mt16 wrap">
|
||
<button class="btn btn-primary" onclick="saveTracking()">💾 保存跟踪设置</button>
|
||
<button class="btn" onclick="runTrackAll()">⚡ 立即跟踪全部目标</button>
|
||
<button class="btn" onclick="location.href='/tracking'">🧭 查看全部跟踪报告</button>
|
||
</div>
|
||
<div class="mt16 mini-stats" id="trackingState"></div>
|
||
|
||
<!-- 持仓(自选股)管理 -->
|
||
<div class="mt16" style="border-top:1px solid var(--border);padding-top:6px">
|
||
<div class="card-title mt16" style="font-size:14px"><span class="bar" style="background:var(--gold)"></span>💼 持仓(自选股)管理 —— 跟踪对象 = 持仓</div>
|
||
<div class="flex mb8 wrap">
|
||
<input class="input" id="posSearch" placeholder="输入代码 / 名称搜索股票,回车添加" style="flex:1;min-width:200px">
|
||
<button class="btn btn-primary" onclick="addPos()">+ 添加持仓</button>
|
||
</div>
|
||
<div id="posManage" style="overflow:auto;max-height:260px"><div class="loading">加载中…</div></div>
|
||
</div>
|
||
|
||
<!-- 概念/主题目标 -->
|
||
<div class="mt16" style="border-top:1px solid var(--border);padding-top:6px">
|
||
<div class="card-title mt16" style="font-size:14px"><span class="bar" style="background:#f472b6"></span>🎯 概念 / 主题 / 股票 跟踪目标</div>
|
||
<div class="flex mb8 wrap">
|
||
<select class="input" id="tgtType" style="width:110px">
|
||
<option value="concept">概念/主题</option>
|
||
<option value="stock">股票代码</option>
|
||
</select>
|
||
<input class="input" id="tgtName" placeholder="目标名称,如:AI算力 / 低空经济(股票类型填代码)" style="flex:1;min-width:200px">
|
||
<input class="input" id="tgtKeywords" placeholder="检索关键词,逗号分隔(概念填)" style="flex:1;min-width:180px">
|
||
<button class="btn btn-primary" onclick="addTarget()">+ 添加目标</button>
|
||
</div>
|
||
<div id="tgtManage" style="overflow:auto;max-height:260px"><div class="loading">加载中…</div></div>
|
||
</div>
|
||
|
||
<div class="mt16" style="border-top:1px solid var(--border);padding-top:6px">
|
||
<div class="card-title mt16" style="font-size:14px"><span class="bar" style="background:#8b5cf6"></span>最近跟踪报告</div>
|
||
<div style="overflow:auto;max-height:340px">
|
||
<table>
|
||
<thead><tr><th>时间</th><th>类型</th><th>目标</th><th>影响度</th><th>性质</th><th>摘要</th><th>操作</th></tr></thead>
|
||
<tbody id="trackTb"><tr><td colspan="7" class="empty">暂无跟踪记录</td></tr></tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{% endblock %}
|
||
{% block scripts %}
|
||
<script src="{{ url_for('static', filename='js/automation.js') }}"></script>
|
||
{% endblock %}
|