Browse Source

添加文字搜索

weicu
tanlongsheng 1 year ago
parent
commit
e20ecfe36f
  1. 2
      lib/modules/meeting/controllers/meeting_controller.dart
  2. 21
      lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart

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

@ -38,6 +38,7 @@ class MeetingController extends GetxController {
RxList dataList = [].obs;
RxString filtrateType = ''.obs;
bool isAsc = false;
TextEditingController filtrateController = TextEditingController();
// 蓝牙服务
final bleManager = Get.find<BleManager>();
@ -62,6 +63,7 @@ class MeetingController extends GetxController {
@override
void onClose() {
titleController.dispose();
filtrateController.dispose();
_audioPlayer.dispose();
super.onClose();
}

21
lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart

@ -41,7 +41,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
),
Expanded(
child: TextField(
controller: _controller.titleController,
controller: _controller.filtrateController,
style: TextStyle(
color: Colors.black87,
fontSize: 14.sp,
@ -57,6 +57,24 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
border: InputBorder.none,
contentPadding: EdgeInsets.symmetric(vertical: 10.w),
),
onSubmitted: (String value) {
widget.scaffoldKey.currentState?.closeDrawer();
_controller.dataList.value =
_controller.originalDataList.where((i) {
final titleLower = i['title'].trim().toLowerCase();
final queryLower = value.trim().toLowerCase();
bool isType = true;
if (_controller.filtrateType.value.isNotEmpty) {
isType =
_controller.filtrateType.value == i['type'];
}
return isType && titleLower.contains(queryLower);
}).toList();
if (_controller.isAsc) {
_controller.dataList.value =
_controller.dataList.reversed.toList();
}
},
),
),
],
@ -205,6 +223,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
void _filtrateDataList(String type) {
widget.scaffoldKey.currentState?.closeDrawer();
_controller.filtrateType.value = type;
_controller.filtrateController.text = '';
if (type.isNotEmpty) {
_controller.dataList.value =
_controller.originalDataList.where((i) => i['type'] == type).toList();

Loading…
Cancel
Save