feat : complete ordering , add version 0.17.18.25
parent
4ae2dcfb39
commit
25ade7ce1c
|
@ -6,9 +6,6 @@
|
|||
@inject IUserUtility UserUtility
|
||||
@inject IDialogService DialogService
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
|
||||
</head>
|
||||
|
||||
<MudDialog class="mx-auto">
|
||||
<DialogContent>
|
||||
|
|
|
@ -34,10 +34,10 @@
|
|||
|
||||
|
||||
<MudItem sm="9">
|
||||
<MudField Variant="Variant.Outlined" Label="آدرس">@ViewModel.PageDto.OrderDelivery.Address</MudField>
|
||||
<MudField Variant="Variant.Outlined" Label="آدرس">@ViewModel.PageDto?.OrderDelivery?.Address</MudField>
|
||||
</MudItem>
|
||||
<MudItem sm="3">
|
||||
<MudField Variant="Variant.Outlined" Label="روش ارسال">@ViewModel.PageDto.OrderDelivery.ShippingMethod</MudField>
|
||||
<MudField Variant="Variant.Outlined" Label="روش ارسال">@ViewModel.PageDto?.OrderDelivery?.ShippingMethod</MudField>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
|
||||
|
@ -180,18 +180,18 @@
|
|||
<BaseButtonUi class="w-64 h-12 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.AirportShuttle"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="ثبت ارسال سفارش" OnClickCallback="ViewModel.SubmitEditAsync" />
|
||||
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="لغو سفارش" OnClickCallback="ViewModel.SubmitEditAsync" />
|
||||
Content="لغو سفارش" />
|
||||
<MudSpacer />
|
||||
|
||||
<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"
|
||||
Content="چاپــ فاکتور" OnClickCallback="ViewModel.SubmitEditAsync" />
|
||||
Content="چاپــ فاکتور" />
|
||||
<MudButton Variant="Variant.Outlined" Size="Size.Medium" Color="Color.Error" OnClick="ViewModel.Cancel">بستن</MudButton>
|
||||
</MudStack>
|
||||
</DialogActions>
|
||||
|
|
|
@ -36,6 +36,8 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
|
|||
|
||||
public void Cancel() => _mudDialog.Cancel();
|
||||
|
||||
public string ConfirmOrderButtonText { get; set; } = string.Empty;
|
||||
|
||||
public bool IsEditing = false;
|
||||
|
||||
|
||||
|
@ -54,6 +56,23 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
|
|||
|
||||
var order = await _restWrapper.OrderRestApi.ReadOne(PageDto.Id, token);
|
||||
PageDto = order;
|
||||
switch (PageDto.OrderStatus)
|
||||
{
|
||||
case OrderStatus.Submitted:
|
||||
ConfirmOrderButtonText = "ثبت پرداختی سفارش";
|
||||
break;
|
||||
case OrderStatus.Paid:
|
||||
ConfirmOrderButtonText = "ثبت سفارش";
|
||||
break;
|
||||
case OrderStatus.Processing:
|
||||
ConfirmOrderButtonText = "ثبت ارسال سفارش";
|
||||
break;
|
||||
case OrderStatus.Delivered:
|
||||
ConfirmOrderButtonText = "ثبت انجام سفارش";
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
catch (ApiException ex)
|
||||
{
|
||||
|
@ -74,29 +93,71 @@ public class OrderActionDialogBoxViewModel : BaseViewModel<OrderLDto>
|
|||
};
|
||||
}
|
||||
|
||||
public async Task SubmitEditAsync()
|
||||
public async Task SubmitConfirmAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
IsProcessing = true;
|
||||
_snackbar.Add($"ویرایش سفارش {PageDto.FactorCode} با موفقیت انجام شد", Severity.Success);
|
||||
_mudDialog.Close();
|
||||
}
|
||||
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
|
||||
var options = new DialogOptions { CloseOnEscapeKey = true };
|
||||
var parameters = new DialogParameters<QuestionDialog>();
|
||||
parameters.Add(x => x.ContentText, "آیا از حذف دسته بندی اطمینان دارید ?");
|
||||
var dialogReference = await _dialogService.ShowAsync<QuestionDialog>("حذف شرح حال", parameters, options);
|
||||
var result = await dialogReference.Result;
|
||||
if (!result.Canceled)
|
||||
{
|
||||
|
||||
IsProcessing = false;
|
||||
try
|
||||
{
|
||||
var token = await _userUtility.GetBearerTokenAsync();
|
||||
if (token == null)
|
||||
throw new Exception("Token is null");
|
||||
IsProcessing = true;
|
||||
OrderStatus nextOrderStatus = OrderStatus.Canceled;
|
||||
switch (PageDto.OrderStatus)
|
||||
{
|
||||
case OrderStatus.OrderBag:
|
||||
return;
|
||||
break;
|
||||
case OrderStatus.Submitted:
|
||||
nextOrderStatus = OrderStatus.Paid;
|
||||
break;
|
||||
case OrderStatus.Paid:
|
||||
nextOrderStatus = OrderStatus.Processing;
|
||||
break;
|
||||
case OrderStatus.Processing:
|
||||
nextOrderStatus = OrderStatus.Delivered;
|
||||
break;
|
||||
case OrderStatus.Delivered:
|
||||
nextOrderStatus = OrderStatus.Done;
|
||||
break;
|
||||
case OrderStatus.Done:
|
||||
return;
|
||||
break;
|
||||
case OrderStatus.Canceled:
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
await _restWrapper.OrderRestApi.ConfirmOrderStepAsync(PageDto.Id, nextOrderStatus, token);
|
||||
_snackbar.Add($"ویرایش سفارش {PageDto.FactorCode} با موفقیت انجام شد", Severity.Success);
|
||||
_mudDialog.Close();
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -7,286 +7,286 @@
|
|||
|
||||
|
||||
<MudDialog class="mx-auto">
|
||||
<DialogContent>
|
||||
<MudContainer class="h-full">
|
||||
<MudTabs Outlined="true" Elevation="0" Rounded="true" Centered="true">
|
||||
<MudTabPanel class="h-full" Text="اطلاعات کلی" Icon="@Icons.Material.Outlined.Info">
|
||||
<div class="h-full">
|
||||
<MudStack Spacing="0" class="mt-4">
|
||||
<DialogContent>
|
||||
<MudContainer class="h-full">
|
||||
<MudTabs Outlined="true" Elevation="0" Rounded="true" Centered="true">
|
||||
<MudTabPanel class="h-full" Text="اطلاعات کلی" Icon="@Icons.Material.Outlined.Info">
|
||||
<div class="h-full">
|
||||
<MudStack Spacing="0" class="mt-4">
|
||||
|
||||
<MudText Typo="Typo.h6">اطلاعات کلی</MudText>
|
||||
<MudText Typo="Typo.caption">اطلاعات کلی محصول را به دقت وارد کنید</MudText>
|
||||
</MudStack>
|
||||
<MudGrid>
|
||||
<MudText Typo="Typo.h6">اطلاعات کلی</MudText>
|
||||
<MudText Typo="Typo.caption">اطلاعات کلی محصول را به دقت وارد کنید</MudText>
|
||||
</MudStack>
|
||||
<MudGrid>
|
||||
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.PersianName" T="string" Label="نام فارسی محصول" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.EnglishName" T="string" Label="نام انگلیسی محصول" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.PersianName" T="string" Label="نام فارسی محصول" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.EnglishName" T="string" Label="نام انگلیسی محصول" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
|
||||
<MudAutocomplete Required="true" ToStringFunc="dto => dto.Name" @bind-Value="@ViewModel.SelectedCategory"
|
||||
SearchFunc="ViewModel.SearchProductCategory"
|
||||
T="ProductCategorySDto"
|
||||
Label="دسته بندی"
|
||||
Variant="Variant.Outlined">
|
||||
<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>
|
||||
<MudAutocomplete Required="true" ToStringFunc="dto => dto.Name" @bind-Value="@ViewModel.SelectedCategory"
|
||||
SearchFunc="ViewModel.SearchProductCategory"
|
||||
T="ProductCategorySDto"
|
||||
Label="دسته بندی"
|
||||
Variant="Variant.Outlined">
|
||||
<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>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
|
||||
<MudAutocomplete Required="true" ToStringFunc="dto => dto.PersianName" @bind-Value="@ViewModel.SelectedBrand"
|
||||
SearchFunc="ViewModel.SearchBrand"
|
||||
T="BrandSDto"
|
||||
Label="برند"
|
||||
Variant="Variant.Outlined">
|
||||
<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.PersianName</p>
|
||||
</ItemTemplate>
|
||||
</MudAutocomplete>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudAutocomplete Required="true" ToStringFunc="dto => dto.PersianName" @bind-Value="@ViewModel.SelectedBrand"
|
||||
SearchFunc="ViewModel.SearchBrand"
|
||||
T="BrandSDto"
|
||||
Label="برند"
|
||||
Variant="Variant.Outlined">
|
||||
<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.PersianName</p>
|
||||
</ItemTemplate>
|
||||
</MudAutocomplete>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.Cost" T="double" Label="قیمت محصول" Adornment="Adornment.End" Format="N0" AdornmentText="ریالــ" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.PackingCost" T="double" Label="مبلغ بسته بندی" Format="N0" Adornment="Adornment.End" AdornmentText="ریالــ" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.Stock" T="int" Format="N0" Label="موجودی انبار" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.MaxOrderCount" T="int" Format="N0" Label="بیشترین خرید" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.Warranty" T="string" Label="گارانتی" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudSelect T="bool" @bind-Value="@ViewModel.PageDto.HasExpressDelivery" Label="آیا ارسال سریع دارد ؟" ToStringFunc="b=>b.ToPersianString()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelectItem T="bool" Value="true" />
|
||||
<MudSelectItem T="bool" Value="false" />
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.MaxOrderCount" T="int" Format="N0" Label="بیشترین خرید" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudSelect T="bool" @bind-Value="@ViewModel.PageDto.BeDisplayed" Label="آیا نمایش داده شود است ؟" ToStringFunc="b=>b.ToPersianString()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelectItem T="bool" Value="true" />
|
||||
<MudSelectItem T="bool" Value="false" />
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="12" md="12">
|
||||
<MudStack>
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.Tags" T="string" Label="تگ ها" HelperText="تگ ها را با , میتوانید جدا کنید" HelperTextOnFocus="true" Variant="Variant.Outlined" />
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.Warranty" T="string" Label="گارانتی" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudSelect T="bool" @bind-Value="@ViewModel.PageDto.HasExpressDelivery" Label="آیا ارسال سریع دارد ؟" ToStringFunc="b=>b.ToPersianString()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelectItem T="bool" Value="true" />
|
||||
<MudSelectItem T="bool" Value="false" />
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudSelect T="bool" @bind-Value="@ViewModel.PageDto.BeDisplayed" Label="آیا نمایش داده شود است ؟" ToStringFunc="b=>b.ToPersianString()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelectItem T="bool" Value="true" />
|
||||
<MudSelectItem T="bool" Value="false" />
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="12" md="12">
|
||||
<MudTextField class="-mt-3" @bind-Value="@ViewModel.PageDto.Summery" T="string" Label="توضیحاتــ" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</div>
|
||||
</MudTabPanel>
|
||||
<MudTabPanel Text="ویژگی های کلی" Icon="@Icons.Material.Outlined.AutoGraph">
|
||||
<div class="min-h-[33rem]">
|
||||
|
||||
<MudStack class="mt-4" Spacing="0">
|
||||
|
||||
<MudText Typo="Typo.h6">ویژگی های کلی</MudText>
|
||||
<MudText Typo="Typo.caption">می توانید ویگی های تکمیلی محصول را کامل وارد کنید</MudText>
|
||||
</MudStack>
|
||||
<MudGrid>
|
||||
|
||||
<MudItem lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.SpecificationTitle" T="string" Label="عنوان" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.SpecificationValue" T="string" Label="مقدار" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem lg="4" md="12">
|
||||
<MudButton Variant="Variant.Filled"
|
||||
Size="Size.Large"
|
||||
Color="Color.Info"
|
||||
class="w-full py-3 mt-2"
|
||||
OnClick="ViewModel.AddSpecification"
|
||||
StartIcon="@Icons.Material.Outlined.Add">افزودن</MudButton>
|
||||
</MudItem>
|
||||
|
||||
<MudItem sm="12">
|
||||
<MudDataGrid Items="@ViewModel.Specifications" Elevation="0" Outlined="true" Bordered="true" Striped="true" Filterable="false" SortMode="@SortMode.None" Groupable="false">
|
||||
<Columns>
|
||||
<PropertyColumn Property="x => x.Title" Title="عنوان" />
|
||||
<PropertyColumn Property="x => x.Value" Title="مقدار" />
|
||||
<TemplateColumn T="SpecificationSDto" CellClass="d-flex justify-end">
|
||||
<CellTemplate>
|
||||
<MudStack Row>
|
||||
<MudButton DisableElevation="true"
|
||||
Size="@Size.Small"
|
||||
Variant="@Variant.Filled"
|
||||
OnClick="()=>ViewModel.RemoveSpecification(context.Item)"
|
||||
Color="@Color.Error"
|
||||
StartIcon="@Icons.Material.Outlined.Delete">حذف</MudButton>
|
||||
<MudStack>
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.Tags" T="string" Label="تگ ها" HelperText="تگ ها را با , میتوانید جدا کنید" HelperTextOnFocus="true" Variant="Variant.Outlined" />
|
||||
</MudStack>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
</Columns>
|
||||
</MudDataGrid>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</div>
|
||||
</MudTabPanel>
|
||||
<MudTabPanel Text="توضیحات تکمیلی" Icon="@Icons.Material.Outlined.Article">
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="12" md="12">
|
||||
<MudTextField class="-mt-3" @bind-Value="@ViewModel.PageDto.Summery" T="string" Label="توضیحاتــ" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</div>
|
||||
</MudTabPanel>
|
||||
<MudTabPanel Text="ویژگی های کلی" Icon="@Icons.Material.Outlined.AutoGraph">
|
||||
<div class="min-h-[33rem]">
|
||||
|
||||
<div class="min-h-[33rem]">
|
||||
<MudStack class="mt-4" Spacing="0">
|
||||
<MudStack class="mt-4" Spacing="0">
|
||||
|
||||
<MudText Typo="Typo.h6">توضیحات تکمیلی</MudText>
|
||||
<MudText Typo="Typo.caption">می توانید توضیحاتــ تکمیلی محصول را کامل وارد کنید</MudText>
|
||||
</MudStack>
|
||||
<MudGrid>
|
||||
<MudItem sm="12">
|
||||
<MudText Typo="Typo.h6">ویژگی های کلی</MudText>
|
||||
<MudText Typo="Typo.caption">می توانید ویگی های تکمیلی محصول را کامل وارد کنید</MudText>
|
||||
</MudStack>
|
||||
<MudGrid>
|
||||
|
||||
<RichTextEditorUi @bind-Text="@ViewModel.PageDto.ExpertCheck" />
|
||||
<MudItem lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.SpecificationTitle" T="string" Label="عنوان" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</div>
|
||||
</MudTabPanel>
|
||||
<MudTabPanel Text="تـــــصاویر" Icon="@Icons.Material.Outlined.ImageSearch">
|
||||
<MudItem lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.SpecificationValue" T="string" Label="مقدار" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
<div class="min-h-[33rem]">
|
||||
<MudStack class="mt-4 mb-2" Spacing="0">
|
||||
<MudItem lg="4" md="12">
|
||||
<MudButton Variant="Variant.Filled"
|
||||
Size="Size.Large"
|
||||
Color="Color.Info"
|
||||
class="w-full py-3 mt-2"
|
||||
OnClick="ViewModel.AddSpecification"
|
||||
StartIcon="@Icons.Material.Outlined.Add">افزودن</MudButton>
|
||||
</MudItem>
|
||||
|
||||
<MudText Typo="Typo.h6">تصاویر محصول</MudText>
|
||||
<MudText Typo="Typo.caption">می توانید برای محصول چند تصویر اپلود کنید</MudText>
|
||||
</MudStack>
|
||||
<MudStack Row="true">
|
||||
<MudIconButton HtmlTag="label"
|
||||
Color="Color.Info"
|
||||
Variant="Variant.Outlined"
|
||||
class="w-28 h-28"
|
||||
Size="Size.Large"
|
||||
Icon="@Icons.Material.Outlined.Wallpaper"
|
||||
OnClick="async () => await ViewModel.SelectFileAsync()">
|
||||
</MudIconButton>
|
||||
@foreach (var item in ViewModel.Files)
|
||||
{
|
||||
<div class="w-28 h-28">
|
||||
<MudImage Src="@item.GetLink()" Elevation="25" Class="rounded-lg w-28 h-28 absolute" />
|
||||
<MudItem sm="12">
|
||||
<MudDataGrid Items="@ViewModel.Specifications" Elevation="0" Outlined="true" Bordered="true" Striped="true" Filterable="false" SortMode="@SortMode.None" Groupable="false">
|
||||
<Columns>
|
||||
<PropertyColumn Property="x => x.Title" Title="عنوان" />
|
||||
<PropertyColumn Property="x => x.Value" Title="مقدار" />
|
||||
<TemplateColumn T="SpecificationSDto" CellClass="d-flex justify-end">
|
||||
<CellTemplate>
|
||||
<MudStack Row>
|
||||
<MudButton DisableElevation="true"
|
||||
Size="@Size.Small"
|
||||
Variant="@Variant.Filled"
|
||||
OnClick="()=>ViewModel.RemoveSpecification(context.Item)"
|
||||
Color="@Color.Error"
|
||||
StartIcon="@Icons.Material.Outlined.Delete">حذف</MudButton>
|
||||
</MudStack>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
</Columns>
|
||||
</MudDataGrid>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</div>
|
||||
</MudTabPanel>
|
||||
<MudTabPanel Text="توضیحات تکمیلی" Icon="@Icons.Material.Outlined.Article">
|
||||
|
||||
<MudIconButton DisableElevation="true"
|
||||
class="absolute m-1.5"
|
||||
Size="@Size.Small"
|
||||
Variant="@Variant.Filled"
|
||||
OnClick="() => ViewModel.RemoveFile(item)"
|
||||
Color="@Color.Error"
|
||||
Icon="@Icons.Material.Outlined.Delete" />
|
||||
@if (item.IsHeader)
|
||||
{
|
||||
<p class="bg-pink-500 px-1.5 py-0.5 absolute bottom-0 mr-2 rounded-lg text-white">هدر</p>
|
||||
}
|
||||
@if (item.IsPrimary)
|
||||
{
|
||||
<p class="bg-blue-500 px-1.5 py-0.5 absolute bottom-0 mr-2 rounded-lg text-white">اصلی</p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
<div class="min-h-[33rem]">
|
||||
<MudStack class="mt-4" Spacing="0">
|
||||
|
||||
</MudStack>
|
||||
</div>
|
||||
<MudText Typo="Typo.h6">توضیحات تکمیلی</MudText>
|
||||
<MudText Typo="Typo.caption">می توانید توضیحاتــ تکمیلی محصول را کامل وارد کنید</MudText>
|
||||
</MudStack>
|
||||
<MudGrid>
|
||||
<MudItem sm="12">
|
||||
|
||||
</MudTabPanel>
|
||||
<RichTextEditorUi @bind-Text="@ViewModel.PageDto.ExpertCheck" />
|
||||
|
||||
<MudTabPanel Text="پیشنهاد ویژه" Icon="@Icons.Material.Outlined.LocalOffer">
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</div>
|
||||
</MudTabPanel>
|
||||
<MudTabPanel Text="تـــــصاویر" Icon="@Icons.Material.Outlined.ImageSearch">
|
||||
|
||||
<div class="min-h-[33rem]">
|
||||
<MudGrid>
|
||||
<div class="min-h-[33rem]">
|
||||
<MudStack class="mt-4 mb-2" Spacing="0">
|
||||
|
||||
<MudItem sm="12">
|
||||
<MudSwitch @bind-Value="@ViewModel.IsSpecialOffer"
|
||||
class="mt-2"
|
||||
Size="Size.Large"
|
||||
T="bool"
|
||||
Label="آیا محصول در فروش ویژه میباشد ؟"
|
||||
Color="Color.Info" />
|
||||
</MudItem>
|
||||
<MudText Typo="Typo.h6">تصاویر محصول</MudText>
|
||||
<MudText Typo="Typo.caption">می توانید برای محصول چند تصویر اپلود کنید</MudText>
|
||||
</MudStack>
|
||||
<MudStack Row="true">
|
||||
<MudIconButton HtmlTag="label"
|
||||
Color="Color.Info"
|
||||
Variant="Variant.Outlined"
|
||||
class="w-28 h-28"
|
||||
Size="Size.Large"
|
||||
Icon="@Icons.Material.Outlined.Wallpaper"
|
||||
OnClick="async () => await ViewModel.SelectFileAsync()">
|
||||
</MudIconButton>
|
||||
@foreach (var item in ViewModel.Files)
|
||||
{
|
||||
<div class="w-28 h-28">
|
||||
<MudImage Src="@item.GetLink()" Elevation="25" Class="rounded-lg w-28 h-28 absolute" />
|
||||
|
||||
<MudItem md="4">
|
||||
<MudIconButton DisableElevation="true"
|
||||
class="absolute m-1.5"
|
||||
Size="@Size.Small"
|
||||
Variant="@Variant.Filled"
|
||||
OnClick="() => ViewModel.RemoveFile(item)"
|
||||
Color="@Color.Error"
|
||||
Icon="@Icons.Material.Outlined.Delete" />
|
||||
@if (item.IsHeader)
|
||||
{
|
||||
<p class="bg-pink-500 px-1.5 py-0.5 absolute bottom-0 mr-2 rounded-lg text-white">هدر</p>
|
||||
}
|
||||
@if (item.IsPrimary)
|
||||
{
|
||||
<p class="bg-blue-500 px-1.5 py-0.5 absolute bottom-0 mr-2 rounded-lg text-white">اصلی</p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
<MudSelect Disabled="@ViewModel.IsSpecialOffer.Not()" T="DiscountAmountType" ValueChanged="@ViewModel.AmountTypeChanged" Label="نوع تخفیفـــ" ToStringFunc="b=>b.ToDisplay()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelectItem T="DiscountAmountType" Value="DiscountAmountType.Percent" />
|
||||
<MudSelectItem T="DiscountAmountType" Value="DiscountAmountType.Amount" />
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
</MudStack>
|
||||
</div>
|
||||
|
||||
<MudItem md="4">
|
||||
</MudTabPanel>
|
||||
|
||||
<MudTabPanel Text="پیشنهاد ویژه" Icon="@Icons.Material.Outlined.LocalOffer">
|
||||
|
||||
<div class="min-h-[33rem]">
|
||||
<MudGrid>
|
||||
|
||||
<MudItem sm="12">
|
||||
<MudSwitch @bind-Value="@ViewModel.IsSpecialOffer"
|
||||
class="mt-2"
|
||||
Size="Size.Large"
|
||||
T="bool"
|
||||
Label="آیا محصول در فروش ویژه میباشد ؟"
|
||||
Color="Color.Info" />
|
||||
</MudItem>
|
||||
|
||||
<MudItem md="4">
|
||||
|
||||
<MudSelect Disabled="@ViewModel.IsSpecialOffer.Not()" T="DiscountAmountType" ValueChanged="@ViewModel.AmountTypeChanged" Label="نوع تخفیفـــ" ToStringFunc="b=>b.ToDisplay()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelectItem T="DiscountAmountType" Value="DiscountAmountType.Percent" />
|
||||
<MudSelectItem T="DiscountAmountType" Value="DiscountAmountType.Amount" />
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
|
||||
<MudItem md="4">
|
||||
<MudTextField Disabled="@ViewModel.IsPercentType.Not()" @bind-Value="@ViewModel.Discount.DiscountPercent" Format="N0" T="int" Label="درصد تخفیف" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
</MudItem>
|
||||
|
||||
<MudItem md="4">
|
||||
<MudTextField Disabled="@ViewModel.IsAmountType.Not()" @bind-Value="@ViewModel.Discount.DiscountAmount" Format="N0" T="long" Label="مبلغ تخفیفــ" Adornment="Adornment.End" AdornmentText="ریالــ" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem md="4">
|
||||
<MudTextField Disabled="@ViewModel.IsAmountType.Not()" @bind-Value="@ViewModel.Discount.DiscountAmount" Format="N0" T="long" Label="مبلغ تخفیفــ" Adornment="Adornment.End" AdornmentText="ریالــ" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
|
||||
|
||||
<MudItem sm="6">
|
||||
<MudDatePicker Disabled="@ViewModel.IsSpecialOffer.Not()" @bind-Date="@ViewModel.StartDate" UseShortNames="false" TitleDateFormat="dddd, dd MMMM" Label="تاریخ شروع تخفیفــ" Variant="Variant.Outlined" Culture="@PersianCultureInfo.GetPersianCulture()" />
|
||||
<MudItem sm="6">
|
||||
<MudDatePicker Disabled="@ViewModel.IsSpecialOffer.Not()" @bind-Date="@ViewModel.StartDate" UseShortNames="false" TitleDateFormat="dddd, dd MMMM" Label="تاریخ شروع تخفیفــ" Variant="Variant.Outlined" Culture="@PersianCultureInfo.GetPersianCulture()" />
|
||||
|
||||
</MudItem>
|
||||
<MudItem sm="6">
|
||||
<MudDatePicker Disabled="@ViewModel.IsSpecialOffer.Not()" @bind-Date="@ViewModel.ExpireDate" UseShortNames="false" TitleDateFormat="dddd, dd MMMM" Label="تاریخ پایان تخفیفــ" Variant="Variant.Outlined" Culture="@PersianCultureInfo.GetPersianCulture()" />
|
||||
</MudItem>
|
||||
<MudItem sm="6">
|
||||
<MudDatePicker Disabled="@ViewModel.IsSpecialOffer.Not()" @bind-Date="@ViewModel.ExpireDate" UseShortNames="false" TitleDateFormat="dddd, dd MMMM" Label="تاریخ پایان تخفیفــ" Variant="Variant.Outlined" Culture="@PersianCultureInfo.GetPersianCulture()" />
|
||||
|
||||
</MudItem>
|
||||
</MudItem>
|
||||
|
||||
|
||||
</MudGrid>
|
||||
</div>
|
||||
</MudTabPanel>
|
||||
</MudTabs>
|
||||
</MudContainer>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<MudStack Row="true" class="w-full h-fit mx-4 mb-3 bottom-0">
|
||||
</MudGrid>
|
||||
</div>
|
||||
</MudTabPanel>
|
||||
</MudTabs>
|
||||
</MudContainer>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<MudStack Row="true" class="w-full h-fit mx-4 mb-3 bottom-0">
|
||||
|
||||
@if (ViewModel.IsEditing)
|
||||
{
|
||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Check"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="ثبت ویرایش" OnClickCallback="ViewModel.SubmitEditAsync" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Check"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="تایید" OnClickCallback="ViewModel.SubmitCreateAsync" />
|
||||
}
|
||||
<MudSpacer />
|
||||
<MudButton Variant="Variant.Outlined" Size="Size.Large" Color="Color.Error" OnClick="ViewModel.Cancel">بستن</MudButton>
|
||||
</MudStack>
|
||||
</DialogActions>
|
||||
@if (ViewModel.IsEditing)
|
||||
{
|
||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Check"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="ثبت ویرایش" OnClickCallback="ViewModel.SubmitEditAsync" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Check"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="تایید" OnClickCallback="ViewModel.SubmitCreateAsync" />
|
||||
}
|
||||
<MudSpacer />
|
||||
<MudButton Variant="Variant.Outlined" Size="Size.Large" Color="Color.Error" OnClick="ViewModel.Cancel">بستن</MudButton>
|
||||
</MudStack>
|
||||
</DialogActions>
|
||||
</MudDialog>
|
||||
|
||||
@code {
|
||||
|
|
|
@ -1,16 +1,10 @@
|
|||
@using NetinaShop.Common.Models.Exception
|
||||
@using NetinaShop.Domain.CommandQueries.Commands
|
||||
@using Radzen.Blazor
|
||||
|
||||
@inject ISnackbar Snackbar
|
||||
@inject ISnackbar Snackbar
|
||||
@inject IRestWrapper RestWrapper
|
||||
@inject IUserUtility UserUtility
|
||||
<head>
|
||||
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />
|
||||
</head>
|
||||
|
||||
<MudDialog class="mx-auto" DisableSidePadding="true">
|
||||
<DialogContent>
|
||||
<MudStack>
|
||||
<MudStack class="mx-5 overflow-x-hidden overflow-y-hidden">
|
||||
<MudDivider class="-mt-3" />
|
||||
<MudStack Spacing="0">
|
||||
|
||||
|
@ -23,7 +17,7 @@
|
|||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudSelect T="bool" @bind-Value="@ViewModel.IsMain" Label="آیا دسته بندی اصلی است ؟" ToStringFunc="b=>b.ToPersianString()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
||||
<MudSelectItem T="bool" Value="true" />
|
||||
<MudSelectItem T="bool" Value="true" />
|
||||
<MudSelectItem T="bool" Value="false" />
|
||||
</MudSelect>
|
||||
</MudItem>
|
||||
|
@ -49,7 +43,7 @@
|
|||
</MudAutocomplete>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="12" md="12">
|
||||
<MudContainer class="max-h-[20rem] lg:max-h-[25rem] overflow-y-scroll">
|
||||
<MudContainer class="max-h-[20rem] lg:max-h-[25rem] overflow-y-scroll overflow-x-hidden">
|
||||
<MudStack class="mt-4 mb-2" Spacing="0">
|
||||
|
||||
<MudText Typo="Typo.h6">توضیحات تکمیلی</MudText>
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
public static class Address
|
||||
{
|
||||
#if DEBUG
|
||||
//public static string BaseAddress = "http://localhost:32770/api";
|
||||
public static string BaseAddress = "https://api.vesmook.com/api";
|
||||
public static string BaseAddress = "http://localhost:32770/api";
|
||||
//public static string BaseAddress = "https://api.vesmook.com/api";
|
||||
#else
|
||||
public static string BaseAddress = "https://api.vesmook.com/api";
|
||||
#endif
|
||||
|
|
|
@ -19,7 +19,7 @@ public static class MainTheme
|
|||
},
|
||||
PaletteDark = new PaletteDark()
|
||||
{
|
||||
Primary = "#001A46",
|
||||
Primary = "#E59F2E",
|
||||
Secondary = "#E59F2E",
|
||||
}
|
||||
};
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
|
||||
<AssemblyVersion>0.17.16.23</AssemblyVersion>
|
||||
<FileVersion>0.17.16.23</FileVersion>
|
||||
<AssemblyVersion>0.17.18.25</AssemblyVersion>
|
||||
<FileVersion>0.17.18.25</FileVersion>
|
||||
<AssemblyName>$(MSBuildProjectName)</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
|
|
@ -7,4 +7,7 @@ public interface IOrderRestApi
|
|||
|
||||
[Get("/{id}")]
|
||||
Task<OrderLDto> ReadOne(Guid id, [Header("Authorization")] string authorization);
|
||||
|
||||
[Post("/{id}/confirm")]
|
||||
Task<bool> ConfirmOrderStepAsync(Guid id,[Query] OrderStatus nextOrderStatus , [Header("Authorization")] string authorization);
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "0.17.16.23",
|
||||
"version": "0.17.18.25",
|
||||
"versionNumber": 0.101623,
|
||||
"versionName": "چرتکه",
|
||||
"description": "",
|
||||
|
|
|
@ -1076,6 +1076,10 @@ input:checked + .toggle-bg {
|
|||
margin-left: 1rem;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
.mx-5 {
|
||||
margin-left: 1.25rem;
|
||||
margin-right: 1.25rem;
|
||||
}
|
||||
.mx-auto {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
@ -1437,6 +1441,9 @@ input:checked + .toggle-bg {
|
|||
.overflow-x-hidden {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.overflow-y-hidden {
|
||||
overflow-y: hidden;
|
||||
}
|
||||
.overflow-x-scroll {
|
||||
overflow-x: scroll;
|
||||
}
|
||||
|
|
|
@ -1155,6 +1155,11 @@ input:checked + .toggle-bg {
|
|||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.mx-5 {
|
||||
margin-left: 1.25rem;
|
||||
margin-right: 1.25rem;
|
||||
}
|
||||
|
||||
.mx-auto {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
|
@ -1628,6 +1633,10 @@ input:checked + .toggle-bg {
|
|||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.overflow-y-hidden {
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
.overflow-x-scroll {
|
||||
overflow-x: scroll;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue