修复锁用户列表不能搜索问题

This commit is contained in:
Daisy 2024-05-24 10:24:09 +08:00
parent 7c58c482e4
commit cb53450d10
4 changed files with 59 additions and 59 deletions

View File

@ -10,14 +10,15 @@ class LockUserLogic extends BaseGetXController {
final LockUserState state = LockUserState(); final LockUserState state = LockUserState();
// //
void getLockKeysList() async { Future<void> getLockKeysList() async {
LockUserEntity entity = await ApiRepository.to.getLockKeysList( final LockUserEntity entity = await ApiRepository.to.getLockKeysList(
lockId: state.getLockId.value, lockId: state.getLockId.value,
searchStr: state.searchController.text,
); );
if (entity.errorCode!.codeIsSuccessful) { if (entity.errorCode!.codeIsSuccessful) {
// 1: 2: 3: 4: 5: // 1: 2: 3: 4: 5:
LockUserData data1 = entity.data![0]; final LockUserData data1 = entity.data![0];
data1.lockUserList?.forEach((element) { data1.lockUserList?.forEach((LockUserListKeys element) {
element.currentKeyType = 1; element.currentKeyType = 1;
element.currentKeyTypeStr = '电子钥匙'.tr; element.currentKeyTypeStr = '电子钥匙'.tr;
element.currentTypeImg = 'images/controls_user.png'; element.currentTypeImg = 'images/controls_user.png';
@ -26,8 +27,8 @@ class LockUserLogic extends BaseGetXController {
element.currentDateType = element.keyType; element.currentDateType = element.keyType;
element.currentOpenDoorID = element.id; element.currentOpenDoorID = element.id;
}); });
LockUserData data2 = entity.data![1]; final LockUserData data2 = entity.data![1];
data2.lockUserList?.forEach((element) { data2.lockUserList?.forEach((LockUserListKeys element) {
element.currentKeyType = 2; element.currentKeyType = 2;
element.currentKeyTypeStr = '密码'.tr; element.currentKeyTypeStr = '密码'.tr;
element.currentTypeImg = 'images/icon_password.png'; element.currentTypeImg = 'images/icon_password.png';
@ -36,8 +37,8 @@ class LockUserLogic extends BaseGetXController {
element.currentDateType = element.keyboardPwdType; element.currentDateType = element.keyboardPwdType;
element.currentOpenDoorID = element.keyboardPwdId; element.currentOpenDoorID = element.keyboardPwdId;
}); });
LockUserData data3 = entity.data![2]; final LockUserData data3 = entity.data![2];
data3.lockUserList?.forEach((element) { data3.lockUserList?.forEach((LockUserListKeys element) {
element.currentKeyType = 3; element.currentKeyType = 3;
element.currentKeyTypeStr = '指纹'.tr; element.currentKeyTypeStr = '指纹'.tr;
element.currentTypeImg = 'images/icon_fingerprint.png'; element.currentTypeImg = 'images/icon_fingerprint.png';
@ -45,8 +46,8 @@ class LockUserLogic extends BaseGetXController {
element.isCurrentSelect = false; element.isCurrentSelect = false;
element.currentDateType = element.fingerprintType; element.currentDateType = element.fingerprintType;
}); });
LockUserData data4 = entity.data![3]; final LockUserData data4 = entity.data![3];
data4.lockUserList?.forEach((element) { data4.lockUserList?.forEach((LockUserListKeys element) {
element.currentKeyType = 4; element.currentKeyType = 4;
element.currentKeyTypeStr = ''.tr; element.currentKeyTypeStr = ''.tr;
element.currentTypeImg = 'images/icon_card.png'; element.currentTypeImg = 'images/icon_card.png';
@ -54,8 +55,8 @@ class LockUserLogic extends BaseGetXController {
element.isCurrentSelect = false; element.isCurrentSelect = false;
element.currentDateType = element.cardType; element.currentDateType = element.cardType;
}); });
LockUserData data5 = entity.data![4]; final LockUserData data5 = entity.data![4];
data5.lockUserList?.forEach((element) { data5.lockUserList?.forEach((LockUserListKeys element) {
element.currentKeyType = 5; element.currentKeyType = 5;
element.currentKeyTypeStr = '人脸'.tr; element.currentKeyTypeStr = '人脸'.tr;
element.currentTypeImg = 'images/icon_face.png'; element.currentTypeImg = 'images/icon_face.png';
@ -64,18 +65,18 @@ class LockUserLogic extends BaseGetXController {
element.currentDateType = element.faceType; element.currentDateType = element.faceType;
}); });
state.lockUserList.value.addAll(data1.lockUserList!); state.lockUserList.addAll(data1.lockUserList!);
state.lockUserList.value.addAll(data2.lockUserList!); state.lockUserList.addAll(data2.lockUserList!);
state.lockUserList.value.addAll(data3.lockUserList!); state.lockUserList.addAll(data3.lockUserList!);
state.lockUserList.value.addAll(data4.lockUserList!); state.lockUserList.addAll(data4.lockUserList!);
state.lockUserList.value.addAll(data5.lockUserList!); state.lockUserList.addAll(data5.lockUserList!);
state.lockUserList.refresh(); state.lockUserList.refresh();
} }
} }
String getKeyUseDateStr(LockUserListKeys itemData) { String getKeyUseDateStr(LockUserListKeys itemData) {
var keyDateTypeStr = ""; String keyDateTypeStr = '';
switch (itemData.currentKeyType) { switch (itemData.currentKeyType) {
case 1: // case 1: //
keyDateTypeStr = getElectronicKeyUseDateStr(itemData); keyDateTypeStr = getElectronicKeyUseDateStr(itemData);
@ -91,7 +92,7 @@ class LockUserLogic extends BaseGetXController {
keyDateTypeStr = getCardAndFaceDateType(itemData); keyDateTypeStr = getCardAndFaceDateType(itemData);
break; break;
default: default:
keyDateTypeStr = "".tr; keyDateTypeStr = ''.tr;
break; break;
} }
@ -103,18 +104,18 @@ class LockUserLogic extends BaseGetXController {
String useDateStr = ''; String useDateStr = '';
if (indexEntity.keyType == XSConstantMacro.keyTypeTime) { if (indexEntity.keyType == XSConstantMacro.keyTypeTime) {
// //
DateTime startDateStr = final DateTime startDateStr =
DateTime.fromMillisecondsSinceEpoch(indexEntity.startDate!); DateTime.fromMillisecondsSinceEpoch(indexEntity.startDate!);
DateTime endDateStr = final DateTime endDateStr =
DateTime.fromMillisecondsSinceEpoch(indexEntity.endDate!); DateTime.fromMillisecondsSinceEpoch(indexEntity.endDate!);
useDateStr = useDateStr =
'${startDateStr.toLocal().toString().substring(0, 16)}-${endDateStr.toLocal().toString().substring(0, 16)}'; '${startDateStr.toLocal().toString().substring(0, 16)}-${endDateStr.toLocal().toString().substring(0, 16)}';
} else if (indexEntity.keyType == XSConstantMacro.keyTypeLong) { } else if (indexEntity.keyType == XSConstantMacro.keyTypeLong) {
// //
useDateStr = "永久".tr; useDateStr = '永久'.tr;
} else if (indexEntity.keyType == XSConstantMacro.keyTypeOnce) { } else if (indexEntity.keyType == XSConstantMacro.keyTypeOnce) {
// //
useDateStr = "单次".tr; useDateStr = '单次'.tr;
} else if (indexEntity.keyType == XSConstantMacro.keyTypeLoop) { } else if (indexEntity.keyType == XSConstantMacro.keyTypeLoop) {
// //
useDateStr = '循环'.tr; useDateStr = '循环'.tr;
@ -125,25 +126,23 @@ class LockUserLogic extends BaseGetXController {
// //
String getPasswordUseDateStr(LockUserListKeys itemData) { String getPasswordUseDateStr(LockUserListKeys itemData) {
int? getPwdType = itemData.keyboardPwdType; final int? getPwdType = itemData.keyboardPwdType;
String useDateStr = ''; String useDateStr = '';
DateTime sendDateStr = final DateTime startDateStr =
DateTime.fromMillisecondsSinceEpoch(itemData.sendDate!);
DateTime startDateStr =
DateTime.fromMillisecondsSinceEpoch(itemData.startDate!); DateTime.fromMillisecondsSinceEpoch(itemData.startDate!);
DateTime endDateStr = final DateTime endDateStr =
DateTime.fromMillisecondsSinceEpoch(itemData.endDate!); DateTime.fromMillisecondsSinceEpoch(itemData.endDate!);
int starHour = startDateStr.hour; final int starHour = startDateStr.hour;
int endHour = endDateStr.hour; final int endHour = endDateStr.hour;
switch (getPwdType) { switch (getPwdType) {
case 1: case 1:
// 1 6使 // 1 6使
useDateStr = "单次".tr; useDateStr = '单次'.tr;
break; break;
case 2: case 2:
// 2 24使 // 2 24使
useDateStr = "永久".tr; useDateStr = '永久'.tr;
break; break;
case 3: case 3:
// 3 24使 // 3 24使
@ -213,30 +212,30 @@ class LockUserLogic extends BaseGetXController {
// //
String getfingerprintUseDateStr(LockUserListKeys fingerprintItemData) { String getfingerprintUseDateStr(LockUserListKeys fingerprintItemData) {
var keyDateTypeStr = ""; // :1;23:4 String keyDateTypeStr = ''; // :1;23:4
if (fingerprintItemData.fingerprintType! == 1) { if (fingerprintItemData.fingerprintType! == 1) {
keyDateTypeStr = "永久".tr; keyDateTypeStr = '永久'.tr;
} else if (fingerprintItemData.fingerprintType! == 2) { } else if (fingerprintItemData.fingerprintType! == 2) {
keyDateTypeStr = keyDateTypeStr =
"${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} 限时"; '${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} 限时';
} else if (fingerprintItemData.fingerprintType! == 4) { } else if (fingerprintItemData.fingerprintType! == 4) {
keyDateTypeStr = keyDateTypeStr =
"${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} 循环"; '${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} 循环';
} }
return keyDateTypeStr; return keyDateTypeStr;
} }
/// ///
String getCardAndFaceDateType(LockUserListKeys fingerprintItemData) { String getCardAndFaceDateType(LockUserListKeys fingerprintItemData) {
var keyDateTypeStr = ""; // :1;23:4 String keyDateTypeStr = ''; // :1;23:4
if (fingerprintItemData.cardType! == 1) { if (fingerprintItemData.cardType! == 1) {
keyDateTypeStr = "永久".tr; keyDateTypeStr = '永久'.tr;
} else if (fingerprintItemData.cardType! == 2) { } else if (fingerprintItemData.cardType! == 2) {
keyDateTypeStr = keyDateTypeStr =
"${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} 限时"; '${DateTool().dateToYMDHNString(fingerprintItemData.startDate.toString())} - ${DateTool().dateToYMDHNString(fingerprintItemData.endDate.toString())} 限时';
} else if (fingerprintItemData.cardType! == 4) { } else if (fingerprintItemData.cardType! == 4) {
keyDateTypeStr = keyDateTypeStr =
"${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} 循环"; '${DateTool().dateToYMDString(fingerprintItemData.startDate.toString())}-${DateTool().dateToYMDString(fingerprintItemData.endDate.toString())} 循环';
} }
return keyDateTypeStr; return keyDateTypeStr;
} }

View File

@ -3,6 +3,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_entity.dart'; import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_entity.dart';
import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_logic.dart'; import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_logic.dart';
import 'package:star_lock/main/lockDetail/messageWarn/lockUser/lockUser_state.dart';
import 'package:star_lock/tools/keySearchWidget.dart'; import 'package:star_lock/tools/keySearchWidget.dart';
import '../../../../app_settings/app_colors.dart'; import '../../../../app_settings/app_colors.dart';
import '../../../../tools/submitBtn.dart'; import '../../../../tools/submitBtn.dart';
@ -16,8 +17,8 @@ class LockUserPage extends StatefulWidget {
} }
class _LockUserPageState extends State<LockUserPage> { class _LockUserPageState extends State<LockUserPage> {
final logic = Get.put(LockUserLogic()); final LockUserLogic logic = Get.put(LockUserLogic());
final state = Get.find<LockUserLogic>().state; final LockUserState state = Get.find<LockUserLogic>().state;
@override @override
initState() { initState() {
@ -36,7 +37,7 @@ class _LockUserPageState extends State<LockUserPage> {
backgroundColor: AppColors.mainColor, backgroundColor: AppColors.mainColor,
), ),
body: Column( body: Column(
children: [ children: <Widget>[
KeySearchWidget( KeySearchWidget(
editingController: state.searchController, editingController: state.searchController,
onSubmittedAction: () { onSubmittedAction: () {
@ -51,9 +52,7 @@ class _LockUserPageState extends State<LockUserPage> {
SubmitBtn( SubmitBtn(
btnName: '确定'.tr, btnName: '确定'.tr,
onClick: () { onClick: () {
Get.back( Get.back(result: state.lockUserList[state.isSelectIndex.value]);
result:
state.lockUserList.value[state.isSelectIndex.value]);
}, },
), ),
SizedBox( SizedBox(
@ -66,9 +65,9 @@ class _LockUserPageState extends State<LockUserPage> {
Widget _buildMainUI() { Widget _buildMainUI() {
return Obx(() => ListView.separated( return Obx(() => ListView.separated(
shrinkWrap: true, shrinkWrap: true,
itemCount: state.lockUserList.value.length, itemCount: state.lockUserList.length,
itemBuilder: (c, index) { itemBuilder: (BuildContext c, int index) {
return _electronicKeyItem(state.lockUserList.value[index], index); return _electronicKeyItem(state.lockUserList[index], index);
}, },
separatorBuilder: (BuildContext context, int index) { separatorBuilder: (BuildContext context, int index) {
return const Divider( return const Divider(
@ -82,8 +81,8 @@ class _LockUserPageState extends State<LockUserPage> {
Widget _electronicKeyItem(LockUserListKeys lockUserKeys, int selectIndex) { Widget _electronicKeyItem(LockUserListKeys lockUserKeys, int selectIndex) {
return GestureDetector( return GestureDetector(
onTap: () { onTap: () {
for (int i = 0; i < state.lockUserList.value.length; i++) { for (int i = 0; i < state.lockUserList.length; i++) {
LockUserListKeys item = state.lockUserList.value[i]; final LockUserListKeys item = state.lockUserList[i];
if (selectIndex == i) { if (selectIndex == i) {
item.isCurrentSelect = true; item.isCurrentSelect = true;
} else { } else {
@ -99,7 +98,7 @@ class _LockUserPageState extends State<LockUserPage> {
width: 1.sw, width: 1.sw,
height: 90.h, height: 90.h,
child: Row( child: Row(
children: [ children: <Widget>[
SizedBox( SizedBox(
width: 30.w, width: 30.w,
), ),
@ -114,9 +113,9 @@ class _LockUserPageState extends State<LockUserPage> {
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: <Widget>[
Row( Row(
children: [ children: <Widget>[
Text( Text(
lockUserKeys.currentKeyName ?? '', lockUserKeys.currentKeyName ?? '',
style: TextStyle( style: TextStyle(
@ -132,7 +131,7 @@ class _LockUserPageState extends State<LockUserPage> {
SizedBox(height: 10.h), SizedBox(height: 10.h),
Row( Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: [ children: <Widget>[
Text( Text(
logic.getKeyUseDateStr(lockUserKeys), logic.getKeyUseDateStr(lockUserKeys),
style: TextStyle( style: TextStyle(

View File

@ -1944,8 +1944,9 @@ class ApiProvider extends BaseProvider {
})); }));
// //
Future<Response> getLockKeysList(int lockId) => Future<Response> getLockKeysList(int lockId, String searchStr) => post(
post(lockKeysListURL.toUrl, jsonEncode({'lockId': lockId})); lockKeysListURL.toUrl,
jsonEncode({'lockId': lockId, 'searchStr': searchStr}));
// //
Future<Response> addLockNoticeSetting( Future<Response> addLockNoticeSetting(

View File

@ -1972,8 +1972,9 @@ class ApiRepository {
} }
// //
Future<LockUserEntity> getLockKeysList({required int lockId}) async { Future<LockUserEntity> getLockKeysList(
final res = await apiProvider.getLockKeysList(lockId); {required int lockId, required String searchStr}) async {
final res = await apiProvider.getLockKeysList(lockId, searchStr);
return LockUserEntity.fromJson(res.body); return LockUserEntity.fromJson(res.body);
} }