controller.dart 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import 'package:electronic_assistant/base/base_controller.dart';
  2. import 'package:electronic_assistant/data/bean/talks.dart';
  3. import 'package:electronic_assistant/data/repositories/task_repository.dart';
  4. import 'package:electronic_assistant/module/home/view.dart';
  5. import 'package:electronic_assistant/module/main/controller.dart';
  6. import 'package:electronic_assistant/resource/string.gen.dart';
  7. import 'package:electronic_assistant/utils/toast_util.dart';
  8. import 'package:electronic_assistant/widget/pull_to_refresh.dart';
  9. import 'package:get/get.dart';
  10. import '../../data/bean/agenda.dart';
  11. import '../../data/repositories/account_repository.dart';
  12. import '../../data/repositories/home_repository.dart';
  13. import '../../utils/animated_list_controller.dart';
  14. import '../../utils/error_handler.dart';
  15. class HomePageController extends BaseController {
  16. get isLogin => accountRepository.isLogin.value;
  17. get loginTxt => accountRepository.isLogin.value
  18. ? accountRepository.getUserSubName(accountRepository.phone)
  19. : StringName.homeGoLogin.tr;
  20. final taskList = AnimatedListController<TalkBean>();
  21. final agendaList = AnimatedListController<Agenda>();
  22. final refreshController = PullToRefreshController();
  23. @override
  24. void onReady() {
  25. super.onReady();
  26. refreshController.requestRefresh();
  27. }
  28. void requestHomeData() {
  29. homeRepository.homeInfo().then((data) {
  30. taskList.clearAll();
  31. taskList.addAll(data.talks);
  32. agendaList.clearAll();
  33. agendaList.addAll(data.agendas,
  34. duration: const Duration(milliseconds: 500));
  35. }).whenComplete(() {
  36. refreshController.refreshCompleted();
  37. });
  38. }
  39. void requestName(String? newName, TalkBean bean) {
  40. taskRepository.talkRename(bean.id, newName).then((data) {
  41. bean.title = newName;
  42. int index = taskList.indexOf(bean);
  43. if (index != -1) {
  44. taskList.update(index, bean);
  45. ToastUtil.showToast(StringName.talkRenameSuccess.tr);
  46. }
  47. }).catchError((error) {
  48. ErrorHandler.toastError(error, message: StringName.talkRenameFail.tr);
  49. });
  50. }
  51. void goTalkRecordPage() {
  52. Get.find<MainController>().updateIndexByPageName(StringName.mainTabFile);
  53. }
  54. void showLoginDrawer() {
  55. Get.find<MainController>().openDrawer();
  56. }
  57. void requestDelete(TalkBean item) {
  58. taskRepository.talkDelete(item.id).then((data) {
  59. requestHomeData();
  60. }).catchError((error) {
  61. ErrorHandler.toastError(error, message: StringName.talkDeleteFail.tr);
  62. });
  63. }
  64. }