Files
taxbaik/src/TaxBaik.Web.Client/Components/Admin/Pages/DashboardOverview.razor
T
kjh2064 3153d3c095 경로 최적화: PathBase 제거 및 상대 경로로 전환
## 변경사항
- Program.cs: app.UsePathBase('/taxbaik') 제거
- Blazor 컴포넌트: /taxbaik/admin/* → ./* 상대 경로로 변경
- 모든 내부 링크 절대 경로 → 상대 경로로 전환

## 현황
 빌드: 0 오류, 0 경고
 헬스체크: HTTP 200
 로그인 페이지: 로드 정상
 로그인 API: 400 오류 (DB 오류 - 조사 중)

## 다음 단계
- LoginEndpoint에서 발생하는 DB 오류 원인 파악 필요
- Razor Pages 절대 경로도 상대 경로로 변경 (보류 중)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-08 15:00:23 +09:00

136 lines
6.2 KiB
Plaintext

@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false))
@attribute [Authorize]
<!-- NOTE: 이 컴포넌트는 Dashboard.razor에 병합되었습니다. 페이지로 사용하지 않습니다. -->
<PageTitle>대시보드</PageTitle>
<AdminPageHeader Title="대시보드" Eyebrow="Home" Subtitle="핵심 운영 상태와 최근 오류를 한 번에 확인합니다.">
</AdminPageHeader>
<MudGrid Spacing="3" Class="mt-4">
<!-- 오류 진단 -->
<MudItem XS="12" SM="6" MD="4">
<MudPaper Class="pa-4 dashboard-card" Elevation="0" Style="border: 1px solid var(--border-color); min-height: 200px; display: flex; flex-direction: column;">
<MudIcon Icon="@Icons.Material.Filled.BugReport" Size="Size.Large" Color="Color.Error" Class="mb-3" />
<MudText Typo="Typo.h6" Class="font-weight-bold mb-2">오류 진단</MudText>
<MudText Typo="Typo.body2" Class="mb-4 flex-grow-1">
브라우저 오류와 JS interop 실패는 클라이언트 로그에서 바로 추적합니다.
</MudText>
<MudLink Href="./client-logs" Color="Color.Primary" Class="font-weight-bold">
클라이언트 로그 보기 →
</MudLink>
</MudPaper>
</MudItem>
<!-- 운영 메뉴 -->
<MudItem XS="12" SM="6" MD="4">
<MudPaper Class="pa-4 dashboard-card" Elevation="0" Style="border: 1px solid var(--border-color); min-height: 200px; display: flex; flex-direction: column;">
<MudIcon Icon="@Icons.Material.Filled.Dashboard" Size="Size.Large" Color="Color.Info" Class="mb-3" />
<MudText Typo="Typo.h6" Class="font-weight-bold mb-2">운영 메뉴</MudText>
<MudText Typo="Typo.body2" Class="mb-4 flex-grow-1">
CRM, 홈페이지, 문의 관리 화면을 표준 템플릿으로 확장합니다.
</MudText>
<MudLink Href="./inquiries" Color="Color.Primary" Class="font-weight-bold">
문의 관리로 이동 →
</MudLink>
</MudPaper>
</MudItem>
<!-- 배포 확인 -->
<MudItem XS="12" SM="6" MD="4">
<MudPaper Class="pa-4 dashboard-card" Elevation="0" Style="border: 1px solid var(--border-color); min-height: 200px; display: flex; flex-direction: column;">
<MudIcon Icon="@Icons.Material.Filled.CloudUpload" Size="Size.Large" Color="Color.Success" Class="mb-3" />
<MudText Typo="Typo.h6" Class="font-weight-bold mb-2">배포 확인</MudText>
<MudText Typo="Typo.body2" Class="mb-4 flex-grow-1">
하위 경로 배포와 렌더러 분리를 유지하도록 라우트 린트를 적용합니다.
</MudText>
<MudLink Href="./client-logs" Color="Color.Primary" Class="font-weight-bold">
최근 에러 확인 →
</MudLink>
</MudPaper>
</MudItem>
<!-- 원인 규명 -->
<MudItem XS="12" SM="6" MD="4">
<MudPaper Class="pa-4 dashboard-card" Elevation="0" Style="border: 1px solid var(--border-color); min-height: 200px; display: flex; flex-direction: column;">
<MudIcon Icon="@Icons.Material.Filled.Search" Size="Size.Large" Color="Color.Warning" Class="mb-3" />
<MudText Typo="Typo.h6" Class="font-weight-bold mb-2">원인 규명</MudText>
<MudText Typo="Typo.body2" Class="mb-4 flex-grow-1">
중복되는 오류는 최근 로그 요약에서 source와 route 기준으로 묶어 봅니다.
</MudText>
<MudLink Href="./client-logs?q=invoke" Color="Color.Primary" Class="font-weight-bold">
오류 검색 →
</MudLink>
</MudPaper>
</MudItem>
<!-- 관측성 -->
<MudItem XS="12" SM="6" MD="4">
<MudPaper Class="pa-4 dashboard-card" Elevation="0" Style="border: 1px solid var(--border-color); min-height: 200px; display: flex; flex-direction: column;">
<MudIcon Icon="@Icons.Material.Filled.Visibility" Size="Size.Large" Color="Color.Secondary" Class="mb-3" />
<MudText Typo="Typo.h6" Class="font-weight-bold mb-2">관측성</MudText>
<MudText Typo="Typo.body2" Class="mb-4 flex-grow-1">
Top sources / routes를 확인해서 어떤 모듈이 재발하는지 빠르게 좁힙니다.
</MudText>
<MudLink Href="./client-logs" Color="Color.Primary" Class="font-weight-bold">
요약 리포트 보기 →
</MudLink>
</MudPaper>
</MudItem>
<!-- 빠른 통계 -->
<MudItem XS="12">
<MudPaper Class="pa-4 admin-surface" Elevation="0" Style="border: 1px solid var(--border-color);">
<MudText Typo="Typo.h6" Class="font-weight-bold mb-3">📊 빠른 통계</MudText>
<MudGrid Spacing="2">
<MudItem XS="12" SM="6" MD="3">
<MudText Typo="Typo.body2">
<strong>전체 문의:</strong> API에서 조회
</MudText>
</MudItem>
<MudItem XS="12" SM="6" MD="3">
<MudText Typo="Typo.body2">
<strong>오류 건수:</strong> 클라이언트 로그 참조
</MudText>
</MudItem>
<MudItem XS="12" SM="6" MD="3">
<MudText Typo="Typo.body2">
<strong>배포 상태:</strong> 최신 버전 실행 중
</MudText>
</MudItem>
<MudItem XS="12" SM="6" MD="3">
<MudText Typo="Typo.body2">
<strong>로그 범위:</strong> 최근 7일
</MudText>
</MudItem>
</MudGrid>
</MudPaper>
</MudItem>
</MudGrid>
<style>
.dashboard-card {
background: var(--surface-bg);
transition: all 0.2s ease-in-out;
}
.dashboard-card:hover {
border-color: var(--primary-color) !important;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
transform: translateY(-2px);
}
.dashboard-card :deep(.mud-link) {
text-decoration: none;
font-size: 0.875rem;
display: inline-flex;
align-items: center;
gap: 4px;
}
.dashboard-card :deep(.mud-link:hover) {
text-decoration: underline;
}
</style>