|
|
|
@ -6,6 +6,7 @@ import 'package:dating_touchme_app/model/mine/bank_card_data.dart'; |
|
|
|
import 'package:dating_touchme_app/pages/mine/add_bankcard_page.dart'; |
|
|
|
import 'package:dating_touchme_app/pages/mine/withdraw_history_page.dart'; |
|
|
|
import 'package:flutter/material.dart'; |
|
|
|
import 'package:flutter/services.dart'; |
|
|
|
import 'package:flutter_screenutil/flutter_screenutil.dart'; |
|
|
|
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; |
|
|
|
import 'package:get/get.dart'; |
|
|
|
@ -195,7 +196,10 @@ class WithdrawPage extends StatelessWidget { |
|
|
|
Expanded( |
|
|
|
child: TextField( |
|
|
|
controller: controller.withdrawMoneyController.value, |
|
|
|
keyboardType: TextInputType.number, |
|
|
|
keyboardType: const TextInputType.numberWithOptions(decimal: true), |
|
|
|
inputFormatters: [ |
|
|
|
DecimalTextInputFormatter(decimalRange: 2), |
|
|
|
], |
|
|
|
style: TextStyle( |
|
|
|
fontSize: ScreenUtil().setWidth(22), |
|
|
|
height: 1 |
|
|
|
@ -582,3 +586,39 @@ class WithdrawPage extends StatelessWidget { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
class DecimalTextInputFormatter extends TextInputFormatter { |
|
|
|
DecimalTextInputFormatter({this.decimalRange = 2}); |
|
|
|
|
|
|
|
final int decimalRange; |
|
|
|
|
|
|
|
@override |
|
|
|
TextEditingValue formatEditUpdate( |
|
|
|
TextEditingValue oldValue, |
|
|
|
TextEditingValue newValue, |
|
|
|
) { |
|
|
|
final text = newValue.text; |
|
|
|
|
|
|
|
// 允许空 |
|
|
|
if (text.isEmpty) return newValue; |
|
|
|
|
|
|
|
// 只允许数字和小数点 |
|
|
|
if (!RegExp(r'^\d*\.?\d*$').hasMatch(text)) { |
|
|
|
return oldValue; |
|
|
|
} |
|
|
|
|
|
|
|
// 只允许一个小数点 |
|
|
|
if ('.'.allMatches(text).length > 1) { |
|
|
|
return oldValue; |
|
|
|
} |
|
|
|
|
|
|
|
// 限制小数位数 |
|
|
|
if (text.contains('.')) { |
|
|
|
final parts = text.split('.'); |
|
|
|
if (parts.length > 1 && parts[1].length > decimalRange) { |
|
|
|
return oldValue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return newValue; |
|
|
|
} |
|
|
|
} |