146 lines
9.0 KiB
Plaintext
146 lines
9.0 KiB
Plaintext
@inject ISnackbar Snackbar
|
|
@inject IRestWrapper RestWrapper
|
|
@inject IUserUtility UserUtility
|
|
@inject IDialogService DialogService
|
|
|
|
|
|
<MudDialog class="mx-auto h-screen overflow-y-auto p-0">
|
|
<DialogContent>
|
|
<MudContainer class="p-0 text-black">
|
|
<MudStack Row="true">
|
|
<MudText Typo="Typo.h6" class="my-auto">افزودن سریع محصول</MudText>
|
|
<MudSpacer />
|
|
<MudIconButton Icon="@Icons.Material.Filled.Close" OnClick="()=>MudDialog.Close(DialogResult.Ok(true))"></MudIconButton>
|
|
</MudStack>
|
|
<MudAlert Dense="true" NoIcon="true" Variant="Variant.Outlined" ContentAlignment="HorizontalAlignment.Center" class="mb-4 mt-2" Severity="Severity.Warning">در این صفحه تنها اطلاعات اولیه ثبت میشوند و باید برای تکمیل اطلاعات محصول به صحفه اصلی تغییرات محصول بروید</MudAlert>
|
|
<MudStack Row="true" class="no-scrollbar h-full w-full overflow-x-auto">
|
|
<MudStack class="min-w-[310px]">
|
|
<MudText Typo="Typo.h6"><b>1. انتخاب دسته بندی</b></MudText>
|
|
<MudTextField class="-mt-3 flex-none" T="string" Label="جست جو دسته" />
|
|
<MudTreeView MultiSelection="false" @bind-SelectedValue="@ViewModel.SelectedCategory" T="ProductCategorySDto" ServerData="ViewModel.LoadCategories" Items="ViewModel.Categories">
|
|
<ItemTemplate>
|
|
<MudTreeViewItem class="my-1" Value="@context" LoadingIconColor="Color.Info"
|
|
Text="@context.Name"
|
|
EndTextTypo="@Typo.caption" />
|
|
</ItemTemplate>
|
|
</MudTreeView>
|
|
</MudStack>
|
|
<MudDivider Vertical="true" FlexItem="true" class="mx-1" />
|
|
|
|
<MudStack class="min-w-[310px] sm:w-full">
|
|
<MudText Typo="Typo.h6">1. افزودن محصول به <b> @ViewModel.SelectedCategory?.Name</b></MudText>
|
|
<MudGrid Spacing="1" class="-ml-1 w-full">
|
|
<MudItem xs="12" md="6">
|
|
<MudTextField Disabled="@ViewModel.FormEnable.Not()" @bind-Value="@ViewModel.PageDto.PersianName" Variant="Variant.Outlined" T="string" Label="نام فارسی کالا" />
|
|
</MudItem>
|
|
<MudItem xs="12" md="6">
|
|
<MudAutocomplete Disabled="@ViewModel.FormEnable.Not()"
|
|
Required="true"
|
|
ToStringFunc="dto => dto.PersianName"
|
|
Strict="true"
|
|
@bind-Value="@ViewModel.SelectedBrand"
|
|
SearchFunc="ViewModel.SearchBrand"
|
|
@bind-Text="@brandAutocompleteText"
|
|
T="BrandSDto"
|
|
Label="برند"
|
|
Variant="Variant.Outlined">
|
|
<NoItemsTemplate>
|
|
<MudStack Row="true" class="p-1">
|
|
<MudChip Variant="Variant.Text" class="my-auto"
|
|
Color="Color.Info">@brandAutocompleteText</MudChip>
|
|
<MudSpacer />
|
|
<MudIconButton Icon="@Icons.Material.Filled.Add"
|
|
Size="@Size.Small"
|
|
Variant="@Variant.Outlined"
|
|
OnClick="()=>ViewModel.AddBrand(brandAutocompleteText)"
|
|
Color="@Color.Secondary" />
|
|
</MudStack>
|
|
</NoItemsTemplate>
|
|
<BeforeItemsTemplate>
|
|
@if (!brandAutocompleteText.IsNullOrEmpty())
|
|
{
|
|
<MudStack Row="true">
|
|
<MudChip Variant="Variant.Text" class="my-auto"
|
|
Color="Color.Info">@brandAutocompleteText</MudChip>
|
|
<MudSpacer />
|
|
<MudIconButton Icon="@Icons.Material.Filled.Add"
|
|
Size="@Size.Small"
|
|
Variant="@Variant.Outlined"
|
|
Color="@Color.Secondary" />
|
|
</MudStack>
|
|
}
|
|
</BeforeItemsTemplate>
|
|
<ProgressIndicatorInPopoverTemplate>
|
|
<MudList Clickable="false">
|
|
<MudListItem>
|
|
<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>
|
|
</ProgressIndicatorInPopoverTemplate>
|
|
<ItemTemplate Context="e">
|
|
<p>@e.PersianName</p>
|
|
</ItemTemplate>
|
|
</MudAutocomplete>
|
|
</MudItem>
|
|
<MudItem xs="12" md="6">
|
|
<MudTextField Disabled="@ViewModel.FormEnable.Not()" @bind-Value="@ViewModel.PageDto.Stock" Variant="Variant.Outlined" T="int" Label="تعداد موجودی" />
|
|
</MudItem>
|
|
<MudItem xs="12" md="6">
|
|
<MudTextField Disabled="@ViewModel.FormEnable.Not()" @bind-Value="@ViewModel.PageDto.Cost" Format="N0" Variant="Variant.Outlined" T="double" Label="قیمت ( تومان )" />
|
|
</MudItem>
|
|
</MudGrid>
|
|
<MudFileUpload T="IReadOnlyList<IBrowserFile>"
|
|
AppendMultipleFiles
|
|
OnFilesChanged="@ViewModel.OnInputFileChanged"
|
|
Hidden="@false"
|
|
Disabled="@ViewModel.FormEnable.Not()"
|
|
InputClass="absolute mud-width-full mud-height-full overflow-hidden z-20"
|
|
InputStyle="opacity:0"
|
|
class="flex-none"
|
|
Accept=".png, .jpg"
|
|
@ondragenter="@ViewModel.SetDragClass"
|
|
@ondragleave="@ViewModel.ClearDragClass"
|
|
@ondragend="@ViewModel.ClearDragClass">
|
|
<ButtonTemplate>
|
|
<MudPaper Height="300px"
|
|
Outlined="true"
|
|
Class="@ViewModel.DragClass">
|
|
<MudText Typo="Typo.h6">
|
|
فایل های خود را داخل کادر بکشید یا با کلیک روی کادر انتخاب کنید
|
|
</MudText>
|
|
@foreach (var file in ViewModel.FileNames)
|
|
{
|
|
<MudChip Color="Color.Dark" Text="@file" />
|
|
}
|
|
</MudPaper>
|
|
</ButtonTemplate>
|
|
</MudFileUpload>
|
|
|
|
<MudButton Disabled="@ViewModel.FormEnable.Not()" Color="Color.Success" StartIcon="@Icons.Material.Filled.Check" OnClick="@ViewModel.SubmitCreateProduct">ثبت محصول</MudButton>
|
|
</MudStack>
|
|
|
|
|
|
</MudStack>
|
|
</MudContainer>
|
|
</DialogContent>
|
|
</MudDialog>
|
|
@code
|
|
{
|
|
|
|
[CascadingParameter]
|
|
MudDialogInstance MudDialog { get; set; }
|
|
|
|
string brandAutocompleteText = string.Empty;
|
|
public FastProductCreateDialogBoxViewModel ViewModel { get; set; }
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
ViewModel = new FastProductCreateDialogBoxViewModel(Snackbar, RestWrapper, UserUtility, DialogService, MudDialog);
|
|
await ViewModel.InitializeAsync();
|
|
await base.OnInitializedAsync();
|
|
}
|
|
|
|
} |