From 8146ee189e628d63497327d6c229b42c7ca9ce7e Mon Sep 17 00:00:00 2001 From: Piotr Kus Date: Mon, 3 Feb 2025 21:30:26 +0100 Subject: [PATCH] * Added Syncfusion * Changed MainPage * Added styles * Changed ScheduleOrders grid --- OrdersManagement/Components/App.razor | 3 + .../Components/Layout/MainLayout.razor | 55 ++++++++----- .../Components/Pages/CustomerOrder.razor | 37 +++++---- .../Components/Pages/ScheduleOrders.razor | 21 +++-- .../Pages/Shared/ScheduleOrdersGrid.razor | 82 +++++++++---------- OrdersManagement/OrdersManagement.csproj | 5 ++ OrdersManagement/Program.cs | 4 + OrdersManagement/wwwroot/app.css | 23 ++++++ 8 files changed, 141 insertions(+), 89 deletions(-) diff --git a/OrdersManagement/Components/App.razor b/OrdersManagement/Components/App.razor index 0072362..582d580 100644 --- a/OrdersManagement/Components/App.razor +++ b/OrdersManagement/Components/App.razor @@ -8,8 +8,10 @@ + + @@ -23,6 +25,7 @@ + diff --git a/OrdersManagement/Components/Layout/MainLayout.razor b/OrdersManagement/Components/Layout/MainLayout.razor index 151fc89..947bae1 100644 --- a/OrdersManagement/Components/Layout/MainLayout.razor +++ b/OrdersManagement/Components/Layout/MainLayout.razor @@ -1,18 +1,36 @@ -@using BlazorBootstrap +@using Syncfusion.Blazor.Navigations +@using Syncfusion.Blazor.SplitButtons +@using Orientation = Syncfusion.Blazor.Navigations.Orientation +@inject NavigationManager NavigationManager @inherits LayoutComponentBase -
+
+ Title="FA Krosno Manager"> + + + + + + + @* *@ + @* *@ + @*
*@ + @* *@ + @*
*@ + @* *@ + @* *@ + @* *@ + @* *@ + @*
*@ + @*
*@
-
@Body
@@ -21,30 +39,27 @@
@code { + private List MenuItems { get; set; } = new(); + Sidebar? _sidebar; - IEnumerable? _navItems; - private async Task SidebarDataProvider(SidebarDataProviderRequest request) + protected override void OnInitialized() { - _navItems ??= GetNavItems(); - - return await Task.FromResult(request.ApplyTo(_navItems)); + MenuItems = new List + { + new() { Text = "Zamówienia DELFOR", Url = "/", IconCss = "fas fa-home" }, + new() { Text = "Zamówienia klienta EDI", Url = "/EdiCustomerOrders", IconCss = "fas fa-database" }, + new() { Text = "Zamówienia klienta", Url = "/CustomerOrders", IconCss = "fas fa-database" } + }; } - private IEnumerable? GetNavItems() + private void OnMenuItemSelected(MenuEventArgs args) { - _navItems = new List - { - new NavItem { Id = "1", Href = "/", IconName = IconName.HouseDoorFill, Text = "Zamówienia DELFOR", Match=NavLinkMatch.All}, - new NavItem { Id = "2", Href = "/EdiCustomerOrders", IconName = IconName.Database, Text = "Zamówienia klienta EDI"}, - new NavItem { Id = "3", Href = "/CustomerOrders", IconName = IconName.Database, Text = "Zamówienia klienta"} - }; - - return _navItems; + NavigationManager.NavigateTo(args.Item.Url); } + } -
An unhandled error has occurred. Reload diff --git a/OrdersManagement/Components/Pages/CustomerOrder.razor b/OrdersManagement/Components/Pages/CustomerOrder.razor index cf9cbbf..ddce945 100644 --- a/OrdersManagement/Components/Pages/CustomerOrder.razor +++ b/OrdersManagement/Components/Pages/CustomerOrder.razor @@ -4,6 +4,7 @@ @inject ScheduleOrderService ScheduleOrderService @using SytelineSaAppEfDataModel.Dtos @using OrdersManagement.Components.Pages.Shared +@using GridColumns = BlazorBootstrap.GridColumns @inherits LayoutComponentBase

Zamówienie klienta nr @CustomerOrders.FirstOrDefault()?.CoNum

@@ -49,17 +50,17 @@

-@if (_isVisible) -{ -
-

Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum

-
-
-
- -
-
-} +@* @if (_isVisible) *@ +@* { *@ +@*
*@ +@*

Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum

*@ +@*
*@ +@*
*@ +@*
*@ +@* *@ +@*
*@ +@*
*@ +@* } *@

Indeksy

@@ -242,7 +243,7 @@ private bool _isVisibleCustomerOrderLine; private bool _isVisibleCustomerOrderLineItem; - private Grid _gridRef = new(); + // private SfGrid _gridRef = new(); private bool _isVisible = true; private string _text = "Pokaż powiązane zamówienia DELFOR"; @@ -262,7 +263,7 @@ { if (firstRender) { - await SetGridRef(_gridRef); + // await SetGridRef(_gridRef); StateHasChanged(); _isVisible = false; } @@ -291,17 +292,17 @@ } else { - await _gridRef.RefreshDataAsync(); + // await _gridRef.Refresh(); StateHasChanged(); _isVisible = true; _text = "Ukryj"; } } - private async Task SetGridRef(Grid grid) - { - _gridRef = grid; - } + // private async Task SetGridRef(SfGrid grid) + // { + // _gridRef = grid; + // } private async Task> ScheduleOrdersDataProvider(GridDataProviderRequest request) { diff --git a/OrdersManagement/Components/Pages/ScheduleOrders.razor b/OrdersManagement/Components/Pages/ScheduleOrders.razor index ffc4ca7..cdfd671 100644 --- a/OrdersManagement/Components/Pages/ScheduleOrders.razor +++ b/OrdersManagement/Components/Pages/ScheduleOrders.razor @@ -1,6 +1,7 @@ @page "/" @using OrdersManagement.Components.Pages.Shared +@using Syncfusion.Blazor.Grids @inject ScheduleOrderService ScheduleOrderService @inherits LayoutComponentBase @@ -8,23 +9,29 @@

Zamówienia DELFOR


- + @code { - private IEnumerable? _scheduleOrders; - - private Grid _gridRef; + private IEnumerable _scheduleOrders = []; - private async Task> ScheduleOrdersDataProvider(GridDataProviderRequest request) + protected override async Task OnInitializedAsync() + { + _scheduleOrders = await FetchScheduleOrdersAsync(); + } + + private async Task> FetchScheduleOrdersAsync() { _scheduleOrders = await ScheduleOrderService.GetScheduleOrdersAsync() ?? new List(); _scheduleOrders = _scheduleOrders.OrderByDescending(x => x.LastUpdateDate).ToList(); StateHasChanged(); - return await Task.FromResult(request.ApplyTo(_scheduleOrders)); + return _scheduleOrders; } + - private async Task SetGridRef(Grid grid) + private SfGrid _gridRef; + + private async Task SetGridRef(SfGrid grid) { _gridRef = grid; } diff --git a/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor b/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor index 733f801..e593dc4 100644 --- a/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor +++ b/OrdersManagement/Components/Pages/Shared/ScheduleOrdersGrid.razor @@ -1,54 +1,54 @@ @inject NavigationManager NavigationManager +@using Syncfusion.Blazor.Grids @inherits LayoutComponentBase
- + + + + + + + + + + + + - - - @context.OrderID - - - @context.PONum - - - @context.RecipientCode - - - @context.PurchaserCode - - - @context.LastUpdateDate - - - @context.DocType - - - +
@code { [Parameter] - public required Func, Task>> DataProvider { get; set; } + public required IEnumerable GridData { get; set; } - [Parameter] - public required Func, Task> PassGridRef { get; set; } + [Parameter] + public required Func, Task> PassGridRef { get; set; } [Parameter] public required int PageSize { get; set; } - private Grid _grid { get; set; } + private SfGrid _grid { get; set; } + private IEnumerable _dataSource = []; + + protected override void OnParametersSet() + { + _dataSource = GridData; + } + protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) @@ -57,15 +57,9 @@ } } - private async Task> LoadData(GridDataProviderRequest request) + private void OnRowDoubleClick(RecordDoubleClickEventArgs obj) { - return await DataProvider.Invoke(request); - } - - private void OnRowDoubleClick(GridRowEventArgs obj) - { - int scheduleOrderId = obj.Item.ID; - + int scheduleOrderId = obj.RowData.ID; NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}"); } } \ No newline at end of file diff --git a/OrdersManagement/OrdersManagement.csproj b/OrdersManagement/OrdersManagement.csproj index bab3c84..59a3245 100644 --- a/OrdersManagement/OrdersManagement.csproj +++ b/OrdersManagement/OrdersManagement.csproj @@ -8,6 +8,11 @@ + + + + + diff --git a/OrdersManagement/Program.cs b/OrdersManagement/Program.cs index 22da5b1..60ef0bd 100644 --- a/OrdersManagement/Program.cs +++ b/OrdersManagement/Program.cs @@ -1,9 +1,11 @@ using Microsoft.AspNetCore.Routing.Constraints; using OrdersManagement.Components; using OrdersManagement.Services; +using Syncfusion.Blazor; var builder = WebApplication.CreateBuilder(args); +builder.Services.AddSyncfusionBlazor(); builder.Services.AddBlazorBootstrap(); string apiUrl = builder.Configuration["ApiUrl"] ?? "http://localhost:5555"; // Ustawienie na adres twojego API @@ -36,4 +38,6 @@ app.UseAntiforgery(); app.MapRazorComponents() .AddInteractiveServerRenderMode(); +Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("Ngo9BigBOggjHTQxAR8/V1NMaF5cXmBCf1FpRmJGdld5fUVHYVZUTXxaS00DNHVRdkdmWX1ec3VWQmNYV01wWUE="); + app.Run(); \ No newline at end of file diff --git a/OrdersManagement/wwwroot/app.css b/OrdersManagement/wwwroot/app.css index 5588cc1..3ee2842 100644 --- a/OrdersManagement/wwwroot/app.css +++ b/OrdersManagement/wwwroot/app.css @@ -49,3 +49,26 @@ h1:focus { .darker-border-checkbox.form-check-input { border-color: #929292; } + +.e-grid .e-gridheader { + background-color: #0078d4; /* Kolor tła nagłówka */ +} + +.e-grid .e-headercell { + color: #000000; /* Czarne litery */ + font-weight: bold; /* Pogrubienie */ +} + +.e-grid .e-rowcell { + background-color: #f3f2f1; /* Kolor tła wierszy */ +} +.e-grid .e-row:hover .e-rowcell { + background-color: #edebe9; /* Kolor tła wierszy przy najechaniu myszką */ +} +.e-grid .e-rowcell { + color: #333333; /* Kolor tekstu w komórkach wierszy */ +} +.e-grid .e-selectionbackground { + background-color: #0078d4; /* Kolor tła dla zaznaczonych wierszy */ + color: white; /* Kolor tekstu w zaznaczonych wierszach */ +}