app-starlock/lib/login/register/starLock_register_state.dart

61 lines
2.1 KiB
Dart
Executable File

import 'package:flustars/flustars.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
class StarLockRegisterState {
StarLockRegisterState() {
// 根据系统语言设置默认选中的tab
final Locale? systemLocale = Get.deviceLocale;
isIphoneType.value = systemLocale?.languageCode == 'zh';
resetResend();
}
final TextEditingController phoneOrEmailController = TextEditingController();
final TextEditingController pwdController = TextEditingController();
final TextEditingController sureController = TextEditingController();
final TextEditingController codeController = TextEditingController();
RxString countryCode = '86'.obs;
RxString countryName = '中国'.tr.obs;
RxString phoneOrEmailStr = ''.obs;
// RxBool phoneOrEmailStrIsOK = false.obs;
RxString pwd = ''.obs;
RxString surePwd = ''.obs;
RxString verificationCode = ''.obs;
RxString xWidth = ''.obs; // 滑动验证码滑动位置
RxBool isIphoneType = true.obs;
RxBool canSub = false.obs; // 是否能提交
RxBool agree = false.obs;
RxBool canSendCode = false.obs; // 是否能发送验证码
// bool get isEmail => RegexUtil.isEmail(phoneOrEmailStr.value);
// bool get isIphone => RegexUtil.isMobileSimple(phoneOrEmailStr.value);
bool get pwdIsOK =>
pwd.value.isNotEmpty &&
surePwd.value.isNotEmpty &&
pwd.value.length >= 8 &&
surePwd.value.length >= 8;
bool get codeIsOK =>
verificationCode.value.isNotEmpty && verificationCode.value.length >= 6;
RxBool canResend = false.obs; // 是否能重新发送,就是验证码倒计时之后的重新发送
RxString btnText = ''.obs;
int totalSeconds = 120;
int currentSecond = 120;
RxMap<String, dynamic> deviceInfoMap = <String, dynamic>{}.obs;
void resetResend() {
canResend.value = totalSeconds == currentSecond;
btnText.value =
!canResend.value ? '$currentSecond s' : btnText.value = '获取验证码'.tr;
}
void onClose() {
phoneOrEmailController.dispose();
pwdController.dispose();
sureController.dispose();
codeController.dispose();
}
}