feedback_controller.dart 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:injectable/injectable.dart';
  3. import 'package:keyboard/base/base_controller.dart';
  4. import 'package:keyboard/data/repository/account_repository.dart';
  5. import 'package:get/get.dart';
  6. import '../../resource/string.gen.dart';
  7. import '../../utils/error_handler.dart';
  8. import '../../utils/toast_util.dart';
  9. enum FeedbackType {
  10. feedback(1),
  11. complaint(2);
  12. final int value;
  13. const FeedbackType(this.value);
  14. }
  15. @injectable
  16. class FeedbackController extends BaseController {
  17. final RxString _phone = ''.obs;
  18. final RxString _content = "".obs;
  19. final Rx<FeedbackType> type = FeedbackType.feedback.obs;
  20. get phone => _phone.value;
  21. get content => _content.value;
  22. final AccountRepository accountRepository;
  23. FeedbackController(this.accountRepository);
  24. onPhoneChanged(String phone) {
  25. _phone.value = phone;
  26. }
  27. onContentChanged(String content) {
  28. _content.value = content;
  29. }
  30. backClick() {
  31. debugPrint("backClick");
  32. Get.back();
  33. }
  34. submitClick() {
  35. if (_content.value.isEmpty) {
  36. if (type.value == FeedbackType.feedback) {
  37. ToastUtil.show(StringName.feedbackContentEmpty);
  38. } else {
  39. ToastUtil.show(StringName.complaintContentEmpty);
  40. }
  41. return;
  42. }
  43. if (_phone.value.isEmpty) {
  44. ToastUtil.show(StringName.feedbackPhoneEmpty);
  45. return;
  46. }
  47. accountRepository
  48. .complaintSubmit(_phone.value, _content.value)
  49. .then((data) {
  50. if (type.value == FeedbackType.feedback) {
  51. ToastUtil.show(StringName.feedbackSubmitSuccess);
  52. } else {
  53. ToastUtil.show(StringName.complaintContentSuccess);
  54. }
  55. Get.back();
  56. })
  57. .catchError((error) {
  58. ErrorHandler.toastError(error);
  59. ToastUtil.show("提交失败,请稍后重试");
  60. });
  61. }
  62. @override
  63. void onInit() {
  64. super.onInit();
  65. final arguments = Get.arguments;
  66. if (arguments != null && arguments["type"] != null) {
  67. type.value = arguments["type"];
  68. }
  69. }
  70. getTitleText() {
  71. if (type.value == FeedbackType.feedback) {
  72. return StringName.feedback;
  73. } else {
  74. return StringName.complaintReport;
  75. }
  76. }
  77. getContentTitle(){
  78. if (type.value == FeedbackType.feedback) {
  79. return StringName.feedbackContentTitle;
  80. } else {
  81. return StringName.complaintContentTitle;
  82. }
  83. }
  84. getContentHint() {
  85. if (type.value == FeedbackType.feedback) {
  86. return StringName.feedbackContentHint;
  87. } else {
  88. return StringName.complaintContentHint;
  89. }
  90. }
  91. }