user_manage_controller.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. ..userList=userList.map((e) => e.toUserInfo()).toList();
  26. }
  27. }
  28. class UserInfo{
  29. var index = 0;
  30. late String name;
  31. DateTime? startAt;
  32. final _isNotShow = false.obs;
  33. final _flag = Flag.red.obs;
  34. bool get isNotShow => _isNotShow.value;
  35. set isNotShow(bool v){
  36. _isNotShow.value = v;
  37. }
  38. Flag get flag => _flag.value;
  39. set flag(Flag v){
  40. _flag.value = v;
  41. }
  42. }
  43. extension ToOrienteerInGameInfoExt on ToOrienteerInGameInfo{
  44. UserInfo toUserInfo(){
  45. return UserInfo()
  46. ..startAt=gameSaveInfo.hasStartAt()? gameSaveInfo.startAt.toDateTime(toLocal: true): null;
  47. }
  48. }
  49. class UserManageController extends GetxController{
  50. @override
  51. void onInit() {
  52. super.onInit();
  53. flushData();
  54. }
  55. Future<void> flushData()async{
  56. await tryApi(() async{
  57. final r = await ApiService.to.stub.toUserDetailQueryV2(ToUserDetailQueryRequestV2()
  58. ..mapId=MapWatchService.instance?.id.toInt()??0);
  59. activeList.value = r.list.map((e) => e.toActiveInfo()).toList();
  60. activeList.value = [
  61. ActiveInfo()
  62. ..id=1
  63. ..name='穿越荒野:勇闯野性之旅'
  64. ..userList.addAll([
  65. UserInfo()
  66. ..index=0
  67. ..name='123',
  68. UserInfo()
  69. ..index=1
  70. ..name='431'
  71. ..startAt = DateTime.now(),
  72. ]),
  73. ActiveInfo()
  74. ..id=2
  75. ..name='极限挑战 战胜重力'
  76. ];
  77. });
  78. }
  79. final activeList = <ActiveInfo>[].obs;
  80. final Rx<ActiveInfo?> selectActive = Rx(null);
  81. }