Fix position cards, breakeven badge, and tablet equal-height layout.

Stop clipping pos cards and match trailing-BE stop detection for the badge. On tablet, align order and live-trading panels to equal height with internal scroll; keep desktop positions scrollable after three cards.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-29 23:47:59 +08:00
parent c6c6c3fe83
commit 9dbf6b1f1e
6 changed files with 149 additions and 27 deletions
+16 -5
View File
@@ -95,8 +95,12 @@
var sl = Number(row.stop_loss);
if (isNaN(entry) || isNaN(sl) || entry <= 0) return false;
var tick = Number(row.tick_size) || Math.max(Math.abs(entry) * 1e-6, 0.01);
var buf = tick * 2.5;
var beMult = 2;
var dir = (row.direction || 'long').toString().toLowerCase();
var expectedBe = dir === 'short' ? entry - beMult * tick : entry + beMult * tick;
var tol = beMult * tick + tick * 0.05;
if (Math.abs(sl - expectedBe) <= tol) return true;
var buf = tick * Math.max(2, beMult);
if (Math.abs(sl - entry) > buf + tick) return false;
return dir === 'short' ? sl <= entry + tick * 0.05 : sl >= entry - tick * 0.05;
}
@@ -234,15 +238,19 @@
titleInner += ' <span class="dash-symbol-ex text-muted">' + escHtml(exchange) + '</span>';
}
titleInner += mainBadge;
titleInner += breakevenBadgeHtml(row);
if (code && String(name).toLowerCase() !== String(code).toLowerCase()) {
titleInner += ' <span class="text-accent">' + escHtml(code) + '</span> ' + directionBadgeHtml(row);
titleInner += ' <span class="text-accent">' + escHtml(code) + '</span>';
titleInner += breakevenBadgeHtml(row);
titleInner += ' ' + directionBadgeHtml(row);
} else if (!name && code) {
titleInner = (exchange
? '<span class="dash-symbol-ex text-muted">' + escHtml(exchange) + '</span> '
: '') + '<span class="text-accent">' + escHtml(code) + '</span> ' + directionBadgeHtml(row);
: '') + '<span class="text-accent">' + escHtml(code) + '</span>';
titleInner += breakevenBadgeHtml(row);
titleInner += ' ' + directionBadgeHtml(row);
} else {
titleInner += ' ' + directionBadgeHtml(row);
titleInner += breakevenBadgeHtml(row);
}
return titleInner;
}
@@ -270,13 +278,16 @@
titleInner += ' <span class="dash-symbol-ex text-muted">' + escHtml(exchange) + '</span>';
}
titleInner += mainBadge;
titleInner += breakevenBadgeHtml(row);
if (code && String(name).toLowerCase() !== String(code).toLowerCase()) {
titleInner += ' <span class="text-accent">' + escHtml(code) + '</span>';
titleInner += breakevenBadgeHtml(row);
} else if (!name && code) {
titleInner = (exchange
? '<span class="dash-symbol-ex text-muted">' + escHtml(exchange) + '</span> '
: '') + '<span class="text-accent">' + escHtml(code) + '</span>';
titleInner += breakevenBadgeHtml(row);
} else {
titleInner += breakevenBadgeHtml(row);
}
return (
'<div class="dash-symbol-cell">' +