feat(LookUpSms),refactor(OrderDialog),refactor(OrdersPage)
-Add new look up sms when order status changes ( like : customer-orderDelivery lookup , manager-orderSubmit look up) -Change order dialog style and improve responseive -Change orders page style and improve responsiverelease
parent
fdfe778a7a
commit
173e8e2dc0
|
@ -9,183 +9,184 @@
|
|||
@inject IJSRuntime JsRuntime
|
||||
@inject IConfiguration Configuration
|
||||
|
||||
<MudDialog class="w-full">
|
||||
<MudDialog class="w-full overflow-y-scroll p-0">
|
||||
<DialogContent>
|
||||
<MudStack class="max-h-[50rem] mt-4 w-full" Style="overflow-y: scroll">
|
||||
<MudGrid class="w-full">
|
||||
<MudStack class="mt-2 h-full w-full p-0">
|
||||
|
||||
<MudGrid class="w-full" Spacing="0">
|
||||
<MudItem xs="12" md="9">
|
||||
<MudStack>
|
||||
|
||||
<MudStack Row="true">
|
||||
|
||||
<MudText Typo="Typo.h6" class="my-auto"><b>اطلاعات سفارش</b></MudText>
|
||||
<MudSpacer />
|
||||
<MudPaper Elevation="0" class="my-auto bg-blue-500 px-4 py-2">
|
||||
<MudText Typo="Typo.body2" class="text-white">@ViewModel.PageDto.OrderStatus.ToDisplay()</MudText>
|
||||
</MudPaper>
|
||||
</MudStack>
|
||||
|
||||
<MudGrid>
|
||||
<MudItem xs="12" sm="4">
|
||||
<MudField Variant="Variant.Outlined" Label="نام و نام خانوادگی">@ViewModel.PageDto.CustomerFullName</MudField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" sm="4">
|
||||
<MudField Variant="Variant.Outlined" Label="شماره تماس">@ViewModel.PageDto.CustomerPhoneNumber</MudField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" sm="4">
|
||||
<MudField Variant="Variant.Outlined" Label="کد تخفیف">@ViewModel.PageDto.DiscountCode</MudField>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="6">
|
||||
<MudField Variant="Variant.Outlined" Label="آدرس">@ViewModel.PageDto?.OrderDelivery?.Address</MudField>
|
||||
</MudItem>
|
||||
|
||||
<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 />
|
||||
<MudPaper Elevation="0" class="border-2 my-auto border-dashed border-violet-400 px-3 py-1">
|
||||
<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-2 border-solid border-gray-200">
|
||||
<Columns>
|
||||
|
||||
<TemplateColumn T="OrderProductSDto" Title="نام کالا">
|
||||
|
||||
<CellTemplate>
|
||||
<b>@context.Item.ProductName</b>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
|
||||
<TemplateColumn T="OrderProductSDto" Title="قیمت کالا">
|
||||
|
||||
<CellTemplate>
|
||||
<p>@context.Item.ProductFeeWithDiscount.ToString("N0") ریالــ</p>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
<PropertyColumn Title="تعداد" Property="arg => arg.Count" />
|
||||
|
||||
<TemplateColumn T="OrderProductSDto" Title="قیمت کل">
|
||||
|
||||
<CellTemplate>
|
||||
<p>@context.Item.ProductCost.ToString("N0") ریالــ</p>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
</Columns>
|
||||
</MudDataGrid>
|
||||
<MudStack Row="true">
|
||||
|
||||
<MudText Typo="Typo.h6" class="my-auto"><b>اطلاعات سفارش</b></MudText>
|
||||
<MudSpacer />
|
||||
<MudPaper Elevation="0" class="my-auto bg-blue-500 px-4 py-2">
|
||||
<MudText Typo="Typo.body2" class="text-white">@ViewModel.PageDto.OrderStatus.ToDisplay()</MudText>
|
||||
</MudPaper>
|
||||
</MudStack>
|
||||
|
||||
<MudGrid>
|
||||
<MudItem xs="12" sm="4">
|
||||
<MudField Variant="Variant.Outlined" Label="نام و نام خانوادگی">@ViewModel.PageDto.CustomerFullName</MudField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" sm="4">
|
||||
<MudField Variant="Variant.Outlined" Label="شماره تماس">@ViewModel.PageDto.CustomerPhoneNumber</MudField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" sm="4">
|
||||
<MudField Variant="Variant.Outlined" Label="کد تخفیف">@ViewModel.PageDto.DiscountCode</MudField>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="6">
|
||||
<MudField Variant="Variant.Outlined" Label="آدرس">@ViewModel.PageDto?.OrderDelivery?.Address</MudField>
|
||||
</MudItem>
|
||||
|
||||
<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 />
|
||||
<MudPaper Elevation="0" class="border-2 my-auto border-dashed border-violet-400 px-3 py-1">
|
||||
<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-2 border-solid border-gray-200">
|
||||
<Columns>
|
||||
|
||||
<TemplateColumn T="OrderProductSDto" Title="نام کالا">
|
||||
|
||||
<CellTemplate>
|
||||
<b>@context.Item.ProductName</b>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
|
||||
<TemplateColumn T="OrderProductSDto" Title="قیمت کالا">
|
||||
|
||||
<CellTemplate>
|
||||
<p>@context.Item.ProductFeeWithDiscount.ToString("N0") ریالــ</p>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
<PropertyColumn Title="تعداد" Property="arg => arg.Count" />
|
||||
|
||||
<TemplateColumn T="OrderProductSDto" Title="قیمت کل">
|
||||
|
||||
<CellTemplate>
|
||||
<p>@context.Item.ProductCost.ToString("N0") ریالــ</p>
|
||||
</CellTemplate>
|
||||
</TemplateColumn>
|
||||
</Columns>
|
||||
</MudDataGrid>
|
||||
|
||||
</MudItem>
|
||||
|
||||
<MudItem xs="12" md="3">
|
||||
|
||||
<MudText Typo="Typo.h6" class="mb-2"><b>مبــــالغ</b></MudText>
|
||||
<MudPaper class="bg-[--mud-palette-background-grey] rounded-md">
|
||||
<MudStack class="p-3">
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">جمع کالاها : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalProductsPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">مالیات : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TaxesPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">بسته بندی : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.PackingPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">هزینه ارسال : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.DeliveryPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
</MudStack>
|
||||
|
||||
<MudPaper class="mud-theme-dark rounded-md">
|
||||
|
||||
<MudStack class="sm:mr-3">
|
||||
<MudText Typo="Typo.h6" class="mb-2"><b>مبــــالغ</b></MudText>
|
||||
<MudPaper class="bg-[--mud-palette-background-grey] rounded-md">
|
||||
<MudStack class="p-3">
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">جمع کل : </MudText>
|
||||
<MudText class="my-auto" Typo="Typo.body2">جمع کالاها : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalPriceWithoutDiscount.ToString("N0")</b> ریالــ</MudText>
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalProductsPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">مقدار تخفیف : </MudText>
|
||||
<MudText class="my-auto" Typo="Typo.body2">مالیات : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.DiscountPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TaxesPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">مبلغ قابل پرداخت : </MudText>
|
||||
<MudText class="my-auto" Typo="Typo.body2">بسته بندی : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.PackingPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">هزینه ارسال : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.DeliveryPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
</MudStack>
|
||||
</MudPaper>
|
||||
</MudPaper>
|
||||
|
||||
<MudText Typo="Typo.h6" class="mt-3"><b>پرداختــ ها</b></MudText>
|
||||
<MudPaper class="mud-theme-dark rounded-md">
|
||||
|
||||
<MudPaper Elevation="0" class="bg-[--mud-palette-background-grey] rounded-md">
|
||||
<MudStack class="p-3">
|
||||
<MudStack class="p-3">
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">جمع کل : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalPriceWithoutDiscount.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">مقدار تخفیف : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.DiscountPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
<MudDivider />
|
||||
|
||||
<MudStack Row="true">
|
||||
<MudText class="my-auto" Typo="Typo.body2">مبلغ قابل پرداخت : </MudText>
|
||||
<MudSpacer />
|
||||
<MudText Typo="Typo.body1"><b>@ViewModel.PageDto.TotalPrice.ToString("N0")</b> ریالــ</MudText>
|
||||
</MudStack>
|
||||
|
||||
@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>
|
||||
}
|
||||
</MudPaper>
|
||||
</MudPaper>
|
||||
|
||||
</MudStack>
|
||||
</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">
|
||||
<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>
|
||||
</MudPaper>
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</MudStack>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<MudGrid Row="true" class="bottom-0 mx-4 mb-3 h-fit w-full">
|
||||
<MudGrid class="bottom-0 mx-4 mb-3 h-fit w-full">
|
||||
|
||||
<MudItem xs="12" sm="6" md="6">
|
||||
<BaseButtonUi class="h-12 w-full rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
@inject IDialogService DialogService
|
||||
|
||||
|
||||
<MudDialog class="mx-auto">
|
||||
<MudDialog class="mx-auto overflow-y-scroll">
|
||||
<DialogContent>
|
||||
<MudContainer class="h-full">
|
||||
<MudContainer class="h-full p-0">
|
||||
<MudTabs Outlined="true" Elevation="0" Rounded="true" Centered="true">
|
||||
<MudTabPanel class="h-full" Text="اطلاعات کلی" Icon="@Icons.Material.Outlined.Info">
|
||||
<div class="h-full">
|
||||
|
@ -18,13 +18,13 @@
|
|||
</MudStack>
|
||||
<MudGrid>
|
||||
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudItem xs="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">
|
||||
<MudItem xs="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">
|
||||
<MudItem xs="12" lg="4" md="6">
|
||||
|
||||
<MudAutocomplete Required="true" ToStringFunc="dto => dto.Name" @bind-Value="@ViewModel.SelectedCategory"
|
||||
SearchFunc="ViewModel.SearchProductCategory"
|
||||
|
@ -34,9 +34,9 @@
|
|||
<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 class="mx-auto flex w-full flex-row">
|
||||
<MudProgressCircular class="my-auto -ml-4 mr-1" Size="Size.Small" Indeterminate="true" />
|
||||
<p class="text-md mx-auto my-1 font-bold">منتظر بمانید</p>
|
||||
</div>
|
||||
</MudListItem>
|
||||
</MudList>
|
||||
|
@ -46,7 +46,7 @@
|
|||
</ItemTemplate>
|
||||
</MudAutocomplete>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudItem xs="12" lg="4" md="6">
|
||||
|
||||
<MudAutocomplete Required="true" ToStringFunc="dto => dto.PersianName" @bind-Value="@ViewModel.SelectedBrand"
|
||||
SearchFunc="ViewModel.SearchBrand"
|
||||
|
@ -56,9 +56,9 @@
|
|||
<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 class="mx-auto flex w-full flex-row">
|
||||
<MudProgressCircular class="my-auto -ml-4 mr-1" Size="Size.Small" Indeterminate="true" />
|
||||
<p class="text-md mx-auto my-1 font-bold">منتظر بمانید</p>
|
||||
</div>
|
||||
</MudListItem>
|
||||
</MudList>
|
||||
|
@ -68,39 +68,39 @@
|
|||
</ItemTemplate>
|
||||
</MudAutocomplete>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudItem xs="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 xs="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 xs="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">
|
||||
<MudItem xs="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.MaxOrderCount" T="int" Format="N0" Label="بیشترین خرید" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="4" md="6">
|
||||
<MudItem xs="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">
|
||||
<MudItem xs="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">
|
||||
<MudItem xs="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">
|
||||
<MudItem xs="12" lg="12" md="12">
|
||||
<MudStack>
|
||||
<MudTextField @bind-Value="@ViewModel.PageDto.Tags" T="string" Label="تگ ها" HelperText="تگ ها را با , میتوانید جدا کنید" HelperTextOnFocus="true" Variant="Variant.Outlined" />
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
<MudItem sm="12" lg="12" md="12">
|
||||
<MudItem xs="12" lg="12" md="12">
|
||||
<MudTextField class="-mt-3" @bind-Value="@ViewModel.PageDto.Summery" T="string" Label="توضیحاتــ" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
|
@ -116,24 +116,25 @@
|
|||
</MudStack>
|
||||
<MudGrid>
|
||||
|
||||
<MudItem lg="4" md="6">
|
||||
<MudItem xs="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.SpecificationTitle" T="string" Label="عنوان" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem lg="4" md="6">
|
||||
<MudItem xs="12" lg="4" md="6">
|
||||
<MudTextField @bind-Value="@ViewModel.SpecificationValue" T="string" Label="مقدار" Variant="Variant.Outlined"></MudTextField>
|
||||
</MudItem>
|
||||
|
||||
<MudItem lg="4" md="12">
|
||||
<MudItem xs="12" lg="4" md="12">
|
||||
<MudButton Variant="Variant.Filled"
|
||||
Size="Size.Large"
|
||||
FullWidth="true"
|
||||
Color="Color.Info"
|
||||
class="w-full py-3 mt-2"
|
||||
class="mt-2 w-full py-3"
|
||||
OnClick="ViewModel.AddSpecification"
|
||||
StartIcon="@Icons.Material.Outlined.Add">افزودن</MudButton>
|
||||
</MudItem>
|
||||
|
||||
<MudItem sm="12">
|
||||
<MudItem xs="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="عنوان" />
|
||||
|
@ -176,7 +177,7 @@
|
|||
<MudTabPanel Text="تـــــصاویر" Icon="@Icons.Material.Outlined.ImageSearch">
|
||||
|
||||
<div class="min-h-[33rem]">
|
||||
<MudStack class="mt-4 mb-2" Spacing="0">
|
||||
<MudStack class="mb-2 mt-4" Spacing="0">
|
||||
|
||||
<MudText Typo="Typo.h6">تصاویر محصول</MudText>
|
||||
<MudText Typo="Typo.caption">می توانید برای محصول چند تصویر اپلود کنید</MudText>
|
||||
|
@ -185,15 +186,15 @@
|
|||
<MudIconButton HtmlTag="label"
|
||||
Color="Color.Info"
|
||||
Variant="Variant.Outlined"
|
||||
class="w-28 h-28"
|
||||
class="h-28 w-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" />
|
||||
<div class="h-28 w-28">
|
||||
<MudImage Src="@item.GetLink()" Elevation="25" Class="absolute h-28 w-28 rounded-lg" />
|
||||
|
||||
<MudIconButton DisableElevation="true"
|
||||
class="absolute m-1.5"
|
||||
|
@ -204,11 +205,11 @@
|
|||
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>
|
||||
<p class="absolute bottom-0 mr-2 rounded-lg bg-pink-500 px-1.5 py-0.5 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>
|
||||
<p class="absolute bottom-0 mr-2 rounded-lg bg-blue-500 px-1.5 py-0.5 text-white">اصلی</p>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
@ -232,7 +233,7 @@
|
|||
Color="Color.Info" />
|
||||
</MudItem>
|
||||
|
||||
<MudItem md="4">
|
||||
<MudItem xs="12" 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" />
|
||||
|
@ -240,20 +241,20 @@
|
|||
</MudSelect>
|
||||
</MudItem>
|
||||
|
||||
<MudItem md="4">
|
||||
<MudItem xs="12" md="4">
|
||||
<MudTextField Disabled="@ViewModel.IsPercentType.Not()" @bind-Value="@ViewModel.Discount.DiscountPercent" Format="N0" T="int" Label="درصد تخفیف" Variant="Variant.Outlined" />
|
||||
</MudItem>
|
||||
|
||||
<MudItem md="4">
|
||||
<MudItem xs="12" 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">
|
||||
<MudItem xs="12" 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">
|
||||
<MudItem xs="12" 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>
|
||||
|
@ -266,18 +267,18 @@
|
|||
</MudContainer>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<MudStack Row="true" class="w-full h-fit mx-4 mb-3 bottom-0">
|
||||
<MudStack Row="true" class="bottom-0 mx-4 mb-3 h-fit w-full">
|
||||
|
||||
@if (ViewModel.IsEditing)
|
||||
{
|
||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
<BaseButtonUi class="w-52 rounded-md sm:w-64" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Check"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="ثبت ویرایش" OnClickCallback="async()=>await ViewModel.SubmitEditAsync()" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
||||
<BaseButtonUi class="w-52 rounded-md sm:w-64" IsProcessing="@ViewModel.IsProcessing"
|
||||
Icon="@Icons.Material.Outlined.Check"
|
||||
Variant="Variant.Filled" Color="Color.Success"
|
||||
Content="تایید" OnClickCallback="ViewModel.SubmitCreateAsync" />
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
@inject ISnackbar Snackbar
|
||||
@inject IUserUtility UserUtility
|
||||
@inject IRestWrapper RestWrapper
|
||||
@inject IBrowserViewportService BrowserViewportService
|
||||
|
||||
|
||||
<MudStack class="bg-[--mud-palette-background-grey] h-screen w-full overflow-x-hidden overflow-y-scroll px-3 md:p-5 lg:px-8">
|
||||
<MudStack class="bg-[--mud-palette-background-grey] h-screen w-full overflow-x-hidden overflow-y-scroll md:p-5 lg:px-8">
|
||||
|
||||
<MudHidden Breakpoint="Breakpoint.Xs">
|
||||
<MudGrid>
|
||||
|
@ -85,7 +85,7 @@
|
|||
Clearable="true"
|
||||
AdornmentIcon="@Icons.Material.Filled.Search"
|
||||
IconSize="Size.Medium"
|
||||
class="my-auto"
|
||||
class="mx-2 my-auto"
|
||||
@bind-Value="@ViewModel.FactorCodeSearch"
|
||||
OnAdornmentClick="@ViewModel.SearchAsync"></MudTextField>
|
||||
</MudItem>
|
||||
|
@ -94,7 +94,7 @@
|
|||
Value="@ViewModel.OrderStatusSearch"
|
||||
SearchFunc="@ViewModel.OrderStatusSearchAsync"
|
||||
T="FilterOptionDto<OrderStatus>"
|
||||
class="-mt-0.5"
|
||||
class="-mt-0.5 mx-2"
|
||||
OnClearButtonClick="async () => await ViewModel.SearchByOrderStatusAsync(null)"
|
||||
Clearable="true"
|
||||
Label="وظعیت سفارش">
|
||||
|
@ -238,7 +238,7 @@
|
|||
public OrdersPageViewModel ViewModel { get; set; }
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
ViewModel = new OrdersPageViewModel(NavigationManager, Snackbar, UserUtility, RestWrapper, DialogService);
|
||||
ViewModel = new OrdersPageViewModel(NavigationManager, Snackbar, UserUtility, RestWrapper, DialogService, BrowserViewportService);
|
||||
await ViewModel.InitializeAsync();
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ public class OrdersPageViewModel : BaseViewModel<OrderDashboardDto>
|
|||
private readonly ISnackbar _snackbar;
|
||||
private readonly IUserUtility _userUtility;
|
||||
private readonly IDialogService _dialogService;
|
||||
private readonly IBrowserViewportService _browserViewportService;
|
||||
private readonly IRestWrapper _restWrapper;
|
||||
|
||||
public string Search = string.Empty;
|
||||
|
@ -18,13 +19,15 @@ public class OrdersPageViewModel : BaseViewModel<OrderDashboardDto>
|
|||
ISnackbar snackbar,
|
||||
IUserUtility userUtility,
|
||||
IRestWrapper restWrapper,
|
||||
IDialogService dialogService) : base(userUtility)
|
||||
IDialogService dialogService,
|
||||
IBrowserViewportService browserViewportService) : base(userUtility)
|
||||
{
|
||||
_navigationManager = navigationManager;
|
||||
_snackbar = snackbar;
|
||||
_userUtility = userUtility;
|
||||
_restWrapper = restWrapper;
|
||||
_dialogService = dialogService;
|
||||
_browserViewportService = browserViewportService;
|
||||
}
|
||||
|
||||
public override async Task InitializeAsync()
|
||||
|
@ -109,6 +112,11 @@ public class OrdersPageViewModel : BaseViewModel<OrderDashboardDto>
|
|||
public async Task ShowClicked(OrderSDto order)
|
||||
{
|
||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.False, NoHeader = true, FullWidth = true, DisableBackdropClick = true };
|
||||
|
||||
var breakPoint = await _browserViewportService.GetCurrentBreakpointAsync();
|
||||
if (breakPoint == Breakpoint.Xs)
|
||||
maxWidth = new DialogOptions { FullScreen = true, CloseButton = true };
|
||||
|
||||
var parameters = new DialogParameters<OrderActionDialogBox>();
|
||||
parameters.Add(x => x.Order, order);
|
||||
var dialogResult = await _dialogService.ShowAsync<OrderActionDialogBox>($" سفارش {order.FactorCode}", parameters, maxWidth);
|
||||
|
|
|
@ -6,8 +6,9 @@
|
|||
@inject ISnackbar Snackbar
|
||||
@inject IUserUtility UserUtility
|
||||
@inject IRestWrapper RestWrapper
|
||||
@inject IBrowserViewportService BrowserViewportService
|
||||
|
||||
<MudStack class="w-full p-8 h-screen bg-[--mud-palette-background-grey]">
|
||||
<MudStack class="bg-[--mud-palette-background-grey] h-screen w-full p-8">
|
||||
<MudGrid>
|
||||
<MudItem xs="12">
|
||||
<MudGrid Row="true" class="mb-5">
|
||||
|
@ -23,13 +24,13 @@
|
|||
StartIcon="@Icons.Material.Outlined.Add"
|
||||
Color="Color.Secondary"
|
||||
OnClick="@ViewModel.AddProductClicked"
|
||||
class="md:my-auto w-full md:w-auto">افزودن محصول</MudButton>
|
||||
class="w-full md:my-auto 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>
|
||||
class="w-full md:my-auto md:w-auto">افزودن محصول از دیجیکالا</MudButton>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
<MudHidden Breakpoint="Breakpoint.SmAndUp">
|
||||
|
@ -54,9 +55,9 @@
|
|||
<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 class="mx-auto flex w-full flex-row">
|
||||
<MudProgressCircular class="my-auto -ml-4 mr-1" Size="Size.Small" Indeterminate="true" />
|
||||
<p class="text-md mx-auto my-1 font-bold">منتظر بمانید</p>
|
||||
</div>
|
||||
</MudListItem>
|
||||
</MudList>
|
||||
|
@ -77,7 +78,7 @@
|
|||
SortMode="@SortMode.None" Groupable="false">
|
||||
|
||||
<ToolBarContent>
|
||||
<MudGrid class="md:visible collapse">
|
||||
<MudGrid class="collapse md:visible">
|
||||
|
||||
<MudItem xs="12" sm="6">
|
||||
<MudTextField T="string" Placeholder="جست جو بر اساس نام" Adornment="Adornment.Start" Immediate="true"
|
||||
|
@ -98,9 +99,9 @@
|
|||
<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 class="mx-auto flex w-full flex-row">
|
||||
<MudProgressCircular class="my-auto -ml-4 mr-1" Size="Size.Small" Indeterminate="true" />
|
||||
<p class="text-md mx-auto my-1 font-bold">منتظر بمانید</p>
|
||||
</div>
|
||||
</MudListItem>
|
||||
</MudList>
|
||||
|
@ -161,7 +162,7 @@
|
|||
<MudStack Row="true" class="w-full">
|
||||
|
||||
<MudPagination Rectangular="true" Variant="Variant.Filled" Count="@ViewModel.PageCount"
|
||||
SelectedChanged="@ViewModel.ChangePageAsync" class="my-4 mx-auto"/>
|
||||
SelectedChanged="@ViewModel.ChangePageAsync" class="mx-auto my-4"/>
|
||||
</MudStack>
|
||||
|
||||
</PagerContent>
|
||||
|
@ -176,7 +177,7 @@
|
|||
public ProductsPageViewModel ViewModel { get; set; }
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
ViewModel = new ProductsPageViewModel(NavigationManager, Snackbar, UserUtility, RestWrapper, DialogService);
|
||||
ViewModel = new ProductsPageViewModel(NavigationManager, Snackbar, UserUtility, RestWrapper, DialogService, BrowserViewportService);
|
||||
await ViewModel.InitializeAsync();
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
namespace Netina.AdminPanel.PWA.Pages;
|
||||
using MudBlazor.Services;
|
||||
|
||||
namespace Netina.AdminPanel.PWA.Pages;
|
||||
|
||||
public class ProductsPageViewModel : BaseViewModel<ObservableCollection<ProductSDto>>
|
||||
{
|
||||
|
@ -6,6 +8,7 @@ public class ProductsPageViewModel : BaseViewModel<ObservableCollection<ProductS
|
|||
private readonly ISnackbar _snackbar;
|
||||
private readonly IUserUtility _userUtility;
|
||||
private readonly IDialogService _dialogService;
|
||||
private readonly IBrowserViewportService _browserViewportService;
|
||||
private readonly IRestWrapper _restWrapper;
|
||||
|
||||
public string Search = string.Empty;
|
||||
|
@ -17,13 +20,15 @@ public class ProductsPageViewModel : BaseViewModel<ObservableCollection<ProductS
|
|||
ISnackbar snackbar,
|
||||
IUserUtility userUtility,
|
||||
IRestWrapper restWrapper,
|
||||
IDialogService dialogService) : base(userUtility)
|
||||
IDialogService dialogService,
|
||||
IBrowserViewportService browserViewportService) : base(userUtility)
|
||||
{
|
||||
_navigationManager = navigationManager;
|
||||
_snackbar = snackbar;
|
||||
_userUtility = userUtility;
|
||||
_restWrapper = restWrapper;
|
||||
_dialogService = dialogService;
|
||||
_browserViewportService = browserViewportService;
|
||||
}
|
||||
|
||||
public override async Task InitializeAsync()
|
||||
|
@ -106,6 +111,9 @@ public class ProductsPageViewModel : BaseViewModel<ObservableCollection<ProductS
|
|||
public async Task AddProductClicked()
|
||||
{
|
||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Large, FullWidth = true, DisableBackdropClick = true };
|
||||
var breakPoint = await _browserViewportService.GetCurrentBreakpointAsync();
|
||||
if (breakPoint == Breakpoint.Xs)
|
||||
maxWidth = new DialogOptions { FullScreen = true , CloseButton = true};
|
||||
var dialogResult = await _dialogService.ShowAsync<ProductActionDialogBox>("افزودن محصول جدید", maxWidth);
|
||||
var result = await dialogResult.Result;
|
||||
if (!result.Canceled && result.Data is bool and true)
|
||||
|
|
|
@ -18,4 +18,5 @@
|
|||
@using Netina.Common.Extensions
|
||||
@using Netina.Domain.Entities.Users
|
||||
@using Netina.AdminPanel.PWA.Components.Originals
|
||||
@using Netina.Domain.Models.Claims
|
||||
@using Netina.Domain.Models.Claims
|
||||
@using MudBlazor.Services
|
|
@ -1298,9 +1298,6 @@ input:checked + .toggle-bg {
|
|||
.max-h-\[30rem\] {
|
||||
max-height: 30rem;
|
||||
}
|
||||
.max-h-\[50rem\] {
|
||||
max-height: 50rem;
|
||||
}
|
||||
.max-h-\[60vh\] {
|
||||
max-height: 60vh;
|
||||
}
|
||||
|
@ -2223,10 +2220,18 @@ code {
|
|||
|
||||
@media (min-width: 640px) {
|
||||
|
||||
.sm\:mr-3 {
|
||||
margin-right: 0.75rem;
|
||||
}
|
||||
|
||||
.sm\:mt-6 {
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
.sm\:w-64 {
|
||||
width: 16rem;
|
||||
}
|
||||
|
||||
.sm\:py-3 {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
|
|
|
@ -1443,10 +1443,6 @@ input:checked + .toggle-bg {
|
|||
max-height: 30rem;
|
||||
}
|
||||
|
||||
.max-h-\[50rem\] {
|
||||
max-height: 50rem;
|
||||
}
|
||||
|
||||
.max-h-\[60vh\] {
|
||||
max-height: 60vh;
|
||||
}
|
||||
|
@ -1987,10 +1983,6 @@ input:checked + .toggle-bg {
|
|||
text-align: center;
|
||||
}
|
||||
|
||||
.text-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.align-bottom {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
@ -2049,11 +2041,6 @@ input:checked + .toggle-bg {
|
|||
color: rgb(217 119 6 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.text-blue-500 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(63 131 248 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.text-blue-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(28 100 242 / var(--tw-text-opacity));
|
||||
|
@ -2571,10 +2558,18 @@ code {
|
|||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
.sm\:mr-3 {
|
||||
margin-right: 0.75rem;
|
||||
}
|
||||
|
||||
.sm\:mt-6 {
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
.sm\:w-64 {
|
||||
width: 16rem;
|
||||
}
|
||||
|
||||
.sm\:py-3 {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
|
|
Loading…
Reference in New Issue