Files
taxbaik/TaxBaik.Web/Components/Admin/Pages/Inquiries/InquiryDetail.razor
T
kjh2064 046a16c75b
TaxBaik Browser E2E / browser-e2e (push) Successful in 1m19s
TaxBaik CI/CD / build-and-deploy (push) Successful in 1m22s
fix: use stable inquiry list links
2026-06-27 16:28:33 +09:00

93 lines
3.2 KiB
Plaintext

@page "/admin/inquiries/{InquiryId:int}"
@using TaxBaik.Application.Services
@inject InquiryService InquiryService
@inject NavigationManager Navigation
@inject ISnackbar Snackbar
<PageTitle>문의 상세</PageTitle>
@if (inquiry != null)
{
<MudButton Variant="Variant.Text" @onclick="@(() => Navigation.NavigateTo("/taxbaik/admin/inquiries"))">
← 돌아가기
</MudButton>
<MudPaper Class="pa-4 mt-4" Elevation="1">
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Class="mb-4">
<MudText Typo="Typo.h5">문의 상세</MudText>
<MudButton Variant="Variant.Filled"
Color="Color.Primary"
Href="/taxbaik/admin/inquiries"
Target="_blank">
문의 목록 열기
</MudButton>
</MudStack>
<MudGrid>
<MudItem xs="12" md="6">
<MudText Typo="Typo.subtitle1">이름</MudText>
<MudText>@inquiry.Name</MudText>
</MudItem>
<MudItem xs="12" md="6">
<MudText Typo="Typo.subtitle1">연락처</MudText>
<MudText>@inquiry.Phone</MudText>
</MudItem>
<MudItem xs="12" md="6">
<MudText Typo="Typo.subtitle1">이메일</MudText>
<MudText>@inquiry.Email</MudText>
</MudItem>
<MudItem xs="12" md="6">
<MudText Typo="Typo.subtitle1">분야</MudText>
<MudText>@inquiry.ServiceType</MudText>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.subtitle1">메시지</MudText>
<MudPaper Class="pa-3 mt-2" Outlined="true">
<MudText Style="white-space: pre-wrap;">@inquiry.Message</MudText>
</MudPaper>
</MudItem>
<MudItem xs="12">
<MudText Typo="Typo.subtitle1">상태</MudText>
<MudSelect T="string" Value="inquiry.Status" ValueChanged="@((string status) => OnStatusChanged(status))" Label="상태 변경">
<MudSelectItem Value="@("new")">신규</MudSelectItem>
<MudSelectItem Value="@("contacted")">연락함</MudSelectItem>
<MudSelectItem Value="@("completed")">완료</MudSelectItem>
</MudSelect>
</MudItem>
</MudGrid>
</MudPaper>
}
else
{
<MudText>문의를 찾을 수 없습니다.</MudText>
}
@code {
[Parameter]
public int InquiryId { get; set; }
private Domain.Entities.Inquiry? inquiry;
protected override async Task OnInitializedAsync()
{
inquiry = await InquiryService.GetByIdAsync(InquiryId);
}
private async Task OnStatusChanged(string status)
{
if (inquiry == null)
return;
try
{
await InquiryService.UpdateStatusAsync(inquiry.Id, status);
inquiry.Status = status;
Snackbar.Add("상태가 변경되었습니다.", Severity.Success);
}
catch (ValidationException ex)
{
Snackbar.Add(ex.Message, Severity.Error);
}
}
}