You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

63 lines
1.5 KiB

import 'dart:async';
import 'package:dating_touchme_app/network/network_service.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import '../../model/discover/matchmaker_live_data.dart';
class SearchPageController extends GetxController {
SearchPageController({NetworkService? networkService})
: _networkService = networkService ?? Get.find<NetworkService>();
final NetworkService _networkService;
final FocusNode blankFocusNode = FocusNode();
final searchController = TextEditingController().obs;
final name = "".obs;
final matchmakerList = <Records>[].obs;
Timer? _debounce;
void onTextChanged(String text) {
// 取消上一次的计时
_debounce?.cancel();
_debounce = Timer(const Duration(milliseconds: 500), () {
name.value = text;
searchData();
});
}
searchData() async {
if(name.value.trim() == "" || name.value.trim().isEmpty){
return;
}
try{
final response = await _networkService.rtcApi.userPageLiveMatchmaker(
searchKey: name.value
);
if (response.data.isSuccess && response.data.data != null) {
final data = response.data.data?.records ?? [];
matchmakerList.value = data.toList();
} else {
// 响应失败,抛出异常
throw Exception(response.data.message ?? '获取数据失败');
}
} catch(e) {
print('红娘搜索失败: $e');
SmartDialog.showToast('红娘搜索失败');
rethrow;
}
}
}