123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- 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<IAccountManager>()
- .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<void> _checkUpdate() async {
- final result = await Get.find<IUpgradeManager>().checkNewVersionArrival();
- if (result != null && result.isNeedUpdate) {
- final AppUpgradeController appUpgradeController =
- Get.put(AppUpgradeController());
- Get.dialog(
- GetBuilder<AppUpgradeController>(
- builder: (_) => AppUpgradeWidget(model: result),
- init: appUpgradeController,
- ),
- barrierDismissible: false,
- barrierColor: Colors.black.withOpacity(.4),
- );
- }
- }
- Future<void> _syncAfterLogin() async {
- await Get.find<IDoctorManager>().syncInfo();
- await Future.wait([
- // 更新应用级配置
- Get.find<ISystemSettingManager>().getSettings(true),
- // 更新机构相关配置
- Get.find<IOrganizationManager>().syncConfigurations(),
- //更新本地离线居民数据userCode等于空的数据
- Get.find<IPatientManager>().resettingUsercodeIsEmptyData(),
- //更新本地离线测试数据userCode等于空的数据
- Get.find<IDiagnosisManager>().resettingUsercodeIsEmptyData(),
- ]);
- }
- void _doDispose() {}
- }
|