controller.dart 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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 '../controller.dart';
  8. class SummaryController extends BaseController {
  9. final TalkController talkController = Get.find();
  10. final Rxn<TalkBean> summaryBean = Rxn();
  11. StreamSubscription? _talkBeanListener;
  12. RxList<AgendaListAllBean> get agendaAllList => talkController.agendaAllList;
  13. @override
  14. void onReady() {
  15. super.onReady();
  16. _talkBeanListener = talkController.talkBean.listen((bean) {
  17. _dealTalkUpdate(bean);
  18. });
  19. _dealTalkUpdate(talkController.talkBean.value);
  20. }
  21. void _dealTalkUpdate(TalkBean? bean) {
  22. refreshSummaryData();
  23. }
  24. void refreshSummaryData() {
  25. String? id = talkController.talkBean.value?.id;
  26. if (id == null) {
  27. return;
  28. }
  29. talkRepository.talkInfo(id).then((data) {
  30. summaryBean.value = data.talkInfo;
  31. });
  32. talkController.refreshAgendaAllData();
  33. }
  34. @override
  35. void onClose() {
  36. super.onClose();
  37. _talkBeanListener?.cancel();
  38. }
  39. }