feat: hide instance export and stats on mobile, desktop-only downloads

Mark export bar and summary stat cards as instance-desktop-only. Hide all CSV/MD export actions on phone across four exchange instances.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-09 17:07:00 +08:00
parent e60beeedd3
commit 9aba8ec645
5 changed files with 68 additions and 43 deletions
+5 -5
View File
@@ -232,7 +232,7 @@
.stats-period-block h3{font-size:1rem;color:#dbe4ff;margin-bottom:4px}
.stats-period-block .sub{font-size:.78rem;color:#8892b0;margin-bottom:10px;line-height:1.4}
</style>
<link rel="stylesheet" href="/static/instance_theme.css?v=11">
<link rel="stylesheet" href="/static/instance_theme.css?v=12">
</head>
<body data-page="{{ page }}">
@@ -301,16 +301,16 @@
<button type="button" style="padding:6px 12px" onclick="applyListWindow()">应用</button>
<span style="color:#8892b0;font-size:.75rem">统计页仍按北京时间 {{ stats_bundle.stats_reset_hour|default(reset_hour) }}:00 切日</span>
</div>
<div class="export-bar">
<div class="export-bar instance-desktop-only">
<span style="color:#9aa">数据导出(v{{ data_export_version }} CSVUTF-8;交易记录含开仓类型列,复盘单独导出):</span>
<a href="/export/trade_records">交易记录</a>
<a href="/export/journal_entries">复盘记录</a>
<a href="/export/key_monitors">关键位(当前)</a>
<a href="/export/key_monitor_history">关键位历史</a>
</div>
<div class="stat-box">
<div class="stat-item stat-item-desktop-only"><div class="label">交易所</div><div class="value">{{ exchange_display }}</div></div>
<div class="stat-item stat-item-desktop-only"><div class="label">总交易</div><div class="value">{{ total }}</div></div>
<div class="stat-box instance-desktop-only">
<div class="stat-item"><div class="label">交易所</div><div class="value">{{ exchange_display }}</div></div>
<div class="stat-item"><div class="label">总交易</div><div class="value">{{ total }}</div></div>
<div class="stat-item"><div class="label">错过次数</div><div class="value">{{ miss_count }}</div></div>
<div class="stat-item"><div class="label">胜率</div><div class="value">{{ rate }}%</div></div>
<div class="stat-item"><div class="label">资金账户(USDT)</div><div class="value" id="total-capital">{% if funding_usdt is not none %}{{ funds_fmt(funding_usdt) }}U{% else %}—{% endif %}</div></div>
+5 -5
View File
@@ -232,7 +232,7 @@
.stats-period-block h3{font-size:1rem;color:#dbe4ff;margin-bottom:4px}
.stats-period-block .sub{font-size:.78rem;color:#8892b0;margin-bottom:10px;line-height:1.4}
</style>
<link rel="stylesheet" href="/static/instance_theme.css?v=11">
<link rel="stylesheet" href="/static/instance_theme.css?v=12">
</head>
<body data-page="{{ page }}">
@@ -301,16 +301,16 @@
<button type="button" style="padding:6px 12px" onclick="applyListWindow()">应用</button>
<span style="color:#8892b0;font-size:.75rem">统计页仍按北京时间 {{ stats_bundle.stats_reset_hour|default(reset_hour) }}:00 切日</span>
</div>
<div class="export-bar">
<div class="export-bar instance-desktop-only">
<span style="color:#9aa">数据导出(v{{ data_export_version }} CSVUTF-8;交易记录含开仓类型列,复盘单独导出):</span>
<a href="/export/trade_records">交易记录</a>
<a href="/export/journal_entries">复盘记录</a>
<a href="/export/key_monitors">关键位(当前)</a>
<a href="/export/key_monitor_history">关键位历史</a>
</div>
<div class="stat-box">
<div class="stat-item stat-item-desktop-only"><div class="label">交易所</div><div class="value">{{ exchange_display }}</div></div>
<div class="stat-item stat-item-desktop-only"><div class="label">总交易</div><div class="value">{{ total }}</div></div>
<div class="stat-box instance-desktop-only">
<div class="stat-item"><div class="label">交易所</div><div class="value">{{ exchange_display }}</div></div>
<div class="stat-item"><div class="label">总交易</div><div class="value">{{ total }}</div></div>
<div class="stat-item"><div class="label">错过次数</div><div class="value">{{ miss_count }}</div></div>
<div class="stat-item"><div class="label">胜率</div><div class="value">{{ rate }}%</div></div>
<div class="stat-item"><div class="label">资金账户(USDT)</div><div class="value" id="total-capital">{% if funding_usdt is not none %}{{ funds_fmt(funding_usdt) }}U{% else %}—{% endif %}</div></div>
+5 -5
View File
@@ -269,7 +269,7 @@
.stats-split-row{grid-template-columns:1fr}
}
</style>
<link rel="stylesheet" href="/static/instance_theme.css?v=11">
<link rel="stylesheet" href="/static/instance_theme.css?v=12">
</head>
<body data-page="{{ page }}">
@@ -352,15 +352,15 @@
</div>
{% endif %}
<div class="export-bar">
<div class="export-bar instance-desktop-only">
<span style="color:#9aa">数据导出(v{{ data_export_version }} CSVUTF-8;交易记录含开仓类型列及交易所对齐字段):</span>
<a href="/export/trade_records">交易记录</a>
<a href="/export/key_monitors">关键位(当前)</a>
<a href="/export/key_monitor_history">关键位历史</a>
</div>
<div class="stat-box">
<div class="stat-item stat-item-desktop-only"><div class="label">交易所</div><div class="value">{{ exchange_display }}</div></div>
<div class="stat-item stat-item-desktop-only"><div class="label">总交易</div><div class="value">{{ total }}</div></div>
<div class="stat-box instance-desktop-only">
<div class="stat-item"><div class="label">交易所</div><div class="value">{{ exchange_display }}</div></div>
<div class="stat-item"><div class="label">总交易</div><div class="value">{{ total }}</div></div>
<div class="stat-item"><div class="label">错过次数</div><div class="value">{{ miss_count }}</div></div>
<div class="stat-item"><div class="label">胜率</div><div class="value">{{ rate }}%</div></div>
<div class="stat-item"><div class="label">资金账户(USDT)</div><div class="value" id="total-capital">{% if funding_usdt is not none %}{{ money_fmt(funding_usdt) }}U{% else %}—{% endif %}</div></div>
+5 -5
View File
@@ -232,7 +232,7 @@
.stats-period-block h3{font-size:1rem;color:#dbe4ff;margin-bottom:4px}
.stats-period-block .sub{font-size:.78rem;color:#8892b0;margin-bottom:10px;line-height:1.4}
</style>
<link rel="stylesheet" href="/static/instance_theme.css?v=11">
<link rel="stylesheet" href="/static/instance_theme.css?v=12">
</head>
<body data-page="{{ page }}">
@@ -301,16 +301,16 @@
<button type="button" style="padding:6px 12px" onclick="applyListWindow()">应用</button>
<span style="color:#8892b0;font-size:.75rem">统计页仍按北京时间 {{ stats_bundle.stats_reset_hour|default(reset_hour) }}:00 切日</span>
</div>
<div class="export-bar">
<div class="export-bar instance-desktop-only">
<span style="color:#9aa">数据导出(v{{ data_export_version }} CSVUTF-8;交易记录含开仓类型列,复盘单独导出):</span>
<a href="/export/trade_records">交易记录</a>
<a href="/export/journal_entries">复盘记录</a>
<a href="/export/key_monitors">关键位(当前)</a>
<a href="/export/key_monitor_history">关键位历史</a>
</div>
<div class="stat-box">
<div class="stat-item stat-item-desktop-only"><div class="label">交易所</div><div class="value">{{ exchange_display }}</div></div>
<div class="stat-item stat-item-desktop-only"><div class="label">总交易</div><div class="value">{{ total }}</div></div>
<div class="stat-box instance-desktop-only">
<div class="stat-item"><div class="label">交易所</div><div class="value">{{ exchange_display }}</div></div>
<div class="stat-item"><div class="label">总交易</div><div class="value">{{ total }}</div></div>
<div class="stat-item"><div class="label">错过次数</div><div class="value">{{ miss_count }}</div></div>
<div class="stat-item"><div class="label">胜率</div><div class="value">{{ rate }}%</div></div>
<div class="stat-item"><div class="label">资金账户(USDT)</div><div class="value" id="total-capital">{% if funding_usdt is not none %}{{ funds_fmt(funding_usdt) }}U{% else %}—{% endif %}</div></div>
+48 -23
View File
@@ -1,40 +1,65 @@
/* 实例页手机端:顶栏统计精简 */
/* 实例页手机端:与中控一致,桌面专属区块隐藏;下载仅电脑端 */
@media (max-width: 720px) {
.stat-box > .stat-item-desktop-only {
.instance-desktop-only {
display: none !important;
}
.stat-box {
a[href^="/export/"] {
display: none !important;
}
button[onclick*="exportDailyBundleMd"],
button[onclick*="exportWeeklyBundleMd"] {
display: none !important;
}
body {
padding: 8px 10px !important;
}
.header h1 {
font-size: 1rem !important;
line-height: 1.35;
}
.header-row {
flex-wrap: wrap;
gap: 8px;
margin-bottom: 12px;
}
.stat-box > .stat-item:last-child:nth-child(odd) {
grid-column: 1 / -1;
.top-nav {
display: flex;
flex-wrap: nowrap;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
gap: 6px;
padding-bottom: 2px;
}
.stat-item {
min-height: 64px;
padding: 10px 8px;
}
.stat-item .value {
font-size: 1.1rem;
}
.export-bar > span:first-child {
.top-nav::-webkit-scrollbar {
display: none;
}
.export-bar {
gap: 6px;
margin-bottom: 10px;
.top-nav a {
flex: 0 0 auto;
white-space: nowrap;
padding: 8px 12px;
font-size: 0.78rem;
}
.export-bar a {
flex: 1 1 auto;
text-align: center;
min-width: 0;
.list-window-bar {
flex-direction: column;
align-items: stretch;
gap: 8px;
}
.grid {
gap: 10px;
}
.card {
padding: 12px;
}
}