controller.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'dart:async';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:electronic_assistant/data/bean/talks.dart';
  4. import 'package:electronic_assistant/data/repositories/talk_repository.dart';
  5. import 'package:get/get.dart';
  6. import '../../../data/bean/agenda_list_all_bean.dart';
  7. import '../../../data/bean/talk_info.dart';
  8. import '../controller.dart';
  9. class SummaryController extends BaseController {
  10. final TalkController talkController = Get.find();
  11. final summaryBean = TalkInfo().obs;
  12. StreamSubscription? _talkBeanListener;
  13. RxList<AgendaListAllBean> get agendaAllList => talkController.agendaAllList;
  14. @override
  15. void onReady() {
  16. super.onReady();
  17. _talkBeanListener = talkController.talkBean.listen((bean) {
  18. _dealTalkUpdate(bean);
  19. });
  20. _dealTalkUpdate(talkController.talkBean.value);
  21. }
  22. void _dealTalkUpdate(TalkBean bean) {
  23. refreshSummaryData();
  24. }
  25. void refreshSummaryData() {
  26. String? id = talkController.talkBean.value.id;
  27. if (id == null) {
  28. return;
  29. }
  30. talkRepository.talkInfo(id).then((data) {
  31. if (data.talkInfo != null) {
  32. summaryBean.value = data.talkInfo!;
  33. }
  34. });
  35. talkController.refreshAgendaAllData();
  36. }
  37. @override
  38. void onClose() {
  39. super.onClose();
  40. _talkBeanListener?.cancel();
  41. }
  42. }