From a7fb6c67d153894c2f4f8091e80f9bb8682b8a45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Wed, 4 Feb 2026 19:36:37 +0900 Subject: [PATCH] =?UTF-8?q?feat(WEB):=20=EA=B2=AC=EC=A0=81=20=EA=B0=9C?= =?UTF-8?q?=EC=86=8C=20=EB=B3=B5=EC=A0=9C=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20-=20=EB=B6=80=ED=98=B8=20=EC=9E=90=EB=8F=99=20?= =?UTF-8?q?=EC=B1=84=EB=B2=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LocationListPanel에 복제 버튼(Copy 아이콘) 추가 - 복제 시 모든 개소 데이터(bomResult 포함) 복사 - 부호 자동 채번: 같은 접두어의 최대 번호 +1, 자릿수 유지 --- src/components/quotes/LocationListPanel.tsx | 14 ++++++- src/components/quotes/QuoteRegistrationV2.tsx | 41 +++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/src/components/quotes/LocationListPanel.tsx b/src/components/quotes/LocationListPanel.tsx index 223c35a7..f4d963ff 100644 --- a/src/components/quotes/LocationListPanel.tsx +++ b/src/components/quotes/LocationListPanel.tsx @@ -9,7 +9,7 @@ "use client"; import { useState, useCallback } from "react"; -import { Plus, Upload, Download, Pencil, Trash2 } from "lucide-react"; +import { Plus, Upload, Download, Pencil, Trash2, Copy } from "lucide-react"; import { toast } from "sonner"; import { Button } from "../ui/button"; @@ -77,6 +77,7 @@ interface LocationListPanelProps { onSelectLocation: (id: string) => void; onAddLocation: (location: Omit) => Promise; onDeleteLocation: (id: string) => void; + onCloneLocation?: (id: string) => void; onUpdateLocation: (locationId: string, updates: Partial) => void; onExcelUpload: (locations: Omit[]) => void; finishedGoods: FinishedGoods[]; @@ -94,6 +95,7 @@ export function LocationListPanel({ onSelectLocation, onAddLocation, onDeleteLocation, + onCloneLocation, onUpdateLocation, onExcelUpload, finishedGoods, @@ -523,6 +525,16 @@ export function LocationListPanel({ > +