|
@@ -1,17 +1,22 @@
|
|
|
import 'package:cs_resources/generated/assets.dart';
|
|
|
import 'package:cs_resources/generated/l10n.dart';
|
|
|
+import 'package:domain/entity/latest_news_page_entity.dart';
|
|
|
+import 'package:domain/repository/main_repository.dart';
|
|
|
+import 'package:flutter/material.dart';
|
|
|
+import 'package:plugin_basic/modules/global_web_page.dart';
|
|
|
+import 'package:plugin_platform/engine/toast/toast_engine.dart';
|
|
|
+import 'package:plugin_platform/http/dio/dio_cancelable_mixin.dart';
|
|
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
|
|
-import 'package:shared/utils/log_utils.dart';
|
|
|
import 'package:widgets/load_state_layout.dart';
|
|
|
import 'package:widgets/widget_export.dart';
|
|
|
|
|
|
import 'management_guides_state.dart';
|
|
|
-import 'test_guide_bean.dart';
|
|
|
|
|
|
part 'management_guides_view_model.g.dart';
|
|
|
|
|
|
@riverpod
|
|
|
-class ManagementGuidesViewModel extends _$ManagementGuidesViewModel {
|
|
|
+class ManagementGuidesViewModel extends _$ManagementGuidesViewModel with DioCancelableMixin {
|
|
|
+ late final MainRepository _mainRepository;
|
|
|
var _curPage = 1; //请求参数当前的页面
|
|
|
var _needShowPlaceholder = true; //是否展示LoadingView
|
|
|
|
|
@@ -23,7 +28,10 @@ class ManagementGuidesViewModel extends _$ManagementGuidesViewModel {
|
|
|
|
|
|
@override
|
|
|
ManagementGuidesState build() {
|
|
|
- return ManagementGuidesState(datas: []);
|
|
|
+ _mainRepository = ref.read(mainRepositoryProvider);
|
|
|
+ final state = ManagementGuidesState(datas: []);
|
|
|
+ registerCancellation();
|
|
|
+ return state;
|
|
|
}
|
|
|
|
|
|
//刷新页面状态
|
|
@@ -56,55 +64,17 @@ class ManagementGuidesViewModel extends _$ManagementGuidesViewModel {
|
|
|
changeLoadingState(LoadState.State_Loading, null);
|
|
|
}
|
|
|
|
|
|
- // 获取 Applied 列表
|
|
|
- // var listResult = await _jobRepository.fetchJobAppliedList(
|
|
|
- // state.jobId,
|
|
|
- // state.selectedStatusId,
|
|
|
- // state.keyword,
|
|
|
- // curPage: _curPage,
|
|
|
- // cancelToken: cancelToken,
|
|
|
- // );
|
|
|
- //
|
|
|
- // // 处理数据
|
|
|
- // if (listResult.isSuccess) {
|
|
|
- // handleList(listResult.data?.rows);
|
|
|
- // } else {
|
|
|
- // errorMessage = listResult.errorMsg;
|
|
|
- // changeLoadingState(LoadState.State_Error);
|
|
|
- // }
|
|
|
-
|
|
|
- await Future.delayed(const Duration(milliseconds: 1500));
|
|
|
-
|
|
|
- final List<TestGuideBean> list = [
|
|
|
- TestGuideBean()
|
|
|
- ..iconImage = Assets.mainIntroductionGuide
|
|
|
- ..title = S.current.introduction_to_info_pack,
|
|
|
-
|
|
|
- TestGuideBean()
|
|
|
- ..iconImage = Assets.mainRolesGuide
|
|
|
- ..title = S.current.your_roles_responsibilities,
|
|
|
-
|
|
|
- TestGuideBean()
|
|
|
- ..iconImage = Assets.mainPropertyGuide
|
|
|
- ..title = S.current.property_guide,
|
|
|
- ];
|
|
|
-
|
|
|
- if (_curPage == 1) {
|
|
|
- //刷新的方式
|
|
|
- state = state.copyWith(datas: list);
|
|
|
- refreshController.finishRefresh();
|
|
|
-
|
|
|
- //更新展示的状态
|
|
|
- changeLoadingState(LoadState.State_Success, null);
|
|
|
- } else {
|
|
|
- //加载更多
|
|
|
- final allList = state.datas;
|
|
|
- allList.addAll(list);
|
|
|
- state.datas.addAll(list);
|
|
|
-
|
|
|
- refreshController.finishLoad();
|
|
|
+ // 获取列表
|
|
|
+ var listResult = await _mainRepository.fetchManageGuideList(
|
|
|
+ curPage: _curPage,
|
|
|
+ cancelToken: cancelToken,
|
|
|
+ );
|
|
|
|
|
|
- state = state.copyWith(datas: allList);
|
|
|
+ // 处理数据
|
|
|
+ if (listResult.isSuccess) {
|
|
|
+ handleList(listResult.data?.list);
|
|
|
+ } else {
|
|
|
+ changeLoadingState(LoadState.State_Error, listResult.errorMsg);
|
|
|
}
|
|
|
|
|
|
// 最后赋值
|
|
@@ -112,33 +82,41 @@ class ManagementGuidesViewModel extends _$ManagementGuidesViewModel {
|
|
|
}
|
|
|
|
|
|
// 处理数据与展示的逻辑
|
|
|
-// void handleList(List<JobAppliedListSGRows>? list) {
|
|
|
-// if (list != null && list.isNotEmpty) {
|
|
|
-// //有数据,判断是刷新还是加载更多的数据
|
|
|
-// if (_curPage == 1) {
|
|
|
-// //刷新的方式
|
|
|
-// state.datas.clear();
|
|
|
-// state.datas.addAll(list);
|
|
|
-// refreshController.finishRefresh();
|
|
|
-//
|
|
|
-// //更新展示的状态
|
|
|
-// changeLoadingState(LoadState.State_Success);
|
|
|
-// } else {
|
|
|
-// //加载更多
|
|
|
-// state.datas.addAll(list);
|
|
|
-// refreshController.finishLoad();
|
|
|
-// update();
|
|
|
-// }
|
|
|
-// } else {
|
|
|
-// if (_curPage == 1) {
|
|
|
-// //展示无数据的布局
|
|
|
-// state.datas.clear();
|
|
|
-// changeLoadingState(LoadState.State_Empty);
|
|
|
-// refreshController.finishRefresh();
|
|
|
-// } else {
|
|
|
-// //展示加载完成,没有更多数据了
|
|
|
-// refreshController.finishLoad(IndicatorResult.noMore);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
+ void handleList(List<LatestNewsList>? list) {
|
|
|
+ if (list != null && list.isNotEmpty) {
|
|
|
+ //有数据,判断是刷新还是加载更多的数据
|
|
|
+ if (_curPage == 1) {
|
|
|
+ //刷新的方式
|
|
|
+ state = state.copyWith(datas: list);
|
|
|
+ refreshController.finishRefresh();
|
|
|
+
|
|
|
+ //更新展示的状态
|
|
|
+ changeLoadingState(LoadState.State_Success, null);
|
|
|
+ } else {
|
|
|
+ //加载更多
|
|
|
+ state.datas.addAll(List<LatestNewsList>.from(state.datas)..addAll(list));
|
|
|
+ refreshController.finishLoad();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (_curPage == 1) {
|
|
|
+ //展示无数据的布局
|
|
|
+ state = state.copyWith(datas: []);
|
|
|
+ changeLoadingState(LoadState.State_Empty, null);
|
|
|
+ refreshController.finishRefresh();
|
|
|
+ } else {
|
|
|
+ //展示加载完成,没有更多数据了
|
|
|
+ refreshController.finishLoad(IndicatorResult.noMore);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 去详情页面
|
|
|
+ void gotoLatestNewsDetail(BuildContext context, LatestNewsList data) async {
|
|
|
+ final result = await _mainRepository.fetchManageGuideDetail(id: data.id ?? "");
|
|
|
+ if (result.isSuccess) {
|
|
|
+ GlobalWebPage.startInstance(context: context, title: S.current.latest_news, url: result.data?.content ?? "");
|
|
|
+ } else {
|
|
|
+ ToastEngine.show(result.errorMsg ?? "Network Load Error");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|