| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import '../../../../config/translations/strings_enum.dart';
- import '../../../controllers/api_controller.dart';
- import '../../../dialog/loading/loading_dialog.dart';
- import '../../../routes/app_pages.dart';
- class LoginController extends GetxController {
- final _apiController = Get.find<ApiController>();
- final usernameController = TextEditingController();
- final passwordController = TextEditingController();
- final usernameFocusNode = FocusNode();
- final passwordFocusNode = FocusNode();
- final _isLogin = false.obs;
- bool get isLogin => _isLogin.value;
- set isLogin(bool value) {
- _isLogin.value = value;
- }
- @override
- void onInit() {
- super.onInit();
- }
- @override
- void onClose() {
- usernameController.dispose();
- passwordController.dispose();
- usernameFocusNode.dispose();
- passwordFocusNode.dispose();
- super.onClose();
- }
- void checkLogin() {
- final username = usernameController.text;
- final password = passwordController.text;
- if (validatorInputValue(username) && validatorInputValue(password)) {
- isLogin = true;
- } else {
- isLogin = false;
- }
- }
- //6-20 characters (letters or numbers)
- bool validatorInputValue(String value) {
- // 只允许字母和数字并且是6-20位
- return value.length >= 6 &&
- value.length <= 20 &&
- RegExp(r'^[a-zA-Z0-9]+$').hasMatch(value);
- }
- // 处理登录
- Future<void> handleSignUp() async {
- if (!isLogin) {
- return;
- }
- final params = {
- "account": usernameController.text.trim(),
- "password": passwordController.text,
- };
- await LoadingDialog.show(
- context: Get.context!,
- loadingText: Strings.loggingIn.tr,
- successText: Strings.loginSuccessful.tr,
- onRequest: () async {
- // 执行你的异步请求
- await _apiController.login(params);
- },
- onSuccess: () {
- // 成功后的操作
- Get.offAllNamed(Routes.HOME);
- },
- );
- }
- }
|