feat: show pending key monitor orders in green on summary line
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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", ()=>{
|
||||||
|
|||||||
Reference in New Issue
Block a user