From 9b0d1175270d686c856e05681bfb0df273ace735 Mon Sep 17 00:00:00 2001 From: tanlongsheng <252620078@qq.com> Date: Thu, 20 Mar 2025 15:38:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BC=9A=E8=AE=AE=E7=AC=94?= =?UTF-8?q?=E8=AE=B0=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/explore_controller.dart | 21 +++++++++++++------ .../meeting/bindings/meeting_binding.dart | 10 +++++++++ .../controllers/meeting_controller.dart | 3 +++ lib/modules/meeting/views/meeting_view.dart | 18 ++++++++++++++++ lib/modules/settings/views/settings_view.dart | 3 ++- lib/routes/app_pages.dart | 10 +++++++-- lib/routes/app_routes.dart | 3 ++- 7 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 lib/modules/meeting/bindings/meeting_binding.dart create mode 100644 lib/modules/meeting/controllers/meeting_controller.dart create mode 100644 lib/modules/meeting/views/meeting_view.dart diff --git a/lib/modules/explore/controllers/explore_controller.dart b/lib/modules/explore/controllers/explore_controller.dart index 86a7fe05d..6c19c5f27 100644 --- a/lib/modules/explore/controllers/explore_controller.dart +++ b/lib/modules/explore/controllers/explore_controller.dart @@ -34,6 +34,7 @@ class FunctionScene { final Color startColor; final Color endColor; final Color iconColor; + final String targetRoute; FunctionScene({ required this.title, @@ -42,6 +43,7 @@ class FunctionScene { required this.startColor, required this.endColor, required this.iconColor, + required this.targetRoute, }); } @@ -106,6 +108,7 @@ class ExploreController extends GetxController { startColor: const Color(0xFF3F51B5), endColor: const Color(0xFF673AB7), iconColor: const Color(0xFF3F51B5), + targetRoute: Routes.meeting, ), FunctionScene( title: 'studyAssistant'.tr, // 语言学习助手 @@ -114,6 +117,7 @@ class ExploreController extends GetxController { startColor: const Color(0xFF4CAF50), endColor: const Color(0xFF009688), iconColor: const Color(0xFF4CAF50), + targetRoute: '', ), FunctionScene( title: 'travelTranslator'.tr, // 旅行翻译助手 @@ -122,6 +126,7 @@ class ExploreController extends GetxController { startColor: const Color(0xFFFFC107), endColor: const Color(0xFFFF9800), iconColor: const Color(0xFFFFC107), + targetRoute: '', ), ]; @@ -177,13 +182,17 @@ class ExploreController extends GetxController { void onFunctionSceneTap(int index) { if (index < 0 || index >= functionScenes.length) return; - Get.snackbar( - 'scene'.tr, // 场景 - '${'youHaveSelected'.tr} ${functionScenes[index].title}', // 您选择了: - snackPosition: SnackPosition.TOP, - ); + final scene = functionScenes[index]; - // 实际应用中,这里应该跳转到对应的场景页面 + if (scene.targetRoute.isNotEmpty) { + Get.toNamed(scene.targetRoute); + } else { + Get.snackbar( + 'scene'.tr, // 场景 + '${'youHaveSelected'.tr} ${functionScenes[index].title}', // 您选择了: + snackPosition: SnackPosition.TOP, + ); + } } // 尝试新功能 diff --git a/lib/modules/meeting/bindings/meeting_binding.dart b/lib/modules/meeting/bindings/meeting_binding.dart new file mode 100644 index 000000000..82c4c9f5d --- /dev/null +++ b/lib/modules/meeting/bindings/meeting_binding.dart @@ -0,0 +1,10 @@ +import 'package:get/get.dart'; +import '../controllers/meeting_controller.dart'; + +class MeetingBinding extends Bindings { + @override + void dependencies() { + // 注册控制器 + Get.lazyPut(() => MeetingController()); + } +} diff --git a/lib/modules/meeting/controllers/meeting_controller.dart b/lib/modules/meeting/controllers/meeting_controller.dart new file mode 100644 index 000000000..1484a45af --- /dev/null +++ b/lib/modules/meeting/controllers/meeting_controller.dart @@ -0,0 +1,3 @@ +import 'package:get/get.dart'; + +class MeetingController extends GetxController {} diff --git a/lib/modules/meeting/views/meeting_view.dart b/lib/modules/meeting/views/meeting_view.dart new file mode 100644 index 000000000..a74d01157 --- /dev/null +++ b/lib/modules/meeting/views/meeting_view.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; +import 'package:get/get.dart'; + +import '../../../core/theme/app_colors.dart'; +import '../controllers/meeting_controller.dart'; + +class MeetingView extends GetView { + const MeetingView({super.key}); + + @override + Widget build(BuildContext context) { + final isDarkMode = Theme.of(context).brightness == Brightness.dark; + + return Scaffold( + backgroundColor: isDarkMode ? AppColors.darkBackground : Colors.grey[50], + ); + } +} diff --git a/lib/modules/settings/views/settings_view.dart b/lib/modules/settings/views/settings_view.dart index bc0a981e5..3deeac82f 100644 --- a/lib/modules/settings/views/settings_view.dart +++ b/lib/modules/settings/views/settings_view.dart @@ -1,3 +1,4 @@ +import 'package:app_settings/app_settings.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -321,7 +322,7 @@ class SettingsView extends GetView { titleColor: isDarkMode ? Colors.white : null, subtitleColor: isDarkMode ? Colors.white70 : null, onTap: () { - // 打开隐私设置页面 + AppSettings.openAppSettings(); }, isDarkMode: isDarkMode, ), diff --git a/lib/routes/app_pages.dart b/lib/routes/app_pages.dart index 7c3388e5e..b1c485550 100644 --- a/lib/routes/app_pages.dart +++ b/lib/routes/app_pages.dart @@ -3,6 +3,8 @@ import '../modules/home/views/home_view.dart'; import '../modules/home/bindings/home_binding.dart'; import '../modules/explore/views/explore_view.dart'; import '../modules/explore/bindings/explore_binding.dart'; +import '../modules/meeting/bindings/meeting_binding.dart'; +import '../modules/meeting/views/meeting_view.dart'; import '../modules/profile/views/profile_view.dart'; import '../modules/profile/bindings/profile_binding.dart'; import '../modules/chat/bindings/chat_binding.dart'; @@ -64,7 +66,6 @@ abstract class AppPages { page: () => const ProfileView(), binding: ProfileBinding(), ), - GetPage( name: Routes.translation, page: () => const TranslationView(), @@ -75,10 +76,15 @@ abstract class AppPages { page: () => const TranslationHistoryView(), binding: TranslationHistoryBinding(), ), + GetPage( + name: Routes.meeting, + page: () => const MeetingView(), + binding: MeetingBinding(), + ), GetPage( name: Routes.settings, page: () => const SettingsView(), binding: SettingsBinding(), ), ]; -} \ No newline at end of file +} diff --git a/lib/routes/app_routes.dart b/lib/routes/app_routes.dart index 1d6c8a1ea..7f68f6c4a 100644 --- a/lib/routes/app_routes.dart +++ b/lib/routes/app_routes.dart @@ -7,6 +7,7 @@ abstract class Routes { static const explore = '/explore'; static const chat = '/chat'; static const profile = '/profile'; + static const meeting = '/meeting'; static const settings = '/settings'; static const speechDemo = '/speech_demo'; static const TTS_TEST = '/tts_test'; @@ -18,4 +19,4 @@ abstract class Routes { static const translationHistory = '/translation_history'; static const FLUTTER_TTS_TEST = '/flutter_tts_test'; static const FLUTTER_ASR_TEST = '/flutter_asr_test'; -} \ No newline at end of file +}