feat(mining-app): 兑换页面价格改为只读,使用实时价格

- 价格输入框改为只读模式,用户不能修改
- 始终使用后端返回的实时价格
- 价格会随实时刷新自动更新

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-18 20:56:59 -08:00
parent cfa3979a97
commit 533ad3ba82
1 changed files with 14 additions and 7 deletions

View File

@ -363,8 +363,8 @@ class _TradingPageState extends ConsumerState<TradingPage> {
//
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<TradingPage> {
),
],
const SizedBox(height: 16),
//
_buildInputField('价格', _priceController, '请输入价格', '积分值'),
// 使
_buildInputField('价格', _priceController, '实时价格', '积分值', readOnly: true),
const SizedBox(height: 16),
// - "全部"
// 使
@ -757,8 +757,9 @@ class _TradingPageState extends ConsumerState<TradingPage> {
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<TradingPage> {
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<TradingPage> {
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(