controller.dart 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import 'package:electronic_assistant/base/base_controller.dart';
  2. import 'package:electronic_assistant/data/bean/agenda.dart';
  3. import 'package:electronic_assistant/data/bean/talks.dart';
  4. import 'package:electronic_assistant/data/repositories/agenda_repository.dart';
  5. import 'package:electronic_assistant/data/repositories/talk_repository.dart';
  6. import 'package:electronic_assistant/module/chat/view.dart';
  7. import 'package:electronic_assistant/utils/error_handler.dart';
  8. import 'package:flutter/cupertino.dart';
  9. import 'package:get/get.dart';
  10. import 'package:get/get_core/src/get_main.dart';
  11. import '../../../data/api/request/agenda_update_bean.dart';
  12. class AgendaDetailController extends BaseController {
  13. final Rxn<Agenda> detailBean = Rxn<Agenda>();
  14. final Rxn<TalkBean> talkBean = Rxn<TalkBean>();
  15. final etFieldController = TextEditingController();
  16. @override
  17. void onInit() {
  18. super.onInit();
  19. _getArguments();
  20. }
  21. void _getArguments() {
  22. if (Get.arguments is Agenda) {
  23. detailBean.value = Get.arguments as Agenda;
  24. requestTalkBeanData();
  25. }
  26. }
  27. void requestTalkBeanData() {
  28. String? talkId = detailBean.value?.talkId;
  29. if (talkId == null) {
  30. return;
  31. }
  32. talkRepository.talkInfo(talkId).then((data) {
  33. talkBean.value = data.talkInfo;
  34. }).catchError((error) {
  35. ErrorHandler.toastError(error);
  36. });
  37. }
  38. void onGoChatClick() {
  39. if (detailBean.value == null) {
  40. return;
  41. }
  42. if (talkBean.value == null) {
  43. ChatPage.startByTalkId(
  44. ChatFromType.fromAnalysisBtn, detailBean.value!.talkId,
  45. agenda: detailBean.value!);
  46. } else {
  47. ChatPage.startByTalk(ChatFromType.fromAnalysisBtn, talkBean.value!,
  48. agenda: detailBean.value!);
  49. }
  50. }
  51. void onTaskDoneClick() {
  52. if (detailBean.value == null) {
  53. return;
  54. }
  55. agendaRepository.agendaFinish(detailBean.value!.id, true).then((data) {
  56. agendaRepository.requestHomeAgendaData();
  57. Get.back();
  58. }).catchError((error) {
  59. ErrorHandler.toastError(error);
  60. });
  61. }
  62. void onEditAgenda(String newContent) {
  63. if (detailBean.value == null) {
  64. return;
  65. }
  66. agendaRepository.agendaUpdate(detailBean.value!.talkId, [
  67. AgendaUpdateBean(detailBean.value!.id, detailBean.value!.name, newContent)
  68. ]).then((data) {
  69. detailBean.value!.content = newContent;
  70. etFieldController.clear();
  71. }).catchError((error) {
  72. ErrorHandler.toastError(error);
  73. });
  74. }
  75. @override
  76. void onClose() {
  77. super.onClose();
  78. etFieldController.dispose();
  79. }
  80. }