|
|
|
@ -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(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|