From ef5ac2bf943b078dd25d511bd4b8f7ddab940e35 Mon Sep 17 00:00:00 2001 From: hailin Date: Wed, 4 Feb 2026 21:17:10 -0800 Subject: [PATCH] =?UTF-8?q?fix(mining-app):=20=E4=BB=B7=E6=A0=BC=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E5=80=92=E8=AE=A1=E6=97=B6=E4=B8=8E=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E9=94=80=E6=AF=81=E8=B0=83=E5=BA=A6=E5=99=A8=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 倒计时不再从页面打开时任意起点开始 - 自动计算距下一个整分钟第3秒的剩余秒数作为初始值 (销毁在每分钟第0秒执行,留3秒余量等数据库写完) - 倒计时归零时通过 ref.invalidate 主动刷新价格数据 - 确保每次刷新都能拿到最新的销毁后价格 Co-Authored-By: Claude Opus 4.5 --- .../lib/presentation/pages/trading/trading_page.dart | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart b/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart index 41da2b50..d7d035e7 100644 --- a/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart +++ b/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart @@ -64,10 +64,17 @@ class _TradingPageState extends ConsumerState { WidgetsBinding.instance.addPostFrameCallback((_) { ref.read(klinesNotifierProvider.notifier).loadKlines(_timeRanges[_selectedTimeRange]); }); - // 启动价格刷新倒计时(每秒递减,到0时重置为60) + // 与后端销毁调度器同步:销毁在每分钟第0秒执行,前端在第3秒刷新 + // 计算距离下一个整分钟第3秒的秒数 + final now = DateTime.now(); + final secsIntoMinute = now.second; + // 目标:每分钟的第3秒刷新(给销毁+写库留3秒余量) + _countdown = secsIntoMinute < 3 ? (3 - secsIntoMinute) : (63 - secsIntoMinute); _countdownTimer = Timer.periodic(const Duration(seconds: 1), (_) { setState(() { if (_countdown <= 1) { + // 倒计时归零,强制刷新价格数据 + ref.invalidate(currentPriceProvider); _countdown = 60; } else { _countdown--;