Browse Source

添加会议助手连接设备

newdev_shunjiawei
tanlongsheng 1 year ago
parent
commit
c26c6ce4da
  1. 10
      lib/modules/meeting/bindings/meeting_connect_binding.dart
  2. 3
      lib/modules/meeting/controllers/meeting_connect_controller.dart
  3. 13
      lib/modules/meeting/views/meeting_connect_view.dart
  4. 66
      lib/modules/meeting/views/meeting_view.dart
  5. 9
      lib/routes/app_pages.dart
  6. 1
      lib/routes/app_routes.dart

10
lib/modules/meeting/bindings/meeting_connect_binding.dart

@ -0,0 +1,10 @@
import 'package:get/get.dart';
import '../controllers/meeting_connect_controller.dart';
class MeetingConnectBinding extends Bindings {
@override
void dependencies() {
// 注册控制器
Get.lazyPut<MeetingConnectController>(() => MeetingConnectController());
}
}

3
lib/modules/meeting/controllers/meeting_connect_controller.dart

@ -0,0 +1,3 @@
import 'package:get/get.dart';
class MeetingConnectController extends GetxController {}

13
lib/modules/meeting/views/meeting_connect_view.dart

@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../controllers/meeting_connect_controller.dart';
class MeetingConnectView extends GetView<MeetingConnectController> {
const MeetingConnectView({super.key});
@override
Widget build(BuildContext context) {
return const Placeholder();
}
}

66
lib/modules/meeting/views/meeting_view.dart

@ -23,7 +23,15 @@ class MeetingView extends GetView<MeetingController> {
appBar: _buildAppBar(context, isDarkMode),
body: Stack(
children: [
_buildBody(context, isDarkMode),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
_buildConnect(isDarkMode),
Expanded(
child: _buildBody(context, isDarkMode),
),
],
),
_buildMicButton(context, isDarkMode),
],
),
@ -32,6 +40,62 @@ class MeetingView extends GetView<MeetingController> {
);
}
Widget _buildConnect(bool isDarkMode) {
return GestureDetector(
onTap: () {
Get.toNamed(Routes.meetingConnect);
},
child: Container(
padding: EdgeInsets.all(5.w),
margin: EdgeInsets.symmetric(
horizontal: 12.w,
vertical: 10.w,
),
decoration: BoxDecoration(
color: isDarkMode ? Colors.white.withOpacity(0.05) : Colors.white,
borderRadius: BorderRadius.circular(50.w),
boxShadow: [
BoxShadow(
color: isDarkMode
? Colors.black.withOpacity(0.2)
: Colors.black.withOpacity(0.05),
blurRadius: 10,
offset: const Offset(0, 2),
),
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 32.w,
height: 32.w,
decoration: BoxDecoration(
color: Colors.black,
borderRadius: BorderRadius.circular(50.w),
),
child: Icon(
Icons.add,
color: Colors.white,
size: 20.sp,
),
),
Padding(
padding: EdgeInsets.symmetric(horizontal: 5.w),
child: Text(
'连接',
style: TextStyle(
color: isDarkMode ? Colors.white : Colors.black87,
fontSize: 14.sp,
),
),
)
],
),
),
);
}
/// 构建底部中间的录音按钮
Widget _buildMicButton(BuildContext context, bool isDarkMode) {
return Positioned(

9
lib/routes/app_pages.dart

@ -6,7 +6,9 @@ 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/bindings/meeting_connect_binding.dart';
import '../modules/meeting/bindings/meeting_details_binding.dart';
import '../modules/meeting/views/meeting_connect_view.dart';
import '../modules/meeting/views/meeting_details_view.dart';
import '../modules/meeting/bindings/meeting_record_binding.dart';
import '../modules/meeting/views/meeting_record_view.dart';
@ -157,6 +159,13 @@ abstract class AppPages {
transition: Transition.rightToLeft,
transitionDuration: Duration(milliseconds: 250),
),
GetPage(
name: Routes.meetingConnect,
page: () => const MeetingConnectView(),
binding: MeetingConnectBinding(),
transition: Transition.rightToLeft,
transitionDuration: Duration(milliseconds: 250),
),
GetPage(
name: Routes.meetingRecord,
page: () => const MeetingRecordView(),

1
lib/routes/app_routes.dart

@ -22,6 +22,7 @@ abstract class Routes {
// 会议相关
static const meeting = '/meeting';
static const meetingDetails = '/meeting/details';
static const meetingConnect = '/meeting/connect';
static const meetingRecord = '/meeting/record';
// 语言功能
static const translation = '/translation'; // 实时翻译

Loading…
Cancel
Save