Dashboard Commit 3 #8
Merged
barhen
merged 1 commits from BISK2023-21-develop-the-frontend-for-the-dashboard
into dev
2 years ago
13 changed files with 275 additions and 63 deletions
@ -0,0 +1,58 @@ |
|||||
|
@using Biskilog_Accounting.Shared.CustomModels; |
||||
|
@using Biskilog_Accounting.Shared.Interfaces; |
||||
|
@inject ICalculator m_calculator |
||||
|
|
||||
|
@if (!IsLoading) |
||||
|
{ |
||||
|
<div class="card"> |
||||
|
<div class="row row-bordered g-0"> |
||||
|
<div class="col-md-8"> |
||||
|
<h5 class="card-header m-0 me-2 pb-3">@Title</h5> |
||||
|
<ApexChart TItem="WeeklySaleItem" Options=m_options> |
||||
|
|
||||
|
<ApexPointSeries TItem="WeeklySaleItem" |
||||
|
Items="@Series" |
||||
|
Name="Sales" |
||||
|
YValue="@(e => e.Total)" |
||||
|
XValue="@(e => e.Date.ToShortDateString())" |
||||
|
SeriesType="SeriesType.Bar" /> |
||||
|
</ApexChart> |
||||
|
</div> |
||||
|
<div class="col-md-4"> |
||||
|
<div class="text-center fw-semibold pt-3 mb-2">@SubTitle</div> |
||||
|
<ApexChart TItem="WeeklySaleItem"> |
||||
|
<ApexPointSeries TItem="WeeklySaleItem" |
||||
|
Items="@Series" |
||||
|
Name="Sales" |
||||
|
YValue="@(e => e.Total)" |
||||
|
XValue="@(e => e.Date.Day)" |
||||
|
SeriesType="SeriesType.Area" /> |
||||
|
</ApexChart> |
||||
|
<div class="d-flex px-xxl-4 px-lg-2 p-4 gap-xxl-3 gap-lg-1 gap-3 justify-content-between"> |
||||
|
<div class="d-flex"> |
||||
|
<div class="me-2"> |
||||
|
<span class="badge bg-label-primary p-2"><i class="bx bx-dollar text-primary"></i></span> |
||||
|
</div> |
||||
|
<div class="d-flex flex-column"> |
||||
|
<small>Best Day</small> |
||||
|
<small class="mb-0">@m_bestDay</small> |
||||
|
<small class="mb-0">@m_bestSales</small> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="d-flex"> |
||||
|
<div class="me-2"> |
||||
|
<span class="badge bg-label-info p-2"><i class="bx bx-wallet text-info"></i></span> |
||||
|
</div> |
||||
|
<div class="d-flex flex-column"> |
||||
|
<small>Worst Day</small> |
||||
|
<small class="mb-0">@m_worstDay</small> |
||||
|
<small class="mb-0">@m_worstSales</small> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
}else{ |
||||
|
|
||||
|
} |
@ -0,0 +1,46 @@ |
|||||
|
using ApexCharts; |
||||
|
using Biskilog_Accounting.Shared.CustomModels; |
||||
|
using Microsoft.AspNetCore.Components; |
||||
|
|
||||
|
namespace Biskilog_Accounting.Client.Pages.Dashboard.Elements |
||||
|
{ |
||||
|
public partial class ChartElement |
||||
|
{ |
||||
|
[Parameter] |
||||
|
public bool IsLoading { get; set; } |
||||
|
[Parameter] |
||||
|
public string Title { get; set; } = string.Empty; |
||||
|
[Parameter] |
||||
|
public string SubTitle { get; set; } = string.Empty; |
||||
|
[Parameter] |
||||
|
public List<WeeklySaleItem> Series { get; set; } = new List<WeeklySaleItem>(); |
||||
|
private ApexChartOptions<WeeklySaleItem> m_options; |
||||
|
|
||||
|
private string m_bestDay { get; set; } = string.Empty; |
||||
|
private string m_worstDay { get; set; } = string.Empty; |
||||
|
private string m_bestSales { get; set; } = string.Empty; |
||||
|
private string m_worstSales { get; set; } = string.Empty; |
||||
|
protected override void OnParametersSet() |
||||
|
{ |
||||
|
m_options = new ApexChartOptions<WeeklySaleItem> |
||||
|
{ |
||||
|
PlotOptions = new PlotOptions |
||||
|
{ |
||||
|
Bar = new PlotOptionsBar |
||||
|
{ |
||||
|
ColumnWidth = "7", |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
if (Series.Count > 1) |
||||
|
{ |
||||
|
m_bestDay = Series.OrderByDescending(t => t.Total).First().Date.ToShortDateString(); |
||||
|
m_bestSales = m_calculator.FormatMoneyWithCurrency((double)Series.OrderByDescending(t => t.Total).First().Total); |
||||
|
m_worstDay = Series.OrderByDescending(t => t.Total).Last().Date.ToShortDateString(); |
||||
|
m_worstSales = m_calculator.FormatMoneyWithCurrency((double)Series.OrderByDescending(t => t.Total).Last().Total); |
||||
|
} |
||||
|
base.OnParametersSet(); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
|
||||
|
namespace Biskilog_Accounting.Shared.CustomModels |
||||
|
{ |
||||
|
public class WeeklySaleItem |
||||
|
{ |
||||
|
public DateTime Date { get; set; } |
||||
|
public decimal? Total { get; set; } |
||||
|
public string BranchId { get; set; } = null!; |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue