Files
qihuo/templates/settings.html
T
dekun 67683f5562 ui: 顶栏透明、设置两列、下单与持仓监控优化
导航栏与页面背景一致;系统设置双列布局;下单三行表单与开仓状态反馈;持仓卡片增加平仓与止盈止损挂单展示。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 12:46:23 +08:00

125 lines
6.4 KiB
HTML
Raw 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 extra_css %}
<style>
.settings-page{max-width:1100px;margin:0 auto}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:start}
.settings-grid .card{margin-bottom:0;height:100%}
.settings-grid .settings-span-2{grid-column:1/-1}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}}
</style>
{% endblock %}
{% block content %}
<div class="settings-page">
<div class="settings-grid">
<div class="card">
<h2>导航显示</h2>
<form action="{{ url_for('settings') }}" method="post">
<input type="hidden" name="action" value="nav">
<p class="hint" style="margin-bottom:.75rem">关闭后顶栏隐藏对应入口,直接访问 URL 也会跳转回持仓监控。</p>
<div class="check-row">
{% for key, label in nav_toggles.items() %}
<label style="display:flex;align-items:center;gap:.5rem;cursor:pointer;white-space:nowrap">
<input type="checkbox" name="nav_{{ key }}" {% if nav_items[key] %}checked{% endif %}>
<span>{{ label }}</span>
</label>
{% endfor %}
</div>
<button type="submit" class="btn-primary" style="margin-top:.75rem">保存导航</button>
</form>
</div>
<div class="card">
<h2>交易模式</h2>
<form action="{{ url_for('settings') }}" method="post">
<input type="hidden" name="action" value="trading">
<div class="form-grid">
<div class="field">
<label>交易通道</label>
<select name="trading_mode">
<option value="simulation" {% if trading_mode == 'simulation' %}selected{% endif %}>模拟盘 · SimNowvnpy CTP</option>
<option value="live" {% if trading_mode == 'live' %}selected{% endif %}>实盘 · 期货公司 CTP(后期接入)</option>
</select>
</div>
<div class="field">
<label>计仓模式</label>
<select name="position_sizing_mode">
<option value="risk" {% if position_sizing_mode == 'risk' %}selected{% endif %}>以损定仓</option>
<option value="fixed" {% if position_sizing_mode == 'fixed' %}selected{% endif %}>固定张数</option>
</select>
</div>
<div class="field">
<label>单笔风险比例(以损定仓,%</label>
<input name="risk_percent" type="number" step="0.1" min="0.1" max="100" value="{{ risk_percent }}">
</div>
</div>
<button type="submit" class="btn-primary" style="margin-top:.75rem">保存交易设置</button>
</form>
<p class="hint" style="margin-top:.75rem">
<strong>模拟盘</strong>连接上期 SimNow 仿真柜台(非本地假资金)。在 <code>.env</code> 配置
<code>SIMNOW_USER</code><code>SIMNOW_PASSWORD</code> 等,在「持仓监控」页点击连接 CTP。<br>
<strong>实盘</strong>后期配置 <code>CTP_LIVE_*</code> 对接你的期货公司。
</p>
</div>
<div class="card">
<h2>参考资金</h2>
<form action="{{ url_for('settings') }}" method="post" class="form-row">
<input type="hidden" name="action" value="capital">
<input name="live_capital" type="number" step="0.01" min="0" placeholder="参考权益(元)" value="{{ live_capital }}" style="flex:1;min-width:200px;max-width:320px">
<button type="submit" class="btn-primary">保存</button>
</form>
<p class="hint" style="margin-top:.75rem">
CTP 未连接时用于<strong>品种推荐</strong>与以损定仓估算;SimNow/实盘登录成功后自动改用<strong>柜台权益</strong>
</p>
</div>
<div class="card">
<h2>行情说明</h2>
<p class="hint" style="font-size:.9rem;line-height:1.6">
当前行情源:<strong class="text-accent">{{ quote_label }}</strong><br>
合约代码按<strong>同花顺格式</strong>显示(如 ag2608、IF2606),便于与看盘软件对照;
实际价格通过行情接口获取,普通用户无需申请 token。<br>
<span class="text-muted" style="font-size:.85rem">同花顺 iFinD 接口面向机构用户,个人期货通用户一般无法获取 refresh_token,故系统默认不使用。</span>
</p>
</div>
<div class="card">
<h2>企业微信推送</h2>
<form action="{{ url_for('settings') }}" method="post" class="form-row">
<input type="hidden" name="action" value="wechat">
<input name="wechat_webhook" type="url" placeholder="企业微信 Webhook 地址" value="{{ webhook }}" style="flex:1;min-width:300px">
<button type="submit" class="btn-primary">保存</button>
</form>
<p class="hint" style="margin-top:.75rem">在企业微信群中添加机器人后,将 Webhook 地址粘贴到上方保存即可。</p>
</div>
<div class="card settings-span-2">
<h2>修改密码</h2>
<form action="{{ url_for('settings') }}" method="post" style="max-width:480px">
<input type="hidden" name="action" value="password">
<div style="margin-bottom:.75rem">
<label class="text-label" style="font-size:.85rem;display:block;margin-bottom:.35rem">当前账号</label>
<input type="text" value="{{ username }}" disabled style="width:100%">
</div>
<div style="margin-bottom:.75rem">
<label class="text-label" style="font-size:.85rem;display:block;margin-bottom:.35rem">原密码</label>
<input name="old_password" type="password" required style="width:100%">
</div>
<div style="margin-bottom:.75rem">
<label class="text-label" style="font-size:.85rem;display:block;margin-bottom:.35rem">新密码(至少 6 位)</label>
<input name="new_password" type="password" required minlength="6" style="width:100%">
</div>
<div style="margin-bottom:.75rem">
<label class="text-label" style="font-size:.85rem;display:block;margin-bottom:.35rem">确认新密码</label>
<input name="new_password2" type="password" required minlength="6" style="width:100%">
</div>
<button type="submit" class="btn-primary">修改密码</button>
</form>
</div>
</div>
</div>
{% endblock %}