diff options
| author | joonhoekim <26rote@gmail.com> | 2025-10-14 09:55:28 +0900 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-10-14 09:55:28 +0900 |
| commit | 6d3752d34dfdf2c3870b9f6ffe431cfa98e302c9 (patch) | |
| tree | 6e08fd23f745fc95a8b31fc6d73dbdd75ffcea5c /lib/rfq-last/table/create-general-rfq-dialog.tsx | |
| parent | b7069eccf7d54a9bb51c244207110c75a1d55f33 (diff) | |
(김준회) 일반견적 생성 다이얼로그에 자재그룹선택기 통합
Diffstat (limited to 'lib/rfq-last/table/create-general-rfq-dialog.tsx')
| -rw-r--r-- | lib/rfq-last/table/create-general-rfq-dialog.tsx | 76 |
1 files changed, 34 insertions, 42 deletions
diff --git a/lib/rfq-last/table/create-general-rfq-dialog.tsx b/lib/rfq-last/table/create-general-rfq-dialog.tsx index 7263f20f..4ad21695 100644 --- a/lib/rfq-last/table/create-general-rfq-dialog.tsx +++ b/lib/rfq-last/table/create-general-rfq-dialog.tsx @@ -48,6 +48,8 @@ import { toast } from "sonner" import { ScrollArea } from "@/components/ui/scroll-area" import { Separator } from "@/components/ui/separator" import { createGeneralRfqAction, previewGeneralRfqCode } from "../service" +import { MaterialGroupSelectorDialogSingle } from "@/components/common/material/material-group-selector-dialog-single" +import { MaterialSearchItem } from "@/lib/material/material-group-service" // 단순 타입 임포트 목적 import { ProjectSelector } from "@/components/ProjectSelector" import { PurchaseGroupCodeSingleSelector, @@ -539,49 +541,39 @@ export function CreateGeneralRfqDialog({ onSuccess }: CreateGeneralRfqDialogProp )} </div> - <div className="grid grid-cols-4 gap-3"> - {/* 자재코드 */} - <FormField - control={form.control} - name={`items.${index}.itemCode`} - render={({ field }) => ( - <FormItem> - <FormLabel className="text-xs"> - 자재코드 - </FormLabel> - <FormControl> - <Input - placeholder="MAT-001" - className="h-8 text-sm" - {...field} - /> - </FormControl> - <FormMessage /> - </FormItem> - )} - /> - - {/* 자재명 */} - <FormField - control={form.control} - name={`items.${index}.itemName`} - render={({ field }) => ( - <FormItem> - <FormLabel className="text-xs"> - 자재그룹(자재그룹명) <span className="text-red-500">*</span> - </FormLabel> - <FormControl> - <Input - placeholder="A4 용지" - className="h-8 text-sm" - {...field} - /> - </FormControl> - <FormMessage /> - </FormItem> - )} - /> + {/* 자재 선택 - 그리드 외부 */} + <div className="mb-3"> + <FormLabel className="text-xs"> + 자재그룹(자재그룹명) <span className="text-red-500">*</span> + </FormLabel> + <div className="mt-1"> + <MaterialGroupSelectorDialogSingle + triggerLabel="자재 선택" + selectedMaterial={(() => { + const itemCode = form.watch(`items.${index}.itemCode`); + const itemName = form.watch(`items.${index}.itemName`); + if (itemCode && itemName) { + return { + materialGroupCode: itemCode, + materialGroupDescription: itemName, + displayText: `${itemCode} - ${itemName}` + } as MaterialSearchItem; + } + return null; + })()} + onMaterialSelect={(material) => { + form.setValue(`items.${index}.itemCode`, material?.materialGroupCode || ''); + form.setValue(`items.${index}.itemName`, material?.materialGroupDescription || ''); + }} + placeholder="자재를 검색하세요..." + title="자재 선택" + description="원하는 자재를 검색하고 선택해주세요." + triggerVariant="outline" + /> + </div> + </div> + <div className="grid grid-cols-2 gap-3"> {/* 수량 */} <FormField control={form.control} |
