Add Razor customer CRUD shell
TaxBaik CI/CD / build-and-deploy (push) Failing after 2m23s

This commit is contained in:
2026-07-09 11:14:12 +09:00
parent 83c0c70adc
commit fb8a90fa6b
12 changed files with 442 additions and 0 deletions
@@ -0,0 +1,90 @@
@page
@model TaxBaik.Web.Pages.Admin.Customers.IndexModel
@{
ViewData["Title"] = "고객 목록";
}
<section class="container py-4 py-lg-5">
<div class="d-flex flex-wrap justify-content-between align-items-end gap-3 mb-4">
<div>
<p class="text-uppercase text-muted small mb-2">Customer Management</p>
<h1 class="h2 fw-bold mb-1">고객 목록</h1>
<p class="text-muted mb-0">검색, 상태 필터, 페이지네이션 기준의 고객 목록입니다.</p>
</div>
<a class="btn btn-dark" href="/admin/customers/create">고객 등록</a>
</div>
<form method="get" class="card shadow-sm border-0 mb-4">
<div class="card-body">
<div class="row g-3 align-items-end">
<div class="col-md-4">
<label class="form-label" for="Search">검색</label>
<input class="form-control" id="Search" name="Search" value="@Model.Search" placeholder="이름, 전화, 회사명" />
</div>
<div class="col-md-3">
<label class="form-label" for="Status">상태</label>
<select class="form-select" id="Status" name="Status">
<option value="" selected="@(string.IsNullOrWhiteSpace(Model.Status))">전체</option>
<option value="active" selected="@(Model.Status == "active")">active</option>
<option value="inactive" selected="@(Model.Status == "inactive")">inactive</option>
</select>
</div>
<div class="col-md-2">
<label class="form-label" for="PageSize">페이지 크기</label>
<select class="form-select" id="PageSize" name="PageSize">
<option value="10" selected="@(Model.PageSize == 10)">10</option>
<option value="20" selected="@(Model.PageSize == 20)">20</option>
<option value="50" selected="@(Model.PageSize == 50)">50</option>
</select>
</div>
<div class="col-md-3 d-grid d-sm-flex gap-2">
<button class="btn btn-dark" type="submit">검색</button>
<a class="btn btn-outline-secondary" href="/admin/customers">초기화</a>
</div>
</div>
</div>
</form>
<div class="card shadow-sm border-0">
<div class="table-responsive">
<table class="table table-hover align-middle mb-0">
<thead class="table-light">
<tr>
<th>고객명</th>
<th>회사명</th>
<th>전화</th>
<th>상태</th>
<th>등록일</th>
<th class="text-end">작업</th>
</tr>
</thead>
<tbody>
@if (Model.Items.Count == 0)
{
<tr>
<td colspan="6" class="text-center text-muted py-5">고객 데이터가 없습니다.</td>
</tr>
}
else
{
foreach (var item in Model.Items)
{
<tr>
<td class="fw-semibold">@item.Name</td>
<td>@item.CompanyName</td>
<td>@item.Phone</td>
<td><span class="badge text-bg-secondary">@item.Status</span></td>
<td>@item.CreatedAt.ToString("yyyy-MM-dd")</td>
<td class="text-end">
<a class="btn btn-sm btn-outline-secondary" href="/admin/customers/@item.Id">상세</a>
<a class="btn btn-sm btn-outline-primary" href="/admin/customers/@item.Id/edit">수정</a>
</td>
</tr>
}
}
</tbody>
</table>
</div>
</div>
</section>