feat(WEB): 자재/출고/생산/품질/단가 기능 대폭 개선 및 신규 페이지 추가
자재관리: - 입고관리 재고조정 다이얼로그 신규 추가, 상세/목록 기능 확장 - 재고현황 컴포넌트 리팩토링 출고관리: - 출하관리 생성/수정/목록/상세 개선 - 차량배차관리 상세/수정/목록 기능 보강 생산관리: - 작업지시서 WIP 생산 모달 신규 추가 - 벤딩WIP/슬랫조인트바 검사 콘텐츠 신규 추가 - 작업자화면 기능 대폭 확장 (카드/목록 개선) - 검사성적서 모달 개선 품질관리: - 실적보고서 관리 페이지 신규 추가 - 검사관리 문서/타입/목데이터 개선 단가관리: - 단가배포 페이지 및 컴포넌트 신규 추가 - 단가표 관리 페이지 및 컴포넌트 신규 추가 공통: - 권한 시스템 추가 개선 (PermissionContext, usePermission, PermissionGuard) - 메뉴 폴링 훅 개선, 레이아웃 수정 - 모바일 줌/패닝 CSS 수정 - locale 유틸 추가 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
'use client';
|
||||
|
||||
import { use } from 'react';
|
||||
import { PriceDistributionDetail } from '@/components/pricing-distribution';
|
||||
|
||||
export default function PriceDistributionEditPage({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ id: string }>;
|
||||
}) {
|
||||
const { id } = use(params);
|
||||
|
||||
return <PriceDistributionDetail id={id} mode="edit" />;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
'use client';
|
||||
|
||||
import { use } from 'react';
|
||||
import { PriceDistributionDetail } from '@/components/pricing-distribution';
|
||||
|
||||
export default function PriceDistributionDetailPage({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ id: string }>;
|
||||
}) {
|
||||
const { id } = use(params);
|
||||
|
||||
return <PriceDistributionDetail id={id} mode="view" />;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
'use client';
|
||||
|
||||
import { Suspense } from 'react';
|
||||
import { PriceDistributionList } from '@/components/pricing-distribution';
|
||||
import { ListPageSkeleton } from '@/components/ui/skeleton';
|
||||
|
||||
export default function PriceDistributionPage() {
|
||||
return (
|
||||
<Suspense fallback={<ListPageSkeleton showHeader={false} />}>
|
||||
<PriceDistributionList />
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
'use client';
|
||||
|
||||
import { use } from 'react';
|
||||
import { PricingTableDetailClient } from '@/components/pricing-table-management';
|
||||
|
||||
export default function PricingTableDetailPage({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ id: string }>;
|
||||
}) {
|
||||
const { id } = use(params);
|
||||
|
||||
return <PricingTableDetailClient pricingTableId={id} />;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
'use client';
|
||||
|
||||
import { Suspense } from 'react';
|
||||
import { useSearchParams } from 'next/navigation';
|
||||
import PricingTableListClient from '@/components/pricing-table-management/PricingTableListClient';
|
||||
import { PricingTableDetailClient } from '@/components/pricing-table-management';
|
||||
import { ListPageSkeleton } from '@/components/ui/skeleton';
|
||||
|
||||
function PricingTableManagementContent() {
|
||||
const searchParams = useSearchParams();
|
||||
const mode = searchParams.get('mode');
|
||||
|
||||
if (mode === 'new') {
|
||||
return <PricingTableDetailClient pricingTableId="new" />;
|
||||
}
|
||||
|
||||
return <PricingTableListClient />;
|
||||
}
|
||||
|
||||
export default function PricingTableManagementPage() {
|
||||
return (
|
||||
<Suspense fallback={<ListPageSkeleton showHeader={false} />}>
|
||||
<PricingTableManagementContent />
|
||||
</Suspense>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
'use client';
|
||||
|
||||
/**
|
||||
* 실적신고관리 페이지
|
||||
* URL: /quality/performance-reports
|
||||
*/
|
||||
|
||||
import { PerformanceReportList } from '@/components/quality/PerformanceReportManagement';
|
||||
|
||||
export default function PerformanceReportsPage() {
|
||||
return <PerformanceReportList />;
|
||||
}
|
||||
@@ -222,6 +222,8 @@
|
||||
html {
|
||||
/* 🔧 Always show scrollbar to prevent layout shift */
|
||||
/*overflow-y: scroll;*/
|
||||
/* 📱 모바일 확대 후 좌우 패닝 허용 */
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
body {
|
||||
|
||||
Reference in New Issue
Block a user