AdminPanel/Netina.AdminPanel.PWA/Pages/ShopManagementPage.razor

158 lines
8.8 KiB
Plaintext

@page "/management/shop"
@attribute [Microsoft.AspNetCore.Authorization.Authorize]
@inject IDialogService DialogService
@inject NavigationManager NavigationManager
@inject ISnackbar Snackbar
@inject IUserUtility UserUtility
@inject IRestWrapper RestWrapper
<MudStack class="w-full p-8 h-screen bg-[--mud-palette-background-grey]">
<MudGrid>
<MudItem xs="12">
<MudPaper class="px-5 py-5">
<MudStack Row="true">
<MudStack class="mb-5 mx-2">
<MudText Typo="Typo.h4">فروشـــــگاه من</MudText>
<MudText Typo="Typo.caption">شما می توانید اطلاعات فروشگاه خود را ویرایش نمایید</MudText>
</MudStack>
<MudSpacer/>
<BaseButtonUi Size="Size.Large"
OnClickCallback="ViewModel.SubmitShopSettingAsync"
class="mt-2 mb-8 w-64 rounded-md"
IsProcessing="@ViewModel.IsProcessing"
Icon="@Icons.Material.Outlined.Check"
Content="ثبتـــ اطلاعات" Variant="Variant.Filled" Color="Color.Success" />
</MudStack>
<MudGrid>
<MudItem xs="12" sm="4">
<MudTextField T="string" @bind-Value="@ViewModel.ShopSetting.Name" Variant="Variant.Outlined" Label="نام فروشاه"></MudTextField>
</MudItem>
<MudItem xs="12" sm="4">
<MudTextField T="string" @bind-Value="@ViewModel.ShopSetting.Slogan" Variant="Variant.Outlined" Label="شعار فروشگاه"></MudTextField>
</MudItem>
<MudItem xs="12" sm="4">
<MudTextField T="string" @bind-Value="@ViewModel.ShopSetting.Description" Variant="Variant.Outlined" Label="توضیحات"></MudTextField>
</MudItem>
<MudItem xs="12" sm="5">
<MudTextField T="double" @bind-Value="@ViewModel.ShopSetting.TaxesFee" Variant="Variant.Outlined" Label="مقدار مالیات"></MudTextField>
</MudItem>
<MudItem xs="12" sm="5">
<MudTextField T="double" @bind-Value="@ViewModel.ShopSetting.ServiceFee" Variant="Variant.Outlined" Label="مقدار سرویس"></MudTextField>
</MudItem>
<MudItem xs="12" sm="2">
<MudSelect T="bool" Variant="Variant.Outlined" Label="سرویس درصدی می باشد ؟">
<MudSelectItem T="bool" Value="true">بلی</MudSelectItem>
<MudSelectItem T="bool" Value="true">خیر</MudSelectItem>
</MudSelect>
</MudItem>
<MudItem xs="12" sm="3">
<MudAutocomplete Required="true" ToStringFunc="dto => dto.Name" @bind-Value="@ViewModel.SelectedProvince"
SearchFunc="@ViewModel.SearchProvinceAsync"
T="Province"
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 xs="12" sm="3">
<MudAutocomplete Required="true" ToStringFunc="dto => dto.Name" @bind-Value="@ViewModel.SelectedCity"
SearchFunc="@ViewModel.SearchCityAsync"
T="City"
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 xs="12" sm="6">
<MudTextField T="string" @bind-Value="@ViewModel.ShopSetting.Address" Variant="Variant.Outlined" Label="آدرس فروشگاه"></MudTextField>
</MudItem>
<MudItem xs="12" sm="6">
<MudTextField T="string" @bind-Value="@ViewModel.ShopSetting.ENamad" Variant="Variant.Outlined" Label="آدرس نماد اعتماد"></MudTextField>
</MudItem>
<MudItem xs="12" sm="12">
<MudStack Row="true">
<MudStack>
<MudText Typo="Typo.h4">لوگو وب سایت</MudText>
<MudText Typo="Typo.body1">سایز لوگو شما باید 512 * 512 باشد و به شکل مربع ، تا جایگیری مناسبی داشته باشد</MudText>
<BaseButtonUi Variant="Variant.Outlined" Content="اپلود و تغییر لوگو" OnClickCallback="async () => await ViewModel.SelectFileAsync()" />
</MudStack>
<MudImage Src="@ViewModel.ShopSetting.LogoUrl" Width="150" Height="150" Elevation="25" Class="rounded-lg ma-4" />
</MudStack>
</MudItem>
</MudGrid>
</MudPaper>
<MudPaper class="px-5 mt-8 py-5">
<MudStack Row="true">
<MudStack class="mb-5 mx-2">
<MudText Typo="Typo.h4">تنظیمات درگاه پرداخت</MudText>
<MudText Typo="Typo.caption">شما می توانید اطلاعات درگاه پرداخت خود را ویرایش نمایید</MudText>
</MudStack>
<MudSpacer />
<BaseButtonUi Size="Size.Large" class="mt-2 mb-8 w-64 rounded-md"
OnClickCallback="ViewModel.SubmitPaymentSettingAsync"
IsProcessing="@ViewModel.IsProcessing"
Icon="@Icons.Material.Outlined.Check" Content="ثبتـــ اطلاعات"
Variant="Variant.Filled" Color="Color.Success" />
</MudStack>
<MudGrid>
<MudItem xs="12" sm="6">
<MudTextField T="string" @bind-Value="@ViewModel.PaymentSetting.ZarinPalApiKey" Variant="Variant.Outlined" Label="کد مرچنت زرین پال"></MudTextField>
</MudItem>
<MudItem xs="12" sm="6">
<MudTextField T="string" @bind-Value="@ViewModel.PaymentSetting.Shaba" Variant="Variant.Outlined" Label="شماره شبا پشتیبانی"></MudTextField>
</MudItem>
</MudGrid>
</MudPaper>
</MudItem>
</MudGrid>
</MudStack>
@code
{
public ShopManagementPageViewModel ViewModel { get; set; }
protected override async Task OnInitializedAsync()
{
ViewModel = new ShopManagementPageViewModel(NavigationManager, Snackbar, UserUtility, RestWrapper, DialogService);
await ViewModel.InitializeAsync();
await base.OnInitializedAsync();
}
}