123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- import 'package:cpt_main/modules/home/property_news/home_property_news_page.dart';
- import 'package:cpt_main/modules/notification/notification_page.dart';
- import 'package:domain/repository/main_repository.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:router/componentRouter/component_service_manager.dart';
- import 'package:widgets/widget_export.dart';
- import 'home_state.dart';
- import 'latest_news/latest_news_page.dart';
- import 'management_guides/management_guides_page.dart';
- part 'home_view_model.g.dart';
- @riverpod
- class HomeViewModel extends _$HomeViewModel with DioCancelableMixin {
- late final MainRepository _mainRepository;
- var _needShowLoading = true; //是否展示LoadingView
- // Refresh 控制器
- final EasyRefreshController refreshController = EasyRefreshController(
- controlFinishRefresh: true, //允许刷新
- controlFinishLoad: false, //允许加载
- );
- @override
- HomeState build() {
- _mainRepository = ref.read(mainRepositoryProvider);
- final state = HomeState();
- registerCancellation();
- return state;
- }
- // Refresh 刷新事件
- Future onRefresh() async {
- fetchHomeIndex();
- }
- /// 获取首页数据
- Future fetchHomeIndex() async {
- // 获取列表
- var result = await _mainRepository.fetchHomeIndex(
- needLoading: _needShowLoading,
- cancelToken: cancelToken,
- );
- // 处理数据
- if (result.isSuccess) {
- state = state.copyWith(homeIndex: result.data);
- } else {
- ToastEngine.show(result.errorMsg ?? "Network Load Error");
- }
- // 最后赋值
- _needShowLoading = false;
- refreshController.finishRefresh();
- }
- /// 根据索引触发点击的事件
- void switchCategory(int index) {
- switch (index) {
- case 0:
- //设备
- ComponentServiceManager().facilityService.startFacilityPage();
- break;
- case 1:
- //表单
- ComponentServiceManager().formService.startFormPage();
- break;
- case 2:
- //公告板
- ComponentServiceManager().noticeBoardService.startNoticeBoardPage();
- break;
- case 3:
- //房产
- ComponentServiceManager().propertyService.startPropertyPage();
- break;
- case 4:
- //广告服务
- ComponentServiceManager().servicesService.startServicePage();
- break;
- case 5:
- //社区
- ComponentServiceManager().communityService.startCommunityPage();
- break;
- }
- }
- //去消息通知页面
- void gotoNotificationPage() {
- NotificationPage.startInstance();
- }
- void gotoPaymentPage() {
- ComponentServiceManager().paymentService.startPaymentPage();
- }
- void gotoRewardsPage() {
- ComponentServiceManager().rewardsService.startRewardsPage();
- }
- void gotoLastNewsPage() {
- LatestNewsPage.startInstance();
- }
- void gotoPropertyNewsPage() {
- HomePropertyNewsPage.startInstance();
- }
- void gotoManageGuidePage() {
- ManagementGuidesPage.startInstance();
- }
- }
|