feat(WEB): 전체 페이지 ?mode= URL 네비게이션 패턴 적용

- 등록(?mode=new), 상세(?mode=view), 수정(?mode=edit) URL 패턴 일괄 적용
- 중복 패턴 제거: /edit?mode=edit → ?mode=edit (16개 파일)
- 제목 일관성: {기능} 등록/상세/수정 패턴 적용
- 검수 체크리스트 문서 추가 (79개 페이지)
- UniversalListPage, IntegratedDetailTemplate 공통 컴포넌트 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-01-25 12:27:43 +09:00
parent 72f1accbe4
commit f6551c7e8b
162 changed files with 2907 additions and 480 deletions

View File

@@ -603,7 +603,7 @@ export default function DynamicItemForm({
const itemType = duplicateCheckResult.duplicateItemType || selectedItemType || 'PT';
const itemId = duplicateCheckResult.duplicateId;
// code는 없으므로 id를 path에 사용 (edit 페이지에서 id 쿼리 파라미터로 조회)
router.push(`/production/screen-production/${itemId}/edit?type=${itemType}&id=${itemId}`);
router.push(`/production/screen-production/${itemId}?mode=edit&type=${itemType}&id=${itemId}`);
}
};

View File

@@ -122,7 +122,7 @@ export default function ItemDetailClient({ item }: ItemDetailClientProps) {
</Button>
<Button
type="button"
onClick={() => router.push(`/production/screen-production/${encodeURIComponent(item.itemCode)}/edit?type=${item.itemType}&id=${item.id}`)}
onClick={() => router.push(`/production/screen-production/${encodeURIComponent(item.itemCode)}?mode=edit&type=${item.itemType}&id=${item.id}`)}
>
<Edit className="w-4 h-4 mr-2" />

View File

@@ -137,12 +137,12 @@ export default function ItemListClient() {
const handleView = (itemCode: string, itemType: string, itemId: string) => {
// itemType을 query param으로 전달 (Materials 조회를 위해)
router.push(`/production/screen-production/${encodeURIComponent(itemCode)}?type=${itemType}&id=${itemId}`);
router.push(`/production/screen-production/${encodeURIComponent(itemCode)}?mode=view&type=${itemType}&id=${itemId}`);
};
const handleEdit = (itemCode: string, itemType: string, itemId: string) => {
// itemType을 query param으로 전달 (Materials 조회를 위해)
router.push(`/production/screen-production/${encodeURIComponent(itemCode)}/edit?type=${itemType}&id=${itemId}`);
router.push(`/production/screen-production/${encodeURIComponent(itemCode)}?mode=edit&type=${itemType}&id=${itemId}`);
};
// 삭제 확인 다이얼로그 열기
@@ -297,7 +297,7 @@ export default function ItemListClient() {
// 등록 버튼 (createButton 사용 - headerActions 대신)
createButton: {
label: '품목 등록',
onClick: () => router.push('/production/screen-production/create'),
onClick: () => router.push('/production/screen-production?mode=new'),
icon: Plus,
},