@page "/admin/companies/{id:int}/edit" @attribute [Authorize] @using TaxBaik.Web.Components.Admin.Forms @inject IApiClient ApiClient @inject NavigationManager Navigation @inject IJSRuntime JS 고객사 수정
Settings

고객사 수정

고객사 정보를 수정합니다.

@if (isLoading) {
} else if (formModel == null) {
고객사를 찾을 수 없습니다.
} else {
} @code { [Parameter] public int Id { get; set; } private CompanyForm.CompanyFormModel? formModel; private bool isLoading = true; protected override async Task OnInitializedAsync() { try { var company = await ApiClient.GetAsync($"company/{Id}"); IDictionary? dict = company as IDictionary; if (dict != null) { formModel = new CompanyForm.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) { await JS.InvokeVoidAsync("alert", $"고객사 로드 실패: {ex.Message}"); } finally { isLoading = false; } } private void GoBack() { Navigation.NavigateTo("/taxbaik/admin/companies"); } private async Task HandleUpdate(CompanyForm.CompanyFormModel model) { try { await ApiClient.PutAsync($"company/{Id}", new { companyCode = model.CompanyCode, companyName = model.CompanyName, contactPerson = model.ContactPerson, phone = model.Phone, email = model.Email, memo = model.Memo, isActive = model.IsActive }); await JS.InvokeVoidAsync("alert", "고객사가 수정되었습니다."); Navigation.NavigateTo("/taxbaik/admin/companies"); } catch (Exception ex) { await JS.InvokeVoidAsync("alert", $"수정 실패: {ex.Message}"); } } private async Task DeleteCompany() { if (!await JS.InvokeAsync("confirm", "정말 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.")) return; try { await ApiClient.DeleteAsync($"company/{Id}"); await JS.InvokeVoidAsync("alert", "고객사가 삭제되었습니다."); Navigation.NavigateTo("/taxbaik/admin/companies"); } catch (Exception ex) { await JS.InvokeVoidAsync("alert", $"삭제 실패: {ex.Message}"); } } }