import 'package:cs_resources/generated/assets.dart'; import 'package:domain/entity/garage_sale_rent_entity.dart'; import 'package:flutter/material.dart'; import 'package:auto_route/auto_route.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:plugin_basic/provider/app_config/app_config_service.dart'; import 'package:router/ext/auto_router_extensions.dart'; import 'package:shared/utils/color_utils.dart'; import 'package:shared/utils/ext_dart.dart'; import 'package:shared/utils/log_utils.dart'; import 'package:shared/utils/screen_util.dart'; import 'package:widgets/load_state_layout.dart'; import 'package:widgets/my_button.dart'; import 'package:widgets/my_load_image.dart'; import 'package:widgets/ext/ex_widget.dart'; import 'package:widgets/my_text_view.dart'; import 'package:widgets/my_appbar.dart'; import 'package:cs_resources/theme/app_colors_theme.dart'; import 'package:widgets/widget_export.dart'; import '../../../constants_services.dart'; import '../../../router/page/services_page_router.dart'; import 'in_progress_vm.dart'; import '../../../components/status_card_item.dart'; @RoutePage() class InProgressPage extends HookConsumerWidget { const InProgressPage({Key? key}) : super(key: key); //启动当前页面 static void startInstance({BuildContext? context}) { if (context != null) { context.router.push(const InProgressPageRoute()); } else { appRouter.push(const InProgressPageRoute()); } } @override Widget build(BuildContext context, WidgetRef ref) { final vm = ref.read(inProgressVmProvider.notifier); final state = ref.watch(inProgressVmProvider); // final appConfigState = ref.watch(appConfigServiceProvider) int serviceTypeCode = servicesConstants.servicesType['houseCleaning']?['code']; int serviceStatusCode = servicesConstants.servicesStatus['1']?['code']; useEffect(() { // 组件挂载时执行 - 执行接口请求 Future.microtask(() => vm.initPageData()); return () { // 组件卸载时执行 Log.d("inProgress_page 组件卸载时执行"); }; }, []); return Scaffold( // appBar: MyAppBar.appBar( // context, // "InProgress", // backgroundColor: context.appColors.whiteBG, // ), backgroundColor: ColorUtils.string2Color("#F2F3F6"), body: SizedBox( width: double.infinity, height: double.infinity, child: EasyRefresh( key: ValueKey('inProgress'), controller: vm.refreshController, // 上拉加载 onLoad: () async{ Log.d("----onLoad"); vm.loadMore(); }, // 下拉刷新 onRefresh: () async{ Log.d("----onRefresh"); vm.onRefresh(); }, child: LoadStateLayout( state: state.loadingState, errorMessage: state.errorMessage, errorRetry: () { vm.retryRequest(); }, successSliverWidget:[ SliverList( delegate: SliverChildBuilderDelegate( (context, index) { return _buildInProgressItem( context, ref, state.list[index], vm, serviceTypeCode, serviceStatusCode ).onTap((){ vm.gotoCleanOrderDetailPage( context, state.list?[index]['id'], serviceTypeCode, serviceStatusCode ); }); }, childCount: state.list.length, ), ) ], ), ).marginOnly(left: 15,right: 15,top: 0,bottom: 15) ), ); } Widget _buildInProgressItem(BuildContext context, WidgetRef ref, Map item, vm, int serviceTypeCode, int serviceStatusCode){ return Container( margin: const EdgeInsets.only(top: 9), width: double.infinity, decoration: BoxDecoration( color: context.appColors.whiteBG, borderRadius: BorderRadius.circular(8), boxShadow: [ BoxShadow( color: ColorUtils.string2Color('#E5E5E5'), offset: const Offset(0, 2), blurRadius: 8, ), ], ), child: StausCardItem( key: UniqueKey(), cardHeight: 175.0, serviceId: item['id'], serviceTypeCode: serviceTypeCode, serviceStatusCode: serviceStatusCode, itemObj: item.cast(), onClickCard: (dynamic value) async { // Log.d("点击了喜欢按钮 --id:${item['id']}- $collectionValue"); // int id = item['id']; // return await vm.handlerClickCollection(id, collectionValue); }, ), ); } }