@page "/admin/companies/{id:int}/edit"
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false))
@attribute [Authorize]
@using TaxBaik.WasmClient.Components.Admin.Forms
@inject IApiClient ApiClient
@inject NavigationManager Navigation
@inject ISnackbar Snackbar
@inject IDialogService DialogService
고객사 수정
취소
@if (formModel == null)
{
고객사를 찾을 수 없습니다.
}
else
{
고객사 삭제
}
@code {
[Parameter]
public int Id { get; set; }
private CompanyFormModel? formModel;
private bool isLoading = true;
private RenderFragment CompanySkeleton => builder =>
{
builder.OpenComponent(0);
builder.AddAttribute(1, "Rows", 6);
builder.AddAttribute(2, "Columns", 3);
builder.CloseComponent();
};
protected override async Task OnInitializedAsync()
{
try
{
var company = await ApiClient.GetAsync($"company/{Id}");
IDictionary? dict = company as IDictionary;
if (dict != null)
{
formModel = new CompanyFormModel
{
CompanyCode = (string)dict["companyCode"],
CompanyName = (string)dict["companyName"],
ContactPerson = (string?)dict["contactPerson"],
Phone = (string?)dict["phone"],
Email = (string?)dict["email"],
Memo = (string?)dict["memo"],
IsActive = (bool)(dynamic)dict["isActive"]
};
}
}
catch (Exception ex)
{
Snackbar.Add($"고객사 로드 실패: {ex.Message}", Severity.Error);
}
finally
{
isLoading = false;
}
}
private void GoBack()
{
Navigation.NavigateTo("./companies");
}
private async Task HandleUpdate(CompanyFormModel model)
{
try
{
await ApiClient.PutAsync