ux: enhance dashboard metrics and list tables with interactive navigation links
TaxBaik CI/CD / build-and-deploy (push) Successful in 48s

This commit is contained in:
2026-06-28 01:07:06 +09:00
parent 58ec984f41
commit fb04f73f46
@@ -3,6 +3,7 @@
@using TaxBaik.Application.Services
@inject AdminDashboardService DashboardService
@inject TaxFilingService FilingService
@inject NavigationManager Nav
<PageTitle>대시보드</PageTitle>
@@ -19,34 +20,46 @@
<MudGrid Class="admin-metric-grid">
<MudItem xs="12" sm="6" md="3">
<MudPaper Class="admin-metric-card accent-blue" Elevation="0">
<MudPaper Class="admin-metric-card accent-blue cursor-pointer" Elevation="0" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/inquiries"))' Style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s;">
<MudText Typo="Typo.caption">이번달 문의</MudText>
<MudText Typo="Typo.h3">@summary.ThisMonthInquiries</MudText>
<MudText Typo="Typo.body2">월간 상담 유입</MudText>
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.h3">@summary.ThisMonthInquiries</MudText>
<MudIcon Icon="@Icons.Material.Filled.Forum" Color="Color.Primary" Size="Size.Large" Style="opacity: 0.2;" />
</div>
<MudText Typo="Typo.body2">월간 상담 유입 (클릭 시 이동)</MudText>
</MudPaper>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudPaper Class="admin-metric-card accent-amber" Elevation="0">
<MudPaper Class="admin-metric-card accent-amber cursor-pointer" Elevation="0" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/inquiries?status=new"))' Style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s;">
<MudText Typo="Typo.caption">신규 문의</MudText>
<MudText Typo="Typo.h3">@summary.NewInquiries</MudText>
<MudText Typo="Typo.body2">처리 대기</MudText>
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.h3">@summary.NewInquiries</MudText>
<MudIcon Icon="@Icons.Material.Filled.NotificationImportant" Color="Color.Warning" Size="Size.Large" Style="opacity: 0.2;" />
</div>
<MudText Typo="Typo.body2">처리 대기 (클릭 시 이동)</MudText>
</MudPaper>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudPaper Class="admin-metric-card accent-slate" Elevation="0">
<MudPaper Class="admin-metric-card accent-slate cursor-pointer" Elevation="0" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/blog"))' Style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s;">
<MudText Typo="Typo.caption">전체 포스트</MudText>
<MudText Typo="Typo.h3">@summary.TotalPosts</MudText>
<MudText Typo="Typo.body2">콘텐츠 자산</MudText>
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.h3">@summary.TotalPosts</MudText>
<MudIcon Icon="@Icons.Material.Filled.Article" Color="Color.Default" Size="Size.Large" Style="opacity: 0.2;" />
</div>
<MudText Typo="Typo.body2">콘텐츠 자산 (클릭 시 이동)</MudText>
</MudPaper>
</MudItem>
<MudItem xs="12" sm="6" md="3">
<MudPaper Class="admin-metric-card accent-green" Elevation="0">
<MudPaper Class="admin-metric-card accent-green cursor-pointer" Elevation="0" @onclick='(() => Nav.NavigateTo("/taxbaik/admin/blog"))' Style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s;">
<MudText Typo="Typo.caption">발행된 포스트</MudText>
<MudText Typo="Typo.h3">@summary.PublishedPosts</MudText>
<MudText Typo="Typo.body2">검색 노출 대상</MudText>
<div class="d-flex align-center justify-space-between">
<MudText Typo="Typo.h3">@summary.PublishedPosts</MudText>
<MudIcon Icon="@Icons.Material.Filled.Public" Color="Color.Success" Size="Size.Large" Style="opacity: 0.2;" />
</div>
<MudText Typo="Typo.body2">검색 노출 대상 (클릭 시 이동)</MudText>
</MudPaper>
</MudItem>
</MudGrid>
@@ -57,7 +70,7 @@
<div class="admin-section-header">
<div>
<MudText Typo="Typo.h6">이번 달 마감 임박 신고</MudText>
<MudText Typo="Typo.body2">30일 이내 신고 예정 건</MudText>
<MudText Typo="Typo.body2">30일 이내 신고 예정 건 (고객명 클릭 시 상세 카드로 연결)</MudText>
</div>
<MudButton Variant="Variant.Outlined" Color="Color.Primary" Href="/taxbaik/admin/tax-filings">전체 일정 보기</MudButton>
</div>
@@ -75,11 +88,19 @@
{
var dday = (f.DueDate.Date - DateTime.Today).Days;
<tr>
<td>@f.ClientName</td>
<td>
<MudLink Href="@($"/taxbaik/admin/clients/{f.ClientId}")" Underline="Underline.Hover" Color="Color.Primary" Class="font-weight-bold">
@f.ClientName
</MudLink>
</td>
<td>@f.FilingType</td>
<td>@f.DueDate.ToString("yyyy-MM-dd")</td>
<td>
@if (dday <= 7)
@if (dday < 0)
{
<MudChip T="string" Size="Size.Small" Color="Color.Dark">기한 초과 (@(-dday)일)</MudChip>
}
else if (dday <= 7)
{
<MudChip T="string" Size="Size.Small" Color="Color.Error">D-@dday</MudChip>
}
@@ -99,7 +120,7 @@
<div class="admin-section-header">
<div>
<MudText Typo="Typo.h6">최근 문의</MudText>
<MudText Typo="Typo.body2">최근 유입된 상담 요청을 빠르게 확인합니다.</MudText>
<MudText Typo="Typo.body2">최근 유입된 상담 요청을 빠르게 확인합니다. (이름 클릭 시 상세 관리 화면으로 연계)</MudText>
</div>
<MudButton Variant="Variant.Outlined" Color="Color.Primary" Href="/taxbaik/admin/inquiries">문의 전체 보기</MudButton>
</div>
@@ -117,7 +138,11 @@
@foreach (var inquiry in summary.RecentInquiries)
{
<tr>
<td>@inquiry.Name</td>
<td>
<MudLink Href="@($"/taxbaik/admin/inquiries?id={inquiry.Id}")" Underline="Underline.Hover" Color="Color.Primary" Class="font-weight-bold">
@inquiry.Name
</MudLink>
</td>
<td>@inquiry.Phone</td>
<td>@inquiry.ServiceType</td>
<td>