controller.dart 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'dart:async';
  2. import 'package:electronic_assistant/base/base_controller.dart';
  3. import 'package:electronic_assistant/data/bean/agenda.dart';
  4. import 'package:electronic_assistant/data/bean/talks.dart';
  5. import 'package:electronic_assistant/data/repositories/talk_repository.dart';
  6. import 'package:flutter/cupertino.dart';
  7. import 'package:get/get.dart';
  8. import '../../../data/bean/agenda_list_all_bean.dart';
  9. import '../controller.dart';
  10. class SummaryController extends BaseController {
  11. final TalkController talkController = Get.find();
  12. final Rxn<TalkBean> summaryBean = Rxn();
  13. StreamSubscription? _talkStatusListener;
  14. RxList<AgendaListAllBean> get agendaAllList => talkController.agendaAllList;
  15. RxBool get _isEditModel => talkController.isEditModelRx;
  16. bool get isEditModel => _isEditModel.value;
  17. @override
  18. void onReady() {
  19. super.onReady();
  20. _talkStatusListener =
  21. talkController.talkBean.value?.status.listen((status) {
  22. _dealTalkUpdate();
  23. });
  24. _dealTalkUpdate();
  25. }
  26. void _dealTalkUpdate() {
  27. refreshSummaryData();
  28. }
  29. void refreshSummaryData() {
  30. String? id = talkController.talkBean.value?.id;
  31. if (id == null) {
  32. return;
  33. }
  34. talkRepository.talkInfo(id).then((data) {
  35. summaryBean.value = data.talkInfo;
  36. });
  37. talkController.refreshAgendaAllData();
  38. }
  39. void removeTalkAgenda(List<Agenda>? list, Agenda agenda) {
  40. list?.remove(agenda);
  41. agendaAllList.refresh();
  42. }
  43. @override
  44. void onClose() {
  45. super.onClose();
  46. _talkStatusListener?.cancel();
  47. }
  48. }