86 lines
4.0 KiB
HTML
86 lines
4.0 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="preconnect" href="https://fonts.googleapis.com" />
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Orbitron:wght@500;600;700&display=swap" rel="stylesheet" />
|
||
<link rel="stylesheet" href="/assets/app.css" />
|
||
</head>
|
||
<body>
|
||
<div class="app-bg" aria-hidden="true"></div>
|
||
<div class="app-shell">
|
||
<header class="app-header">
|
||
<div class="brand">
|
||
<span class="brand-mark" aria-hidden="true"></span>
|
||
<div>
|
||
<div class="brand-title">复盘系统中控</div>
|
||
<div class="brand-sub">MULTI-EXCHANGE · OPS</div>
|
||
</div>
|
||
</div>
|
||
<div class="header-right">
|
||
<span id="sys-status" class="sys-pill" title="系统状态">SYNC</span>
|
||
<nav class="top-nav">
|
||
<a href="/monitor" id="nav-monitor">监控区</a>
|
||
<a href="/settings" id="nav-settings">系统设置</a>
|
||
</nav>
|
||
<button type="button" id="btn-logout" class="ghost" title="退出登录">退出</button>
|
||
</div>
|
||
</header>
|
||
|
||
<div id="page-monitor" class="page">
|
||
<div class="page-head">
|
||
<h1><span class="head-tag">MON</span> 监控区</h1>
|
||
<p class="page-desc">实时聚合持仓、关键位与趋势计划</p>
|
||
</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" class="primary">立即刷新</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><span class="head-tag">CFG</span> 系统设置</h1>
|
||
<p class="page-desc">交易所地址、启用状态与监控能力</p>
|
||
</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>。<br />
|
||
公网反代请在 hub <code>.env</code> 设置 <code>HUB_USERNAME</code> 与 <code>HUB_PASSWORD</code>;HTTPS 反代建议 <code>HUB_COOKIE_SECURE=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>
|