import 'package:application/logger.dart'; import 'package:application/service/api.dart'; import 'package:application/service/map_watch.dart'; import 'package:get/get.dart'; import '../home_controller.dart'; export 'package:application/service/map_watch.dart'; class UserInfo{ var data = ToHisUserBasic(); final isExpand = false.obs; } typedef DetailSimple = ToHisUserInfo; class DataDetailController extends GetxController{ HomeController get _home => Get.find(); MapWatchService? get mapWatch => MapWatchService.instance; final userMap = {}.obs; Iterable get userList => userMap.values; final selectedDetail = DetailSimple().obs; final selectedUserId = (-9).obs; @override void onInit() { super.onInit(); workFlush(); } Future workFlush()async{ while(!isClosed){ await flushData(); await 1.seconds.delay(); } } Future flushData()async { final map = mapWatch; if(map==null){ return; } try { final r = await ApiService.to.stub.toHistoryUserListQuery(IdRequest(id: map.id)); for(final one in r.list){ final updated = userMap[one.oId]?? UserInfo(); updated.data = one; userMap[one.oId] = updated; } } catch (e) { error(e); } } }