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

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

@ -41,7 +41,7 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
), ),
Expanded( Expanded(
child: TextField( child: TextField(
controller: _controller.titleController, controller: _controller.filtrateController,
style: TextStyle( style: TextStyle(
color: Colors.black87, color: Colors.black87,
fontSize: 14.sp, fontSize: 14.sp,
@ -57,6 +57,24 @@ class _FiltrateDrawerState extends State<FiltrateDrawer> {
border: InputBorder.none, border: InputBorder.none,
contentPadding: EdgeInsets.symmetric(vertical: 10.w), 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) { void _filtrateDataList(String type) {
widget.scaffoldKey.currentState?.closeDrawer(); widget.scaffoldKey.currentState?.closeDrawer();
_controller.filtrateType.value = type; _controller.filtrateType.value = type;
_controller.filtrateController.text = '';
if (type.isNotEmpty) { if (type.isNotEmpty) {
_controller.dataList.value = _controller.dataList.value =
_controller.originalDataList.where((i) => i['type'] == type).toList(); _controller.originalDataList.where((i) => i['type'] == type).toList();

Loading…
Cancel
Save