@page "/" @attribute [Authorize] @using RobotNet.Script.Shares.Dashboard @using RobotNet.WebApp.Clients @using RobotNet.WebApp.Dashboard.Components @inject IJSRuntime JSRuntime @inject NavigationManager Nav @inject DashboardHubClient DashboardHub @inject ISnackbar Snackbar Dashboard
AMR MONITORING
@timeUpdate
@code { private bool isFullScreen = false; private DailyData DailyDataRef = default!; private PerformancePieChart TodayPerformancePieChartRef = default!; private PerformancePieChart WeekyPerformancePieChartRef = default!; private MissionsPerformanceBarChart MissionsPerformanceBarChartRef = default!; private TaktTimeLineChart TaktTimeLineChartRef = default!; private string timeUpdate = ""; private async Task ToogleFullScreen() { await JSRuntime.InvokeVoidAsync("setFullscreen", isFullScreen ? false : true); isFullScreen = isFullScreen ? false : true; } protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (!firstRender) return; DashboardHub.DashboardDataUpdated += (async (value) => await DashboardHub_DashboardDataUpdated(value)); await DashboardHub.StartAsync(); await GetDashboardData(); } private async Task GetDashboardData() { var dashboardData = await DashboardHub.GetDashboardData(); if (dashboardData.IsSuccess && dashboardData.Data is not null) { timeUpdate = dashboardData.Data.TimeUpdate; DailyDataRef.UpdateData(dashboardData.Data.DailyMission); await TodayPerformancePieChartRef.UpdateData(dashboardData.Data.TodayPerformance); await WeekyPerformancePieChartRef.UpdateData(dashboardData.Data.ThisWeekPerformance); await MissionsPerformanceBarChartRef.UpdateData(dashboardData.Data.TotalMissionPerformance); await TaktTimeLineChartRef.UpdateData(dashboardData.Data.TaktTimeMissions); } else Snackbar.Add($"{(string.IsNullOrEmpty(dashboardData.Message) ? "Có lỗi xảy ra khi lấy dữ liệu dashboard" : dashboardData.Message)}"); StateHasChanged(); } private async Task DashboardHub_DashboardDataUpdated(DashboardDto data) { timeUpdate = data.TimeUpdate; DailyDataRef.UpdateData(data.DailyMission); await TodayPerformancePieChartRef.UpdateData(data.TodayPerformance); await WeekyPerformancePieChartRef.UpdateData(data.ThisWeekPerformance); await MissionsPerformanceBarChartRef.UpdateData(data.TotalMissionPerformance); await TaktTimeLineChartRef.UpdateData(data.TaktTimeMissions); StateHasChanged(); } }