From b3c12f663ee24c65a964b0b5339cf6454390e4c5 Mon Sep 17 00:00:00 2001 From: tanlongsheng <252620078@qq.com> Date: Sat, 12 Jul 2025 12:12:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E5=AD=97=E6=90=9C?= =?UTF-8?q?=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/meeting_controller.dart | 2 ++ .../views/bottomSheet/filtrate_drawer.dart | 21 ++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/modules/meeting/controllers/meeting_controller.dart b/lib/modules/meeting/controllers/meeting_controller.dart index 779f52a79..8af37fc99 100644 --- a/lib/modules/meeting/controllers/meeting_controller.dart +++ b/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(); @@ -62,6 +63,7 @@ class MeetingController extends GetxController { @override void onClose() { titleController.dispose(); + filtrateController.dispose(); _audioPlayer.dispose(); super.onClose(); } diff --git a/lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart b/lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart index 6f3058b2d..ab6941ed4 100644 --- a/lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart +++ b/lib/modules/meeting/views/bottomSheet/filtrate_drawer.dart @@ -41,7 +41,7 @@ class _FiltrateDrawerState extends State { ), 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 { 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 { 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();