c0c7bb3ac5
Build and Deploy to Production / build-and-deploy (push) Successful in 16m3s
- MudListItem: Selected → Class with conditional CSS - MudTextField: Dense → Margin="Margin.Dense" - MudSwitch: remove HelperText (merged into Label) - MudDatePicker: remove T parameter (no longer generic in v8)
235 lines
13 KiB
Plaintext
235 lines
13 KiB
Plaintext
@* Merged into OrdersHub — direct route only for per-user orders *@
|
|
@attribute [Route(RouteConstance.UserOrder + "{UserId:long}")]
|
|
|
|
@using CMSMicroservice.Protobuf.Protos.UserOrder
|
|
@using CMSMicroservice.Protobuf.Protos
|
|
@using BackOffice.Pages.UserOrder.Components
|
|
@using BackOffice.Common.BaseComponents
|
|
@using BackOffice.Pages.AutoComplete
|
|
@using DataModel = CMSMicroservice.Protobuf.Protos.UserOrder.GetAllUserOrderByFilterResponseModel
|
|
|
|
<BackOffice.Common.BaseComponents.BasePageComponent @ref="_basePage" OnClearFilterClick="OnFilterCleared"
|
|
OnSubmitClick="OnFilterSubmit">
|
|
<Filters>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<MudNumericField HideSpinButtons="true" T="long?" Clearable="true" Label="شناسه سفارش"
|
|
@bind-Value="@_orderIdFilter" Variant="Variant.Outlined" Margin="Margin.Dense"/>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<UserAutoComplete Label="جستجوی کاربر" @bind-SelectedUserId="@_userIdFilter" />
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<MudNumericField HideSpinButtons="true" T="long?" Clearable="true" Label="شناسه تراکنش"
|
|
@bind-Value="@_transactionIdFilter" Variant="Variant.Outlined" Margin="Margin.Dense"/>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<MudNumericField HideSpinButtons="true" T="long?" Clearable="true" Label="قیمت"
|
|
@bind-Value="@_request.Filter.Amount" Variant="Variant.Outlined" Margin="Margin.Dense"/>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<MudDatePicker Label="از تاریخ پرداخت" @bind-Date="_paymentDateFrom"
|
|
Variant="Variant.Outlined" Margin="Margin.Dense"/>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<MudDatePicker Label="تا تاریخ پرداخت" @bind-Date="_paymentDateTo"
|
|
Variant="Variant.Outlined" Margin="Margin.Dense"/>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<MudSelect T="int?" Clearable="true" Label="روش پرداخت" Variant="Variant.Outlined"
|
|
Margin="Margin.Dense" @bind-Value="_paymentMethodFilter">
|
|
<MudSelectItem T="int?" Value="@(0)">درگاه پرداخت</MudSelectItem>
|
|
<MudSelectItem T="int?" Value="@(1)">کیف پول</MudSelectItem>
|
|
</MudSelect>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<MudSelect T="int?" Clearable="true" Label="وضعیت پرداخت" Variant="Variant.Outlined"
|
|
Margin="Margin.Dense" @bind-Value="_paymentStatusFilter">
|
|
<MudSelectItem T="int?" Value="@(0)">پرداخت شده</MudSelectItem>
|
|
<MudSelectItem T="int?" Value="@(1)">پرداخت نشده</MudSelectItem>
|
|
</MudSelect>
|
|
</MudItem>
|
|
<MudItem xs="12" sm="6" md="3">
|
|
<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>
|
|
<MudSelectItem T="int?" Value="@(5)">لغو شده</MudSelectItem>
|
|
</MudSelect>
|
|
</MudItem>
|
|
</Filters>
|
|
<Content>
|
|
<MudDataGrid T="DataModel"
|
|
ServerData="@(new Func<GridState<DataModel>, Task<GridData<DataModel>>>(ServerReload))"
|
|
Hover="true" @ref="_gridData" Height="calc(100vh - 240px)">
|
|
<ColGroup>
|
|
<col/>
|
|
<col/>
|
|
<col/>
|
|
<col style="width: 58px;"/>
|
|
</ColGroup>
|
|
<ToolBarContent>
|
|
<MudStack Row="true" Justify="Justify.SpaceBetween" AlignItems="AlignItems.Center" Style="width:100%">
|
|
<MudText>لیست سفارشات</MudText>
|
|
<MudButton Variant="Variant.Outlined"
|
|
Color="Color.Info"
|
|
OnClick="ExportToExcel"
|
|
StartIcon="@Icons.Material.Filled.FileDownload"
|
|
Size="Size.Small">
|
|
خروجی Excel
|
|
</MudButton>
|
|
</MudStack>
|
|
</ToolBarContent>
|
|
<Columns>
|
|
<PropertyColumn Property="x => x.Id" Title="شناسه"/>
|
|
<PropertyColumn Property="x => x.Amount" Title="مبلغ"/>
|
|
@* <PropertyColumn Property="x => x.VatAmount" Title="مبلغ VAT">
|
|
<CellTemplate>
|
|
@(context.Item.VatAmount > 0 ? context.Item.VatAmount.ToString("N0") : "-")
|
|
</CellTemplate>
|
|
</PropertyColumn>
|
|
<PropertyColumn Property="x => x.VatPercentage" Title="درصد VAT">
|
|
<CellTemplate>
|
|
@(context.Item.VatPercentage > 0 ? $"{context.Item.VatPercentage:0}٪" : "-")
|
|
</CellTemplate>
|
|
</PropertyColumn> *@
|
|
<TemplateColumn Title="نام کاربر">
|
|
<CellTemplate>
|
|
@if (context.Item.UserId > 0)
|
|
{
|
|
<MudLink Href="@($"/network/user-info/{context.Item.UserId}")" Underline="Underline.Hover" Color="Color.Primary">
|
|
@context.Item.UserFullName
|
|
</MudLink>
|
|
}
|
|
else
|
|
{
|
|
<MudText>@context.Item.UserFullName</MudText>
|
|
}
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
<PropertyColumn Property="x => x.UserNationalCode" Title="کدملی"/>
|
|
<TemplateColumn Title="روش پرداخت">
|
|
<CellTemplate>
|
|
<MudChip T="string" Size="Size.Small">
|
|
@GetPaymentMethodText(context.Item.PaymentMethod.GetHashCode())
|
|
</MudChip>
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
<PropertyColumn Property="x => x.PaymentStatus" Title="وضعیت پرداخت">
|
|
<CellTemplate>
|
|
@if (context.Item.PaymentStatus == PaymentStatus.Success)
|
|
{
|
|
<MudChip T="string" Color="Color.Success">پرداخت شده</MudChip>
|
|
|
|
}
|
|
else if (context.Item.PaymentStatus == PaymentStatus.Pending)
|
|
{
|
|
<MudChip T="string" Color="Color.Success" Size="Size.Small">در انتظار پرداخت</MudChip>
|
|
}
|
|
else
|
|
{
|
|
<MudChip T="string" Color="Color.Error">پرداخت نشده</MudChip>
|
|
}
|
|
</CellTemplate>
|
|
</PropertyColumn>
|
|
<PropertyColumn Property="x => x.TransactionId" Title="شناسه پرداخت" CellStyle="text-wrap: nowrap;"
|
|
HeaderStyle="text-wrap: nowrap;"/>
|
|
<TemplateColumn Title="تاریخ پرداخت" CellStyle="text-wrap: nowrap;" HeaderStyle="text-wrap: nowrap;">
|
|
<CellTemplate>
|
|
@if (context.Item.PaymentDate != null)
|
|
{
|
|
@(context.Item.PaymentDate.ToDateTime().MiladiToJalaliWithTime())
|
|
}
|
|
else
|
|
{
|
|
<MudText>-</MudText>
|
|
}
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
<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.GetHashCode())">
|
|
@GetDeliveryStatusText(context.Item.DeliveryStatus.GetHashCode())
|
|
</MudChip>
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
|
|
|
|
<TemplateColumn StickyLeft="true" Title="عملیات" CellStyle="text-wrap: nowrap;"
|
|
HeaderStyle="text-wrap: nowrap;">
|
|
<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))"
|
|
/>
|
|
</MudTooltip>
|
|
|
|
<MudTooltip Text="تغییر وضعیت ارسال">
|
|
<MudIconButton Icon="@Icons.Material.Filled.LocalShipping"
|
|
Size="Size.Small"
|
|
Color="Color.Primary"
|
|
ButtonType="ButtonType.Button"
|
|
OnClick="@(() => OpenChangeStatus(context.Item))"
|
|
/>
|
|
</MudTooltip>
|
|
|
|
<MudTooltip Text="اعمال تخفیف">
|
|
<MudIconButton Icon="@Icons.Material.Filled.PriceChange"
|
|
Size="Size.Small"
|
|
Color="Color.Secondary"
|
|
ButtonType="ButtonType.Button"
|
|
OnClick="@(() => OpenApplyDiscount(context.Item))"
|
|
/>
|
|
</MudTooltip>
|
|
|
|
<MudTooltip Text="لغو سفارش">
|
|
<MudIconButton Icon="@Icons.Material.Filled.Cancel"
|
|
Size="Size.Small"
|
|
Color="Color.Error"
|
|
ButtonType="ButtonType.Button"
|
|
OnClick="@(() => OpenCancelOrder(context.Item))"
|
|
/>
|
|
</MudTooltip>
|
|
|
|
<MudTooltip Text="آرشیو">
|
|
<MudIconButton Icon="@Icons.Material.Filled.DeleteOutline" Size="Size.Small"
|
|
ButtonType="ButtonType.Button" OnClick="@(() => OnDelete(context.Item))"
|
|
/>
|
|
</MudTooltip>
|
|
</MudStack>
|
|
</CellTemplate>
|
|
</TemplateColumn>
|
|
</Columns>
|
|
<NoRecordsContent>
|
|
<MudAlert Severity="Severity.Info" Dense="true" Variant="Variant.Text" Class="my-4">موردی یافت نشد.</MudAlert>
|
|
</NoRecordsContent>
|
|
<PagerContent>
|
|
<MudDataGridPager T="DataModel" PageSizeOptions=@(new int[] { 20, 50, 100 })
|
|
InfoFormat="سطر {first_item} تا {last_item} از {all_items}"
|
|
RowsPerPageString="تعداد در صفحه"/>
|
|
</PagerContent>
|
|
</MudDataGrid>
|
|
|
|
</Content>
|
|
</BackOffice.Common.BaseComponents.BasePageComponent>
|