precode_controller.dart 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import 'package:flutter/services.dart';
  2. import 'package:get/get.dart';
  3. import '../../../routes/app_pages.dart';
  4. class PrecodeController extends GetxController {
  5. // Pre Code 数据
  6. final preCode = '673 888 888 999'.obs;
  7. // 是否显示完整代码
  8. final isPreviewMode = false.obs;
  9. // 切换预览模式
  10. void togglePreview() {
  11. isPreviewMode.value = !isPreviewMode.value;
  12. }
  13. // 获取显示的代码(隐藏或完整)
  14. String get displayCode {
  15. if (isPreviewMode.value) {
  16. return preCode.value;
  17. } else {
  18. // 隐藏中间部分,只显示前3位和后3位
  19. final parts = preCode.value.split(' ');
  20. if (parts.length >= 3) {
  21. return '${parts[0]} ****** ${parts[parts.length - 1]}';
  22. }
  23. return preCode.value;
  24. }
  25. }
  26. // 复制代码
  27. void copyCode() {
  28. Clipboard.setData(ClipboardData(text: preCode.value));
  29. Get.snackbar(
  30. '已复制',
  31. 'Pre Code 已复制到剪贴板',
  32. snackPosition: SnackPosition.bottom,
  33. duration: const Duration(seconds: 2),
  34. );
  35. }
  36. // 发送到邮箱
  37. void sendToEmail() {
  38. Get.toNamed(Routes.PRECODE_SENDEMAIL);
  39. }
  40. // 保存本地副本
  41. void saveLocalCopy() {
  42. // TODO: 实现保存本地副本功能
  43. Get.snackbar('提示', '保存本地副本功能开发中...', snackPosition: SnackPosition.bottom);
  44. }
  45. }