diff --git a/lib/modules/meeting/controllers/meeting_controller.dart b/lib/modules/meeting/controllers/meeting_controller.dart index 39c3856fe..a865d5362 100644 --- a/lib/modules/meeting/controllers/meeting_controller.dart +++ b/lib/modules/meeting/controllers/meeting_controller.dart @@ -5,6 +5,8 @@ import '../views/meeting_home_view.dart'; import '../views/meeting_mine_view.dart'; class MeetingController extends GetxController { + final GlobalKey scaffoldKey = GlobalKey(); + late PageController pageController; final List pageList = [ diff --git a/lib/modules/meeting/controllers/meeting_home_controller.dart b/lib/modules/meeting/controllers/meeting_home_controller.dart index b08d73b63..cb91fdde9 100644 --- a/lib/modules/meeting/controllers/meeting_home_controller.dart +++ b/lib/modules/meeting/controllers/meeting_home_controller.dart @@ -20,8 +20,10 @@ import 'package:share_plus/share_plus.dart'; import '../../../data/services/meeting/meeting_task_service.dart'; import '../../../data/services/meeting/meeting_upload_service.dart'; import '../../../routes/app_routes.dart'; +import 'meeting_controller.dart'; class MeetingHomeController extends GetxController { + final meetingController = Get.find(); final meetingUploadService = Get.find(); final meetingTaskService = Get.find(); diff --git a/lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart b/lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart index c7b856dea..5a988ec5d 100644 --- a/lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart +++ b/lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart @@ -2,19 +2,19 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import '../../controllers/meeting_controller.dart'; import '../../controllers/meeting_home_controller.dart'; class FiltrateDrawer extends StatefulWidget { - final GlobalKey scaffoldKey; - - const FiltrateDrawer(this.scaffoldKey, {super.key}); + const FiltrateDrawer({super.key}); @override State createState() => _FiltrateDrawerState(); } class _FiltrateDrawerState extends State { - final _controller = Get.find(); + final _controller = Get.find(); + final _homeController = Get.find(); @override Widget build(BuildContext context) { @@ -41,7 +41,7 @@ class _FiltrateDrawerState extends State { ), Expanded( child: TextField( - controller: _controller.filtrateController, + controller: _homeController.filtrateController, style: TextStyle( color: Colors.black87, fontSize: 14.sp, @@ -58,21 +58,21 @@ class _FiltrateDrawerState extends State { contentPadding: EdgeInsets.symmetric(vertical: 10.w), ), onSubmitted: (String value) { - widget.scaffoldKey.currentState?.closeDrawer(); - _controller.dataList.value = - _controller.originalDataList.where((i) { + _controller.scaffoldKey.currentState?.closeDrawer(); + _homeController.dataList.value = + _homeController.originalDataList.where((i) { final titleLower = i['title'].trim().toLowerCase(); final queryLower = value.trim().toLowerCase(); bool isType = true; - if (_controller.filtrateType.value.isNotEmpty) { + if (_homeController.filtrateType.value.isNotEmpty) { isType = - _controller.filtrateType.value == i['type']; + _homeController.filtrateType.value == i['type']; } return isType && titleLower.contains(queryLower); }).toList(); - if (_controller.isAsc) { - _controller.dataList.value = - _controller.dataList.reversed.toList(); + if (_homeController.isAsc) { + _homeController.dataList.value = + _homeController.dataList.reversed.toList(); } }, ), @@ -87,7 +87,7 @@ class _FiltrateDrawerState extends State { behavior: HitTestBehavior.translucent, child: Container( padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.w), - decoration: _controller.filtrateType.value == '' + decoration: _homeController.filtrateType.value == '' ? BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(12.w), @@ -109,7 +109,7 @@ class _FiltrateDrawerState extends State { ), 6.horizontalSpace, Text( - '全部文件(${_controller.originalDataList.length})', + '全部文件(${_homeController.originalDataList.length})', style: TextStyle( color: Colors.black87, fontSize: 14.sp, @@ -148,7 +148,7 @@ class _FiltrateDrawerState extends State { padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.w), margin: EdgeInsets.symmetric(vertical: 2.w), - decoration: _controller.filtrateType.value == name + decoration: _homeController.filtrateType.value == name ? BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(12.w), @@ -184,10 +184,10 @@ class _FiltrateDrawerState extends State { ), GestureDetector( onTap: () { - widget.scaffoldKey.currentState?.closeDrawer(); - _controller.isAsc = !_controller.isAsc; - _controller.dataList.value = - _controller.dataList.reversed.toList(); + _controller.scaffoldKey.currentState?.closeDrawer(); + _homeController.isAsc = !_homeController.isAsc; + _homeController.dataList.value = + _homeController.dataList.reversed.toList(); }, behavior: HitTestBehavior.translucent, child: Container( @@ -204,7 +204,7 @@ class _FiltrateDrawerState extends State { ), ), Icon( - _controller.isAsc + _homeController.isAsc ? Icons.keyboard_double_arrow_up : Icons.keyboard_double_arrow_down, color: Colors.grey, @@ -221,17 +221,20 @@ class _FiltrateDrawerState extends State { } void _filtrateDataList(String type) { - widget.scaffoldKey.currentState?.closeDrawer(); - _controller.filtrateType.value = type; - _controller.filtrateController.text = ''; + _controller.scaffoldKey.currentState?.closeDrawer(); + _homeController.filtrateType.value = type; + _homeController.filtrateController.text = ''; if (type.isNotEmpty) { - _controller.dataList.value = - _controller.originalDataList.where((i) => i['type'] == type).toList(); + _homeController.dataList.value = _homeController.originalDataList + .where((i) => i['type'] == type) + .toList(); } else { - _controller.dataList.value = List.from(_controller.originalDataList); + _homeController.dataList.value = + List.from(_homeController.originalDataList); } - if (_controller.isAsc) { - _controller.dataList.value = _controller.dataList.reversed.toList(); + if (_homeController.isAsc) { + _homeController.dataList.value = + _homeController.dataList.reversed.toList(); } } } diff --git a/lib/modules/meeting/views/meeting_home_view.dart b/lib/modules/meeting/views/meeting_home_view.dart index 1c0eb5645..2d79397e5 100644 --- a/lib/modules/meeting/views/meeting_home_view.dart +++ b/lib/modules/meeting/views/meeting_home_view.dart @@ -9,7 +9,6 @@ import '../../../routes/app_routes.dart'; import '../controllers/meeting_home_controller.dart'; import '../model/meeting_model.dart'; import 'bottomSheet/edit_title_bottom_sheet.dart'; -import 'bottomSheet/filtrate_drawer.dart'; import 'bottomSheet/import_audio_bottom_sheet.dart'; class MeetingHomeView extends GetView { @@ -17,28 +16,20 @@ class MeetingHomeView extends GetView { @override Widget build(BuildContext context) { - final GlobalKey scaffoldKey = GlobalKey(); final isDarkMode = Theme.of(context).brightness == Brightness.dark; return PopScope( onPopInvokedWithResult: controller.onPopInvokedWithResult, child: Scaffold( - key: scaffoldKey, backgroundColor: isDarkMode ? Colors.black : Colors.grey[100], appBar: _buildAppBar(isDarkMode), - drawer: Drawer( - width: 260.w, - backgroundColor: Colors.grey[50], - child: FiltrateDrawer(scaffoldKey), - ), - drawerEnableOpenDragGesture: false, body: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - _buildFiltrate(scaffoldKey, isDarkMode), + _buildFiltrate(isDarkMode), _buildConnect(isDarkMode), ], ), @@ -67,10 +58,10 @@ class MeetingHomeView extends GetView { ); } - Widget _buildFiltrate(GlobalKey scaffoldKey, bool isDarkMode) { + Widget _buildFiltrate(bool isDarkMode) { return GestureDetector( onTap: () { - scaffoldKey.currentState?.openDrawer(); + controller.meetingController.scaffoldKey.currentState?.openDrawer(); }, behavior: HitTestBehavior.translucent, child: Row( diff --git a/lib/modules/meeting/views/meeting_view.dart b/lib/modules/meeting/views/meeting_view.dart index b71be602e..c080614b2 100644 --- a/lib/modules/meeting/views/meeting_view.dart +++ b/lib/modules/meeting/views/meeting_view.dart @@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import '../controllers/meeting_controller.dart'; +import 'bottomSheet/filtrate_drawer.dart'; class MeetingView extends GetView { const MeetingView({super.key}); @@ -10,11 +11,18 @@ class MeetingView extends GetView { @override Widget build(BuildContext context) { return Scaffold( + key: controller.scaffoldKey, body: PageView( physics: const NeverScrollableScrollPhysics(), controller: controller.pageController, children: controller.pageList, ), + drawer: Drawer( + width: 260.w, + backgroundColor: Colors.grey[50], + child: const FiltrateDrawer(), + ), + drawerEnableOpenDragGesture: false, bottomNavigationBar: Stack( alignment: Alignment.center, clipBehavior: Clip.none,