Files
stock-advisor/templates/settings.html
T

93 lines
5.0 KiB
HTML

{% extends "base.html" %}
{% block title %}系统设置{% endblock %}
{% block page_title %}系统设置{% endblock %}
{% block content %}
<div class="grid grid-2">
<!-- 邮件通知 -->
<div class="card">
<div class="between">
<div class="card-title" style="margin-bottom:0"><span class="bar"></span>📧 邮件通知</div>
<label class="switch"><input type="checkbox" id="emailEnabled"><span></span></label>
</div>
<div class="mt8 settings-form">
<div class="sf-row"><label>SMTP 服务器</label><input class="input" id="smtpHost" style="width:100%"></div>
<div class="sf-row"><label>端口</label><input class="input" id="smtpPort" type="number" style="width:100%"></div>
<div class="sf-row"><label>加密模式</label>
<select class="input" id="smtpMode" style="width:100%">
<option value="plain">无加密 (plain)</option>
<option value="starttls">STARTTLS</option>
<option value="ssl">SSL/TLS</option>
</select>
</div>
<div class="sf-row"><label>发件账号</label><input class="input" id="smtpUser" style="width:100%"></div>
<div class="sf-row"><label>发件密码</label><input class="input" id="smtpPass" type="password" style="width:100%"></div>
<div class="sf-row"><label>发件人名称</label><input class="input" id="senderName" style="width:100%"></div>
<div class="sf-row"><label>通知收件人</label><input class="input" id="emailTo" style="width:100%"></div>
</div>
<div class="flex mt16 wrap">
<button class="btn btn-primary" onclick="save('mail')">💾 保存邮件设置</button>
<button class="btn" onclick="testEmail()">📨 发送测试邮件</button>
</div>
</div>
<!-- 大模型 -->
<div class="card">
<div class="card-title"><span class="bar" style="background:var(--gold)"></span>🤖 大模型接口</div>
<div class="mt8 settings-form">
<div class="sf-row"><label>Base URL</label><input class="input" id="llmBaseUrl" style="width:100%"></div>
<div class="sf-row"><label>API Key</label><input class="input" id="llmApiKey" type="password" style="width:100%"></div>
<div class="sf-row"><label>模型</label><input class="input" id="llmModel" style="width:100%"></div>
</div>
<div class="flex mt16 wrap">
<button class="btn btn-primary" onclick="save('llm')">💾 保存模型设置</button>
<button class="btn" onclick="testLlm()">🔌 测试连接</button>
</div>
<div class="mt16" style="border-top:1px solid var(--border);padding-top:12px;color:var(--muted);font-size:12px;line-height:1.8">
用于 AI 深度研报生成。支持任意 OpenAI 兼容接口(DeepSeek / 火山方舟等)。修改后立即生效。
</div>
</div>
</div>
<!-- 舆情监控 -->
<div class="card mt16">
<div class="between">
<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="flex mt16 wrap">
<button class="btn btn-primary" onclick="save('monitor')">💾 保存监控设置</button>
<button class="btn" onclick="scanNow()">⚡ 立即扫描</button>
</div>
<div class="mt16 mini-stats" id="monitorState"></div>
</div>
<!-- 通知日志 -->
<div class="card mt16">
<div class="card-title"><span class="bar" style="background:var(--cyan)"></span>通知日志</div>
<div style="overflow:auto;max-height:380px">
<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>
{% endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='js/settings.js') }}"></script>
{% endblock %}