Browse Source

修改侧边栏

weicu
tanlongsheng 1 year ago
parent
commit
621d33f6cb
  1. 2
      lib/modules/meeting/controllers/meeting_controller.dart
  2. 2
      lib/modules/meeting/controllers/meeting_home_controller.dart
  3. 61
      lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart
  4. 15
      lib/modules/meeting/views/meeting_home_view.dart
  5. 8
      lib/modules/meeting/views/meeting_view.dart

2
lib/modules/meeting/controllers/meeting_controller.dart

@ -5,6 +5,8 @@ import '../views/meeting_home_view.dart';
import '../views/meeting_mine_view.dart'; import '../views/meeting_mine_view.dart';
class MeetingController extends GetxController { class MeetingController extends GetxController {
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
late PageController pageController; late PageController pageController;
final List<Widget> pageList = [ final List<Widget> pageList = [

2
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_task_service.dart';
import '../../../data/services/meeting/meeting_upload_service.dart'; import '../../../data/services/meeting/meeting_upload_service.dart';
import '../../../routes/app_routes.dart'; import '../../../routes/app_routes.dart';
import 'meeting_controller.dart';
class MeetingHomeController extends GetxController { class MeetingHomeController extends GetxController {
final meetingController = Get.find<MeetingController>();
final meetingUploadService = Get.find<MeetingUploadService>(); final meetingUploadService = Get.find<MeetingUploadService>();
final meetingTaskService = Get.find<MeetingTaskService>(); final meetingTaskService = Get.find<MeetingTaskService>();

61
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:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../../controllers/meeting_controller.dart';
import '../../controllers/meeting_home_controller.dart'; import '../../controllers/meeting_home_controller.dart';
class FiltrateDrawer extends StatefulWidget { class FiltrateDrawer extends StatefulWidget {
final GlobalKey<ScaffoldState> scaffoldKey; const FiltrateDrawer({super.key});
const FiltrateDrawer(this.scaffoldKey, {super.key});
@override @override
State<FiltrateDrawer> createState() => _FiltrateDrawerState(); State<FiltrateDrawer> createState() => _FiltrateDrawerState();
} }
class _FiltrateDrawerState extends State<FiltrateDrawer> { class _FiltrateDrawerState extends State<FiltrateDrawer> {
final _controller = Get.find<MeetingHomeController>(); final _controller = Get.find<MeetingController>();
final _homeController = Get.find<MeetingHomeController>();
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -41,7 +41,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
), ),
Expanded( Expanded(
child: TextField( child: TextField(
controller: _controller.filtrateController, controller: _homeController.filtrateController,
style: TextStyle( style: TextStyle(
color: Colors.black87, color: Colors.black87,
fontSize: 14.sp, fontSize: 14.sp,
@ -58,21 +58,21 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
contentPadding: EdgeInsets.symmetric(vertical: 10.w), contentPadding: EdgeInsets.symmetric(vertical: 10.w),
), ),
onSubmitted: (String value) { onSubmitted: (String value) {
widget.scaffoldKey.currentState?.closeDrawer(); _controller.scaffoldKey.currentState?.closeDrawer();
_controller.dataList.value = _homeController.dataList.value =
_controller.originalDataList.where((i) { _homeController.originalDataList.where((i) {
final titleLower = i['title'].trim().toLowerCase(); final titleLower = i['title'].trim().toLowerCase();
final queryLower = value.trim().toLowerCase(); final queryLower = value.trim().toLowerCase();
bool isType = true; bool isType = true;
if (_controller.filtrateType.value.isNotEmpty) { if (_homeController.filtrateType.value.isNotEmpty) {
isType = isType =
_controller.filtrateType.value == i['type']; _homeController.filtrateType.value == i['type'];
} }
return isType && titleLower.contains(queryLower); return isType && titleLower.contains(queryLower);
}).toList(); }).toList();
if (_controller.isAsc) { if (_homeController.isAsc) {
_controller.dataList.value = _homeController.dataList.value =
_controller.dataList.reversed.toList(); _homeController.dataList.reversed.toList();
} }
}, },
), ),
@ -87,7 +87,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
behavior: HitTestBehavior.translucent, behavior: HitTestBehavior.translucent,
child: Container( child: Container(
padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.w),
decoration: _controller.filtrateType.value == '' decoration: _homeController.filtrateType.value == ''
? BoxDecoration( ? BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(12.w), borderRadius: BorderRadius.circular(12.w),
@ -109,7 +109,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
), ),
6.horizontalSpace, 6.horizontalSpace,
Text( Text(
'全部文件(${_controller.originalDataList.length})', '全部文件(${_homeController.originalDataList.length})',
style: TextStyle( style: TextStyle(
color: Colors.black87, color: Colors.black87,
fontSize: 14.sp, fontSize: 14.sp,
@ -148,7 +148,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
padding: padding:
EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.w), EdgeInsets.symmetric(horizontal: 10.w, vertical: 10.w),
margin: EdgeInsets.symmetric(vertical: 2.w), margin: EdgeInsets.symmetric(vertical: 2.w),
decoration: _controller.filtrateType.value == name decoration: _homeController.filtrateType.value == name
? BoxDecoration( ? BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(12.w), borderRadius: BorderRadius.circular(12.w),
@ -184,10 +184,10 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
), ),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
widget.scaffoldKey.currentState?.closeDrawer(); _controller.scaffoldKey.currentState?.closeDrawer();
_controller.isAsc = !_controller.isAsc; _homeController.isAsc = !_homeController.isAsc;
_controller.dataList.value = _homeController.dataList.value =
_controller.dataList.reversed.toList(); _homeController.dataList.reversed.toList();
}, },
behavior: HitTestBehavior.translucent, behavior: HitTestBehavior.translucent,
child: Container( child: Container(
@ -204,7 +204,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
), ),
), ),
Icon( Icon(
_controller.isAsc _homeController.isAsc
? Icons.keyboard_double_arrow_up ? Icons.keyboard_double_arrow_up
: Icons.keyboard_double_arrow_down, : Icons.keyboard_double_arrow_down,
color: Colors.grey, color: Colors.grey,
@ -221,17 +221,20 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
} }
void _filtrateDataList(String type) { void _filtrateDataList(String type) {
widget.scaffoldKey.currentState?.closeDrawer(); _controller.scaffoldKey.currentState?.closeDrawer();
_controller.filtrateType.value = type; _homeController.filtrateType.value = type;
_controller.filtrateController.text = ''; _homeController.filtrateController.text = '';
if (type.isNotEmpty) { if (type.isNotEmpty) {
_controller.dataList.value = _homeController.dataList.value = _homeController.originalDataList
_controller.originalDataList.where((i) => i['type'] == type).toList(); .where((i) => i['type'] == type)
.toList();
} else { } else {
_controller.dataList.value = List.from(_controller.originalDataList); _homeController.dataList.value =
List.from(_homeController.originalDataList);
} }
if (_controller.isAsc) { if (_homeController.isAsc) {
_controller.dataList.value = _controller.dataList.reversed.toList(); _homeController.dataList.value =
_homeController.dataList.reversed.toList();
} }
} }
} }

15
lib/modules/meeting/views/meeting_home_view.dart

@ -9,7 +9,6 @@ import '../../../routes/app_routes.dart';
import '../controllers/meeting_home_controller.dart'; import '../controllers/meeting_home_controller.dart';
import '../model/meeting_model.dart'; import '../model/meeting_model.dart';
import 'bottomSheet/edit_title_bottom_sheet.dart'; import 'bottomSheet/edit_title_bottom_sheet.dart';
import 'bottomSheet/filtrate_drawer.dart';
import 'bottomSheet/import_audio_bottom_sheet.dart'; import 'bottomSheet/import_audio_bottom_sheet.dart';
class MeetingHomeView extends GetView<MeetingHomeController> { class MeetingHomeView extends GetView<MeetingHomeController> {
@ -17,28 +16,20 @@ class MeetingHomeView extends GetView<MeetingHomeController> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
final isDarkMode = Theme.of(context).brightness == Brightness.dark; final isDarkMode = Theme.of(context).brightness == Brightness.dark;
return PopScope( return PopScope(
onPopInvokedWithResult: controller.onPopInvokedWithResult, onPopInvokedWithResult: controller.onPopInvokedWithResult,
child: Scaffold( child: Scaffold(
key: scaffoldKey,
backgroundColor: isDarkMode ? Colors.black : Colors.grey[100], backgroundColor: isDarkMode ? Colors.black : Colors.grey[100],
appBar: _buildAppBar(isDarkMode), appBar: _buildAppBar(isDarkMode),
drawer: Drawer(
width: 260.w,
backgroundColor: Colors.grey[50],
child: FiltrateDrawer(scaffoldKey),
),
drawerEnableOpenDragGesture: false,
body: Column( body: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
_buildFiltrate(scaffoldKey, isDarkMode), _buildFiltrate(isDarkMode),
_buildConnect(isDarkMode), _buildConnect(isDarkMode),
], ],
), ),
@ -67,10 +58,10 @@ class MeetingHomeView extends GetView<MeetingHomeController> {
); );
} }
Widget _buildFiltrate(GlobalKey<ScaffoldState> scaffoldKey, bool isDarkMode) { Widget _buildFiltrate(bool isDarkMode) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
scaffoldKey.currentState?.openDrawer(); controller.meetingController.scaffoldKey.currentState?.openDrawer();
}, },
behavior: HitTestBehavior.translucent, behavior: HitTestBehavior.translucent,
child: Row( child: Row(

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

@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import '../controllers/meeting_controller.dart'; import '../controllers/meeting_controller.dart';
import 'bottomSheet/filtrate_drawer.dart';
class MeetingView extends GetView<MeetingController> { class MeetingView extends GetView<MeetingController> {
const MeetingView({super.key}); const MeetingView({super.key});
@ -10,11 +11,18 @@ class MeetingView extends GetView<MeetingController> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
key: controller.scaffoldKey,
body: PageView( body: PageView(
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
controller: controller.pageController, controller: controller.pageController,
children: controller.pageList, children: controller.pageList,
), ),
drawer: Drawer(
width: 260.w,
backgroundColor: Colors.grey[50],
child: const FiltrateDrawer(),
),
drawerEnableOpenDragGesture: false,
bottomNavigationBar: Stack( bottomNavigationBar: Stack(
alignment: Alignment.center, alignment: Alignment.center,
clipBehavior: Clip.none, clipBehavior: Clip.none,

Loading…
Cancel
Save