feat: show pending key monitor orders in green on summary line

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-09 16:26:07 +08:00
parent 77aef229e9
commit 04d5d5329e
2 changed files with 17 additions and 0 deletions
+5
View File
@@ -817,6 +817,11 @@ html[data-theme="light"] .key-row-summary-live {
color: #006e9a !important; color: #006e9a !important;
} }
html[data-theme="light"] .key-row-summary-live.key-row-summary-pending {
color: #087a50 !important;
font-weight: 600 !important;
}
html[data-theme="light"] .key-row-collapse-body { html[data-theme="light"] .key-row-collapse-body {
border-top-color: #d0dae4 !important; border-top-color: #d0dae4 !important;
} }
+12
View File
@@ -13,6 +13,7 @@
.key-row-summary-title strong{font-size:.88rem;color:#fff} .key-row-summary-title strong{font-size:.88rem;color:#fff}
.key-row-summary-line{color:#9aa8c4;font-size:.76rem;word-break:break-word} .key-row-summary-line{color:#9aa8c4;font-size:.76rem;word-break:break-word}
.key-row-summary-live{color:#8fc8ff;font-size:.74rem} .key-row-summary-live{color:#8fc8ff;font-size:.74rem}
.key-row-summary-live.key-row-summary-pending{color:#4cd97f;font-weight:600}
.key-row-summary-actions{flex:0 0 auto;display:flex;gap:6px;align-items:center} .key-row-summary-actions{flex:0 0 auto;display:flex;gap:6px;align-items:center}
.key-row-collapse-body{padding:0 12px 16px;border-top:1px solid #232b3d} .key-row-collapse-body{padding:0 12px 16px;border-top:1px solid #232b3d}
.key-row-collapse-body .pos-meta{margin-top:10px;margin-bottom:10px} .key-row-collapse-body .pos-meta{margin-top:10px;margin-bottom:10px}
@@ -169,12 +170,23 @@
</div> </div>
</div> </div>
<script> <script>
function keySummaryIsPending(snap){
if(!snap) return false;
const gs = String(snap.gate_summary || "");
if(gs.includes("标记价将失效")) return false;
const gm = String(snap.gate_metrics || "");
if(gm.includes("限价单") || gm.includes("挂单")) return true;
if(/等待成交/.test(gs)) return true;
if(/挂E=/.test(gs) && !gs.includes("将失效")) return true;
return false;
}
function paintKeyMonitorSummary(id, snap){ function paintKeyMonitorSummary(id, snap){
const el = document.getElementById(`key-summary-live-${id}`); const el = document.getElementById(`key-summary-live-${id}`);
if(!el || !snap) return; if(!el || !snap) return;
const px = snap.price_display || (Number.isFinite(Number(snap.price)) ? Number(snap.price).toFixed(6) : "—"); const px = snap.price_display || (Number.isFinite(Number(snap.price)) ? Number(snap.price).toFixed(6) : "—");
const gate = snap.gate_summary || "—"; const gate = snap.gate_summary || "—";
el.innerText = `现价 ${px} · 门控 ${gate}`; el.innerText = `现价 ${px} · 门控 ${gate}`;
el.classList.toggle("key-row-summary-pending", keySummaryIsPending(snap));
} }
document.querySelectorAll(".key-row-collapse").forEach((row)=>{ document.querySelectorAll(".key-row-collapse").forEach((row)=>{
row.addEventListener("toggle", ()=>{ row.addEventListener("toggle", ()=>{