home_controller.dart 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. import 'package:get/get.dart';
  2. import '../../../common/LogHelper.dart';
  3. import '../../../common/SharedPreferencesUtil.dart';
  4. import '../../../data/model/LocalUser.dart';
  5. import '../../../data/model/SysConfig.dart';
  6. import '../../../data/model/UserMode.dart';
  7. import '../../../network/api_service.dart';
  8. import '../../../routes/app_pages.dart';
  9. enum ImageType {
  10. CUSTOMER,
  11. PROMOTION,
  12. TUTORIAL,
  13. RENEWAL,
  14. }
  15. class HomeController extends GetxController {
  16. //TODO: Implement HomeController
  17. var isLoading = false.obs;
  18. var sysConfig = SysConfig().obs;
  19. var localUsers = LocalUser().obs;
  20. var userMode = User().obs;
  21. var errorMsg = ''.obs;
  22. var selectNode = '选择节点'.obs;
  23. final Map<ImageType, String> imageMap = {
  24. ImageType.CUSTOMER: "images/main/customer.png",
  25. ImageType.PROMOTION: "images/main/promotion.png",
  26. ImageType.TUTORIAL: "images/main/tutorial.png",
  27. ImageType.RENEWAL: "images/main/renewal.png",
  28. };
  29. void onImageTap(ImageType type) {
  30. if(type == ImageType.CUSTOMER){
  31. } else if (type == ImageType.PROMOTION){
  32. } else if (type == ImageType.TUTORIAL){
  33. } else if (type == ImageType.RENEWAL){
  34. }
  35. LogHelper().d("${imageMap[type]} tapped as ${type.toString().split('.').last}");
  36. }
  37. Future<void> fetchSysConfig() async {
  38. try {
  39. Map<String, dynamic>? data = await SharedPreferencesUtil().getObject("sysconfig");
  40. if(data != null){
  41. sysConfig.value = SysConfig.fromJson(data);
  42. LogHelper().d(sysConfig.value.toJson());
  43. }
  44. } catch (e) {
  45. errorMsg.value = e.toString();
  46. } finally {
  47. }
  48. }
  49. Future<void> fetchUserinfo() async {
  50. try {
  51. isLoading.value = true;
  52. userMode.value = await ApiService().userinfo("/api/client/v4/userinfo");
  53. } catch (e) {
  54. errorMsg.value = e.toString();
  55. } finally {
  56. isLoading.value = false;
  57. }
  58. }
  59. //await SharedPreferencesUtil().setObject("localUser", userModes.toJson());
  60. Future<void> fetchLocalUser() async {
  61. try {
  62. Map<String, dynamic>? userdata = await SharedPreferencesUtil().getObject("localUser");
  63. if(userdata != null){
  64. localUsers.value = LocalUser.fromJson(userdata);
  65. LogHelper().d(sysConfig.value.toJson());
  66. }
  67. } catch (e) {
  68. errorMsg.value = e.toString();
  69. } finally {
  70. }
  71. }
  72. final count = 0.obs;
  73. @override
  74. void onInit() {
  75. super.onInit();
  76. fetchSysConfig();
  77. fetchLocalUser();
  78. fetchUserinfo();
  79. }
  80. @override
  81. void onReady() {
  82. super.onReady();
  83. }
  84. @override
  85. void onClose() {
  86. super.onClose();
  87. }
  88. bool GetEnable() => userMode.value.enable == 1;
  89. String GetUserName() => localUsers.value.email.toString();
  90. String GetExpiredAt() => "到期时间:${userMode.value.expiredAt}";
  91. String GetTraffic() => "用户流量:${userMode.value.unusedTraffic}";
  92. String GetNode() => selectNode.value;
  93. void RouteNode() => Get.toNamed(Routes.NODE);
  94. }