Browse Source

修改侧边栏

newdev_shunjiawei
tanlongsheng 1 year ago
parent
commit
01ad1d4323
  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';
class MeetingController extends GetxController {
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
late PageController pageController;
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_upload_service.dart';
import '../../../routes/app_routes.dart';
import 'meeting_controller.dart';
class MeetingHomeController extends GetxController {
final meetingController = Get.find<MeetingController>();
final meetingUploadService = Get.find<MeetingUploadService>();
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:get/get.dart';
import '../../controllers/meeting_controller.dart';
import '../../controllers/meeting_home_controller.dart';
class FiltrateDrawer extends StatefulWidget {
final GlobalKey<ScaffoldState> scaffoldKey;
const FiltrateDrawer(this.scaffoldKey, {super.key});
const FiltrateDrawer({super.key});
@override
State<FiltrateDrawer> createState() => _FiltrateDrawerState();
}
class _FiltrateDrawerState extends State<FiltrateDrawer> {
final _controller = Get.find<MeetingHomeController>();
final _controller = Get.find<MeetingController>();
final _homeController = Get.find<MeetingHomeController>();
@override
Widget build(BuildContext context) {
@ -41,7 +41,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
),
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<FiltrateDrawer> {
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<FiltrateDrawer> {
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<FiltrateDrawer> {
),
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<FiltrateDrawer> {
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<FiltrateDrawer> {
),
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<FiltrateDrawer> {
),
),
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<FiltrateDrawer> {
}
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();
}
}
}

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 '../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<MeetingHomeController> {
@ -17,28 +16,20 @@ class MeetingHomeView extends GetView<MeetingHomeController> {
@override
Widget build(BuildContext context) {
final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
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<MeetingHomeController> {
);
}
Widget _buildFiltrate(GlobalKey<ScaffoldState> scaffoldKey, bool isDarkMode) {
Widget _buildFiltrate(bool isDarkMode) {
return GestureDetector(
onTap: () {
scaffoldKey.currentState?.openDrawer();
controller.meetingController.scaffoldKey.currentState?.openDrawer();
},
behavior: HitTestBehavior.translucent,
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 '../controllers/meeting_controller.dart';
import 'bottomSheet/filtrate_drawer.dart';
class MeetingView extends GetView<MeetingController> {
const MeetingView({super.key});
@ -10,11 +11,18 @@ class MeetingView extends GetView<MeetingController> {
@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,

Loading…
Cancel
Save