Files
crypto_monitor/manual_trading_hub/static/index.html
T
2026-05-22 11:38:20 +08:00

69 lines
2.8 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>复盘系统中控</title>
<link rel="stylesheet" href="/assets/app.css" />
</head>
<body>
<div class="app-shell">
<header class="app-header">
<div class="brand">复盘系统中控</div>
<nav class="top-nav">
<a href="/monitor" id="nav-monitor">监控区</a>
<a href="/settings" id="nav-settings">系统设置</a>
</nav>
</header>
<div id="page-monitor" class="page">
<div class="page-head">
<h1>监控区</h1>
</div>
<details class="hint-box">
<summary>说明:数据来源与复盘链接</summary>
<div class="hint-body">
持仓与余额来自子代理;关键位、机器人单、趋势计划来自各实例 Flask(须 PM2 运行 crypto_*)。<br />
人工下单、添加关键位、趋势回调请在各实例网页操作;中控仅监控与紧急全平。<br />
「交易复盘」在新标签打开该实例 /records。其它电脑访问中控时,请在 hub 的 <code>.env</code> 设置
<code>HUB_PUBLIC_ORIGIN=http://服务器内网IP</code>
</div>
</details>
<div class="toolbar">
<button type="button" id="btn-monitor-refresh">立即刷新</button>
<label class="chk-label">
<input type="checkbox" id="auto-monitor" checked /> 每 5 秒自动刷新
</label>
<button type="button" id="btn-close-all" class="danger">全局紧急全平</button>
<span class="toolbar-spacer"></span>
<span id="monitor-updated" class="toolbar-meta"></span>
</div>
<div id="monitor-grid" class="grid-monitor"></div>
</div>
<div id="page-settings" class="page hidden">
<div class="page-head">
<h1>系统设置</h1>
</div>
<details class="hint-box">
<summary>配置说明</summary>
<div class="hint-body">
保存后写入 <code>hub_settings.json</code>。Flask / Agent 填本机地址即可;复盘链接可留空(由 Flask 地址自动生成)。<br />
<code>HUB_DISABLED_IDS</code> 可强制关闭账户;<code>HUB_BRIDGE_TOKEN</code> 与实例一致,或实例 <code>APP_AUTH_DISABLED=true</code>
</div>
</details>
<p id="settings-meta-line" class="settings-meta-line"></p>
<div class="toolbar">
<button type="button" id="btn-settings-save" class="primary">保存设置</button>
<button type="button" id="btn-settings-add">添加交易所</button>
<button type="button" id="btn-settings-reload">重新加载</button>
</div>
<div id="settings-list" class="settings-grid-wrap"></div>
</div>
</div>
<div id="toast"></div>
<script src="/assets/app.js"></script>
</body>
</html>