Ver Fonte

[new]调整首页与文件列表分页获取数据方式

zk há 1 ano atrás
pai
commit
b5732d4ac8

+ 5 - 5
lib/data/api/request/talk_paginate_request.dart

@@ -5,11 +5,11 @@ part 'talk_paginate_request.g.dart';
 
 @JsonSerializable()
 class TalkPaginateRequest extends AppBaseRequest {
-  @JsonKey(name: 'page')
-  int page;
+  @JsonKey(name: 'offset')
+  int offset;
 
-  @JsonKey(name: 'pageSize')
-  int pageSize;
+  @JsonKey(name: 'limit')
+  int limit;
 
   @JsonKey(name: 'searchKeyword')
   String? searchKeyword;
@@ -17,7 +17,7 @@ class TalkPaginateRequest extends AppBaseRequest {
   @JsonKey(name: 'sortType')
   int? sortType;
 
-  TalkPaginateRequest(this.page, this.pageSize,
+  TalkPaginateRequest(this.offset, this.limit,
       {this.searchKeyword, this.sortType});
 
   @override

+ 8 - 9
lib/data/repositories/talk_repository.dart

@@ -52,17 +52,16 @@ class TalkRepository {
     _talkList.clear();
   }
 
-  Future<TalkPaginateResponse> requestHomeTalkData(
-      {int pageSize = 10, int? sortType = 1}) {
-    return requestTalkPagePaginate(1, pageSize, sortType: sortType);
+  Future<TalkPaginateResponse> refreshHomeTalkData({int? sortType = 1}) {
+    return requestTalkPagePaginate(0, 10, sortType: sortType, isClearAll: true);
   }
 
-  Future<TalkPaginateResponse> requestTalkPagePaginate(int page, int pageSize,
-      {String? searchKeyword, int? sortType = 1}) {
-    return talkPagePaginate(page, pageSize,
+  Future<TalkPaginateResponse> requestTalkPagePaginate(int offset, int limit,
+      {String? searchKeyword, int? sortType = 1, bool? isClearAll = false}) {
+    return talkPagePaginate(offset, limit,
             searchKeyword: searchKeyword, sortType: sortType)
         .then((response) {
-      if (page == 1) {
+      if (isClearAll == true) {
         _talkList.clear();
       }
       if (response.list != null) {
@@ -73,10 +72,10 @@ class TalkRepository {
   }
 
   ///sortType 1:按创建时间倒序 2:按更新时间倒序
-  Future<TalkPaginateResponse> talkPagePaginate(int page, int pageSize,
+  Future<TalkPaginateResponse> talkPagePaginate(int offset, int limit,
       {String? searchKeyword, int? sortType = 1}) {
     return atmobApi
-        .talkPagePaginate(TalkPaginateRequest(page, pageSize,
+        .talkPagePaginate(TalkPaginateRequest(offset, limit,
             searchKeyword: searchKeyword, sortType: sortType))
         .then(HttpHandler.handle(false));
   }

+ 13 - 9
lib/module/files/controller.dart

@@ -11,26 +11,31 @@ import '../../data/api/response/example_info_response.dart';
 import '../../data/bean/talks.dart';
 import '../../data/repositories/config_repository.dart';
 import '../../resource/string.gen.dart';
+import '../../utils/event_bus.dart';
 import '../../utils/toast_util.dart';
 
 class FilesController extends BaseController {
   final refreshController = RefreshController(initialRefresh: false);
 
-  int page = 1;
-
-  int pageSize = 10;
+  int limit = 10;
 
   @override
   void onReady() {
     super.onReady();
     onRefreshData();
+    eventBus.on(EventUserLogin, (arg) {
+      onRefreshData();
+    });
   }
 
   RxList<TalkBean> get talkList => talkRepository.talkList;
 
-  void requestTalkData({int page = 1}) async {
+  void requestTalkData(int offset, int limit,
+      {bool? isClearAll = false}) async {
     if (accountRepository.isLogin.value) {
-      talkRepository.requestTalkPagePaginate(page, pageSize).then((response) {
+      talkRepository
+          .requestTalkPagePaginate(offset, limit, isClearAll: isClearAll)
+          .then((response) {
         debugPrint("requestTalkData-response-$response");
         if (talkRepository.talkList.length >= response.count) {
           debugPrint("requestTalkData-没有更多数据了");
@@ -55,12 +60,11 @@ class FilesController extends BaseController {
   }
 
   void onRefreshData() {
-    page = 1;
-    requestTalkData(page: page);
+    requestTalkData(0, limit, isClearAll: true);
   }
 
   void onLoadMoreTalkData() {
-    requestTalkData(page: ++page);
+    requestTalkData(talkList.length, limit);
   }
 
   void requestName(String? newName, TalkBean bean) {
@@ -74,7 +78,7 @@ class FilesController extends BaseController {
 
   void requestDelete(TalkBean item) {
     talkRepository.talkDelete(item.id).then((data) {
-      onRefreshData();
+      talkRepository.talkList.remove(item);
       ToastUtil.showToast(StringName.talkDeleteSuccess.tr);
     }).catchError((error) {
       ErrorHandler.toastError(error, message: StringName.talkDeleteFail.tr);

+ 7 - 8
lib/module/files/search/controller.dart

@@ -10,9 +10,7 @@ import '../../../utils/error_handler.dart';
 class FileSearchController extends BaseController {
   final refreshController = RefreshController(initialRefresh: false);
 
-  int page = 1;
-
-  int pageSize = 10;
+  int limit = 10;
 
   @override
   void onReady() {
@@ -22,8 +20,10 @@ class FileSearchController extends BaseController {
 
   RxList<TalkBean> get talkList => talkRepository.talkList;
 
-  void requestTalkData({int page = 1}) {
-    talkRepository.requestTalkPagePaginate(page, pageSize).then((response) {
+  void requestTalkData(int offset, int limit, {bool? isClearAll = false}) {
+    talkRepository
+        .requestTalkPagePaginate(offset, limit, isClearAll: isClearAll)
+        .then((response) {
       debugPrint("requestTalkData-response-$response");
       if (talkRepository.talkList.length >= response.count) {
         debugPrint("requestTalkData-没有更多数据了");
@@ -41,11 +41,10 @@ class FileSearchController extends BaseController {
   }
 
   void onRefreshData() {
-    page = 1;
-    requestTalkData(page: page);
+    requestTalkData(0, limit, isClearAll: true);
   }
 
   void onLoadMoreTalkData() {
-    requestTalkData(page: ++page);
+    requestTalkData(talkList.length, limit);
   }
 }

+ 1 - 1
lib/module/home/controller.dart

@@ -58,7 +58,7 @@ class HomePageController extends BaseController {
     try {
       if (accountRepository.isLogin.value) {
         await Future.wait([
-          talkRepository.requestHomeTalkData(),
+          talkRepository.refreshHomeTalkData(),
           agendaRepository.requestHomeAgendaData(),
         ]);
       } else {

+ 1 - 1
lib/module/home/view.dart

@@ -214,7 +214,7 @@ class HomePage extends BasePage<HomePageController> {
                       TextStyle(color: ColorName.colorPrimary, fontSize: 12.sp),
                   recognizer: TapGestureRecognizer()
                     ..onTap = () {
-                      ToastUtil.showToast('点击了全部');
+                      Get.toNamed(RoutePath.task);
                     }),
             ],
           ),