dashboard design

merge-requests/338/head
Sultan Khan 4 years ago
parent 817718f897
commit be832bfd4b

@ -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<DashboardScreen> {
// ),
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<DashboardScreen> {
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<DashboardScreen> {
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<DashboardScreen> {
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<DashboardScreen> {
return Row(
children: [
dot(c),
Column(
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
@ -1636,7 +1341,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
textOverflow: TextOverflow.ellipsis,
),
AppText(
'(' + count.toString() + ')',
' (' + count.toString() + ')',
color: Colors.black,
textAlign: TextAlign.center,
fontSize: 14,
@ -1647,6 +1352,170 @@ class _DashboardScreenState extends State<DashboardScreen> {
],
);
}
List<Widget> 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 {

@ -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

Loading…
Cancel
Save