Files
fcs/lib/charts/delivery_do_summary.dart

80 lines
2.4 KiB
Dart
Raw Normal View History

2020-05-29 07:45:27 +06:30
import 'package:charts_flutter/flutter.dart' as charts;
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart';
import 'package:fcs/model/chart_model.dart';
import 'package:fcs/theme/theme.dart';
import 'package:fcs/vo/revenue.dart';
import 'package:fcs/widget/local_text.dart';
import 'delivery_do_summary_details.dart';
class DeliveryDoSummaryChart extends StatefulWidget {
@override
_DeliveryDoSummaryChartState createState() => _DeliveryDoSummaryChartState();
}
class _DeliveryDoSummaryChartState extends State<DeliveryDoSummaryChart> {
static final numberFormatter = new NumberFormat("#,###");
var dateFormatter = new DateFormat('dd MMM yyyy');
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
var chartModel = Provider.of<ChartModel>(context);
List<charts.Series<Data, String>> series = [
charts.Series(
id: "Subscribers",
data: chartModel.revenue.getDeliveryDoSummary(),
domainFn: (Data series, _) => "${series.totalDay}days",
measureFn: (Data series, _) => series.totalCount,
labelAccessorFn: (Data series, _) =>
'${numberFormatter.format(series.totalCount)}'),
];
return Container(
height: 200,
child: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
LocalText(context, "delivery.do.summary",
color: primaryColor, fontSize: 16),
InkWell(
child: LocalText(
context,
"delivery.do.details",
color: secondaryColor,
fontSize: 14,
),
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => DeliveryDoSummaryDetail()));
},
),
],
),
Expanded(
child: charts.BarChart(
series,
animate: true,
vertical: false,
defaultRenderer: new charts.BarRendererConfig(
barRendererDecorator: new charts.BarLabelDecorator<String>(
labelPosition: charts.BarLabelPosition.auto,
),
),
),
),
],
),
);
}
}