From 9d29bd5b6b1dea1d8fb368d448e6300b19dfbb00 Mon Sep 17 00:00:00 2001 From: Daisy <> Date: Thu, 16 May 2024 14:23:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=81=E6=93=8D=E4=BD=9C=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=96=B0=E5=A2=9E=E4=B8=8B=E6=8B=89=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E4=B8=8A=E6=8B=89=E5=8A=A0=E8=BD=BD=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doorLockLog/doorLockLog_logic.dart | 32 +++++++------ .../doorLockLog/doorLockLog_page.dart | 45 +++++++++++-------- 2 files changed, 41 insertions(+), 36 deletions(-) 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())), ); }