From 533ad3ba8200a1a819223aff18819ed0c4fd2456 Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 18 Jan 2026 20:56:59 -0800 Subject: [PATCH] =?UTF-8?q?feat(mining-app):=20=E5=85=91=E6=8D=A2=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=BB=B7=E6=A0=BC=E6=94=B9=E4=B8=BA=E5=8F=AA=E8=AF=BB?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=E5=AE=9E=E6=97=B6=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 价格输入框改为只读模式,用户不能修改 - 始终使用后端返回的实时价格 - 价格会随实时刷新自动更新 Co-Authored-By: Claude Opus 4.5 --- .../pages/trading/trading_page.dart | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) 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 d62672b8..497c1f23 100644 --- a/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart +++ b/frontend/mining-app/lib/presentation/pages/trading/trading_page.dart @@ -363,8 +363,8 @@ class _TradingPageState extends ConsumerState { // 可用积分值(现金) final availableCash = asset?.availableCash ?? '0'; - // 设置默认价格 - if (_priceController.text.isEmpty && priceInfo != null) { + // 始终使用实时价格(价格不可修改) + if (priceInfo != null) { _priceController.text = currentPrice; } @@ -573,8 +573,8 @@ class _TradingPageState extends ConsumerState { ), ], const SizedBox(height: 16), - // 价格输入 - _buildInputField('价格', _priceController, '请输入价格', '积分值'), + // 价格显示(只读,使用实时价格) + _buildInputField('价格', _priceController, '实时价格', '积分值', readOnly: true), const SizedBox(height: 16), // 数量输入 - 带"全部"按钮 // 卖出时使用交易账户积分股余额(只能卖出交易账户的,挖矿账户需要先划转) @@ -757,8 +757,9 @@ class _TradingPageState extends ConsumerState { String label, TextEditingController controller, String hint, - String suffix, - ) { + String suffix, { + bool readOnly = false, + }) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ @@ -774,7 +775,7 @@ class _TradingPageState extends ConsumerState { Container( height: 44, decoration: BoxDecoration( - color: _bgGray, + color: readOnly ? _bgGray.withOpacity(0.7) : _bgGray, borderRadius: BorderRadius.circular(12), ), child: Row( @@ -782,7 +783,13 @@ class _TradingPageState extends ConsumerState { Expanded( child: TextField( controller: controller, + readOnly: readOnly, + enabled: !readOnly, keyboardType: const TextInputType.numberWithOptions(decimal: true), + style: TextStyle( + fontSize: 14, + color: readOnly ? _grayText : _darkText, + ), decoration: InputDecoration( hintText: hint, hintStyle: const TextStyle(