Files
fcs/lib/charts/delivery_do_line.dart
2020-05-29 07:45:27 +06:30

84 lines
2.6 KiB
Dart

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_line_detail.dart';
class DODeliveryLineChart extends StatefulWidget {
@override
_DODeliveryLineChartState createState() => _DODeliveryLineChartState();
}
class _DODeliveryLineChartState extends State<DODeliveryLineChart> {
static final numberFormatter = new NumberFormat("#,###");
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
var chartModel = Provider.of<ChartModel>(context);
List<charts.Series<Data, DateTime>> 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: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
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],
))),
),
),
],
),
);
}
}