dashboard_page.dart 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import 'package:cpt_sg/modules/job/job_list/job_list_page.dart';
  2. import 'package:cpt_sg/modules/report/dashboard/dashboard_item.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:get/get.dart';
  5. import 'package:widgets/ext/ex_widget.dart';
  6. import 'package:widgets/load_state_layout.dart';
  7. import 'package:widgets/widget_export.dart';
  8. import 'dashboard_controller.dart';
  9. import 'package:plugin_basic/base/base_state.dart';
  10. import 'package:plugin_basic/base/base_stateful_page.dart';
  11. import 'package:plugin_basic/utils/ext_get_nav.dart';
  12. import 'package:router/path/router_path.dart';
  13. import 'package:shared/utils/screen_util.dart';
  14. import 'package:widgets/my_appbar.dart';
  15. import 'dashboard_state.dart';
  16. class SGDashboardPage extends BaseStatefulPage<DashboardController> {
  17. SGDashboardPage({Key? key}) : super(key: key);
  18. //启动当前页面
  19. static void startInstance() {
  20. return Get.start(RouterPath.dashboardSG);
  21. }
  22. @override
  23. DashboardController createRawController() {
  24. return DashboardController();
  25. }
  26. @override
  27. State<SGDashboardPage> createState() => _DeviceListState();
  28. }
  29. class _DeviceListState extends BaseState<SGDashboardPage, DashboardController> {
  30. late DashboardState state;
  31. @override
  32. void initState() {
  33. super.initState();
  34. state = controller.state;
  35. }
  36. @override
  37. Widget build(BuildContext context) {
  38. return autoCtlGetBuilder(builder: (controller) {
  39. return SafeArea(
  40. bottom: true,
  41. top: false,
  42. child: Container(
  43. width: double.infinity,
  44. height: double.infinity,
  45. padding: EdgeInsets.only(top: ScreenUtil.getStatusBarH(context)),
  46. decoration: const BoxDecoration(
  47. gradient: LinearGradient(
  48. colors: [
  49. Color(0xFF091D44),
  50. Color(0xFF245A8A),
  51. Color(0xFF7F7CEC),
  52. ],
  53. begin: Alignment.topCenter,
  54. end: Alignment.bottomCenter,
  55. ),
  56. ),
  57. child: Column(
  58. children: [
  59. MyAppBar.titleBar(context, "Dashboard".tr),
  60. //底部的列表
  61. EasyRefresh(
  62. controller: controller.refreshController,
  63. onRefresh: controller.onRefresh,
  64. child: LoadStateLayout(
  65. state: controller.loadingState,
  66. errorMessage: controller.errorMessage,
  67. errorRetry: () {
  68. controller.retryRequest();
  69. },
  70. successSliverWidget: [
  71. SliverList(
  72. delegate: SliverChildBuilderDelegate(
  73. (context, index) {
  74. return DashboardItem(
  75. index: index,
  76. item: state.datas[index],
  77. OnItemClickAction: (String? agencyId, String? outletId, String? day) {
  78. JobListPage.startInstance(date: day, outletId: outletId, agencyId: agencyId);
  79. },
  80. );
  81. },
  82. childCount: state.datas.length,
  83. ))
  84. ],
  85. ),
  86. ).marginOnly(top: 5).expanded(),
  87. ],
  88. ),
  89. ),
  90. );
  91. });
  92. }
  93. }