Files
tripz_admin/lib/views/admin/static/static.dart
Hamza-Ayed 9f93c88b4d 8/11/1
2024-08-11 13:22:36 +03:00

410 lines
21 KiB
Dart

import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:sefer_admin1/constant/style.dart';
import 'package:sefer_admin1/controller/admin/static_controller.dart';
import 'package:sefer_admin1/views/widgets/mycircular.dart';
import '../../../constant/colors.dart';
import '../../widgets/my_scafold.dart';
class StaticDash extends StatelessWidget {
const StaticDash({super.key});
@override
Widget build(BuildContext context) {
Get.put(StaticController());
return MyScafolld(
title: 'Static Dash'.tr,
action: IconButton(
onPressed: () async {
await Get.put(StaticController()).getAll();
},
icon: const Icon(
Icons.replay_circle_filled_rounded,
color: AppColor.greenColor,
),
),
body: [
GetBuilder<StaticController>(builder: (staticController) {
return staticController.isLoading
? const MyCircularProgressIndicator()
: ListView(
children: [
SizedBox(
height: Get.height * .3,
width: double.maxFinite,
// decoration: AppStyle.boxDecoration1,
child: Padding(
padding: const EdgeInsets.all(6),
child: Container(
decoration: AppStyle.boxDecoration1,
height: MediaQuery.of(context).size.height * 0.4,
child: LineChart(
LineChartData(
lineBarsData: [
LineChartBarData(
isStepLineChart: true,
spots:
staticController.chartDataPassengers,
isCurved: true,
color: Colors.blue, // Custom color
barWidth: 3, // Thinner line
dotData: const FlDotData(
show:
true), // Show dots on each point
belowBarData: BarAreaData(
show: true,
color: Colors.deepPurpleAccent
.withOpacity(
0.3), // Custom gradient color
),
isStrokeJoinRound: true,
shadow: const BoxShadow(
color: Colors.yellow,
blurRadius: 4,
offset: Offset(2, 2),
),
),
],
showingTooltipIndicators: const [],
titlesData: FlTitlesData(
show: true,
topTitles: AxisTitles(
axisNameWidget: Text(
'Days'.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
),
bottomTitles: AxisTitles(
axisNameWidget: Text(
'Total passengers on month ${staticController.totalMonthlyPassengers}'
.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
sideTitles: const SideTitles(
reservedSize: 30,
showTitles: true,
),
),
leftTitles: AxisTitles(
axisNameWidget: Text(
'Counts of Passengers on days'.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
sideTitles: const SideTitles(
reservedSize: 30,
showTitles: true,
),
),
),
gridData: const FlGridData(show: true),
borderData: FlBorderData(
show: true,
border: const Border(
bottom:
BorderSide(color: Colors.blueAccent),
left:
BorderSide(color: Colors.blueAccent),
),
),
),
),
),
)),
const SizedBox(
height: 5,
),
SizedBox(
height: Get.height * .3,
width: double.maxFinite,
// decoration: AppStyle.boxDecoration1,
child: Padding(
padding: const EdgeInsets.all(6),
child: Container(
decoration: AppStyle.boxDecoration1,
height: MediaQuery.of(context).size.height * 0.4,
child: LineChart(
LineChartData(
lineBarsData: [
LineChartBarData(
isStepLineChart: true,
spots: staticController.chartDataDrivers,
isCurved: true,
color: Colors.blue, // Custom color
barWidth: 3, // Thinner line
dotData: const FlDotData(
show:
true), // Show dots on each point
belowBarData: BarAreaData(
show: true,
color: Colors.deepPurpleAccent
.withOpacity(
0.3), // Custom gradient color
),
isStrokeJoinRound: true,
shadow: const BoxShadow(
color: Colors.yellow,
blurRadius: 4,
offset: Offset(2, 2),
),
),
],
showingTooltipIndicators: const [],
titlesData: FlTitlesData(
show: true,
topTitles: AxisTitles(
axisNameWidget: Text(
'Days'.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
),
bottomTitles: AxisTitles(
axisNameWidget: Text(
'Total Drivers on month ${staticController.totalMonthlyDrivers}'
.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
sideTitles: const SideTitles(
reservedSize: 30,
showTitles: true,
),
),
leftTitles: AxisTitles(
axisNameWidget: Text(
'Counts of Drivers on days'.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
sideTitles: const SideTitles(
reservedSize: 30,
showTitles: true,
),
),
),
gridData: const FlGridData(show: true),
borderData: FlBorderData(
show: true,
border: const Border(
bottom:
BorderSide(color: Colors.blueAccent),
left:
BorderSide(color: Colors.blueAccent),
),
),
),
),
),
)),
const SizedBox(
height: 5,
),
SizedBox(
height: Get.height * .3,
width: double.maxFinite,
// decoration: AppStyle.boxDecoration1,
child: Padding(
padding: const EdgeInsets.all(6),
child: Container(
decoration: AppStyle.boxDecoration1,
height: MediaQuery.of(context).size.height * 0.4,
child: LineChart(
LineChartData(
lineBarsData: [
LineChartBarData(
isStepLineChart: true,
spots: staticController
.chartDataDriversCalling,
isCurved: true,
color: Colors
.deepPurpleAccent, // Custom color
barWidth: 3, // Thinner line
dotData: const FlDotData(
show:
true), // Show dots on each point
belowBarData: BarAreaData(
show: true,
color: Colors.deepPurpleAccent
.withOpacity(
0.3), // Custom gradient color
),
isStrokeJoinRound: true,
shadow: const BoxShadow(
color: Colors.yellow,
blurRadius: 4,
offset: Offset(2, 2),
),
),
],
showingTooltipIndicators: const [],
titlesData: FlTitlesData(
show: true,
topTitles: AxisTitles(
axisNameWidget: Text(
'Days'.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
),
bottomTitles: AxisTitles(
axisNameWidget: Text(
'Total Drivers on month are Calliing ${staticController.staticList[0]['totalMonthlyCallingDrivers']}'
.tr,
style: AppStyle.subtitle,
),
axisNameSize: 30,
sideTitles: const SideTitles(
reservedSize: 30,
showTitles: true,
),
),
leftTitles: AxisTitles(
axisNameWidget: Text(
'Counts of Drivers on days'.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
sideTitles: const SideTitles(
reservedSize: 30,
showTitles: true,
),
),
),
gridData: const FlGridData(show: true),
borderData: FlBorderData(
show: true,
border: const Border(
bottom:
BorderSide(color: Colors.blueAccent),
left:
BorderSide(color: Colors.blueAccent),
),
),
),
),
),
)),
const SizedBox(
height: 5,
),
SizedBox(
height: Get.height * .3,
width: double.maxFinite,
// decoration: AppStyle.boxDecoration1,
child: Padding(
padding: const EdgeInsets.all(6),
child: Container(
decoration: AppStyle.boxDecoration1,
height: MediaQuery.of(context).size.height * 0.4,
child: LineChart(
LineChartData(
lineBarsData: [
LineChartBarData(
isStepLineChart: true,
spots: staticController
.chartDataDriversMatchingNotes,
isCurved: true,
color: Colors
.deepPurpleAccent, // Custom color
barWidth: 3, // Thinner line
dotData: const FlDotData(
show:
true), // Show dots on each point
belowBarData: BarAreaData(
show: true,
color: Colors.deepPurpleAccent
.withOpacity(
0.3), // Custom gradient color
),
isStrokeJoinRound: true,
shadow: const BoxShadow(
color: Colors.yellow,
blurRadius: 4,
offset: Offset(2, 2),
),
),
],
showingTooltipIndicators: const [],
titlesData: FlTitlesData(
show: true,
topTitles: AxisTitles(
axisNameWidget: Text(
'Days'.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
),
bottomTitles: AxisTitles(
axisNameWidget: Text(
'Total Drivers on month are register after calling ${staticController.staticList[0]['totalMonthlyMatchingNotes']}'
.tr,
style: AppStyle.subtitle,
),
axisNameSize: 30,
sideTitles: const SideTitles(
reservedSize: 30,
showTitles: true,
),
),
leftTitles: AxisTitles(
axisNameWidget: Text(
'Counts of Drivers on days'.tr,
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold),
),
axisNameSize: 30,
sideTitles: const SideTitles(
reservedSize: 30,
showTitles: true,
),
),
),
gridData: const FlGridData(show: true),
borderData: FlBorderData(
show: true,
border: const Border(
bottom:
BorderSide(color: Colors.blueAccent),
left:
BorderSide(color: Colors.blueAccent),
),
),
),
),
),
)),
const SizedBox(
height: 5,
),
],
);
})
],
isleading: true);
}
}