controller.dart 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import 'package:electronic_assistant/base/base_controller.dart';
  2. import 'package:electronic_assistant/data/bean/template_bean.dart';
  3. import 'package:electronic_assistant/module/template/template_detail/view.dart';
  4. import 'package:electronic_assistant/module/template/template_edit/view.dart';
  5. import 'package:electronic_assistant/resource/colors.gen.dart';
  6. import 'package:electronic_assistant/resource/string.gen.dart';
  7. import 'package:electronic_assistant/utils/error_handler.dart';
  8. import 'package:electronic_assistant/utils/expand.dart';
  9. import 'package:electronic_assistant/widget/alert_dialog.dart';
  10. import 'package:flutter/cupertino.dart';
  11. import 'package:flutter_screenutil/flutter_screenutil.dart';
  12. import 'package:get/get.dart';
  13. import 'package:get/get_core/src/get_main.dart';
  14. import '../../../data/repositories/template_repository.dart';
  15. class TemplateListController extends BaseController {
  16. final RxList<TemplateBean> templateList = RxList();
  17. int? maxTemplateCount;
  18. bool? result;
  19. @override
  20. void onInit() {
  21. super.onInit();
  22. refreshTemplateList();
  23. }
  24. void refreshTemplateList() {
  25. templateRepository.getTemplateList().then((data) {
  26. templateList.clear();
  27. var defaultTemp = data.defaultTemplate;
  28. if (defaultTemp != null) {
  29. defaultTemp.setDefaultTemp(true);
  30. templateList.add(defaultTemp);
  31. }
  32. var customTemp = data.templateList;
  33. if (customTemp != null) {
  34. templateList.addAll(customTemp);
  35. }
  36. maxTemplateCount = data.maxTemplateCount;
  37. }).catchError((error) {
  38. debugPrint('error: $error');
  39. ErrorHandler.toastError(error);
  40. });
  41. }
  42. void onBack() {
  43. Get.back(result: result);
  44. }
  45. void onAddTemplate() async {
  46. dynamic isSuccess = await TemplateEditPage.addStart();
  47. if (isSuccess is bool && isSuccess) {
  48. result = true;
  49. refreshTemplateList();
  50. }
  51. }
  52. void onDetailClick(TemplateBean bean) async {
  53. dynamic isSuccess = await TemplateDetailPage.start(bean);
  54. if (isSuccess == true) {
  55. result = true;
  56. refreshTemplateList();
  57. }
  58. }
  59. void templateEdit(TemplateBean item) async {
  60. dynamic isSuccess = await TemplateEditPage.editDetail(item);
  61. if (isSuccess == true) {
  62. result = true;
  63. templateList.refresh();
  64. }
  65. }
  66. void onDeleteTemplate(TemplateBean item) {
  67. EAAlertDialog.show(
  68. contentWidget: Padding(
  69. padding: EdgeInsets.only(top: 8.w),
  70. child: Text(
  71. StringName.templateDialogDeleteTitle.tr
  72. .replacePlaceholders([item.name]),
  73. style: TextStyle(
  74. fontSize: 15.sp,
  75. color: ColorName.primaryTextColor,
  76. fontWeight: FontWeight.bold),
  77. ),
  78. ),
  79. cancelText: StringName.cancel.tr,
  80. confirmText: StringName.sure.tr,
  81. confirmOnTap: () {
  82. _deleteTemplate(item);
  83. });
  84. }
  85. void _deleteTemplate(TemplateBean item) {
  86. if (item.id == null) {
  87. return;
  88. }
  89. templateRepository.templateDelete(item.id!).then((value) {
  90. result = true;
  91. refreshTemplateList();
  92. }).catchError((error) {
  93. ErrorHandler.toastError(error);
  94. });
  95. }
  96. }