From 79d91831c6546af1e3792e248bde2d54b0898fb6 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Mon, 29 Jun 2026 23:37:04 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A7=80=EC=B9=A8=EC=9D=98=20MudDataGrid?= =?UTF-8?q?=EC=99=80=20MudDialog=20=EC=98=88=EC=8B=9C=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CLAUDE.md | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index d91feba..f0bf0e8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -90,8 +90,8 @@ _refreshTokenExpirationMinutes = 10080; - 모든 API 엔드포인트 구현됨 - 모든 Browser Client 구현됨 - 16개 Blazor 페이지 API-First 마이그레이션 완료 -- MudDataGrid Douzone ERP 수준 UX 적용 -- MudDialog 모달 패턴 (흰 화면 플래시 제거) +- 과거 기록: 관리 화면에서 그리드/모달 UX를 빠르게 안정화한 단계 +- 모달 패턴 (흰 화면 플래시 제거) - ConfirmDialog 삭제 확인 컴포넌트 ### 2026-06-29 운영 기준 업데이트 @@ -141,7 +141,7 @@ _refreshTokenExpirationMinutes = 10080; **Phase 7-4: CRM & 세무관리 (신규 - 2026-06-28)** ✅ - 5개 API Controller (TaxProfile, TaxFilingSchedule, ConsultingActivity, Contract, RevenueTracking) - 5개 Browser Client (API-First 패턴) -- 5개 Blazor 페이지 (MudDataGrid Dense, Virtualize, Modal Dialog) +- 5개 Blazor 페이지 (그리드 Dense, Virtualize, 모달 패턴) - Douzone ERP 수준의 그리드 UX (32px 행 높이, 데이터 밀도 최적화) | 페이지 | API | Client | Blazor | 핵심 기능 | @@ -153,8 +153,8 @@ _refreshTokenExpirationMinutes = 10080; | RevenueTrackings | ✅ RevenueTrackingController | ✅ IRevenueTrackingBrowserClient | ✅ List + Modal | 청구/납부 추적, 상태 관리 | **UI 특성**: -- MudDataGrid Dense (행높이 32px) + Virtualize (1000+ 행 성능) -- MudDialog Create/Edit (흰 화면 플래시 방지) +- Dense 그리드 + Virtualize (1000+ 행 성능) +- Create/Edit 모달 (흰 화면 플래시 방지) - ConfirmDialog Delete (사용자 확인) - Status Color Chips (Error/Warning/Success) - Client 링크 (상세 페이지 연동) @@ -212,8 +212,8 @@ PostgreSQL Database **Blazor 페이지 & UI 고도화 (Phase 7-4)**: - [x] 5개 CRM/세무관리 Blazor 페이지 -- [x] MudDataGrid Dense + Virtualize (32px 행 높이) -- [x] MudDialog 모달 Create/Edit (흰 화면 플래시 제거) +- [x] Dense 그리드 + Virtualize (32px 행 높이) +- [x] 모달 Create/Edit (흰 화면 플래시 제거) - [x] ConfirmDialog 삭제 확인 - [x] 상태별 컬러 칩 (Status/Risk Level) - [x] 클라이언트 링크 (상세 페이지 연동) @@ -1010,7 +1010,9 @@ Admin 로그인 페이지만 [AllowAnonymous]: #### UI 적용 패턴 ```razor - + - + +``` ``` #### 색상 & 상태 표시 @@ -1161,7 +1164,9 @@ else if (items.Count == 0) else { - + - + +``` } ``` **Step 3: 모달 다이얼로그 (Create/Edit)** ```razor - +```razor + + @(isEditMode ? "항목 수정" : "새 항목 추가") @@ -1191,7 +1199,8 @@ else 취소 저장 - + +``` ``` **Step 4: @code 섹션 구조** @@ -1315,8 +1324,8 @@ else - [ ]
(캡션, 제목, 부제, 추가 버튼) - [ ] 로딩 상태 기본값은 `Skeleton` - [ ] 빈 상태 (MudAlert) -- [ ] MudDataGrid (Dense=true, Virtualize=true, RowsPerPage=30, admin-grid 클래스) -- [ ] MudDialog (Create/Edit 모달) +- [ ] Dense 그리드 (Virtualize=true, RowsPerPage=30, admin-grid 클래스) +- [ ] 모달 (Create/Edit) - [ ] ConfirmDialog (Delete 확인) - [ ] @code 섹션: OnInitializedAsync → LoadData() 패턴 - [ ] 모든 에러 처리 (try-catch, Snackbar 메시지) @@ -1327,7 +1336,7 @@ else ❌ **이 패턴을 따르지 않는 페이지는 실시간 코드 리뷰 대상:** - 페이지 헤더 (admin-page-hero) 누락 - 인라인 스타일로 레이아웃 구성 -- MudDialog 없이 별도 라우트로 Create/Edit 처리 (흰 화면 플래시) +- 별도 라우트로 Create/Edit 처리 (흰 화면 플래시) - @code 섹션 구조 다름 - 모달에서 직접 onSubmit 대신 Snackbar 피드백 미제공 @@ -1748,7 +1757,9 @@ public async Task NotifyDeploymentStart() @* Components/Admin/Shared/DeploymentNotification.razor *@ @if (showNotification) { - +```razor + + 새 버전 배포 @@ -1763,7 +1774,8 @@ public async Task NotifyDeploymentStart() 지금 새로고침 나중에 - + +``` } @code {