| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import 'package:flutter/material.dart';
- import 'package:get/get.dart';
- import '../../../constants/enums.dart';
- import '../../../controllers/api_controller.dart';
- class FeedbackController extends GetxController {
- final apiController = Get.find<ApiController>();
- // 反馈内容控制器
- final feedbackController = TextEditingController();
- // 邮箱控制器
- final emailController = TextEditingController();
- // 反馈内容焦点
- final feedbackFocusNode = FocusNode();
- // 邮箱焦点
- final emailFocusNode = FocusNode();
- // 是否正在提交
- final isSubmitting = false.obs;
- @override
- void onInit() {
- super.onInit();
- }
- @override
- void onClose() {
- feedbackController.dispose();
- emailController.dispose();
- feedbackFocusNode.dispose();
- emailFocusNode.dispose();
- super.onClose();
- }
- void onBackPressed() {
- // 判断软键盘是否弹出
- if (feedbackFocusNode.hasFocus || emailFocusNode.hasFocus) {
- FocusManager.instance.primaryFocus?.unfocus();
- // 延迟100毫秒后关闭页面
- Future.delayed(const Duration(milliseconds: 250), () {
- Get.back();
- });
- } else {
- Get.back();
- }
- }
- /// 提交反馈
- void submitFeedback() async {
- if (feedbackController.text.trim().isEmpty) {
- Get.snackbar('提示', '请输入反馈内容');
- return;
- }
- if (emailController.text.trim().isEmpty) {
- Get.snackbar('提示', '请输入邮箱地址');
- return;
- }
- // 简单的邮箱格式验证
- if (!GetUtils.isEmail(emailController.text.trim())) {
- Get.snackbar('提示', '请输入有效的邮箱地址');
- return;
- }
- isSubmitting.value = true;
- try {
- // 模拟提交过程
- await Future.delayed(const Duration(seconds: 2));
- await apiController.uploadApiStatisticsLog([
- {
- 'module': LogModule.NM_FeedbackLog.name,
- 'feedback': feedbackController.text.trim(),
- 'email': emailController.text.trim(),
- },
- ]);
- // 提交成功
- Get.snackbar('成功', '反馈已提交,我们会尽快回复您');
- // 清空输入框
- feedbackController.clear();
- emailController.clear();
- } catch (e) {
- Get.snackbar('错误', '提交失败,请稍后重试');
- } finally {
- isSubmitting.value = false;
- }
- }
- /// 检查是否可以提交
- bool get canSubmit {
- return feedbackController.text.trim().isNotEmpty &&
- emailController.text.trim().isNotEmpty;
- }
- }
|