import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:vitalapp/architecture/defines.dart'; import 'package:vitalapp/architecture/utils/prompt_box.dart'; import 'package:vitalapp/global.dart'; // import 'package:vitalapp/architecture/utils/prompt_box.dart'; import 'package:vitalapp/managers/interfaces/account.dart'; import 'package:vitalapp/managers/interfaces/diagnosis.dart'; import 'package:vitalapp/managers/interfaces/doctor.dart'; import 'package:vitalapp/managers/interfaces/organization.dart'; import 'package:vitalapp/managers/interfaces/patient.dart'; import 'package:vitalapp/managers/interfaces/system_setting.dart'; import 'package:vitalapp/managers/interfaces/upgrade.dart'; import 'package:vitalapp/pages/upgrade/controller.dart'; import 'package:vitalapp/pages/upgrade/widget/simple_app_upgrade.dart'; import 'package:vitalapp/store/store.dart'; import 'package:fis_common/logger/logger.dart'; import 'state.dart'; class LoginController extends FControllerBase { final state = LoginState(); void onSubmit() async { if (!kIsOnline) { PromptBox.toast("请检查网络连接"); return; } setBusy('登录中'); // busy = true; try { final result = await Get.find() .login(state.account, state.password, state.isAutoLogin); if (result) { await _syncAfterLogin(); // PromptBox.toast("登录成功"); busy = false; Get.offAllNamed("/"); /// 主页不确定 先跳检测页面 // Get.offAllNamed('/medical', id: 1001); } else { busy = false; PromptBox.toast("登录失败"); } } catch (e) { logger.e("LoginController login error", e); busy = false; PromptBox.error("登录异常"); } } @override void onInit() { if (Store.user.account != null) { state.account = Store.user.account!; } state.isAutoLogin = Store.user.isAutoLogin; if (Store.user.isAutoLogin) { state.password = Store.user.password ?? ''; } _checkUpdate(); super.onInit(); } /// 记住密码状态切换 void onRememberPasswordChanged(bool val) { state.isAutoLogin = val; } @override void onClose() { _doDispose(); super.onClose(); } Future _checkUpdate() async { final result = await Get.find().checkNewVersionArrival(); if (result != null && result.isNeedUpdate) { final AppUpgradeController appUpgradeController = Get.put(AppUpgradeController()); Get.dialog( GetBuilder( builder: (_) => AppUpgradeWidget(model: result), init: appUpgradeController, ), barrierDismissible: false, barrierColor: Colors.black.withOpacity(.4), ); } } Future _syncAfterLogin() async { await Get.find().syncInfo(); await Future.wait([ // 更新应用级配置 Get.find().getSettings(true), // 更新机构相关配置 Get.find().syncConfigurations(), //更新本地离线居民数据userCode等于空的数据 Get.find().resettingUsercodeIsEmptyData(), //更新本地离线测试数据userCode等于空的数据 Get.find().resettingUsercodeIsEmptyData(), ]); } void _doDispose() {} }