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:
@@ -163,7 +163,7 @@ export function BillDetail({ billId, mode }: BillDetailProps) {
|
||||
if (isNewMode) {
|
||||
router.push('/ko/accounting/bills');
|
||||
} else {
|
||||
router.push(`/ko/accounting/bills/${billId}`);
|
||||
router.push(`/ko/accounting/bills/${billId}?mode=view`);
|
||||
}
|
||||
return { success: true };
|
||||
} else {
|
||||
@@ -434,10 +434,12 @@ export function BillDetail({ billId, mode }: BillDetailProps) {
|
||||
);
|
||||
|
||||
// ===== 템플릿 모드 및 동적 설정 =====
|
||||
// IntegratedDetailTemplate: create → "{title} 등록", view → "{title}", edit → "{title} 수정"
|
||||
// view 모드에서 "어음 상세"로 표시하려면 직접 설정 필요
|
||||
const templateMode = isNewMode ? 'create' : mode;
|
||||
const dynamicConfig = {
|
||||
...billConfig,
|
||||
title: isNewMode ? '어음 등록' : '어음 상세',
|
||||
title: isViewMode ? '어음 상세' : '어음',
|
||||
actions: {
|
||||
...billConfig.actions,
|
||||
submitLabel: isNewMode ? '등록' : '저장',
|
||||
|
||||
@@ -150,7 +150,7 @@ export function BillManagementClient({
|
||||
|
||||
// ===== 액션 핸들러 =====
|
||||
const handleRowClick = useCallback((item: BillRecord) => {
|
||||
router.push(`/ko/accounting/bills/${item.id}`);
|
||||
router.push(`/ko/accounting/bills/${item.id}?mode=view`);
|
||||
}, [router]);
|
||||
|
||||
const handleDeleteClick = useCallback((id: string) => {
|
||||
@@ -425,7 +425,7 @@ export function BillManagementClient({
|
||||
// 등록 버튼
|
||||
createButton: {
|
||||
label: '어음 등록',
|
||||
onClick: () => router.push('/ko/accounting/bills/new'),
|
||||
onClick: () => router.push('/ko/accounting/bills?mode=new'),
|
||||
icon: Plus,
|
||||
},
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ export function BillManagement({ initialVendorId, initialBillType }: BillManagem
|
||||
|
||||
// ===== 핸들러 =====
|
||||
const handleRowClick = useCallback((item: BillRecord) => {
|
||||
router.push(`/ko/accounting/bills/${item.id}`);
|
||||
router.push(`/ko/accounting/bills/${item.id}?mode=view`);
|
||||
}, [router]);
|
||||
|
||||
const handleEdit = useCallback((item: BillRecord) => {
|
||||
@@ -177,7 +177,7 @@ export function BillManagement({ initialVendorId, initialBillType }: BillManagem
|
||||
}, [router]);
|
||||
|
||||
const handleCreate = useCallback(() => {
|
||||
router.push('/ko/accounting/bills/new');
|
||||
router.push('/ko/accounting/bills?mode=new');
|
||||
}, [router]);
|
||||
|
||||
// 저장 핸들러 (선택된 항목의 상태 일괄 변경)
|
||||
|
||||
Reference in New Issue
Block a user