Add category and product drag-drop management pages

This commit is contained in:
masoodafar-web
2025-11-27 21:38:27 +03:30
parent ee26d36536
commit bc1eafd5a1
33 changed files with 2001 additions and 159 deletions
@@ -1,4 +1,5 @@
@attribute [Route(RouteConstance.UserOrder + "{UserId:long}")]
@attribute [Route(RouteConstance.Orders)]
@attribute [Route(RouteConstance.UserOrder + "{UserId:long}")]
@using BackOffice.BFF.UserOrder.Protobuf.Protos.UserOrder
@using BackOffice.Pages.UserOrder.Components
@@ -7,7 +8,51 @@
<BackOffice.Common.BaseComponents.BasePageComponent @ref="_basePage" OnClearFilterClick="OnFilterCleared" OnSubmitClick="OnFilterSubmit">
<Filters>
<MudNumericField HideSpinButtons="true" T="long?" Clearable="true" Label="قیمت" @bind-Value="@_request.Filter.Price" Variant="Variant.Outlined" Margin="Margin.Dense" />
<MudNumericField HideSpinButtons="true"
T="long?"
Clearable="true"
Label="قیمت"
@bind-Value="@_request.Filter.Price"
Variant="Variant.Outlined"
Margin="Margin.Dense" />
<MudDatePicker T="DateTime?"
Label="از تاریخ پرداخت"
@bind-Date="_paymentDateFrom"
Variant="Variant.Outlined"
Margin="Margin.Dense" />
<MudSelect T="int?"
Clearable="true"
Label="روش پرداخت"
Variant="Variant.Outlined"
Margin="Margin.Dense"
@bind-Value="_paymentMethodFilter">
<MudSelectItem T="int?" Value="@((int?)0)">درگاه پرداخت</MudSelectItem>
<MudSelectItem T="int?" Value="@((int?)1)">کیف پول</MudSelectItem>
</MudSelect>
<MudSelect T="int?"
Clearable="true"
Label="وضعیت پرداخت"
Variant="Variant.Outlined"
Margin="Margin.Dense"
@bind-Value="_paymentStatusFilter">
<MudSelectItem T="int?" Value="@(1)">پرداخت شده</MudSelectItem>
<MudSelectItem T="int?" Value="@(0)">پرداخت نشده</MudSelectItem>
</MudSelect>
<MudSelect T="int?"
Clearable="true"
Label="وضعیت ارسال"
Variant="Variant.Outlined"
Margin="Margin.Dense"
@bind-Value="_deliveryStatusFilter">
<MudSelectItem T="int?" Value="@(1)">در انتظار ارسال</MudSelectItem>
<MudSelectItem T="int?" Value="@(2)">تحویل پست</MudSelectItem>
<MudSelectItem T="int?" Value="@(3)">تحویل به مشتری</MudSelectItem>
<MudSelectItem T="int?" Value="@(4)">مرجوع شده</MudSelectItem>
</MudSelect>
</Filters>
<Content>
<MudDataGrid T="DataModel" ServerData="@(new Func<GridState<DataModel>, Task<GridData<DataModel>>>(ServerReload))"
@@ -20,12 +65,21 @@
</ColGroup>
<ToolBarContent>
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center">
<MudText>فاکتور</MudText>
<MudText>سفارش‌های کاربر</MudText>
</MudStack>
</ToolBarContent>
<Columns>
<PropertyColumn Property="x => x.Id" Title="شناسه" />
<PropertyColumn Property="x => x.Price" Title="مبلغ" />
<PropertyColumn Property="x => x.UserFullName" Title="نام کاربر" />
<PropertyColumn Property="x => x.UserNationalCode" Title="کدملی" />
<TemplateColumn Title="روش پرداخت">
<CellTemplate>
<MudChip T="string" Size="Size.Small">
@GetPaymentMethodText(context.Item.PaymentMethod)
</MudChip>
</CellTemplate>
</TemplateColumn>
<PropertyColumn Property="x => x.PaymentStatus" Title="وضعیت پرداخت">
<CellTemplate>
@if (context.Item.PaymentStatus)
@@ -40,6 +94,28 @@
</PropertyColumn>
<PropertyColumn Property="x => x.TransactionId" Title="شناسه پرداخت" CellStyle="text-wrap: nowrap;" HeaderStyle="text-wrap: nowrap;" />
<PropertyColumn Property="x => x.PaymentDate" Title="تاریخ پرداخت" CellStyle="text-wrap: nowrap;" HeaderStyle="text-wrap: nowrap;" />
<TemplateColumn Title="آدرس">
<CellTemplate>
<MudTooltip Text="@context.Item.UserAddressText">
<MudText Typo="Typo.body2">
@(string.IsNullOrWhiteSpace(context.Item.UserAddressText)
? "-"
: (context.Item.UserAddressText.Length > 30
? context.Item.UserAddressText.Substring(0, 30) + "..."
: context.Item.UserAddressText))
</MudText>
</MudTooltip>
</CellTemplate>
</TemplateColumn>
<TemplateColumn Title="وضعیت ارسال">
<CellTemplate>
<MudChip T="string"
Size="Size.Small"
Color="@GetDeliveryStatusColor(context.Item.DeliveryStatus)">
@GetDeliveryStatusText(context.Item.DeliveryStatus)
</MudChip>
</CellTemplate>
</TemplateColumn>
@@ -47,6 +123,13 @@
<CellTemplate>
<MudStack Row="true" AlignItems="AlignItems.Center">
<MudTooltip Text="جزئیات سفارش">
<MudIconButton Icon="@Icons.Material.Filled.Info"
Size="Size.Small"
ButtonType="ButtonType.Button"
OnClick="@(() => OpenDetails(context.Item))"
Style="cursor:pointer;" />
</MudTooltip>
<MudTooltip Text="آرشیو">
<MudIconButton Icon="@Icons.Material.Filled.DeleteOutline" Size="Size.Small" ButtonType="ButtonType.Button" OnClick="@(() => OnDelete(context.Item))" Style="cursor:pointer;" />
@@ -62,6 +145,3 @@
</Content>
</BackOffice.Common.BaseComponents.BasePageComponent>