From 279ed3b843b8a5ac5ce4f8784a12e77b5dcbbbbd Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 22 Jun 2024 22:31:04 +0330 Subject: [PATCH] ... --- TaxPayerFull/Layout/SaleChart.razor | 183 +++++------------------ TaxPayerFull/Pages/UserPanel/Panel.razor | 4 +- 2 files changed, 37 insertions(+), 150 deletions(-) diff --git a/TaxPayerFull/Layout/SaleChart.razor b/TaxPayerFull/Layout/SaleChart.razor index cc1a9b7..b17ffca 100644 --- a/TaxPayerFull/Layout/SaleChart.razor +++ b/TaxPayerFull/Layout/SaleChart.razor @@ -1,24 +1,11 @@ -@using Color = System.Drawing.Color -@using Shared.DTOs +@using Shared.DTOs + - - -@* - - - - - *@ @code { private LineChart lineChart = default!; private LineChartOptions lineChartOptions = default!; private ChartData chartData = default!; public List> items = new List>(); - private int datasetsCount = 0; - private int labelsCount = 0; - - private Random random = new(); - protected override void OnInitialized() { items.AddRange(new List>() @@ -28,8 +15,39 @@ new IdNameByCount{ID=2,Title="3",count=12}, new IdNameByCount{ID=3,Title="4",count=21} }); - chartData = new ChartData { Labels = GetDefaultDataLabels(), Datasets = GetDefaultDataSets(1) }; - lineChartOptions = new() { Responsive = true, Interaction = new Interaction { Mode = InteractionMode.Index } }; + + var colors = ColorBuilder.CategoricalTwelveColors; + + var labels = items.OrderBy(o => o.ID).Select(s => s.Title).ToList(); + var datasets = new List(); + + var dataset1 = new LineChartDataset + { + + Label = "فروش", + Data = items.OrderBy(o => o.ID).Select(s => decimal.ToDouble(s.count.Value)).ToList(), + BackgroundColor = new List { colors[0] }, + BorderColor = new List { colors[0] }, + BorderWidth = new List { 2 }, + HoverBorderWidth = new List { 4 }, + PointBackgroundColor = new List { colors[0] }, + PointRadius = new List { 0 }, // hide points + PointHoverRadius = new List { 4 } + }; + datasets.Add(dataset1); + + + chartData = new ChartData { Labels = labels, Datasets = datasets }; + + lineChartOptions = new(); + lineChartOptions.Responsive = true; + lineChartOptions.Interaction = new Interaction { Mode = InteractionMode.Index }; + + lineChartOptions.Scales.X!.Title = new ChartAxesTitle { Text = "روز", Display = true }; + lineChartOptions.Scales.Y!.Title = new ChartAxesTitle { Text = "میران", Display = true }; + + lineChartOptions.Plugins.Title!.Text = "گزارش (ماه جاری)"; + lineChartOptions.Plugins.Title.Display = true; } protected override async Task OnAfterRenderAsync(bool firstRender) @@ -41,135 +59,4 @@ await base.OnAfterRenderAsync(firstRender); } - // private async Task RandomizeAsync() - // { - // if (chartData is null || chartData.Datasets is null || !chartData.Datasets.Any()) return; - - // var newDatasets = new List(); - - // foreach (var dataset in chartData.Datasets) - // { - // if (dataset is LineChartDataset lineChartDataset - // && lineChartDataset is not null - // && lineChartDataset.Data is not null) - // { - // var count = lineChartDataset.Data.Count; - - // var newData = new List(); - // for (var i = 0; i < count; i++) - // { - // newData.Add(random.Next(200)); - // } - - // lineChartDataset.Data = newData; - // newDatasets.Add(lineChartDataset); - // } - // } - - // chartData.Datasets = newDatasets; - - // await lineChart.UpdateAsync(chartData, lineChartOptions); - // } - - // private async Task AddDatasetAsync() - // { - // if (chartData is null || chartData.Datasets is null) return; - - // var chartDataset = GetRandomLineChartDataset(); - // chartData = await lineChart.AddDatasetAsync(chartData, chartDataset, lineChartOptions); - // } - - // private async Task AddDataAsync() - // { - // if (chartData is null || chartData.Datasets is null) - // return; - - // var data = new List(); - // foreach (var dataset in chartData.Datasets) - // { - // if (dataset is LineChartDataset lineChartDataset) - // data.Add(new LineChartDatasetData(lineChartDataset.Label, random.Next(200))); - // } - - // chartData = await lineChart.AddDataAsync(chartData, GetNextDataLabel(), data); - // } - - // private async Task ShowHorizontalLineChartAsync() - // { - // lineChartOptions.IndexAxis = "y"; - // await lineChart.UpdateAsync(chartData, lineChartOptions); - // } - - // private async Task ShowVerticalLineChartAsync() - // { - // lineChartOptions.IndexAxis = "x"; - // await lineChart.UpdateAsync(chartData, lineChartOptions); - // } - - #region Data Preparation - - private List GetDefaultDataSets(int numberOfDatasets) - { - var datasets = new List(); - - for (var index = 0; index < numberOfDatasets; index++) - { - datasets.Add(GetRandomLineChartDataset()); - } - - return datasets; - } - - private LineChartDataset GetRandomLineChartDataset() - { - var c = ColorBuilder.CategoricalTwelveColors[datasetsCount].ToColor(); - - datasetsCount += 1; - - return new LineChartDataset() - { - Label = $"فروش", - Data = GetRandomData(), - BackgroundColor = new List { c.ToRgbString() }, - BorderColor = new List { c.ToRgbString() }, - BorderWidth = new List { 2 }, - HoverBorderWidth = new List { 4 }, - PointBackgroundColor = new List { c.ToRgbString() }, - PointRadius = new List { 0 }, // hide points - PointHoverRadius = new List { 4 }, - }; - } - - private List GetRandomData() - { - var data = new List(); - for (var index = 0; index < items.Count; index++) - { - - data.Add(decimal.ToDouble(items[index].count.Value)); - } - - return data; - } - - private List GetDefaultDataLabels() - { - - var labels = new List(); - for (var index = 0; index < items.Count; index++) - { - - labels.Add($"روز {items[index].Title}"); - } - - return labels; - } - - // private string GetNextDataLabel() - // { - // labelsCount += 1; - // return $"روز {labelsCount}"; - // } - - #endregion Data Preparation } \ No newline at end of file diff --git a/TaxPayerFull/Pages/UserPanel/Panel.razor b/TaxPayerFull/Pages/UserPanel/Panel.razor index bbaa7af..a96db64 100644 --- a/TaxPayerFull/Pages/UserPanel/Panel.razor +++ b/TaxPayerFull/Pages/UserPanel/Panel.razor @@ -213,10 +213,10 @@
-
+
-
+