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/fcs/common/helpers/theme.dart'; import 'package:fcs/vo/revenue.dart'; import 'package:fcs/widget/local_text.dart'; import 'delivery_do_line_detail.dart'; class DODeliveryLineChart extends StatefulWidget { @override _DODeliveryLineChartState createState() => _DODeliveryLineChartState(); } class _DODeliveryLineChartState extends State { static final numberFormatter = new NumberFormat("#,###"); @override void initState() { super.initState(); } @override Widget build(BuildContext context) { var chartModel = Provider.of(context); List> series = [ charts.Series( id: "Subscribers", data: chartModel.revenue.getDeliveryDo(), domainFn: (Data series, _) => series.date, measureFn: (Data series, _) => series.count, colorFn: (_, __) => charts.ColorUtil.fromDartColor(primaryColor), labelAccessorFn: (Data series, _) => '${numberFormatter.format(series.count)}', ), ]; return Container( height: 200, child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ LocalText(context, "delivery.do.title", color: primaryColor, fontSize: 16), InkWell( child: LocalText( context, "delivery.do.details", color: secondaryColor, fontSize: 14, ), onTap: () { Navigator.of(context).push(MaterialPageRoute( builder: (_) => DODeliveryLineDetail())); }, ), ], ), Expanded( child: charts.TimeSeriesChart( series, animate: true, defaultRenderer: new charts.LineRendererConfig( includePoints: true, ), primaryMeasureAxis: new charts.NumericAxisSpec( tickProviderSpec: new charts.BasicNumericTickProviderSpec( zeroBound: false, desiredTickCount: 10), renderSpec: new charts.GridlineRendererSpec( lineStyle: charts.LineStyleSpec( dashPattern: [4, 4], ))), ), ), ], ), ); } }