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_line_data.dart'; class DeliveryBarChart extends StatefulWidget { @override _DeliveryBarChartState createState() => _DeliveryBarChartState(); } class _DeliveryBarChartState extends State { 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(context); List> series = [ charts.Series( id: "Subscribers", data: chartModel.revenue.getDelivery(), domainFn: (Data series, _) => "${series.date.day}-${series.date.month}-${series.date.year}", measureFn: (Data series, _) => series.amount, labelAccessorFn: (Data series, _) => '${numberFormatter.format(series.amount)}'), ]; List> seriesLine = [ charts.Series( id: "Subscribers", data: chartModel.revenue.getDelivery(), domainFn: (Data series, _) => series.date, measureFn: (Data series, _) => series.amount, colorFn: (_, __) => charts.ColorUtil.fromDartColor(primaryColor), labelAccessorFn: (Data series, _) => '${numberFormatter.format(series.amount)}', ), ]; return Container( height: 200, child: Column( children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ LocalText(context, "delivery", color: primaryColor, fontSize: 16), InkWell( child: LocalText( context, "delivery.detail", color: secondaryColor, fontSize: 14, ), onTap: () { Navigator.of(context).push( MaterialPageRoute(builder: (_) => DeliveryBarData())); }, ), ], ), Expanded( child: charts.TimeSeriesChart( seriesLine, 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], ))), ), ), // Expanded( // child: charts.BarChart( // series, // animate: true, // vertical: true, // defaultRenderer: new charts.BarRendererConfig( // barRendererDecorator: new charts.BarLabelDecorator( // labelPosition: charts.BarLabelPosition.auto, // ), // ), // ), // ), ], ), ); } }