diff --git a/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart.dart b/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart.dart index 4fdd8a2a..20365325 100644 --- a/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart.dart +++ b/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart.dart @@ -20,6 +20,7 @@ class AqiDistributionChart extends StatelessWidget { return BarChart( BarChartData( maxY: 100.1, + alignment: BarChartAlignment.start, gridData: EnergyManagementChartsHelper.gridData( horizontalInterval: 20, ), diff --git a/lib/pages/analytics/modules/analytics/views/analytics_page.dart b/lib/pages/analytics/modules/analytics/views/analytics_page.dart index 82f4d853..4b04c3e9 100644 --- a/lib/pages/analytics/modules/analytics/views/analytics_page.dart +++ b/lib/pages/analytics/modules/analytics/views/analytics_page.dart @@ -62,7 +62,9 @@ class _AnalyticsPageState extends State { ), BlocProvider( create: (context) => TotalEnergyConsumptionBloc( - RemoteTotalEnergyConsumptionService(_httpService), + DividedTotalEnergyConsumptionDecorator( + RemoteTotalEnergyConsumptionService(_httpService), + ), ), ), BlocProvider( @@ -145,6 +147,7 @@ class _AnalyticsPageFormState extends State { context.read().add(InitialEvent()); super.initState(); } + @override Widget build(BuildContext context) { return WebScaffold( diff --git a/lib/pages/analytics/modules/energy_management/views/analytics_energy_management_view.dart b/lib/pages/analytics/modules/energy_management/views/analytics_energy_management_view.dart index 09fb6155..a5af9e10 100644 --- a/lib/pages/analytics/modules/energy_management/views/analytics_energy_management_view.dart +++ b/lib/pages/analytics/modules/energy_management/views/analytics_energy_management_view.dart @@ -38,7 +38,7 @@ class AnalyticsEnergyManagementView extends StatelessWidget { return SingleChildScrollView( child: Container( padding: _padding, - height: MediaQuery.sizeOf(context).height * 1, + height: MediaQuery.sizeOf(context).height * 1.05, child: const Column( children: [ Expanded( diff --git a/lib/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart b/lib/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart index bba1fa14..e63cfdf0 100644 --- a/lib/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart +++ b/lib/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart.dart @@ -9,22 +9,24 @@ class TotalEnergyConsumptionChart extends StatelessWidget { final List chartData; + static const _leftTitlesInterval = 5.0; @override Widget build(BuildContext context) { return Expanded( child: LineChart( LineChartData( - maxY: chartData.isEmpty - ? null - : chartData.map((e) => e.value).reduce((a, b) => a > b ? a : b) + 250, + maxY: chartData.isNotEmpty + ? chartData.map((e) => e.value).reduce((a, b) => a > b ? a : b) + + _leftTitlesInterval + : null, clipData: const FlClipData.vertical(), titlesData: EnergyManagementChartsHelper.titlesData( context, - leftTitlesInterval: 500, + leftTitlesInterval: _leftTitlesInterval, ), gridData: EnergyManagementChartsHelper.gridData().copyWith( checkToShowHorizontalLine: (value) => true, - horizontalInterval: 500, + horizontalInterval: _leftTitlesInterval, ), borderData: EnergyManagementChartsHelper.borderData(), lineTouchData: EnergyManagementChartsHelper.lineTouchData(), diff --git a/lib/pages/analytics/modules/occupancy/widgets/occupancy_chart.dart b/lib/pages/analytics/modules/occupancy/widgets/occupancy_chart.dart index 1205a66e..23cc527d 100644 --- a/lib/pages/analytics/modules/occupancy/widgets/occupancy_chart.dart +++ b/lib/pages/analytics/modules/occupancy/widgets/occupancy_chart.dart @@ -18,6 +18,7 @@ class OccupancyChart extends StatelessWidget { return BarChart( BarChartData( maxY: 100.001, + alignment: BarChartAlignment.start, gridData: EnergyManagementChartsHelper.gridData().copyWith( checkToShowHorizontalLine: (value) => true, horizontalInterval: 20, diff --git a/lib/pages/analytics/services/total_energy_consumption/remote_total_energy_consumption_service.dart b/lib/pages/analytics/services/total_energy_consumption/remote_total_energy_consumption_service.dart index 838cc5e7..81413b1c 100644 --- a/lib/pages/analytics/services/total_energy_consumption/remote_total_energy_consumption_service.dart +++ b/lib/pages/analytics/services/total_energy_consumption/remote_total_energy_consumption_service.dart @@ -59,3 +59,23 @@ abstract final class _TotalEnergyConsumptionResponseMapper { }).toList(); } } + +class DividedTotalEnergyConsumptionDecorator + implements TotalEnergyConsumptionService { + const DividedTotalEnergyConsumptionDecorator(this._decoratee); + + final TotalEnergyConsumptionService _decoratee; + @override + Future> load( + GetTotalEnergyConsumptionParam param, + ) async { + final result = await _decoratee.load(param); + final dividedResult = result.map((e) { + return EnergyDataModel( + date: e.date, + value: e.value / 100, + ); + }); + return dividedResult.toList(); + } +} diff --git a/lib/pages/device_managment/all_devices/widgets/device_managment_body.dart b/lib/pages/device_managment/all_devices/widgets/device_managment_body.dart index 7ca33d1d..5b709540 100644 --- a/lib/pages/device_managment/all_devices/widgets/device_managment_body.dart +++ b/lib/pages/device_managment/all_devices/widgets/device_managment_body.dart @@ -68,6 +68,7 @@ class DeviceManagementBody extends StatelessWidget with HelperResponsiveLayout { children: [ Expanded(child: SpaceTreeView( onSelect: () { + context.read().add(ResetFilters()); context.read().add(FetchDevices(context)); }, )), diff --git a/lib/pages/device_managment/power_clamp/view/smart_power_device_control.dart b/lib/pages/device_managment/power_clamp/view/smart_power_device_control.dart index 11d1cc8f..03202ba0 100644 --- a/lib/pages/device_managment/power_clamp/view/smart_power_device_control.dart +++ b/lib/pages/device_managment/power_clamp/view/smart_power_device_control.dart @@ -277,6 +277,32 @@ class SmartPowerDeviceControl extends StatelessWidget totalConsumption: 10000, date: blocProvider.formattedDate, ), + EnergyConsumptionPage( + formattedDate: + '${blocProvider.dateTime!.day}/${blocProvider.dateTime!.month}/${blocProvider.dateTime!.year} ${blocProvider.endChartDate}', + onTap: () { + blocProvider.add(SelectDateEvent(context: context)); + }, + widget: blocProvider.dateSwitcher(), + chartData: blocProvider.energyDataList.isNotEmpty + ? blocProvider.energyDataList + : [ + EnergyData('12:00 AM', 4.0), + EnergyData('01:00 AM', 6.5), + EnergyData('02:00 AM', 3.8), + EnergyData('03:00 AM', 3.2), + EnergyData('04:00 AM', 6.0), + EnergyData('05:00 AM', 3.4), + EnergyData('06:00 AM', 5.2), + EnergyData('07:00 AM', 3.5), + EnergyData('08:00 AM', 6.8), + EnergyData('09:00 AM', 5.6), + EnergyData('10:00 AM', 3.9), + EnergyData('11:00 AM', 4.0), + ], + totalConsumption: 10000, + date: blocProvider.formattedDate, + ), ], ), ), diff --git a/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart b/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart index 65773590..62bef920 100644 --- a/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart +++ b/lib/pages/device_managment/schedule_device/bloc/schedule_bloc.dart @@ -232,7 +232,6 @@ class ScheduleBloc extends Bloc { selectedDays: List.filled(7, false), functionOn: false, isEditing: false, - countdownRemaining: Duration.zero, )); } else { emit(ScheduleLoaded(