diff --git a/lib/screens/dashboard_screen.dart b/lib/screens/dashboard_screen.dart index fbbe6d53..c16bf7ea 100644 --- a/lib/screens/dashboard_screen.dart +++ b/lib/screens/dashboard_screen.dart @@ -25,6 +25,7 @@ import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_swiper/flutter_swiper.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:percent_indicator/circular_percent_indicator.dart'; import 'package:provider/provider.dart'; @@ -283,7 +284,7 @@ class _DashboardScreenState extends State { // ), Container( color: Colors.white, - height: MediaQuery.of(context).size.height * 0.45, + height: MediaQuery.of(context).size.height * 0.22, ), ], ), @@ -292,317 +293,17 @@ class _DashboardScreenState extends State { left: 9, top: MediaQuery.of(context).size.height * .1, child: Container( - height: MediaQuery.of(context).size.height * 0.52, + height: MediaQuery.of(context).size.height * 0.30, child: model.dashboardItemsList.length > 0 - ? Column( - children: [ - RoundedContainer( - height: - MediaQuery.of(context).size.height * - 0.24, - margin: 5, - child: Column(children: [ - Expanded( - flex: 3, - child: Row( - children: [ - Expanded( - flex: 5, - child: Padding( - padding: - const EdgeInsets - .all(5.0), - child: Column( - mainAxisAlignment: - MainAxisAlignment - .spaceBetween, - crossAxisAlignment: - CrossAxisAlignment - .start, - children: [ - rowCount( - model - .dashboardItemsList[ - 0] - .summaryoptions[ - 0] - .kPIParameter, - model - .dashboardItemsList[ - 0] - .summaryoptions[ - 0] - .value, - Colors.red), - rowCount( - model - .dashboardItemsList[ - 0] - .summaryoptions[ - 1] - .kPIParameter, - model - .dashboardItemsList[ - 0] - .summaryoptions[ - 1] - .value, - Colors.black), - rowCount( - model - .dashboardItemsList[ - 0] - .summaryoptions[ - 2] - .kPIParameter, - model - .dashboardItemsList[ - 0] - .summaryoptions[ - 2] - .value, - Colors - .grey[800]), - ], - ))), - Expanded( - flex: 3, - child: Stack(children: [ - Container( - child: GaugeChart( - _createInpatientData( - model))), - Positioned( - child: Column( - children: [ - AppText( - TranslationBase.of( - context) - .inPatient, - fontSize: 11, - fontWeight: - FontWeight - .bold, - ), - AppText( - getPatientCount( - model.dashboardItemsList[ - 0]) - .toString(), - fontSize: 11, - fontWeight: - FontWeight - .bold, - ) - ], - ), - top: MediaQuery.of( - context) - .size - .height * - 0.08, - left: MediaQuery.of( - context) - .size - .width * - 0.10) - ])), - ], - )), - Expanded( - flex: 1, - child: Padding( - padding: - const EdgeInsets.all(5.0), - child: Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - rowCount( - model - .dashboardItemsList[0] - .summaryoptions[3] - .kPIParameter, - model - .dashboardItemsList[0] - .summaryoptions[3] - .value, - Colors.grey), - rowCount( - model - .dashboardItemsList[0] - .summaryoptions[4] - .kPIParameter, - model - .dashboardItemsList[0] - .summaryoptions[4] - .value, - Colors.grey[300]), - ], - )), - ) - ])), - RoundedContainer( - height: - MediaQuery.of(context).size.height * - 0.24, - margin: 5, - child: Column(children: [ - Expanded( - flex: 3, - child: Row( - children: [ - Expanded( - flex: 5, - child: Padding( - padding: - const EdgeInsets - .all(5.0), - child: Column( - mainAxisAlignment: - MainAxisAlignment - .spaceBetween, - crossAxisAlignment: - CrossAxisAlignment - .start, - children: [ - rowCount( - model - .dashboardItemsList[ - 1] - .summaryoptions[ - 0] - .kPIParameter, - model - .dashboardItemsList[ - 1] - .summaryoptions[ - 0] - .value, - Colors.red), - rowCount( - model - .dashboardItemsList[ - 1] - .summaryoptions[ - 1] - .kPIParameter, - model - .dashboardItemsList[ - 1] - .summaryoptions[ - 1] - .value, - Colors.black), - rowCount( - model - .dashboardItemsList[ - 1] - .summaryoptions[ - 2] - .kPIParameter, - model - .dashboardItemsList[ - 1] - .summaryoptions[ - 2] - .value, - Colors - .grey[800]), - ], - ))), - Expanded( - flex: 3, - child: Stack(children: [ - Container( - child: GaugeChart( - _createOutPatientData( - model))), - Positioned( - child: Column( - children: [ - AppText( - TranslationBase.of( - context) - .outPatient, - fontSize: 11, - fontWeight: - FontWeight - .bold, - textOverflow: - TextOverflow - .ellipsis, - ), - AppText( - getPatientCount( - model.dashboardItemsList[ - 1]) - .toString(), - fontSize: 11, - fontWeight: - FontWeight - .bold, - ) - ], - ), - top: MediaQuery.of( - context) - .size - .height * - 0.08, - left: MediaQuery.of( - context) - .size - .width * - 0.09) - ]), - ), - ], - )), - Expanded( - flex: 1, - child: Padding( - padding: - const EdgeInsets.all(5.0), - child: Row( - mainAxisAlignment: - MainAxisAlignment.start, - children: [ - rowCount( - model - .dashboardItemsList[1] - .summaryoptions[3] - .kPIParameter, - model - .dashboardItemsList[1] - .summaryoptions[3] - .value, - Colors.grey), - rowCount( - model - .dashboardItemsList[1] - .summaryoptions[4] - .kPIParameter, - model - .dashboardItemsList[1] - .summaryoptions[4] - .value, - Colors.grey[300]), - rowCount( - model - .dashboardItemsList[1] - .summaryoptions[5] - .kPIParameter, - model - .dashboardItemsList[1] - .summaryoptions[5] - .value, - Colors.grey[200]) - ], - )), - ) - ])) - ], + ? new Swiper( + itemBuilder: (BuildContext context, int index) { + return getSwiperWidget(model)[index]; + }, + itemCount: 2, + // pagination: new SwiperPagination(), + viewportFraction: 0.9, + // scale: 0.9, + // control: new SwiperControl(), ) : SizedBox()) //ExpandableCardContainer( @@ -1443,23 +1144,23 @@ class _DashboardScreenState extends State { new GaugeSegment( model.dashboardItemsList[0].summaryoptions[0].kPIParameter, getValue(model.dashboardItemsList[0].summaryoptions[0].value), - charts.MaterialPalette.red.shadeDefault), + charts.MaterialPalette.blue.shadeDefault), new GaugeSegment( model.dashboardItemsList[0].summaryoptions[1].kPIParameter, getValue(model.dashboardItemsList[0].summaryoptions[1].value), - charts.MaterialPalette.black.darker), + charts.MaterialPalette.cyan.shadeDefault), new GaugeSegment( model.dashboardItemsList[0].summaryoptions[2].kPIParameter, getValue(model.dashboardItemsList[0].summaryoptions[2].value), - charts.MaterialPalette.gray.shade800), + charts.MaterialPalette.red.shadeDefault), new GaugeSegment( model.dashboardItemsList[0].summaryoptions[3].kPIParameter, getValue(model.dashboardItemsList[0].summaryoptions[3].value), - charts.MaterialPalette.gray.shadeDefault.lighter), + charts.MaterialPalette.deepOrange.shadeDefault.lighter), new GaugeSegment( model.dashboardItemsList[0].summaryoptions[4].kPIParameter, getValue(model.dashboardItemsList[0].summaryoptions[4].value), - charts.MaterialPalette.gray.shadeDefault), + charts.MaterialPalette.green.shadeDefault), ]; return [ @@ -1479,23 +1180,27 @@ class _DashboardScreenState extends State { new GaugeSegment( model.dashboardItemsList[1].summaryoptions[0].kPIParameter, getValue(model.dashboardItemsList[1].summaryoptions[0].value), - charts.MaterialPalette.red.shadeDefault), + charts.MaterialPalette.blue.shadeDefault), new GaugeSegment( model.dashboardItemsList[1].summaryoptions[1].kPIParameter, getValue(model.dashboardItemsList[1].summaryoptions[1].value), - charts.MaterialPalette.black.darker), + charts.MaterialPalette.cyan.shadeDefault), new GaugeSegment( model.dashboardItemsList[1].summaryoptions[2].kPIParameter, getValue(model.dashboardItemsList[1].summaryoptions[2].value), - charts.MaterialPalette.gray.shade800), + charts.MaterialPalette.red.shadeDefault), new GaugeSegment( model.dashboardItemsList[1].summaryoptions[3].kPIParameter, getValue(model.dashboardItemsList[1].summaryoptions[3].value), - charts.MaterialPalette.gray.shadeDefault), + charts.MaterialPalette.deepOrange.shadeDefault), new GaugeSegment( model.dashboardItemsList[1].summaryoptions[4].kPIParameter, getValue(model.dashboardItemsList[1].summaryoptions[4].value), - charts.MaterialPalette.gray.shadeDefault.lighter), + charts.MaterialPalette.green.shadeDefault.lighter), + new GaugeSegment( + model.dashboardItemsList[1].summaryoptions[5].kPIParameter, + getValue(model.dashboardItemsList[1].summaryoptions[5].value), + charts.MaterialPalette.purple.shadeDefault.lighter) ]; return [ @@ -1625,7 +1330,7 @@ class _DashboardScreenState extends State { return Row( children: [ dot(c), - Column( + Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( @@ -1636,7 +1341,7 @@ class _DashboardScreenState extends State { textOverflow: TextOverflow.ellipsis, ), AppText( - '(' + count.toString() + ')', + ' (' + count.toString() + ')', color: Colors.black, textAlign: TextAlign.center, fontSize: 14, @@ -1647,6 +1352,170 @@ class _DashboardScreenState extends State { ], ); } + + List getSwiperWidget(model) { + return [ + RoundedContainer( + height: MediaQuery.of(context).size.height * 0.30, + margin: 5, + child: Column(children: [ + Expanded( + flex: 5, + child: Row( + children: [ + Expanded( + flex: 4, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + rowCount( + model.dashboardItemsList[0] + .summaryoptions[0].kPIParameter, + model.dashboardItemsList[0] + .summaryoptions[0].value, + Colors.blue), + rowCount( + model.dashboardItemsList[0] + .summaryoptions[1].kPIParameter, + model.dashboardItemsList[0] + .summaryoptions[1].value, + Colors.cyan), + rowCount( + model.dashboardItemsList[0] + .summaryoptions[2].kPIParameter, + model.dashboardItemsList[0] + .summaryoptions[2].value, + Colors.red), + rowCount( + model.dashboardItemsList[0] + .summaryoptions[3].kPIParameter, + model.dashboardItemsList[0] + .summaryoptions[3].value, + Colors.orange), + rowCount( + model.dashboardItemsList[0] + .summaryoptions[4].kPIParameter, + model.dashboardItemsList[0] + .summaryoptions[4].value, + Colors.green), + ], + ))), + Expanded( + flex: 3, + child: Stack(children: [ + Container( + child: GaugeChart(_createInpatientData(model))), + Positioned( + child: Center( + child: Column( + children: [ + AppText( + TranslationBase.of(context).inPatient, + fontSize: 11, + fontWeight: FontWeight.bold, + ), + AppText( + getPatientCount(model.dashboardItemsList[0]) + .toString(), + fontSize: 11, + fontWeight: FontWeight.bold, + ) + ], + )), + top: MediaQuery.of(context).size.height * 0.12, + left: MediaQuery.of(context).size.width * 0.11) + ])), + ], + )), + ])), + RoundedContainer( + height: MediaQuery.of(context).size.height * 0.24, + margin: 5, + child: Column(children: [ + Expanded( + flex: 1, + child: Row( + children: [ + Expanded( + flex: 4, + child: Padding( + padding: const EdgeInsets.all(5.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + rowCount( + model.dashboardItemsList[1] + .summaryoptions[0].kPIParameter, + model.dashboardItemsList[1] + .summaryoptions[0].value, + Colors.blue), + rowCount( + model.dashboardItemsList[1] + .summaryoptions[1].kPIParameter, + model.dashboardItemsList[1] + .summaryoptions[1].value, + Colors.cyan), + rowCount( + model.dashboardItemsList[1] + .summaryoptions[2].kPIParameter, + model.dashboardItemsList[1] + .summaryoptions[2].value, + Colors.red), + rowCount( + model.dashboardItemsList[1] + .summaryoptions[3].kPIParameter, + model.dashboardItemsList[1] + .summaryoptions[3].value, + Colors.orange), + rowCount( + model.dashboardItemsList[1] + .summaryoptions[4].kPIParameter, + model.dashboardItemsList[1] + .summaryoptions[4].value, + Colors.green), + rowCount( + model.dashboardItemsList[1] + .summaryoptions[5].kPIParameter, + model.dashboardItemsList[1] + .summaryoptions[5].value, + Colors.purple) + ], + ))), + Expanded( + flex: 3, + child: Stack(children: [ + Container( + child: GaugeChart(_createOutPatientData(model))), + Positioned( + child: Column( + children: [ + AppText( + TranslationBase.of(context).outPatient, + fontSize: 11, + fontWeight: FontWeight.bold, + textOverflow: TextOverflow.ellipsis, + ), + AppText( + getPatientCount(model.dashboardItemsList[1]) + .toString(), + fontSize: 11, + fontWeight: FontWeight.bold, + ) + ], + ), + top: MediaQuery.of(context).size.height * 0.12, + left: MediaQuery.of(context).size.width * 0.11) + ]), + ), + ], + )), + ])) + ]; + } } // TODO Move to it file @@ -1707,6 +1576,8 @@ class DashboardItem extends StatelessWidget { ), ); } + + getDashboardWidget() {} } class ExpandableCardContainer extends StatefulWidget { diff --git a/pubspec.yaml b/pubspec.yaml index 7602415e..6dd072f5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -36,6 +36,7 @@ dependencies: maps_launcher: ^1.2.0 url_launcher: ^5.4.5 charts_flutter: ^0.9.0 + flutter_swiper: ^1.1.6 #Icons eva_icons_flutter: ^2.0.0 font_awesome_flutter: ^8.11.0