增加关键位显示
This commit is contained in:
@@ -97,9 +97,10 @@
|
||||
const ag = row.agent || {};
|
||||
const pos = Array.isArray(ag.positions) ? ag.positions : [];
|
||||
const hm = row.hub_monitor || {};
|
||||
const keys = hm.keys || [];
|
||||
const orders = hm.orders || [];
|
||||
const trends = hm.trends || [];
|
||||
const flaskOk = row.flask_ok !== false && hm.ok !== false;
|
||||
const keys = flaskOk ? hm.keys || [] : [];
|
||||
const orders = flaskOk ? hm.orders || [] : [];
|
||||
const trends = flaskOk ? hm.trends || [] : [];
|
||||
const kmap = {};
|
||||
(row.key_prices || []).forEach((k) => {
|
||||
kmap[k.id] = k;
|
||||
@@ -129,12 +130,26 @@
|
||||
inner += `<div class="rule-tip">${esc(o.symbol)} ${o.direction} 成交${o.trigger_price}</div>`;
|
||||
});
|
||||
}
|
||||
if ((row.capabilities || []).includes("key") && keys.length) {
|
||||
inner += `<div style="margin-top:8px;font-size:12px;color:#b8c4ff">关键位 ${keys.length} 条</div>`;
|
||||
keys.slice(0, 6).forEach((k) => {
|
||||
const kp = kmap[k.id] || {};
|
||||
inner += `<div class="rule-tip">${esc(k.symbol)} ${esc(k.monitor_type)} 上${k.upper}/下${k.lower} 门控:${esc(kp.gate_summary || "-")}</div>`;
|
||||
});
|
||||
if ((row.capabilities || []).includes("key")) {
|
||||
if (!flaskOk) {
|
||||
inner += `<div style="margin-top:8px;font-size:12px;color:#f85149">关键位/机器人:策略 Flask 未连通</div>`;
|
||||
inner += `<div class="rule-tip">${esc(row.flask_error || hm.msg || "请确认实例 app 已启动,且 HUB_BRIDGE_TOKEN 与实例一致或 APP_AUTH_DISABLED=true")}</div>`;
|
||||
} else if (!keys.length) {
|
||||
inner += `<div style="margin-top:8px;color:var(--muted);font-size:12px">关键位:当前无记录(在下单区或实例首页添加)</div>`;
|
||||
} else {
|
||||
inner += `<div style="margin-top:8px;font-size:12px;color:#b8c4ff">关键位 ${keys.length} 条</div>`;
|
||||
keys.slice(0, 8).forEach((k) => {
|
||||
const kp = kmap[k.id] || kmap[String(k.id)] || {};
|
||||
const mt = k.monitor_type || k.type || "";
|
||||
inner += `<div class="rule-tip">${esc(k.symbol)} ${esc(mt)} 上${k.upper}/下${k.lower}`;
|
||||
if (kp.price_display != null || kp.price != null) {
|
||||
inner += ` · 现价 ${esc(kp.price_display != null ? kp.price_display : kp.price)}`;
|
||||
}
|
||||
inner += ` · 门控 ${esc(kp.gate_summary || "-")}</div>`;
|
||||
});
|
||||
}
|
||||
} else if ((row.capabilities || []).includes("trend")) {
|
||||
inner += `<div style="margin-top:6px;color:var(--muted);font-size:12px">该账户为趋势户,无关键位(见趋势计划或下单区)</div>`;
|
||||
}
|
||||
if (trends.length) {
|
||||
inner += `<div style="margin-top:8px;font-size:12px;color:#b8c4ff">趋势计划 ${trends.length} 个运行中</div>`;
|
||||
@@ -144,7 +159,7 @@
|
||||
}
|
||||
}
|
||||
const review = row.review_url
|
||||
? `<a href="${esc(row.review_url)}" target="_blank" rel="noopener">复盘</a>`
|
||||
? `<a href="${esc(row.review_url)}" target="_blank" rel="noopener" title="打开该实例的交易记录与复盘页(不在中控内操作)">交易复盘</a>`
|
||||
: "";
|
||||
return `<div class="card">
|
||||
<div class="card-head">
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
|
||||
<div id="page-monitor" class="page">
|
||||
<h1>监控区</h1>
|
||||
<p class="rule-tip" style="margin-top:0">
|
||||
持仓/余额来自子代理;关键位、机器人单来自各实例 Flask(须 PM2 跑着 crypto_*)。
|
||||
卡片右上角「交易复盘」= 打开该所交易记录页,不在中控里做复盘。
|
||||
</p>
|
||||
<div class="toolbar">
|
||||
<button type="button" id="btn-monitor-refresh">立即刷新</button>
|
||||
<label style="color:var(--muted);font-size:12px;display:flex;align-items:center;gap:6px">
|
||||
|
||||
Reference in New Issue
Block a user