mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 07:07:19 +00:00
modify data to migrate to days instead of months.
This commit is contained in:
@ -1,7 +1,6 @@
|
||||
import 'package:fl_chart/fl_chart.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:syncrow_web/pages/analytics/helpers/format_number_to_kwh.dart';
|
||||
import 'package:syncrow_web/pages/analytics/helpers/get_month_name_from_int.dart';
|
||||
import 'package:syncrow_web/utils/color_manager.dart';
|
||||
import 'package:syncrow_web/utils/extension/build_context_x.dart';
|
||||
|
||||
@ -25,7 +24,7 @@ abstract final class EnergyManagementChartsHelper {
|
||||
getTitlesWidget: (value, meta) => Padding(
|
||||
padding: const EdgeInsetsDirectional.only(top: 20.0),
|
||||
child: Text(
|
||||
(value + 1).getMonthName,
|
||||
value.toString(),
|
||||
style: context.textTheme.bodySmall?.copyWith(
|
||||
color: ColorsManager.greyColor,
|
||||
fontSize: 12,
|
||||
@ -62,7 +61,7 @@ abstract final class EnergyManagementChartsHelper {
|
||||
}
|
||||
|
||||
static String getToolTipLabel(num month, double value) {
|
||||
final monthLabel = month.getMonthName;
|
||||
final monthLabel = month.toString();
|
||||
final valueLabel = value.formatNumberToKwh;
|
||||
final labels = [monthLabel, valueLabel];
|
||||
return labels.where((element) => element.isNotEmpty).join(', ');
|
||||
|
@ -25,7 +25,7 @@ class EnergyConsumptionPerDeviceChart extends StatelessWidget {
|
||||
spots: e.energy
|
||||
.map(
|
||||
(energy) => FlSpot(
|
||||
energy.date.month.toDouble(),
|
||||
energy.date.day.toDouble(),
|
||||
energy.value,
|
||||
),
|
||||
)
|
||||
|
@ -7,67 +7,33 @@ import 'package:syncrow_web/pages/analytics/params/get_energy_consumption_per_de
|
||||
import 'package:syncrow_web/pages/analytics/services/energy_consumption_per_device/energy_consumption_per_device_service.dart';
|
||||
|
||||
class FakeEnergyConsumptionPerDeviceService
|
||||
implements EnergyConsumptionPerDeviceService {
|
||||
implements EnergyConsumptionPerDeviceService {
|
||||
@override
|
||||
Future<List<DeviceEnergyDataModel>> load(
|
||||
GetEnergyConsumptionPerDeviceParam param,
|
||||
GetEnergyConsumptionPerDeviceParam param,
|
||||
) {
|
||||
return Future.delayed(const Duration(milliseconds: 500), () {
|
||||
final random = math.Random();
|
||||
return [
|
||||
DeviceEnergyDataModel(
|
||||
color: Colors.purpleAccent,
|
||||
energy: List.generate(12, (i) => i)
|
||||
.map(
|
||||
(index) => EnergyDataModel(
|
||||
date: DateTime(DateTime.now().year, index + 1, 1),
|
||||
value: random.nextInt(1450) + 50,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
deviceName: 'Device 1',
|
||||
deviceId: 'device_1',
|
||||
),
|
||||
DeviceEnergyDataModel(
|
||||
color: Colors.amberAccent,
|
||||
energy: List.generate(12, (i) => i)
|
||||
.map(
|
||||
(index) => EnergyDataModel(
|
||||
date: DateTime(DateTime.now().year, index + 1, 1),
|
||||
value: random.nextInt(1400) + 100,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
deviceName: 'Device 2',
|
||||
deviceId: 'device_2',
|
||||
),
|
||||
DeviceEnergyDataModel(
|
||||
color: Colors.redAccent,
|
||||
energy: List.generate(12, (i) => i)
|
||||
.map(
|
||||
(index) => EnergyDataModel(
|
||||
date: DateTime(DateTime.now().year, index + 1, 1),
|
||||
value: random.nextInt(1480) + 20,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
deviceName: 'Device 3',
|
||||
deviceId: 'device_3',
|
||||
),
|
||||
DeviceEnergyDataModel(
|
||||
color: Colors.blueAccent,
|
||||
energy: List.generate(12, (i) => i)
|
||||
.map(
|
||||
(index) => EnergyDataModel(
|
||||
date: DateTime(DateTime.now().year, index + 1, 1),
|
||||
value: random.nextInt(1300) + 200,
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
deviceName: 'Device 4',
|
||||
deviceId: 'device_4',
|
||||
),
|
||||
];
|
||||
});
|
||||
return Future.delayed(const Duration(milliseconds: 500), () {
|
||||
return [
|
||||
(Colors.redAccent, 1),
|
||||
(Colors.lightBlueAccent, 2),
|
||||
(Colors.purpleAccent, 3),
|
||||
].map((e) {
|
||||
final (color, index) = e;
|
||||
return DeviceEnergyDataModel(
|
||||
color: color,
|
||||
energy: List.generate(30, (i) => i)
|
||||
.map(
|
||||
(index) => EnergyDataModel(
|
||||
date: DateTime(2025, 1, index + 1),
|
||||
value: random.nextInt(100) + (index * 100),
|
||||
),
|
||||
)
|
||||
.toList(),
|
||||
deviceName: 'Device $index',
|
||||
deviceId: 'device_$index',
|
||||
);
|
||||
}).toList();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -7,19 +7,13 @@ class FakeTotalEnergyConsumptionService implements TotalEnergyConsumptionService
|
||||
Future<List<EnergyDataModel>> load(
|
||||
GetTotalEnergyConsumptionParam param,
|
||||
) {
|
||||
return Future.value([
|
||||
EnergyDataModel(date: DateTime(2025, 1), value: 0),
|
||||
EnergyDataModel(date: DateTime(2025, 2), value: 2500),
|
||||
EnergyDataModel(date: DateTime(2025, 3), value: 22000),
|
||||
EnergyDataModel(date: DateTime(2025, 4), value: 21000),
|
||||
EnergyDataModel(date: DateTime(2025, 5), value: 30000),
|
||||
EnergyDataModel(date: DateTime(2025, 6), value: 23000),
|
||||
EnergyDataModel(date: DateTime(2025, 7), value: 21000),
|
||||
EnergyDataModel(date: DateTime(2025, 8), value: 25000),
|
||||
EnergyDataModel(date: DateTime(2025, 9), value: 21100),
|
||||
EnergyDataModel(date: DateTime(2025, 10), value: 22000),
|
||||
EnergyDataModel(date: DateTime(2025, 11), value: 21000),
|
||||
EnergyDataModel(date: DateTime(2025, 12), value: 30000),
|
||||
]);
|
||||
return Future.value(
|
||||
List.generate(30, (index) {
|
||||
return EnergyDataModel(
|
||||
date: DateTime(2025, 1, index + 1),
|
||||
value: 20000 + (index * 1000) % 5000,
|
||||
);
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user