* Added Syncfusion

* Changed MainPage
* Added styles
* Changed ScheduleOrders grid
This commit is contained in:
2025-02-03 21:30:26 +01:00
parent 177fce1fdf
commit 8146ee189e
8 changed files with 141 additions and 89 deletions

View File

@@ -4,6 +4,7 @@
@inject ScheduleOrderService ScheduleOrderService
@using SytelineSaAppEfDataModel.Dtos
@using OrdersManagement.Components.Pages.Shared
@using GridColumns = BlazorBootstrap.GridColumns
@inherits LayoutComponentBase
<h3>Zamówienie klienta nr @CustomerOrders.FirstOrDefault()?.CoNum</h3>
@@ -49,17 +50,17 @@
</div>
</div>
<br/>
@if (_isVisible)
{
<div class="row">
<h3>Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum</h3>
</div>
<br/>
<div class="row">
<ScheduleOrdersGrid PageSize="5" PassGridRef="SetGridRef" DataProvider="ScheduleOrdersDataProvider"></ScheduleOrdersGrid>
</div>
<br/>
}
@* @if (_isVisible) *@
@* { *@
@* <div class="row"> *@
@* <h3>Zamówienie DELFOR do zamówienia @CustomerOrders.FirstOrDefault()?.CoNum</h3> *@
@* </div> *@
@* <br/> *@
@* <div class="row"> *@
@* <ScheduleOrdersGrid PageSize="5" PassGridRef="SetGridRef" DataProvider="ScheduleOrdersDataProvider"></ScheduleOrdersGrid> *@
@* </div> *@
@* <br/> *@
@* } *@
<div class="row">
<h3>Indeksy</h3>
</div>
@@ -242,7 +243,7 @@
private bool _isVisibleCustomerOrderLine;
private bool _isVisibleCustomerOrderLineItem;
private Grid<ScheduleOrderDto> _gridRef = new();
// private SfGrid<ScheduleOrderDto> _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<ScheduleOrderDto> grid)
{
_gridRef = grid;
}
// private async Task SetGridRef(SfGrid<ScheduleOrderDto> grid)
// {
// _gridRef = grid;
// }
private async Task<GridDataProviderResult<ScheduleOrderDto>> ScheduleOrdersDataProvider(GridDataProviderRequest<ScheduleOrderDto> request)
{

View File

@@ -1,6 +1,7 @@
@page "/"
@using OrdersManagement.Components.Pages.Shared
@using Syncfusion.Blazor.Grids
@inject ScheduleOrderService ScheduleOrderService
@inherits LayoutComponentBase
@@ -8,23 +9,29 @@
<h3>Zamówienia DELFOR </h3>
</div>
<br />
<ScheduleOrdersGrid PageSize="20" PassGridRef="SetGridRef" DataProvider="ScheduleOrdersDataProvider"></ScheduleOrdersGrid>
<ScheduleOrdersGrid PageSize="20" PassGridRef="SetGridRef" GridData="_scheduleOrders"></ScheduleOrdersGrid>
@code {
private IEnumerable<ScheduleOrderDto>? _scheduleOrders;
private Grid<ScheduleOrderDto> _gridRef;
private IEnumerable<ScheduleOrderDto> _scheduleOrders = [];
private async Task<GridDataProviderResult<ScheduleOrderDto>> ScheduleOrdersDataProvider(GridDataProviderRequest<ScheduleOrderDto> request)
protected override async Task OnInitializedAsync()
{
_scheduleOrders = await FetchScheduleOrdersAsync();
}
private async Task<IEnumerable<ScheduleOrderDto>> FetchScheduleOrdersAsync()
{
_scheduleOrders = await ScheduleOrderService.GetScheduleOrdersAsync() ?? new List<ScheduleOrderDto>();
_scheduleOrders = _scheduleOrders.OrderByDescending(x => x.LastUpdateDate).ToList();
StateHasChanged();
return await Task.FromResult(request.ApplyTo(_scheduleOrders));
return _scheduleOrders;
}
private async Task SetGridRef(Grid<ScheduleOrderDto> grid)
private SfGrid<ScheduleOrderDto> _gridRef;
private async Task SetGridRef(SfGrid<ScheduleOrderDto> grid)
{
_gridRef = grid;
}

View File

@@ -1,54 +1,54 @@
@inject NavigationManager NavigationManager
@using Syncfusion.Blazor.Grids
@inherits LayoutComponentBase
<div class="row">
<Grid @ref="_grid"
TItem="ScheduleOrderDto"
Class="table table-hover table-bordered table-striped"
AllowFiltering="true"
Responsive="true"
AllowPaging="true"
PageSize="@PageSize"
AllowSelection="true"
AllowRowClick="true"
DataProvider="LoadData"
OnRowDoubleClick="OnRowDoubleClick">
<SfGrid @ref="_grid"
TValue="ScheduleOrderDto"
AllowFiltering="true"
AllowPaging="true"
PageSettings="@(new GridPageSettings { PageSize = PageSize })"
AllowSorting="true"
AllowSelection="true"
DataSource="@_dataSource"
AllowRowClick="true"
SelectionMode="GridSelectionMode.Single"
QueryCellInfo="OnQueryCellInfo"
RowSelected="OnRowSelected">
<Syncfusion.Blazor.Grids.GridColumns>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.OrderID) HeaderText="Zamówienie" Width="120" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.PONum) HeaderText="Zamówienie Klienta" Width="150" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.RecipientCode) HeaderText="Odbiorca" Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.PurchaserCode) HeaderText="Klient" Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.LastUpdateDate) HeaderText="Data Utworzenia" Format="d" Type="ColumnType.Date" Width="130" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
<Syncfusion.Blazor.Grids.GridColumn Field=@nameof(ScheduleOrderDto.DocType) HeaderText="Typ Dokumentu" Width="100" AllowFiltering="true"></Syncfusion.Blazor.Grids.GridColumn>
</Syncfusion.Blazor.Grids.GridColumns>
<GridEvents TValue="ScheduleOrderDto" OnRecordDoubleClick="OnRowDoubleClick"></GridEvents>
<GridFilterSettings Type="Syncfusion.Blazor.Grids.FilterType.Excel">
</GridFilterSettings>
<GridColumns>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Zamówienie" PropertyName="OrderID">
@context.OrderID
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Zamówienie Klienta" PropertyName="PONum">
@context.PONum
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Odbiorca" PropertyName="RecipientCode">
@context.RecipientCode
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Klient" PropertyName="PurchaserCode">
@context.PurchaserCode
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Data Utworzenia" PropertyName="LastUpdateDate">
@context.LastUpdateDate
</GridColumn>
<GridColumn TItem="ScheduleOrderDto" HeaderText="Typ Dokumentu" PropertyName="DocType">
@context.DocType
</GridColumn>
</GridColumns>
</Grid>
</SfGrid>
</div>
@code {
[Parameter]
public required Func<GridDataProviderRequest<ScheduleOrderDto>, Task<GridDataProviderResult<ScheduleOrderDto>>> DataProvider { get; set; }
public required IEnumerable<ScheduleOrderDto> GridData { get; set; }
[Parameter]
public required Func<Grid<ScheduleOrderDto>, Task> PassGridRef { get; set; }
[Parameter]
public required Func<SfGrid<ScheduleOrderDto>, Task> PassGridRef { get; set; }
[Parameter]
public required int PageSize { get; set; }
private Grid<ScheduleOrderDto> _grid { get; set; }
private SfGrid<ScheduleOrderDto> _grid { get; set; }
private IEnumerable<ScheduleOrderDto> _dataSource = [];
protected override void OnParametersSet()
{
_dataSource = GridData;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
@@ -57,15 +57,9 @@
}
}
private async Task<GridDataProviderResult<ScheduleOrderDto>> LoadData(GridDataProviderRequest<ScheduleOrderDto> request)
private void OnRowDoubleClick(RecordDoubleClickEventArgs<ScheduleOrderDto> obj)
{
return await DataProvider.Invoke(request);
}
private void OnRowDoubleClick(GridRowEventArgs<ScheduleOrderDto> obj)
{
int scheduleOrderId = obj.Item.ID;
int scheduleOrderId = obj.RowData.ID;
NavigationManager.NavigateTo($"/ScheduleOrder/{scheduleOrderId}");
}
}