user_manage_controller.dart 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import 'package:application/service/api.dart';
  2. import 'package:application/service/map_watch.dart';
  3. import 'package:application/utils.dart';
  4. import '../../../widget.dart';
  5. enum Flag{
  6. red, yellow, blue,
  7. ;
  8. Color color(){
  9. return switch(this){
  10. red=> Colors.red,
  11. yellow=> Colors.yellow,
  12. blue=>Colors.blue,
  13. };
  14. }
  15. }
  16. class ActiveInfo{
  17. var id=0;
  18. var name = '';
  19. var userList = <UserInfo>[];
  20. }
  21. extension ToActionInfoExt on ToActionInfo{
  22. ActiveInfo toActiveInfo(){
  23. return ActiveInfo()
  24. ..id=actId
  25. ..name=actName
  26. ..userList=userList.map((e) => e.toUserInfo()).toList();
  27. }
  28. }
  29. class UserInfo{
  30. var index = 0;
  31. late String name;
  32. DateTime? startAt;
  33. final _isNotShow = false.obs;
  34. final _flag = Flag.red.obs;
  35. bool get isNotShow => _isNotShow.value;
  36. set isNotShow(bool v){
  37. _isNotShow.value = v;
  38. }
  39. Flag get flag => _flag.value;
  40. set flag(Flag v){
  41. _flag.value = v;
  42. }
  43. }
  44. extension ToOrienteerInGameInfoExt on ToOrienteerInGameInfo{
  45. UserInfo toUserInfo(){
  46. return UserInfo()
  47. ..name=baseInfo.name
  48. ..startAt=gameSaveInfo.hasStartAt()? gameSaveInfo.startAt.toDateTime(toLocal: true): null;
  49. }
  50. }
  51. class UserManageController extends GetxController{
  52. @override
  53. void onInit() {
  54. super.onInit();
  55. flushData();
  56. }
  57. Future<void> flushData()async{
  58. await tryApi(() async{
  59. final r = await ApiService.to.stub.toUserDetailQueryV2(ToUserDetailQueryRequestV2()
  60. ..mapId=MapWatchService.instance?.id.toInt()??0
  61. ..isFullQuery=false);
  62. activeList.value = r.list.map((e) => e.toActiveInfo()).toList();
  63. activeList.value = [
  64. ActiveInfo()
  65. ..id=1
  66. ..name='穿越荒野:勇闯野性之旅'
  67. ..userList.addAll([
  68. UserInfo()
  69. ..index=0
  70. ..name='123',
  71. UserInfo()
  72. ..index=1
  73. ..name='431'
  74. ..startAt = DateTime.now(),
  75. ]),
  76. ActiveInfo()
  77. ..id=2
  78. ..name='极限挑战 战胜重力'
  79. ];
  80. });
  81. }
  82. final activeList = <ActiveInfo>[].obs;
  83. final Rx<ActiveInfo?> selectActive = Rx(null);
  84. }