feat : add delivery tracking code
parent
08c116aece
commit
64a4510445
|
@ -71,7 +71,7 @@
|
|||
<MudNavGroup Title="تنظیماتـــ" Expanded="false"
|
||||
Icon="@Icons.Material.Outlined.Settings">
|
||||
<MudNavLink Href="management/shop" Icon="@Icons.Material.Filled.Shop2">فروشگاه</MudNavLink>
|
||||
<MudNavLink Href="users" Icon="@Icons.Material.Filled.ManageAccounts">نقش ها و کاربران</MudNavLink>
|
||||
<MudNavLink Href="setting/users" Icon="@Icons.Material.Filled.ManageAccounts">نقش ها و کاربران</MudNavLink>
|
||||
</MudNavGroup>
|
||||
</MudNavMenu>
|
||||
<p class="bottom-0 align-bottom mx-auto">Version : @version</p>
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
<MudGrid class="w-full">
|
||||
<MudItem xs="12" md="9">
|
||||
<MudStack>
|
||||
|
||||
|
||||
<MudStack Row="true">
|
||||
|
||||
|
||||
<MudText Typo="Typo.h6" class="my-auto"><b>اطلاعات سفارش</b></MudText>
|
||||
<MudSpacer/>
|
||||
<MudSpacer />
|
||||
<MudPaper Elevation="0" class="bg-blue-500 px-4 py-2 my-auto">
|
||||
<MudText Typo="Typo.body2" class="text-white">@ViewModel.PageDto.OrderStatus.ToDisplay()</MudText>
|
||||
</MudPaper>
|
||||
|
@ -38,36 +38,40 @@
|
|||
</MudItem>
|
||||
|
||||
|
||||
<MudItem xs="12" sm="8">
|
||||
<MudItem xs="12" sm="6">
|
||||
<MudField Variant="Variant.Outlined" Label="آدرس">@ViewModel.PageDto?.OrderDelivery?.Address</MudField>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="4">
|
||||
<MudField Variant="Variant.Outlined" Label="روش ارسال" >@ViewModel.PageDto?.OrderDelivery?.ShippingMethod</MudField>
|
||||
<MudItem xs="12" sm="3">
|
||||
<MudField Variant="Variant.Outlined" Label="روش ارسال">@ViewModel.PageDto?.OrderDelivery?.ShippingMethod</MudField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" sm="3">
|
||||
<MudField Variant="Variant.Outlined" Label="کدرهگیری ارسال">@ViewModel.PageDto?.OrderDelivery?.TrackingCode</MudField>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
|
||||
|
||||
<MudStack class="mt-3" Row="true">
|
||||
|
||||
<MudText Typo="Typo.h6"><b>کالاهای این سفارش</b></MudText>
|
||||
<MudSpacer/>
|
||||
|
||||
<MudText Typo="Typo.h6"><b>کالاهای این سفارش</b></MudText>
|
||||
<MudSpacer />
|
||||
<MudPaper Elevation="0" class="border-dashed border-violet-400 border-2 px-3 py-1 my-auto">
|
||||
<MudText Typo="Typo.caption" class="text-violet-500"><b>@ViewModel.PageDto.OrderProducts.Sum(op => op.Count) قلم کالا</b></MudText>
|
||||
<MudText Typo="Typo.caption" class="text-violet-500"><b>@ViewModel.PageDto.OrderProducts.Sum(op => op.Count) قلم کالا</b></MudText>
|
||||
</MudPaper>
|
||||
</MudStack>
|
||||
|
||||
<MudDataGrid FixedFooter="true" FixedHeader="true" Striped="true"
|
||||
Elevation="0"
|
||||
Bordered="true"
|
||||
T="OrderProductSDto" Items="@ViewModel.PageDto.OrderProducts"
|
||||
Filterable="false" Loading="@ViewModel.IsProcessing"
|
||||
SortMode="@SortMode.None" Groupable="false"
|
||||
class="border-solid border-2 border-gray-200">
|
||||
<Columns>
|
||||
<MudDataGrid FixedFooter="true" FixedHeader="true" Striped="true"
|
||||
Elevation="0"
|
||||
Bordered="true"
|
||||
T="OrderProductSDto" Items="@ViewModel.PageDto.OrderProducts"
|
||||
Filterable="false" Loading="@ViewModel.IsProcessing"
|
||||
SortMode="@SortMode.None" Groupable="false"
|
||||
class="border-solid border-2 border-gray-200">
|
||||
<Columns>
|
||||
|
||||
<TemplateColumn T="OrderProductSDto" Title="نام کالا">
|
||||
<TemplateColumn T="OrderProductSDto" Title="نام کالا">
|
||||
|
||||
<CellTemplate>
|
||||
<b>@context.Item.ProductName</b>
|
||||
<CellTemplate>
|
||||
<b>@context.Item.ProductName</b>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
|
||||
|
@ -99,31 +103,31 @@
|
|||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">جمع کالاها : </MudText>
|
||||
<MudSpacer/>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalProductsPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider/>
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">مالیات : </MudText>
|
||||
<MudSpacer/>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TaxesPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider/>
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">بسته بندی : </MudText>
|
||||
<MudSpacer/>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.PackingPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider/>
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">هزینه ارسال : </MudText>
|
||||
<MudSpacer/>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.DeliveryPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
|
@ -135,23 +139,23 @@
|
|||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">جمع کل : </MudText>
|
||||
<MudSpacer/>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalPriceWithoutDiscount.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider/>
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">مقدار تخفیف : </MudText>
|
||||
<MudSpacer/>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.DiscountPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider/>
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">مبلغ قابل پرداخت : </MudText>
|
||||
<MudSpacer/>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
|
@ -160,48 +164,60 @@
|
|||
</MudPaper>
|
||||
|
||||
<MudText Typo="Typo.h6" class="mt-3"><b>پرداختــ ها</b></MudText>
|
||||
|
||||
|
||||
<MudPaper Elevation="0" class="bg-[--mud-palette-background-grey] rounded-md">
|
||||
<MudStack class="p-3">
|
||||
|
||||
@foreach (var item in ViewModel.PageDto.Payments)
|
||||
{
|
||||
<MudStack Row="true">
|
||||
<MudStack class="p-3">
|
||||
|
||||
@foreach (var item in ViewModel.PageDto.Payments)
|
||||
{
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">@item.Type.ToDisplay()</MudText>
|
||||
<MudText class="my-auto" Typo="Typo.body2"> - </MudText>
|
||||
<MudText class="my-auto" Typo="Typo.body2">@item.Status.ToDisplay()</MudText>
|
||||
<MudSpacer/>
|
||||
<MudText Typo="Typo.body1"><b>@item.Amount.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
}
|
||||
|
||||
</MudStack>
|
||||
<MudText class="my-auto" Typo="Typo.body2">@item.Status.ToDisplay()</MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@item.Amount.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
}
|
||||
|
||||
</MudStack>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</MudStack>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<MudStack Row="true" class="w-full h-fit mx-4 mb-3 bottom-0">
|
||||
|
||||
<BaseButtonUi class="w-64 h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.AirportShuttle"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="@ViewModel.ConfirmOrderButtonText" OnClickCallback="ViewModel.SubmitConfirmAsync" />
|
||||
<BaseButtonUi class="w-52 h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.RemoveCircle"
|
||||
Variant="Variant.Outlined" Color="Color.Error"
|
||||
Content="لغو سفارش" />
|
||||
<MudSpacer />
|
||||
<MudGrid Row="true" class="w-full h-fit mx-4 mb-3 bottom-0">
|
||||
|
||||
<BaseButtonUi class="w-52 h-12 rounded-md my-auto" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Print"
|
||||
Size="Size.Small"
|
||||
Variant="Variant.Outlined" Color="Color.Info"
|
||||
OnClickCallback="@ViewModel.PrintInvoiceAsync"
|
||||
Content="چاپــ فاکتور" />
|
||||
<MudButton Variant="Variant.Outlined" Size="Size.Medium" Color="Color.Error" OnClick="ViewModel.Cancel">بستن</MudButton>
|
||||
</MudStack>
|
||||
<MudItem xs="12" sm="6" md="6">
|
||||
<BaseButtonUi class="w-full h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.AirportShuttle"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="@ViewModel.ConfirmOrderButtonText"
|
||||
OnClickCallback="ViewModel.SubmitConfirmAsync" />
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="6" md="2">
|
||||
<BaseButtonUi class="w-full h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.RemoveCircle"
|
||||
Variant="Variant.Outlined" Color="Color.Error"
|
||||
Content="لغو سفارش" />
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" sm="6" md="3">
|
||||
<BaseButtonUi class="w-full h-12 rounded-md my-auto" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Print"
|
||||
Size="Size.Small"
|
||||
Variant="Variant.Outlined" Color="Color.Info"
|
||||
OnClickCallback="@ViewModel.PrintInvoiceAsync"
|
||||
Content="چاپــ فاکتور" />
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="6" md="1">
|
||||
<BaseButtonUi class="w-full h-12 rounded-md my-auto" IsProcessing="@ViewModel.IsProcessing"
|
||||
Size="Size.Small"
|
||||
Variant="Variant.Outlined" Color="Color.Error"
|
||||
OnClickCallback="@ViewModel.Cancel"
|
||||
Content="بستن" />
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</DialogActions>
|
||||
</MudDialog>
|
||||
|
||||
|
@ -220,7 +236,7 @@
|
|||
if (Order == null)
|
||||
ViewModel = new OrderActionDialogBoxViewModel(Snackbar, RestWrapper, UserUtility, DialogService, MudDialog, PrintingService, JsRuntime);
|
||||
else
|
||||
ViewModel = new OrderActionDialogBoxViewModel(Snackbar, RestWrapper, UserUtility, DialogService, MudDialog, Order , PrintingService , JsRuntime);
|
||||
ViewModel = new OrderActionDialogBoxViewModel(Snackbar, RestWrapper, UserUtility, DialogService, MudDialog, Order, PrintingService, JsRuntime);
|
||||
await ViewModel.InitializeAsync();
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
|
|
|
@ -54,6 +54,7 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
|
|||
public string ConfirmOrderButtonText { get; set; } = string.Empty;
|
||||
|
||||
public bool IsEditing = false;
|
||||
public bool CanConfirm = true;
|
||||
|
||||
|
||||
public override async Task InitializeAsync()
|
||||
|
@ -88,6 +89,10 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
|
|||
case OrderStatus.Delivered:
|
||||
ConfirmOrderButtonText = "ثبت انجام سفارش";
|
||||
break;
|
||||
case OrderStatus.Done:
|
||||
ConfirmOrderButtonText = "انجام شده";
|
||||
CanConfirm = false;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
@ -171,6 +176,45 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
|
|||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
if (nextOrderStatus == OrderStatus.Delivered)
|
||||
{
|
||||
var options = new DialogOptions { MaxWidth = MaxWidth.Small, FullWidth = true, NoHeader = true, CloseOnEscapeKey = true };
|
||||
var trackingDialog = await _dialogService.ShowAsync<OrderTrackingCodeActionDialogBox>("ارسال کد رهگیری پستی", options);
|
||||
var trackingDialogResult = await trackingDialog.Result;
|
||||
if (!trackingDialogResult.Canceled && trackingDialogResult.Data is string trackingCode)
|
||||
{
|
||||
try
|
||||
{
|
||||
var token = await _userUtility.GetBearerTokenAsync();
|
||||
if (token == null)
|
||||
throw new Exception("Token is null");
|
||||
IsProcessing = true;
|
||||
|
||||
|
||||
await _restWrapper.OrderRestApi.ConfirmOrderStepAsync(PageDto.Id, nextOrderStatus,trackingCode, token);
|
||||
_snackbar.Add($"سفارش {PageDto.FactorCode} به {nextOrderStatus.ToDisplay()} تغییر یافت", Severity.Success);
|
||||
_mudDialog.Close(true);
|
||||
}
|
||||
catch (ApiException ex)
|
||||
{
|
||||
var exe = await ex.GetContentAsAsync<ApiResult>();
|
||||
_snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error);
|
||||
_mudDialog.Cancel();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_snackbar.Add(e.Message, Severity.Error);
|
||||
_mudDialog.Cancel();
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
IsProcessing = false;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
var reference = await _dialogService.ShowQuestionDialog($"آیا از ثبت سفارش به {nextOrderStatus.ToDisplay()} اطمینان دارید ?");
|
||||
var result = await reference.Result;
|
||||
|
||||
|
@ -187,7 +231,7 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
|
|||
|
||||
await _restWrapper.OrderRestApi.ConfirmOrderStepAsync(PageDto.Id, nextOrderStatus, token);
|
||||
_snackbar.Add($"سفارش {PageDto.FactorCode} به {nextOrderStatus.ToDisplay()} تغییر یافت", Severity.Success);
|
||||
_mudDialog.Close();
|
||||
_mudDialog.Close(true);
|
||||
}
|
||||
catch (ApiException ex)
|
||||
{
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
<MudDialog class="overflow-y-hidden overflow-x-hidden">
|
||||
<DialogContent>
|
||||
<MudStack class=" pt-8 py-8 -mb-4 w-full">
|
||||
<MudText Typo="Typo.h5" class="font-bold" Align="Align.Center">لطفا کد رهگیری ارسال را وارد کنید</MudText>
|
||||
|
||||
<MudTextField class="mt-3" Variant="Variant.Outlined" T="string" Label="کد رهگیری" @bind-Value="@TrackingCode"></MudTextField>
|
||||
</MudStack>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<MudGrid class="p-2">
|
||||
<MudItem lg="6">
|
||||
<MudButton class="w-full py-3 font-bold" Color="Color.Info" Variant="Variant.Filled" OnClick="Submit" DisableElevation="true">تایید</MudButton>
|
||||
</MudItem>
|
||||
|
||||
<MudItem lg="6">
|
||||
<MudButton class="w-full py-3 font-bold" Variant="Variant.Outlined" Color="Color.Error" OnClick="Cancel">انصراف</MudButton>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</DialogActions>
|
||||
</MudDialog>
|
||||
@code
|
||||
{
|
||||
|
||||
[CascadingParameter]
|
||||
MudDialogInstance? MudDialog { get; set; }
|
||||
|
||||
public string TrackingCode { get; set; } = string.Empty;
|
||||
|
||||
void Submit()
|
||||
{
|
||||
if (TrackingCode.IsNullOrEmpty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
MudDialog?.Close(DialogResult.Ok(TrackingCode));
|
||||
}
|
||||
void Cancel() => MudDialog?.Cancel();
|
||||
}
|
|
@ -5,8 +5,8 @@
|
|||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
|
||||
<AssemblyVersion>0.17.21.31</AssemblyVersion>
|
||||
<FileVersion>0.17.21.31</FileVersion>
|
||||
<AssemblyVersion>0.17.21.32</AssemblyVersion>
|
||||
<FileVersion>0.17.21.32</FileVersion>
|
||||
<AssemblyName>$(MSBuildProjectName)</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
|
@ -7,31 +7,31 @@
|
|||
@inject IUserUtility UserUtility
|
||||
@inject IRestWrapper RestWrapper
|
||||
|
||||
<MudStack class="w-full p-8 h-screen bg-[--mud-palette-background-grey]">
|
||||
<MudStack class="w-full p-8 min-h-screen bg-[--mud-palette-background-grey]">
|
||||
|
||||
<MudGrid>
|
||||
<MudItem sm="6" lg="3">
|
||||
<MudItem xs="12" sm="6" lg="3">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">سفارشات امروز</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-amber-600"><b>1124</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<MudItem sm="6" lg="3">
|
||||
<MudItem xs="12" sm="6" lg="3">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">سفارشات در انتظار تایید</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-blue-600"><b>845</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<MudItem sm="6" lg="3">
|
||||
<MudItem xs="12" sm="6" lg="3">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تغییر نسبت هفته پیش</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-lime-600"><b>125</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<MudItem sm="6" lg="3">
|
||||
<MudItem xs="12" sm="6" lg="3">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تغییر نسبت به ماه پیش</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-rose-600"><b>10</b></MudText>
|
||||
|
|
|
@ -10,23 +10,64 @@
|
|||
<MudStack class="w-full p-8 h-screen bg-[--mud-palette-background-grey]">
|
||||
<MudGrid>
|
||||
<MudItem xs="12">
|
||||
<MudStack Row="true" class="mb-5">
|
||||
<MudText Typo="Typo.h4">محصولاتــــ</MudText>
|
||||
<MudChip Color="Color.Info" Variant="Variant.Outlined">124 عدد</MudChip>
|
||||
<MudSpacer/>
|
||||
<MudButton Variant="Variant.Filled"
|
||||
DisableElevation="true"
|
||||
StartIcon="@Icons.Material.Outlined.Add"
|
||||
Color="Color.Secondary"
|
||||
OnClick="@ViewModel.AddProductClicked"
|
||||
class="my-auto">افزودن محصول</MudButton>
|
||||
@* <MudButton Variant="Variant.Filled"
|
||||
DisableElevation="true"
|
||||
StartIcon="@Icons.Material.Outlined.Add"
|
||||
Color="Color.Error"
|
||||
OnClick="@ViewModel.AddDigikalaProductClicked"
|
||||
class="my-auto">افزودن محصول از دیجیکالا</MudButton> *@
|
||||
</MudStack>
|
||||
<MudGrid Row="true" class="mb-5">
|
||||
<MudItem xs="12" sm="6" md="8">
|
||||
<MudStack Row="true">
|
||||
<MudText Typo="Typo.h4">محصولاتــــ</MudText>
|
||||
<MudChip Color="Color.Info" Variant="Variant.Outlined">124 عدد</MudChip>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="6" md="4">
|
||||
<MudButton Variant="Variant.Filled"
|
||||
DisableElevation="true"
|
||||
StartIcon="@Icons.Material.Outlined.Add"
|
||||
Color="Color.Secondary"
|
||||
OnClick="@ViewModel.AddProductClicked"
|
||||
class="md:my-auto w-full md:w-auto">افزودن محصول</MudButton>
|
||||
<MudButton Variant="Variant.Filled"
|
||||
DisableElevation="true"
|
||||
StartIcon="@Icons.Material.Outlined.Add"
|
||||
Color="Color.Error"
|
||||
OnClick="@ViewModel.AddDigikalaProductClicked"
|
||||
class="md:my-auto w-full md:w-auto">افزودن محصول از دیجیکالا</MudButton>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
<MudHidden Breakpoint="Breakpoint.SmAndUp">
|
||||
<MudGrid class="mb-3" Row="true">
|
||||
|
||||
<MudItem xs="12" sm="6">
|
||||
<MudTextField T="string" Placeholder="جست جو بر اساس نام" Adornment="Adornment.Start" Immediate="true"
|
||||
Clearable="true"
|
||||
ValueChanged="@ViewModel.SearchChanged"
|
||||
AdornmentIcon="@Icons.Material.Filled.Search" IconSize="Size.Medium" class="my-auto"
|
||||
OnAdornmentClick="@ViewModel.SearchAsync"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" sm="6">
|
||||
<MudAutocomplete class="-mt-0.5" Required="true" ToStringFunc="dto => dto.Name"
|
||||
T="ProductCategorySDto"
|
||||
Label="بر اساس دسته بندی"
|
||||
OnClearButtonClick="ViewModel.ClearProductCategorySearch"
|
||||
SearchFunc="ViewModel.SearchProductCategory"
|
||||
ValueChanged="ViewModel.ProductCategorySelected"
|
||||
Clearable="true">
|
||||
<ProgressIndicatorInPopoverTemplate>
|
||||
<MudList Clickable="false">
|
||||
<MudListItem>
|
||||
<div class="flex flex-row w-full mx-auto">
|
||||
<MudProgressCircular class="my-auto mr-1 -ml-4" Size="Size.Small" Indeterminate="true" />
|
||||
<p class="font-bold my-1 mx-auto text-md">منتظر بمانید</p>
|
||||
</div>
|
||||
</MudListItem>
|
||||
</MudList>
|
||||
</ProgressIndicatorInPopoverTemplate>
|
||||
<ItemTemplate Context="e">
|
||||
<p>@e.Name</p>
|
||||
</ItemTemplate>
|
||||
</MudAutocomplete>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</MudHidden>
|
||||
<MudPaper class="!max-h-[80vh] overflow-auto">
|
||||
<MudDataGrid FixedFooter="true" FixedHeader="true" Striped="true"
|
||||
|
||||
|
@ -36,40 +77,40 @@
|
|||
SortMode="@SortMode.None" Groupable="false">
|
||||
|
||||
<ToolBarContent>
|
||||
<MudGrid Row="true">
|
||||
<MudGrid class="md:visible collapse" Row="true">
|
||||
|
||||
<MudItem sm="6">
|
||||
<MudTextField T="string" Placeholder="جست جو بر اساس نام" Adornment="Adornment.Start" Immediate="true"
|
||||
Clearable="true"
|
||||
ValueChanged="@ViewModel.SearchChanged"
|
||||
AdornmentIcon="@Icons.Material.Filled.Search" IconSize="Size.Medium" class="my-auto"
|
||||
OnAdornmentClick="@ViewModel.SearchAsync"></MudTextField>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="6">
|
||||
<MudTextField T="string" Placeholder="جست جو بر اساس نام" Adornment="Adornment.Start" Immediate="true"
|
||||
Clearable="true"
|
||||
ValueChanged="@ViewModel.SearchChanged"
|
||||
AdornmentIcon="@Icons.Material.Filled.Search" IconSize="Size.Medium" class="my-auto"
|
||||
OnAdornmentClick="@ViewModel.SearchAsync"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem sm="6">
|
||||
<MudAutocomplete class="-mt-0.5" Required="true" ToStringFunc="dto => dto.Name"
|
||||
T="ProductCategorySDto"
|
||||
Label="بر اساس دسته بندی"
|
||||
OnClearButtonClick="ViewModel.ClearProductCategorySearch"
|
||||
SearchFunc="ViewModel.SearchProductCategory"
|
||||
ValueChanged="ViewModel.ProductCategorySelected"
|
||||
Clearable="true">
|
||||
<ProgressIndicatorInPopoverTemplate>
|
||||
<MudList Clickable="false">
|
||||
<MudListItem>
|
||||
<div class="flex flex-row w-full mx-auto">
|
||||
<MudProgressCircular class="my-auto mr-1 -ml-4" Size="Size.Small" Indeterminate="true" />
|
||||
<p class="font-bold my-1 mx-auto text-md">منتظر بمانید</p>
|
||||
</div>
|
||||
</MudListItem>
|
||||
</MudList>
|
||||
</ProgressIndicatorInPopoverTemplate>
|
||||
<ItemTemplate Context="e">
|
||||
<p>@e.Name</p>
|
||||
</ItemTemplate>
|
||||
</MudAutocomplete>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
<MudItem xs="12" sm="6">
|
||||
<MudAutocomplete class="-mt-0.5" Required="true" ToStringFunc="dto => dto.Name"
|
||||
T="ProductCategorySDto"
|
||||
Label="بر اساس دسته بندی"
|
||||
OnClearButtonClick="ViewModel.ClearProductCategorySearch"
|
||||
SearchFunc="ViewModel.SearchProductCategory"
|
||||
ValueChanged="ViewModel.ProductCategorySelected"
|
||||
Clearable="true">
|
||||
<ProgressIndicatorInPopoverTemplate>
|
||||
<MudList Clickable="false">
|
||||
<MudListItem>
|
||||
<div class="flex flex-row w-full mx-auto">
|
||||
<MudProgressCircular class="my-auto mr-1 -ml-4" Size="Size.Small" Indeterminate="true" />
|
||||
<p class="font-bold my-1 mx-auto text-md">منتظر بمانید</p>
|
||||
</div>
|
||||
</MudListItem>
|
||||
</MudList>
|
||||
</ProgressIndicatorInPopoverTemplate>
|
||||
<ItemTemplate Context="e">
|
||||
<p>@e.Name</p>
|
||||
</ItemTemplate>
|
||||
</MudAutocomplete>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</ToolBarContent>
|
||||
<Columns>
|
||||
|
||||
|
|
|
@ -10,16 +10,21 @@
|
|||
<MudStack class="w-full p-8 h-screen bg-[--mud-palette-background-grey]">
|
||||
<MudGrid>
|
||||
<MudItem xs="12">
|
||||
<MudStack Row="true" class="mb-5">
|
||||
<MudText Typo="Typo.h4">روش های ارسال سفارش</MudText>
|
||||
<MudSpacer />
|
||||
<MudButton Variant="Variant.Filled"
|
||||
DisableElevation="true"
|
||||
StartIcon="@Icons.Material.Outlined.Add"
|
||||
Color="Color.Secondary"
|
||||
OnClick="@ViewModel.AddClicked"
|
||||
class="my-auto">افزودن روش جدید</MudButton>
|
||||
</MudStack>
|
||||
<MudGrid Row="true" class="mb-5">
|
||||
<MudItem xs="12" sm="6" md="8">
|
||||
<MudStack Row="true">
|
||||
<MudText Typo="Typo.h4">روش های ارسال سفارش</MudText>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="6" md="4">
|
||||
<MudButton Variant="Variant.Filled"
|
||||
DisableElevation="true"
|
||||
StartIcon="@Icons.Material.Outlined.Add"
|
||||
Color="Color.Secondary"
|
||||
OnClick="@ViewModel.AddClicked"
|
||||
class="my-auto">افزودن روش جدید</MudButton>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
<MudPaper>
|
||||
<MudDataGrid FixedFooter="true" FixedHeader="true" Striped="true"
|
||||
T="ShippingSDto" Items="@ViewModel.PageDto" CurrentPage="@ViewModel.CurrentPage"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@page "/setting/user"
|
||||
@page "/setting/users"
|
||||
@using NetinaShop.Domain.Entities.Users
|
||||
@attribute [Microsoft.AspNetCore.Authorization.Authorize]
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
|||
OnClick="@ViewModel.AddUserClicked"
|
||||
class="my-auto">افزودن کاربر</MudButton>
|
||||
</MudStack>
|
||||
<MudPaper>
|
||||
<MudPaper class="!max-h-[80vh] overflow-auto">
|
||||
<MudDataGrid FixedFooter="true" FixedHeader="true" Striped="true"
|
||||
T="ApplicationUserSDto" Items="@ViewModel.Users" CurrentPage="@ViewModel.UsersCurrentPage"
|
||||
RowsPerPage="20" Filterable="false" Loading="@ViewModel.IsProcessing"
|
||||
|
@ -81,7 +81,7 @@
|
|||
OnClick="@ViewModel.AddRoleClicked"
|
||||
class="my-auto">افزودن نقش</MudButton>
|
||||
</MudStack>
|
||||
<MudPaper>
|
||||
<MudPaper class="!max-h-[80vh] overflow-auto">
|
||||
<MudDataGrid FixedFooter="true" FixedHeader="true" Striped="true"
|
||||
T="ApplicationRole" Items="@ViewModel.Roles" CurrentPage="@ViewModel.RolesCurrentPage"
|
||||
RowsPerPage="20" Filterable="false" Loading="@ViewModel.IsProcessing"
|
||||
|
|
|
@ -9,7 +9,9 @@ public interface IOrderRestApi
|
|||
Task<OrderLDto> ReadOne(Guid id, [Header("Authorization")] string authorization);
|
||||
|
||||
[Post("/{id}/confirm")]
|
||||
Task<bool> ConfirmOrderStepAsync(Guid id,[Query] OrderStatus nextOrderStatus , [Header("Authorization")] string authorization);
|
||||
Task<bool> ConfirmOrderStepAsync(Guid id,[Query] OrderStatus nextOrderStatus, [Header("Authorization")] string authorization);
|
||||
[Post("/{id}/confirm")]
|
||||
Task<bool> ConfirmOrderStepAsync(Guid id, [Query] OrderStatus nextOrderStatus, [Query]string trackingCode, [Header("Authorization")] string authorization);
|
||||
|
||||
[Get("/{id}/invoice")]
|
||||
Task<HttpContent> GetOrderInvoice(Guid id, [Header("Authorization")] string authorization);
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
"flowbite": "^2.2.1",
|
||||
"postcss": "^8.4.33",
|
||||
"postcss-cli": "^11.0.0",
|
||||
"tailwindcss": "^3.4.1"
|
||||
"tailwindcss": "^3.4.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@alloc/quick-lru": {
|
||||
|
@ -1802,9 +1802,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/tailwindcss": {
|
||||
"version": "3.4.1",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz",
|
||||
"integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==",
|
||||
"version": "3.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz",
|
||||
"integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==",
|
||||
"dependencies": {
|
||||
"@alloc/quick-lru": "^5.2.0",
|
||||
"arg": "^5.0.2",
|
||||
|
@ -1814,7 +1814,7 @@
|
|||
"fast-glob": "^3.3.0",
|
||||
"glob-parent": "^6.0.2",
|
||||
"is-glob": "^4.0.3",
|
||||
"jiti": "^1.19.1",
|
||||
"jiti": "^1.21.0",
|
||||
"lilconfig": "^2.1.0",
|
||||
"micromatch": "^4.0.5",
|
||||
"normalize-path": "^3.0.0",
|
||||
|
|
|
@ -1,10 +1,5 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"autoprefixer": "^10.4.17",
|
||||
"flowbite": "^2.2.1",
|
||||
"postcss": "^8.4.33",
|
||||
"postcss-cli": "^11.0.0",
|
||||
"tailwindcss": "^3.4.1",
|
||||
"@ckeditor/ckeditor5-alignment": "41.0.0",
|
||||
"@ckeditor/ckeditor5-autoformat": "41.0.0",
|
||||
"@ckeditor/ckeditor5-basic-styles": "41.0.0",
|
||||
|
@ -25,7 +20,12 @@
|
|||
"@ckeditor/ckeditor5-typing": "41.0.0",
|
||||
"@ckeditor/ckeditor5-undo": "41.0.0",
|
||||
"@ckeditor/ckeditor5-upload": "41.0.0",
|
||||
"@ckeditor/ckeditor5-word-count": "41.0.0"
|
||||
"@ckeditor/ckeditor5-word-count": "41.0.0",
|
||||
"autoprefixer": "^10.4.17",
|
||||
"flowbite": "^2.2.1",
|
||||
"postcss": "^8.4.33",
|
||||
"postcss-cli": "^11.0.0",
|
||||
"tailwindcss": "^3.4.3"
|
||||
},
|
||||
"name": "netina.admin.pwa",
|
||||
"version": "1.0.0",
|
||||
|
|
|
@ -5,17 +5,19 @@
|
|||
"description": "",
|
||||
"features": [
|
||||
"افزودن تم دارک",
|
||||
"تکمیل پروسه سفارش گیری",
|
||||
"قابلیت افزودن تصویر به برند ها",
|
||||
"قابلیت افزودن تصویر به دسته بندی محصولات",
|
||||
"تغییر دیالوگ پرسشی",
|
||||
"افزودن تنظیمات درگاه",
|
||||
"افزودن بخش تنظیمات فروشگاه"
|
||||
"افزودن کد رهگیری پستی",
|
||||
"تکمیل پروسه سفارش گیری",
|
||||
"افزودن بخش تنظیمات فروشگاه",
|
||||
"قابلیت افزودن تصویر به برند ها",
|
||||
"قابلیت افزودن تصویر به دسته بندی محصولات"
|
||||
],
|
||||
"bugFixes": [
|
||||
"حل مشکلات امنیتی",
|
||||
"رفع مشکلات رسپانسیو",
|
||||
"رفع مشکل دریافت تصاویر",
|
||||
"رفع مشکل عدم اتصال به درگاه"
|
||||
"رفع مشکل عدم اتصال به درگاه",
|
||||
"رفع مشکلات ساختاری در ریسپانس"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
|
||||
! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com
|
||||
*//*
|
||||
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
|
||||
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
|
||||
|
@ -179,6 +179,7 @@ textarea {
|
|||
font-size: 100%; /* 1 */
|
||||
font-weight: inherit; /* 1 */
|
||||
line-height: inherit; /* 1 */
|
||||
letter-spacing: inherit; /* 1 */
|
||||
color: inherit; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
padding: 0; /* 3 */
|
||||
|
@ -199,9 +200,9 @@ select {
|
|||
*/
|
||||
|
||||
button,
|
||||
[type='button'],
|
||||
[type='reset'],
|
||||
[type='submit'] {
|
||||
input:where([type='button']),
|
||||
input:where([type='reset']),
|
||||
input:where([type='submit']) {
|
||||
-webkit-appearance: button; /* 1 */
|
||||
background-color: transparent; /* 2 */
|
||||
background-image: none; /* 2 */
|
||||
|
@ -913,6 +914,10 @@ input:checked + .toggle-bg {
|
|||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style: ;
|
||||
}
|
||||
|
||||
::backdrop {
|
||||
|
@ -963,6 +968,10 @@ input:checked + .toggle-bg {
|
|||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style: ;
|
||||
}
|
||||
.container {
|
||||
width: 100%;
|
||||
|
@ -1115,6 +1124,9 @@ input:checked + .toggle-bg {
|
|||
.-mb-3 {
|
||||
margin-bottom: -0.75rem;
|
||||
}
|
||||
.-mb-4 {
|
||||
margin-bottom: -1rem;
|
||||
}
|
||||
.-ml-4 {
|
||||
margin-left: -1rem;
|
||||
}
|
||||
|
@ -1293,6 +1305,9 @@ input:checked + .toggle-bg {
|
|||
.min-h-\[33rem\] {
|
||||
min-height: 33rem;
|
||||
}
|
||||
.min-h-screen {
|
||||
min-height: 100vh;
|
||||
}
|
||||
.w-1\/2 {
|
||||
width: 50%;
|
||||
}
|
||||
|
@ -2118,6 +2133,19 @@ code {
|
|||
|
||||
@media (min-width: 768px) {
|
||||
|
||||
.md\:visible {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.md\:my-auto {
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
}
|
||||
|
||||
.md\:w-auto {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.md\:basis-1\/2 {
|
||||
flex-basis: 50%;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
|
||||
! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -211,6 +211,8 @@ textarea {
|
|||
/* 1 */
|
||||
line-height: inherit;
|
||||
/* 1 */
|
||||
letter-spacing: inherit;
|
||||
/* 1 */
|
||||
color: inherit;
|
||||
/* 1 */
|
||||
margin: 0;
|
||||
|
@ -234,9 +236,9 @@ select {
|
|||
*/
|
||||
|
||||
button,
|
||||
[type='button'],
|
||||
[type='reset'],
|
||||
[type='submit'] {
|
||||
input:where([type='button']),
|
||||
input:where([type='reset']),
|
||||
input:where([type='submit']) {
|
||||
-webkit-appearance: button;
|
||||
/* 1 */
|
||||
background-color: transparent;
|
||||
|
@ -965,6 +967,10 @@ input:checked + .toggle-bg {
|
|||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style: ;
|
||||
}
|
||||
|
||||
::backdrop {
|
||||
|
@ -1015,6 +1021,10 @@ input:checked + .toggle-bg {
|
|||
--tw-backdrop-opacity: ;
|
||||
--tw-backdrop-saturate: ;
|
||||
--tw-backdrop-sepia: ;
|
||||
--tw-contain-size: ;
|
||||
--tw-contain-layout: ;
|
||||
--tw-contain-paint: ;
|
||||
--tw-contain-style: ;
|
||||
}
|
||||
|
||||
.container {
|
||||
|
@ -1195,11 +1205,6 @@ input:checked + .toggle-bg {
|
|||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.my-5 {
|
||||
margin-top: 1.25rem;
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.my-auto {
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
|
@ -1317,6 +1322,10 @@ input:checked + .toggle-bg {
|
|||
margin-top: 2rem;
|
||||
}
|
||||
|
||||
.-mb-4 {
|
||||
margin-bottom: -1rem;
|
||||
}
|
||||
|
||||
.line-clamp-1 {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
|
@ -1445,6 +1454,10 @@ input:checked + .toggle-bg {
|
|||
min-height: 33rem;
|
||||
}
|
||||
|
||||
.min-h-screen {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.w-1\/2 {
|
||||
width: 50%;
|
||||
}
|
||||
|
@ -2458,6 +2471,19 @@ code {
|
|||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.md\:visible {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.md\:my-auto {
|
||||
margin-top: auto;
|
||||
margin-bottom: auto;
|
||||
}
|
||||
|
||||
.md\:w-auto {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.md\:basis-1\/2 {
|
||||
flex-basis: 50%;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue