Align tablet trade records with close-record layout and row actions.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-30 00:05:33 +08:00
parent 21d68f6269
commit a6b3c4a657
3 changed files with 170 additions and 64 deletions
+17 -11
View File
@@ -12,10 +12,9 @@
return String(v).replace('T', ' ').slice(0, 16);
}
function pnlClass(v) {
var n = parseFloat(v);
if (isNaN(n) || n === 0) return 'is-flat';
return n > 0 ? 'is-profit' : 'is-loss';
function isTabletLayout() {
var root = document.documentElement;
return root.dataset.layout === 'tablet' || root.classList.contains('layout-tablet');
}
function showTradeModal(data) {
@@ -29,6 +28,7 @@
{ label: '类型', value: esc(data.monitor_type) + ' · ' + esc(data.source), wide: false },
{ label: '方向', value: esc(data.direction), wide: false },
{ label: '成交价', value: esc(data.entry_price), wide: false },
{ label: '平仓价', value: esc(data.close_price), wide: false },
{ label: '手数', value: esc(data.lots), wide: false },
{ label: '止损', value: esc(data.stop_loss), wide: false },
{ label: '止盈', value: esc(data.take_profit), wide: false },
@@ -53,7 +53,7 @@
html += '<div class="records-detail-actions">';
if (data.fill_review_url) {
html += '<a href="' + data.fill_review_url + '" class="btn-fill">填入复盘</a>';
html += '<a href="' + data.fill_review_url + '" class="btn-fill">复盘</a>';
}
if (data.del_url) {
html += '<a href="' + data.del_url + '" class="btn-del" onclick="return confirm(\'删除?\')">删除</a>';
@@ -76,12 +76,18 @@
mask.addEventListener('click', function (e) {
if (e.target === mask) mask.classList.remove('show');
});
document.querySelectorAll('.records-trade-item').forEach(function (btn) {
btn.addEventListener('click', function () {
try {
showTradeModal(JSON.parse(btn.getAttribute('data-trade')));
} catch (err) { /* ignore */ }
});
var list = document.getElementById('records-trade-mobile');
if (!list) return;
list.addEventListener('click', function (e) {
if (e.target.closest('.records-trade-actions')) return;
var row = e.target.closest('.records-trade-row');
if (!row) return;
if (isTabletLayout() && !e.target.closest('.records-trade-detail-btn')) return;
try {
showTradeModal(JSON.parse(row.getAttribute('data-trade')));
} catch (err) { /* ignore */ }
});
}