import 'package:cpt_sg/modules/job/job_list/job_list_page.dart'; import 'package:cpt_sg/modules/report/dashboard/dashboard_item.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:widgets/ext/ex_widget.dart'; import 'package:widgets/load_state_layout.dart'; import 'package:widgets/widget_export.dart'; import 'dashboard_controller.dart'; import 'package:plugin_basic/base/base_state.dart'; import 'package:plugin_basic/base/base_stateful_page.dart'; import 'package:plugin_basic/utils/ext_get_nav.dart'; import 'package:router/path/router_path.dart'; import 'package:shared/utils/screen_util.dart'; import 'package:widgets/my_appbar.dart'; import 'dashboard_state.dart'; class SGDashboardPage extends BaseStatefulPage { SGDashboardPage({Key? key}) : super(key: key); //启动当前页面 static void startInstance() { return Get.start(RouterPath.dashboardSG); } @override DashboardController createRawController() { return DashboardController(); } @override State createState() => _DeviceListState(); } class _DeviceListState extends BaseState { late DashboardState state; @override void initState() { super.initState(); state = controller.state; } @override Widget build(BuildContext context) { return autoCtlGetBuilder(builder: (controller) { return SafeArea( bottom: true, top: false, child: Container( width: double.infinity, height: double.infinity, padding: EdgeInsets.only(top: ScreenUtil.getStatusBarH(context)), decoration: const BoxDecoration( gradient: LinearGradient( colors: [ Color(0xFF091D44), Color(0xFF245A8A), Color(0xFF7F7CEC), ], begin: Alignment.topCenter, end: Alignment.bottomCenter, ), ), child: Column( children: [ MyAppBar.titleBar(context, "Dashboard".tr), //底部的列表 EasyRefresh( controller: controller.refreshController, onRefresh: controller.onRefresh, child: LoadStateLayout( state: controller.loadingState, errorMessage: controller.errorMessage, errorRetry: () { controller.retryRequest(); }, successSliverWidget: [ SliverList( delegate: SliverChildBuilderDelegate( (context, index) { return DashboardItem( index: index, item: state.datas[index], OnItemClickAction: (String? agencyId, String? outletId, String? day) { JobListPage.startInstance(date: day, outletId: outletId, agencyId: agencyId); }, ); }, childCount: state.datas.length, )) ], ), ).marginOnly(top: 5).expanded(), ], ), ), ); }); } }