feat(WEB): Vercel 배포 대응 및 타입 안정성 개선

- puppeteer → puppeteer-core + @sparticuz/chromium 전환 (Vercel 서버리스 호환)
- PDF 생성 API 로컬/Vercel 환경 분기 처리
- next.config.ts: ignoreBuildErrors false로 전환
- WorkOrder items에 orderNodeId/orderNodeName 필드 추가
- 결재선 데이터에 name/dept 필드 추가
- OrderSalesDetailView 타입 캐스팅 안전하게 수정
- vercel.json 설정 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-09 10:45:57 +09:00
parent f3b07ac875
commit f320ec7d37
20 changed files with 226 additions and 269 deletions

View File

@@ -231,6 +231,8 @@ export function WorkOrderDetail({ orderId }: WorkOrderDetailProps) {
specification: '8,260 X 8,350 mm',
quantity: 500,
unit: 'm',
orderNodeId: null,
orderNodeName: '',
},
{
id: 'mock-2',
@@ -241,6 +243,8 @@ export function WorkOrderDetail({ orderId }: WorkOrderDetailProps) {
specification: '1,200 X 2,400 mm',
quantity: 100,
unit: 'EA',
orderNodeId: null,
orderNodeName: '',
},
];
}

View File

@@ -164,6 +164,8 @@ export function WorkOrderEdit({ orderId }: WorkOrderEditProps) {
specification: '8,260 X 8,350 mm',
quantity: 500,
unit: 'm',
orderNodeId: null,
orderNodeName: '',
},
{
id: 'mock-2',
@@ -174,6 +176,8 @@ export function WorkOrderEdit({ orderId }: WorkOrderEditProps) {
specification: '1,200 X 2,400 mm',
quantity: 100,
unit: 'EA',
orderNodeId: null,
orderNodeName: '',
},
]);
} else {

View File

@@ -96,9 +96,9 @@ export function InspectionReportModal({
shutterCount: 12,
department: '생산부',
items: [
{ id: '1', no: 1, status: 'in_progress', productName: '와이어 스크린', floorCode: '1층/FSS-01', specification: '8,260 X 8,350', quantity: 2, unit: 'EA' },
{ id: '2', no: 2, status: 'waiting', productName: '메쉬 스크린', floorCode: '2층/FSS-03', specification: '6,400 X 5,200', quantity: 4, unit: 'EA' },
{ id: '3', no: 3, status: 'completed', productName: '광폭 와이어', floorCode: '3층/FSS-05', specification: '12,000 X 4,500', quantity: 1, unit: 'EA' },
{ id: '1', no: 1, status: 'in_progress', productName: '와이어 스크린', floorCode: '1층/FSS-01', specification: '8,260 X 8,350', quantity: 2, unit: 'EA', orderNodeId: null, orderNodeName: '' },
{ id: '2', no: 2, status: 'waiting', productName: '메쉬 스크린', floorCode: '2층/FSS-03', specification: '6,400 X 5,200', quantity: 4, unit: 'EA', orderNodeId: null, orderNodeName: '' },
{ id: '3', no: 3, status: 'completed', productName: '광폭 와이어', floorCode: '3층/FSS-05', specification: '12,000 X 4,500', quantity: 1, unit: 'EA', orderNodeId: null, orderNodeName: '' },
],
currentStep: 2,
issues: [],

View File

@@ -60,9 +60,9 @@ export function WorkLogModal({ open, onOpenChange, workOrderId, processType }: W
shutterCount: 12,
department: '생산부',
items: [
{ id: '1', no: 1, status: 'in_progress', productName: '와이어 스크린', floorCode: '1층/FSS-01', specification: '8,260 X 8,350', quantity: 2, unit: 'EA' },
{ id: '2', no: 2, status: 'waiting', productName: '메쉬 스크린', floorCode: '2층/FSS-03', specification: '6,400 X 5,200', quantity: 4, unit: 'EA' },
{ id: '3', no: 3, status: 'completed', productName: '광폭 와이어', floorCode: '3층/FSS-05', specification: '12,000 X 4,500', quantity: 1, unit: 'EA' },
{ id: '1', no: 1, status: 'in_progress', productName: '와이어 스크린', floorCode: '1층/FSS-01', specification: '8,260 X 8,350', quantity: 2, unit: 'EA', orderNodeId: null, orderNodeName: '' },
{ id: '2', no: 2, status: 'waiting', productName: '메쉬 스크린', floorCode: '2층/FSS-03', specification: '6,400 X 5,200', quantity: 4, unit: 'EA', orderNodeId: null, orderNodeName: '' },
{ id: '3', no: 3, status: 'completed', productName: '광폭 와이어', floorCode: '3층/FSS-05', specification: '12,000 X 4,500', quantity: 1, unit: 'EA', orderNodeId: null, orderNodeName: '' },
],
currentStep: 2,
issues: [],

View File

@@ -663,6 +663,7 @@ export default function WorkerScreen() {
projectName: '-',
assignees: [],
quantity: mockItem.quantity,
shutterCount: 0,
dueDate: '',
priority: 5,
status: 'waiting',
@@ -789,6 +790,7 @@ export default function WorkerScreen() {
projectName: '-',
assignees: [],
quantity: mockItem.quantity,
shutterCount: 0,
dueDate: '',
priority: 5,
status: 'waiting',
@@ -814,6 +816,7 @@ export default function WorkerScreen() {
projectName: '-',
assignees: [],
quantity: item.quantity,
shutterCount: 0,
dueDate: '',
priority: 5,
status: 'waiting',