settlement_view.dart 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. import 'package:trackoffical_app/service/game/game.dart';
  4. import 'dialog/dialog_finish_result.dart';
  5. import '../../styles/theme.dart';
  6. class SettlementController extends GetxController{
  7. final tip = '正在计算'.obs;
  8. final game = GameService.to;
  9. _init()async{
  10. while(!isClosed){
  11. await Future.delayed(100.milliseconds);
  12. if(game.errorMsg.value.isNotEmpty){
  13. tip.value = game.errorMsg.value;
  14. }
  15. if(game.status != GameStatus.settlement){
  16. break;
  17. }
  18. }
  19. dialogFinishResult(game.lastGameSettlement);
  20. // Get.offAll(() => GameFinish3View(data: game.lastGameSettlement));
  21. }
  22. @override
  23. void onReady() {
  24. _init();
  25. }
  26. }
  27. class SettlementView extends GetView<SettlementController>{
  28. const SettlementView({super.key});
  29. static Bindings bindings() {
  30. return BindingsBuilder(() {
  31. Get.put(SettlementController());
  32. });
  33. }
  34. static show(){
  35. Get.offAll(
  36. ()=>const SettlementView(),
  37. binding: bindings()
  38. );
  39. }
  40. @override
  41. Widget build(BuildContext context) {
  42. return Scaffold(
  43. body: Center(
  44. child: Column(
  45. crossAxisAlignment: CrossAxisAlignment.center,
  46. mainAxisSize: MainAxisSize.min,
  47. children: [
  48. Obx(() => Text(controller.tip.value, style: context.textTheme.titleLarge)),
  49. Image.asset(
  50. 'assets/images/loading.gif',
  51. height: 60,
  52. width: 60,
  53. )
  54. ],
  55. )
  56. ),
  57. );
  58. }
  59. }
  60. void main() async {
  61. Get.put(SettlementController());
  62. runApp(GetMaterialApp(theme: appThemeData(), home: const SettlementView()));
  63. }