diff --git a/flutter_monisuo/build/99111e0c5b6228829e100ef67db14ea2.cache.dill.track.dill b/flutter_monisuo/build/99111e0c5b6228829e100ef67db14ea2.cache.dill.track.dill index 6535aa0..e6d0ba5 100644 Binary files a/flutter_monisuo/build/99111e0c5b6228829e100ef67db14ea2.cache.dill.track.dill and b/flutter_monisuo/build/99111e0c5b6228829e100ef67db14ea2.cache.dill.track.dill differ diff --git a/flutter_monisuo/lib/ui/pages/asset/components/asset_dialogs.dart b/flutter_monisuo/lib/ui/pages/asset/components/asset_dialogs.dart index 338e512..de29cfb 100644 --- a/flutter_monisuo/lib/ui/pages/asset/components/asset_dialogs.dart +++ b/flutter_monisuo/lib/ui/pages/asset/components/asset_dialogs.dart @@ -516,14 +516,17 @@ void showWithdrawDialog(BuildContext context, String? balance) { ValueListenableBuilder( valueListenable: selectedNetworkNotifier, builder: (_, selected, __) { - return ShadSelect( - placeholder: const Text('選擇提現網絡'), - initialValue: selected, - selectedOptionBuilder: (context, val) => Text(val), - onChanged: (value) { - if (value != null) selectedNetworkNotifier.value = value; - }, - options: networks.map((n) => ShadOption(value: n, child: Text(n))).toList(), + return SizedBox( + width: double.infinity, + child: ShadSelect( + placeholder: const Text('選擇提現網絡'), + initialValue: selected, + selectedOptionBuilder: (context, val) => Text(val), + onChanged: (value) { + if (value != null) selectedNetworkNotifier.value = value; + }, + options: networks.map((n) => ShadOption(value: n, child: Text(n))).toList(), + ), ); }, ), diff --git a/flutter_monisuo/lib/ui/pages/home/bills_page.dart b/flutter_monisuo/lib/ui/pages/home/bills_page.dart index 72ea23a..4eedd57 100644 --- a/flutter_monisuo/lib/ui/pages/home/bills_page.dart +++ b/flutter_monisuo/lib/ui/pages/home/bills_page.dart @@ -358,7 +358,9 @@ class _BillsPageState extends State with SingleTickerProviderStateMix // 福利賬單 // ============================================ Widget _buildWelfareTab(String type) { - final records = _welfareRecords.where((r) => r['type'] == type).toList(); + final records = _welfareRecords + .where((r) => r['type'] == type && r['status'] == 1) + .toList(); if (records.isEmpty) { return _buildEmptyState( diff --git a/flutter_monisuo/lib/ui/pages/trade/trade_page.dart b/flutter_monisuo/lib/ui/pages/trade/trade_page.dart index 899f323..5c6ea50 100644 --- a/flutter_monisuo/lib/ui/pages/trade/trade_page.dart +++ b/flutter_monisuo/lib/ui/pages/trade/trade_page.dart @@ -205,7 +205,9 @@ class _TradePageState extends State void _fillPercent(double pct) { final max = double.tryParse(_maxAmount) ?? 0; - _amountController.text = (max * pct).toStringAsFixed(2); + final value = max * pct; + // 向下截斷到2位小數,避免四捨五入超出可用餘額 + _amountController.text = ((value * 100).truncateToDouble() / 100).toStringAsFixed(2); setState(() {}); }