Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'dart:convert';
- import 'package:flutter/material.dart';
- import 'package:charts_flutter/flutter.dart' as charts;
- import 'package:vendorapp/helper/SharedPreferencesHelper.dart';
- import 'package:vendorapp/model/Statistic.dart';
- import 'package:http/http.dart' as http;
- import 'package:vendorapp/model/UserMdl.dart';
- import 'package:vendorapp/screens/statistic/statistic_presenter.dart';
- import 'package:vendorapp/screens/statistic/statistic_view.dart';
- class StatisticFragmentWidget extends StatefulWidget {
- StatisticPresenter presenter;
- List<AsignList> asignList;
- var isLoading = true;
- StatisticFragmentWidget();
- /*/// Creates a [LineChart] with sample data and no transition.
- factory StatisticFragmentWidget.withSampleData() {
- return new StatisticFragmentWidget(
- _createSampleData(),
- // Disable animations for image tests.
- animate: false,
- );
- }*/
- @override
- State<StatefulWidget> createState() {
- // TODO: implement createState
- return new StatisticFragmentState();
- }
- }
- class StatisticFragmentState extends State<StatisticFragmentWidget> implements StatisticView {
- Color color;
- final globalKey = new GlobalKey<ScaffoldState>();
- UserMdl user;
- @override
- void onGetStatisticSuccess(Statistic statisticMdl) {
- this.widget.asignList = statisticMdl.data;
- setState(() {
- this.widget.isLoading = false;
- });
- }
- @override
- void onErrorLoading(String message) {
- throw Exception(message);
- }
- @override
- void initState() {
- super.initState();
- this.widget.presenter = new StatisticPresenter(this);
- }
- @override
- Future<void> didChangeDependencies() async {
- super.didChangeDependencies();
- if (user == null) {
- await initUserProfile();
- }
- }
- Future<void> initUserProfile() async {
- UserMdl up = await AppSharedPreferences.getUserProfile();
- setState(() {
- user = up;
- this.widget.presenter.doGetData(user.token);
- });
- }
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- body: this.widget.isLoading
- ? Center(
- child: CircularProgressIndicator(),
- ) : charts.LineChart(_createStatisticData(this.widget.asignList),
- animate: false,
- defaultRenderer: new charts.LineRendererConfig(includePoints: true)),
- );
- }
- Future<Statistic> getStatistic() async {
- final response = await http.get(
- 'https://vendor.stickearn.net/api/statistic/installation?start_date=-1month&end_date=today');
- print(response.body);
- if (response.statusCode == 200) {
- return Statistic.fromJson(json.decode(response.body));
- } else {
- throw Exception('Failed to load post');
- }
- }
- }
- /// Create one series with sample hard coded data.
- List<charts.Series<LinearStatistic, int>> _createStatisticData(List<AsignList> installment) {
- final installmentList = [];
- for (var i = 0; i < installment.length; i++) {
- installmentList.add(new LinearStatistic(i, installment[i].count));
- }
- final data = [
- new LinearStatistic(0, 5),
- new LinearStatistic(1, 25),
- new LinearStatistic(2, 100),
- new LinearStatistic(3, 75),
- ];
- print(installmentList.toString());
- print(data.toString());
- return [
- new charts.Series<LinearStatistic, int>(
- id: 'Sales',
- colorFn: (_, __) => charts.MaterialPalette.blue.shadeDefault,
- domainFn: (LinearStatistic sales, _) => sales.position,
- measureFn: (LinearStatistic sales, _) => sales.count,
- data: installmentList,
- )
- ];
- }
- /// Sample linear data type.
- class LinearStatistic {
- final int position;
- final int count;
- LinearStatistic(this.position, this.count);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement