From 47cf8c3d82a90da60b128278f611c7c51d67554f Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Tue, 2 Sep 2025 08:39:43 +0000 Subject: (김준회) vendors.items --> vendorPossibleMaterials 테이블로 공급품목 관리 책임 변경 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/common/material/material-selector.tsx | 78 +++++++++++++++++------- 1 file changed, 56 insertions(+), 22 deletions(-) (limited to 'components/common') diff --git a/components/common/material/material-selector.tsx b/components/common/material/material-selector.tsx index aa68d2b5..b24a2f4f 100644 --- a/components/common/material/material-selector.tsx +++ b/components/common/material/material-selector.tsx @@ -32,6 +32,7 @@ interface MaterialSelectorProps { maxSelections?: number; className?: string; closeOnSelect?: boolean; + excludeMaterialCodes?: Set; // 제외할 자재그룹코드들 } export function MaterialSelector({ @@ -43,7 +44,8 @@ export function MaterialSelector({ disabled = false, maxSelections, className, - closeOnSelect = true + closeOnSelect = true, + excludeMaterialCodes }: MaterialSelectorProps) { const [open, setOpen] = useState(false); @@ -203,19 +205,23 @@ export function MaterialSelector({ {material.displayText} {!disabled && ( - { + e.preventDefault(); e.stopPropagation(); handleRemoveMaterial(material); }} - /> + > + + )} )) @@ -255,26 +261,54 @@ export function MaterialSelector({ 검색 결과가 없습니다. ) : ( - {searchResults.map((material) => ( - handleMaterialSelect(material)} - className="cursor-pointer" - > - { + const isExcluded = excludeMaterialCodes?.has(material.materialGroupCode); + const isSelected = isMaterialSelected(material); + + return ( + { + if (!isExcluded) { + handleMaterialSelect(material); + } + }} className={cn( - "mr-2 h-4 w-4", - isMaterialSelected(material) ? "opacity-100" : "opacity-0" + "cursor-pointer", + isExcluded && "opacity-50 cursor-not-allowed bg-muted" )} - /> -
-
{material.materialName}
-
- 코드: {material.materialGroupCode} + > +
+ {isExcluded ? ( + + ) : ( + + )} +
+
+
+ {material.materialName} + {isExcluded && ( + + 이미 등록됨 + + )} +
+
+ 코드: {material.materialGroupCode} +
-
- - ))} + + ); + })} )} -- cgit v1.2.3