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

79 lines
2.4 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_summary_detail.dart';
class DeliverySummary extends StatefulWidget {
@override
_DeliverySummaryState createState() => _DeliverySummaryState();
}
class _DeliverySummaryState extends State<DeliverySummary> {
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.getDeliverySummary(),
domainFn: (Data series, _) => "${series.totalDay}days",
measureFn: (Data series, _) => series.totalAmount,
labelAccessorFn: (Data series, _) =>
'${numberFormatter.format(series.totalAmount)}'),
];
return Container(
height: 200,
child: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
LocalText(context, "delivery.summary",
color: primaryColor, fontSize: 16),
InkWell(
child: LocalText(
context,
"delivery.detail",
color: secondaryColor,
fontSize: 14,
),
onTap: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => DeliverySummaryDetail()));
},
),
],
),
Expanded(
child: charts.BarChart(
series,
animate: true,
vertical: false,
defaultRenderer: new charts.BarRendererConfig(
barRendererDecorator: new charts.BarLabelDecorator<String>(
labelPosition: charts.BarLabelPosition.auto,
),
),
),
),
],
),
);
}
}