feedback_controller.dart 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import 'package:flutter/material.dart';
  2. import 'package:get/get.dart';
  3. class FeedbackController extends GetxController {
  4. // 反馈内容控制器
  5. final feedbackController = TextEditingController();
  6. // 邮箱控制器
  7. final emailController = TextEditingController();
  8. // 是否正在提交
  9. final isSubmitting = false.obs;
  10. @override
  11. void onInit() {
  12. super.onInit();
  13. }
  14. @override
  15. void onReady() {
  16. super.onReady();
  17. }
  18. @override
  19. void onClose() {
  20. feedbackController.dispose();
  21. emailController.dispose();
  22. super.onClose();
  23. }
  24. /// 提交反馈
  25. void submitFeedback() async {
  26. if (feedbackController.text.trim().isEmpty) {
  27. Get.snackbar('提示', '请输入反馈内容');
  28. return;
  29. }
  30. if (emailController.text.trim().isEmpty) {
  31. Get.snackbar('提示', '请输入邮箱地址');
  32. return;
  33. }
  34. // 简单的邮箱格式验证
  35. if (!GetUtils.isEmail(emailController.text.trim())) {
  36. Get.snackbar('提示', '请输入有效的邮箱地址');
  37. return;
  38. }
  39. isSubmitting.value = true;
  40. try {
  41. // 模拟提交过程
  42. await Future.delayed(const Duration(seconds: 2));
  43. // 提交成功
  44. Get.snackbar('成功', '反馈已提交,我们会尽快回复您');
  45. // 清空输入框
  46. feedbackController.clear();
  47. emailController.clear();
  48. } catch (e) {
  49. Get.snackbar('错误', '提交失败,请稍后重试');
  50. } finally {
  51. isSubmitting.value = false;
  52. }
  53. }
  54. /// 检查是否可以提交
  55. bool get canSubmit {
  56. return feedbackController.text.trim().isNotEmpty &&
  57. emailController.text.trim().isNotEmpty;
  58. }
  59. }