diff --git a/star_lock/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart b/star_lock/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart index cfa7ba5c..243f72f7 100644 --- a/star_lock/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart +++ b/star_lock/lib/main/lockDetail/doorLockLog/doorLockLog_logic.dart @@ -135,25 +135,24 @@ class DoorLockLogLogic extends BaseGetXController { } //请求操作记录列表(门锁日志) - void mockNetworkDataRequest() async { - state.lockLogItemList.clear(); + void mockNetworkDataRequest({required bool isRefresh}) async { + // 如果是下拉刷新,清空已有数据 + if (isRefresh) { + state.lockLogItemList.clear(); + pageNo = 1; + } DoorLockLogEntity entity = await ApiRepository.to.lockEventList( lockId: state.keyInfos.value.lockId!, lockEventType: state.dropdownValue.value, - pageNo: 1, + pageNo: pageNo, // 根据是否是下拉刷新决定页码 pageSize: int.parse(pageSize), startDate: state.startDate.value, endDate: state.endDate.value); if (entity.errorCode!.codeIsSuccessful) { - if (pageNo == 1) { - state.lockLogItemList.value = entity.data!.itemList!; - pageNo++; - } else { - if (entity.data!.itemList!.isNotEmpty) { - state.lockLogItemList.addAll(entity.data!.itemList!); - pageNo++; - } - } + // 更新数据列表 + state.lockLogItemList.addAll(entity.data!.itemList!); + // 更新页码 + pageNo++; } } @@ -178,7 +177,7 @@ class DoorLockLogLogic extends BaseGetXController { .millisecondsSinceEpoch; pageNo = 1; - mockNetworkDataRequest(); + mockNetworkDataRequest(isRefresh: true); }); } @@ -202,8 +201,7 @@ class DoorLockLogLogic extends BaseGetXController { if (state.ifHaveNext == true) { getLockRecordLastUploadDataTime(); } else { - pageNo = 1; - mockNetworkDataRequest(); + mockNetworkDataRequest(isRefresh: true); } } } @@ -216,7 +214,7 @@ class DoorLockLogLogic extends BaseGetXController { if (entity.errorCode!.codeIsSuccessful) { showToast("清除数据成功", something: () { pageNo = 1; - mockNetworkDataRequest(); + mockNetworkDataRequest(isRefresh: true); }); } } @@ -231,7 +229,7 @@ class DoorLockLogLogic extends BaseGetXController { if (isDemoMode == false) { // _initReplySubscription(); - mockNetworkDataRequest(); + mockNetworkDataRequest(isRefresh: true); _getDoorLockLogListRefreshUIAction(); } } diff --git a/star_lock/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart b/star_lock/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart index 220d60b6..3d7c4b5f 100644 --- a/star_lock/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart +++ b/star_lock/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart @@ -135,7 +135,7 @@ class _DoorLockLogPageState extends State with RouteAware { value: state.dropdownTitle.value, valueChanged: (value) { state.dropdownValue.value = int.parse(value); - logic.mockNetworkDataRequest(); + logic.mockNetworkDataRequest(isRefresh: true); })), ], ), @@ -150,24 +150,31 @@ class _DoorLockLogPageState extends State with RouteAware { color: Colors.white, borderRadius: BorderRadius.circular(16.w), ), - child: Obx(() => state.lockLogItemList.isNotEmpty - ? Timeline.tileBuilder( - builder: _timelineBuilderWidget(), - theme: TimelineThemeData( - nodePosition: 0.04, //居左侧距离 - connectorTheme: const ConnectorThemeData( - thickness: 1.0, - color: AppColors.greyLineColor, - indent: 0.5, - ), - indicatorTheme: const IndicatorThemeData( - size: 8.0, - color: AppColors.greyLineColor, - position: 0.4, - ), - ), - ) - : NoData()), + child: Obx(() => EasyRefreshTool( + onRefresh: () async { + logic.mockNetworkDataRequest(isRefresh: true); + }, + onLoad: () async { + logic.mockNetworkDataRequest(isRefresh: false); + }, + child: state.lockLogItemList.isNotEmpty + ? Timeline.tileBuilder( + builder: _timelineBuilderWidget(), + theme: TimelineThemeData( + nodePosition: 0.04, //居左侧距离 + connectorTheme: const ConnectorThemeData( + thickness: 1.0, + color: AppColors.greyLineColor, + indent: 0.5, + ), + indicatorTheme: const IndicatorThemeData( + size: 8.0, + color: AppColors.greyLineColor, + position: 0.4, + ), + ), + ) + : NoData())), ); }