move referral patient

login_design_fixes
Elham Rababah 5 years ago
parent 4a9748739e
commit 01abd02d19

@ -0,0 +1,174 @@
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/dashboard_view_model.dart';
import 'package:doctor_app_flutter/models/dashboard/dashboard_model.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/dashboard/guage_chart.dart';
import 'package:doctor_app_flutter/widgets/dashboard/row_count.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart';
class DashboardReferralPatient extends StatelessWidget {
final List<DashboardModel> dashboardItemList;
final double height;
final DashboardViewModel model;
const DashboardReferralPatient({Key key, this.dashboardItemList, this.height, this.model}) : super(key: key);
@override
Widget build(BuildContext context) {
return RoundedContainer(
raduis: 16,
showBorder: true,
borderColor: Colors.white,
shadowWidth: 0.2,
shadowSpreadRadius: 3,
shadowDy: 1,
margin: EdgeInsets.only(top: 15, bottom: 15, left: 10, right: 10),
child:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Expanded(
flex: 1,
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 4,
child: Padding(
padding: const EdgeInsets.all(5.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.all(8),
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context)
.patients,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3,
fontWeight: FontWeight.bold,
fontHeight: 0.5,
),
AppText(
TranslationBase.of(context)
.referral,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 5,
fontWeight: FontWeight.bold,
),
SizedBox(
height: SizeConfig.getHeightMultiplier(height: height) * (SizeConfig.isHeightShort?14: 20)
)
],
),),
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
RowCounts(
dashboardItemList[2]
.summaryoptions[0]
.kPIParameter,
dashboardItemList[2]
.summaryoptions[0]
.value,
Colors.black, height: height,),
RowCounts(
dashboardItemList[2]
.summaryoptions[1]
.kPIParameter,
dashboardItemList[2]
.summaryoptions[1]
.value,
Colors.grey, height: height,),
RowCounts(
dashboardItemList[2]
.summaryoptions[2]
.kPIParameter,
dashboardItemList[2]
.summaryoptions[2]
.value,
Colors.red, height: height,),
],
),
)
],
)),
),
Expanded(
flex: 3,
child: Stack(children: [
Container(
padding:EdgeInsets.all(0),
child: GaugeChart(
_createReferralData(dashboardItemList))),
Positioned(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
AppText(
model
.getPatientCount(dashboardItemList[2])
.toString(),
fontSize: SizeConfig.textMultiplier * 3.0,
fontWeight: FontWeight.bold,
)
],
),
top: height * .35,
left: 0,
right: 0)
]),
),
],
)),
]));
}
static List<charts.Series<GaugeSegment, String>> _createReferralData(List<DashboardModel> dashboardItemList) {
final data = [
new GaugeSegment(
dashboardItemList[2].summaryoptions[0].kPIParameter,
getValue(dashboardItemList[1].summaryoptions[0].value),
charts.MaterialPalette.black),
new GaugeSegment(
dashboardItemList[2].summaryoptions[1].kPIParameter,
getValue(dashboardItemList[1].summaryoptions[1].value),
charts.MaterialPalette.gray.shadeDefault),
new GaugeSegment(
dashboardItemList[2].summaryoptions[2].kPIParameter,
getValue(dashboardItemList[1].summaryoptions[2].value),
charts.MaterialPalette.red.shadeDefault),
];
return [
new charts.Series<GaugeSegment, String>(
id: 'Segments',
domainFn: (GaugeSegment segment, _) => segment.segment,
measureFn: (GaugeSegment segment, _) => segment.size,
data: data,
colorFn: (GaugeSegment segment, _) => segment.color,
)
];
}
static int getValue(value) {
return value == 0 ? 1 : value;
}
}

@ -24,7 +24,7 @@ class DashboardSliderItemWidget extends StatelessWidget {
], ],
), ),
new Container( new Container(
height: SizeConfig.heightMultiplier* (SizeConfig.isHeightShort?15:11), height: SizeConfig.heightMultiplier* (SizeConfig.isHeightShort?13:12),
child: ListView( child: ListView(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
children: children:

@ -1,17 +1,14 @@
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/dashboard_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/dashboard_view_model.dart';
import 'package:doctor_app_flutter/models/dashboard/dashboard_model.dart'; import 'package:doctor_app_flutter/models/dashboard/dashboard_model.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/dashboard/guage_chart.dart';
import 'package:doctor_app_flutter/widgets/dashboard/out_patient_stack.dart'; import 'package:doctor_app_flutter/widgets/dashboard/out_patient_stack.dart';
import 'package:doctor_app_flutter/widgets/dashboard/row_count.dart';
import 'package:doctor_app_flutter/widgets/dashboard/swiper_rounded_pagination.dart'; import 'package:doctor_app_flutter/widgets/dashboard/swiper_rounded_pagination.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_swiper/flutter_swiper.dart'; import 'package:flutter_swiper/flutter_swiper.dart';
import 'dashboard_referral_patient.dart';
class DashboardSwipeWidget extends StatefulWidget { class DashboardSwipeWidget extends StatefulWidget {
final List<DashboardModel> dashboardItemList; final List<DashboardModel> dashboardItemList;
final DashboardViewModel model; final DashboardViewModel model;
@ -29,7 +26,7 @@ class _DashboardSwipeWidgetState extends State<DashboardSwipeWidget> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double height = SizeConfig.heightMultiplier * double height = SizeConfig.heightMultiplier *
(SizeConfig.isHeightShort ? 40 : 30); (SizeConfig.isHeightShort ? 40 : 37);
return Container( return Container(
height: height, height: height,
// height: 230, // height: 230,
@ -46,7 +43,6 @@ class _DashboardSwipeWidgetState extends State<DashboardSwipeWidget> {
return getSwipeWidget(widget.dashboardItemList, index, height); return getSwipeWidget(widget.dashboardItemList, index, height);
}, },
itemCount: 3, itemCount: 3,
// itemHeight: 300,
pagination: new SwiperCustomPagination( pagination: new SwiperCustomPagination(
builder: (BuildContext context, SwiperPluginConfig config) { builder: (BuildContext context, SwiperPluginConfig config) {
return new Stack( return new Stack(
@ -116,156 +112,12 @@ class _DashboardSwipeWidgetState extends State<DashboardSwipeWidget> {
padding: const EdgeInsets.all(5.0), padding: const EdgeInsets.all(5.0),
child: GetOutPatientStack(dashboardItemList[0]))); child: GetOutPatientStack(dashboardItemList[0])));
if (index == 2) if (index == 2)
return RoundedContainer( return DashboardReferralPatient(dashboardItemList: widget.dashboardItemList,height: height,model: widget.model,);
raduis: 16,
showBorder: true,
borderColor: Colors.white,
shadowWidth: 0.2,
shadowSpreadRadius: 3,
shadowDy: 1,
margin: EdgeInsets.only(top: 15, bottom: 15, left: 10, right: 10),
child:
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Expanded(
flex: 1,
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
flex: 4,
child: Padding(
padding: const EdgeInsets.all(5.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.all(8),
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context)
.patients,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3,
fontWeight: FontWeight.bold,
fontHeight: 0.5,
),
AppText(
TranslationBase.of(context)
.referral,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 5,
fontWeight: FontWeight.bold,
),
SizedBox(
height: SizeConfig.getHeightMultiplier(height: height) * (SizeConfig.isHeightShort?0: 7)
)
],
),),
Expanded(
flex: 1,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
RowCounts(
dashboardItemList[2]
.summaryoptions[0]
.kPIParameter,
dashboardItemList[2]
.summaryoptions[0]
.value,
Colors.black),
RowCounts(
dashboardItemList[2]
.summaryoptions[1]
.kPIParameter,
dashboardItemList[2]
.summaryoptions[1]
.value,
Colors.grey),
RowCounts(
dashboardItemList[2]
.summaryoptions[2]
.kPIParameter,
dashboardItemList[2]
.summaryoptions[2]
.value,
Colors.red),
],
),
)
],
)),
),
Expanded(
flex: 3,
child: Stack(children: [
Container(
padding:EdgeInsets.all(0),
child: GaugeChart(
_createReferralData(widget.dashboardItemList))),
Positioned(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
AppText(
widget.model
.getPatientCount(dashboardItemList[2])
.toString(),
fontSize: SizeConfig.textMultiplier * 3.0,
fontWeight: FontWeight.bold,
)
],
),
top: height * .35,
left: 0,
right: 0)
]),
),
],
)),
]));
return Container(); return Container();
} }
static List<charts.Series<GaugeSegment, String>> _createReferralData(List<DashboardModel> dashboardItemList) {
final data = [
new GaugeSegment(
dashboardItemList[2].summaryoptions[0].kPIParameter,
getValue(dashboardItemList[1].summaryoptions[0].value),
charts.MaterialPalette.black),
new GaugeSegment(
dashboardItemList[2].summaryoptions[1].kPIParameter,
getValue(dashboardItemList[1].summaryoptions[1].value),
charts.MaterialPalette.gray.shadeDefault),
new GaugeSegment(
dashboardItemList[2].summaryoptions[2].kPIParameter,
getValue(dashboardItemList[1].summaryoptions[2].value),
charts.MaterialPalette.red.shadeDefault),
];
return [
new charts.Series<GaugeSegment, String>(
id: 'Segments',
domainFn: (GaugeSegment segment, _) => segment.segment,
measureFn: (GaugeSegment segment, _) => segment.size,
data: data,
colorFn: (GaugeSegment segment, _) => segment.color,
)
];
}
static int getValue(value) {
return value == 0 ? 1 : value;
}
} }

@ -22,7 +22,7 @@ class HomePatientCard extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double width = SizeConfig.heightMultiplier* (SizeConfig.isHeightShort?18:11); double width = SizeConfig.heightMultiplier* (SizeConfig.isHeightShort?16:11);
return HomePageCard( return HomePageCard(
color: backgroundColor, color: backgroundColor,
width: width, width: width,
@ -72,7 +72,7 @@ class HomePatientCard extends StatelessWidget {
text, text,
color: textColor, color: textColor,
textAlign: TextAlign.start, textAlign: TextAlign.start,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth(width: width) * 12, fontSize: SizeConfig.getTextMultiplierBasedOnWidth(width: width) * (SizeConfig.isHeightShort?10:12),
), ),
), ),
), ),

@ -119,7 +119,7 @@ class _HomeScreenState extends State<HomeScreen> {
return Row( return Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.start, MainAxisAlignment.end,
children: <Widget>[ children: <Widget>[
Column( Column(
mainAxisAlignment: mainAxisAlignment:
@ -142,8 +142,8 @@ class _HomeScreenState extends State<HomeScreen> {
), ),
constraints: constraints:
BoxConstraints( BoxConstraints(
minWidth: SizeConfig.widthMultiplier* 6, minWidth: SizeConfig.widthMultiplier* 5.5,
minHeight: SizeConfig.widthMultiplier* 6, minHeight: SizeConfig.widthMultiplier* 5,
), ),
child: Center( child: Center(
child: AppText( child: AppText(
@ -157,7 +157,7 @@ class _HomeScreenState extends State<HomeScreen> {
projectsProvider projectsProvider
.isArabic .isArabic
? SizeConfig.widthMultiplier* 3.5 ? SizeConfig.widthMultiplier* 3.5
: SizeConfig.widthMultiplier* 4, : SizeConfig.widthMultiplier* 3,
textAlign: textAlign:
TextAlign TextAlign
.center, .center,
@ -291,7 +291,7 @@ class _HomeScreenState extends State<HomeScreen> {
height: SizeConfig.heightMultiplier *1, height: SizeConfig.heightMultiplier *1,
), ),
Container( Container(
height: SizeConfig.heightMultiplier* (SizeConfig.isHeightShort?18:11), height: SizeConfig.heightMultiplier* (SizeConfig.isHeightShort?16:11),
child: ListView( child: ListView(
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
children: [ children: [

@ -9,7 +9,7 @@ class GetActivityCard extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double width = SizeConfig.heightMultiplier* (SizeConfig.isHeightShort?15:12); double width = SizeConfig.heightMultiplier* (SizeConfig.isHeightShort?13:12);
return Container( return Container(
width: width, width: width,
padding: EdgeInsets.all(SizeConfig.heightMultiplier * .3), padding: EdgeInsets.all(SizeConfig.heightMultiplier * .3),
@ -19,7 +19,7 @@ class GetActivityCard extends StatelessWidget {
borderRadius: BorderRadius.circular(15), borderRadius: BorderRadius.circular(15),
), ),
child: Padding( child: Padding(
padding: const EdgeInsets.fromLTRB(8,4, 8, 4), padding: const EdgeInsets.fromLTRB(8,8, 8, 4),
child: Center( child: Center(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -34,7 +34,7 @@ class GetActivityCard extends StatelessWidget {
AppText( AppText(
value.kPIParameter, value.kPIParameter,
textOverflow: TextOverflow.clip, textOverflow: TextOverflow.clip,
fontSize: SizeConfig.getTextMultiplierBasedOnWidth(width: width)* 08, fontSize: SizeConfig.getTextMultiplierBasedOnWidth(width: width)* (SizeConfig.isHeightShort?6: 8),
color: Color(0xFF2B353E), color: Color(0xFF2B353E),
textAlign: TextAlign.start, textAlign: TextAlign.start,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,

@ -33,6 +33,8 @@ class GetOutPatientStack extends StatelessWidget {
} }
getStack(Summaryoptions value, max,context) { getStack(Summaryoptions value, max,context) {
double barHeight = SizeConfig.heightMultiplier *
(SizeConfig.isHeightShort ? 30 : 25);
return Expanded( return Expanded(
child: Container( child: Container(
margin: EdgeInsets.symmetric(horizontal: 2), margin: EdgeInsets.symmetric(horizontal: 2),
@ -55,7 +57,7 @@ class GetOutPatientStack extends StatelessWidget {
child: Container( child: Container(
child: SizedBox(), child: SizedBox(),
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
height: max != 0 ? ((MediaQuery.of(context).size.height * 0.24 )* value.value) / max : 0, height: max != 0 ? ((barHeight )* value.value) / max : 0,
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
color: Color(0x63D02127), color: Color(0x63D02127),
@ -63,7 +65,7 @@ class GetOutPatientStack extends StatelessWidget {
), ),
), ),
Container( Container(
height: MediaQuery.of(context).size.height * 0.20, height: barHeight,
margin: EdgeInsets.only(left: 5, top: 5), margin: EdgeInsets.only(left: 5, top: 5),
padding: EdgeInsets.all(10), padding: EdgeInsets.all(10),
child: RotatedBox( child: RotatedBox(

@ -5,12 +5,13 @@ import 'package:flutter/material.dart';
class RowCounts extends StatelessWidget { class RowCounts extends StatelessWidget {
final name; final name;
final int count; final int count;
final double height;
final Color c; final Color c;
RowCounts(this.name, this.count, this.c); RowCounts(this.name, this.count, this.c, {this.height});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
padding: EdgeInsets.only(top: 5, bottom: 5), padding: EdgeInsets.only(top:SizeConfig.getHeightMultiplier(height:height )* 0.2 , bottom: SizeConfig.getHeightMultiplier(height:height )* 0.2),
child: Row( child: Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -46,8 +47,8 @@ class RowCounts extends StatelessWidget {
Widget dot(Color c) { Widget dot(Color c) {
return Container( return Container(
padding: EdgeInsets.all(5.0), padding: EdgeInsets.all(SizeConfig.getHeightMultiplier(height:height )* 2),
margin: EdgeInsets.all(5.0), margin: EdgeInsets.all(SizeConfig.getHeightMultiplier(height:height )* 1),
decoration: BoxDecoration(color: c, shape: BoxShape.circle)); decoration: BoxDecoration(color: c, shape: BoxShape.circle));
} }
} }

@ -23,7 +23,7 @@ class BottomNavigationItem extends StatelessWidget {
return Expanded( return Expanded(
child: SizedBox( child: SizedBox(
height: SizeConfig.heightMultiplier * height: SizeConfig.heightMultiplier *
(SizeConfig.isHeightShort ? 10 : 8), (SizeConfig.isHeightShort ? 10 : 6),
child: Material( child: Material(
type: MaterialType.transparency, type: MaterialType.transparency,
child: InkWell( child: InkWell(
@ -42,16 +42,16 @@ class BottomNavigationItem extends StatelessWidget {
? Color(0xFF333C45) ? Color(0xFF333C45)
: Theme.of(context).dividerColor, : Theme.of(context).dividerColor,
size: SizeConfig.getHeightMultiplier(height:SizeConfig.heightMultiplier * size: SizeConfig.getHeightMultiplier(height:SizeConfig.heightMultiplier *
(SizeConfig.isHeightShort ? 10 : 8) ) * 40,), (SizeConfig.isHeightShort ? 10 : 6) ) * 40,),
), ),
SizedBox(height: SizeConfig.getHeightMultiplier(height:SizeConfig.heightMultiplier * SizedBox(height: SizeConfig.getHeightMultiplier(height:SizeConfig.heightMultiplier *
(SizeConfig.isHeightShort ? 10 : 8) ) * 0.5,), (SizeConfig.isHeightShort ? 10 : 6) ) * 0.5,),
Expanded( Expanded(
child: Text( child: Text(
name, name,
style: TextStyle( style: TextStyle(
fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 4, fontSize: SizeConfig.getTextMultiplierBasedOnWidth() * 3,
color: currentIndex == index color: currentIndex == index
? Theme.of(context).primaryColor ? Theme.of(context).primaryColor
: Theme.of(context).dividerColor, : Theme.of(context).dividerColor,

Loading…
Cancel
Save