controller.dart 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import 'dart:io';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:electronic_assistant/data/consts/constants.dart';
  4. import 'package:electronic_assistant/data/consts/event_report_id.dart';
  5. import 'package:electronic_assistant/data/repositories/config_repository.dart';
  6. import 'package:electronic_assistant/device/atmob_platform_info.dart';
  7. import 'package:electronic_assistant/handler/event_handler.dart';
  8. import 'package:electronic_assistant/module/browser/view.dart';
  9. import 'package:electronic_assistant/resource/colors.gen.dart';
  10. import 'package:electronic_assistant/router/app_pages.dart';
  11. import 'package:electronic_assistant/utils/error_handler.dart';
  12. import 'package:electronic_assistant/utils/toast_util.dart';
  13. import 'package:flutter/cupertino.dart';
  14. import 'package:flutter_screenutil/flutter_screenutil.dart';
  15. import 'package:get/get.dart';
  16. import '../../../data/api/response/user_info_response.dart';
  17. import '../../../data/repositories/account_repository.dart';
  18. import '../../../dialog/alert_dialog.dart';
  19. import '../../../dialog/show_update_version_dialog.dart';
  20. import '../../../resource/string.gen.dart';
  21. import '../../../utils/app_info_util.dart';
  22. import '../../../utils/common_utils.dart';
  23. import '../controller.dart';
  24. class MainDrawerController extends BaseController {
  25. String get versionName => "v${appInfoUtil.appVersionName}";
  26. String get loginTxt =>
  27. accountRepository.getUserSubName(accountRepository.phone);
  28. final Rxn<UserInfoResponse> _userInfo = accountRepository.userInfo;
  29. UserInfoResponse? get userInfo => _userInfo.value;
  30. void accountLogout() {
  31. EAAlertDialog.show(
  32. contentWidget: Text(
  33. StringName.accountLogoutTips.tr,
  34. style: TextStyle(
  35. fontSize: 15.sp,
  36. color: ColorName.primaryTextColor,
  37. fontWeight: FontWeight.bold),
  38. ),
  39. cancelText: StringName.cancel.tr,
  40. confirmText: StringName.sure.tr,
  41. confirmOnTap: () {
  42. accountRepository.userDeprecate().then((data) {
  43. Get.find<MainController>().closeDrawer();
  44. accountRepository.logout();
  45. ToastUtil.showToast(StringName.accountLogoutSuccess.tr);
  46. }).catchError((error) {
  47. ErrorHandler.toastError(error);
  48. });
  49. });
  50. }
  51. void onCheckUpdate() {
  52. EventHandler.report(EventId.event_105001);
  53. configRepository.getAppVersion().then((bean) {
  54. if (bean == null) {
  55. ToastUtil.showToast(StringName.versionLatest.tr);
  56. } else {
  57. Get.find<MainController>().closeDrawer();
  58. UpdateVersionDialog.show(bean);
  59. }
  60. }).catchError((error) {
  61. ErrorHandler.toastError(error);
  62. });
  63. }
  64. void modelClick() {
  65. Get.toNamed(RoutePath.modelExplain);
  66. }
  67. void goToCustomerService() {
  68. final userInfo = accountRepository.userInfo.value;
  69. if (userInfo == null) {
  70. ToastUtil.showToast('网络异常,请稍后再试');
  71. accountRepository.refreshUserInfo();
  72. return;
  73. }
  74. int appPlatform = 0;
  75. if (Platform.isAndroid) {
  76. appPlatform = 1;
  77. } else if (Platform.isIOS) {
  78. appPlatform = 2;
  79. }
  80. //拼接字符串
  81. String url =
  82. "${Constants.customerService}?ssid=${userInfo.ssid}&device_id=${userInfo.deviceId}&app_platform=$appPlatform&app_version=${appInfoUtil.appVersionName}&package_name=${appInfoUtil.packageName}&app_name=${appInfoUtil.appName}";
  83. BrowserPage.start(url);
  84. }
  85. }