From 5c9b39eb011763a7491b3e8542de9f6d4976dd65 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Mon, 23 Jun 2025 09:02:07 +0000 Subject: (최겸) 기술영업 벤더 개발 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tech-vendors/table/add-vendor-dialog.tsx | 50 +++++++++++++++------------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'lib/tech-vendors/table/add-vendor-dialog.tsx') diff --git a/lib/tech-vendors/table/add-vendor-dialog.tsx b/lib/tech-vendors/table/add-vendor-dialog.tsx index bc260d51..da9880d4 100644 --- a/lib/tech-vendors/table/add-vendor-dialog.tsx +++ b/lib/tech-vendors/table/add-vendor-dialog.tsx @@ -25,13 +25,7 @@ import { FormMessage, } from "@/components/ui/form" import { Input } from "@/components/ui/input" -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from "@/components/ui/select" + import { Textarea } from "@/components/ui/textarea" import { Plus, Loader2 } from "lucide-react" @@ -52,9 +46,7 @@ const addVendorSchema = z.object({ address: z.string().optional(), phone: z.string().optional(), website: z.string().optional(), - techVendorType: z.enum(["조선", "해양TOP", "해양HULL"], { - required_error: "벤더 타입을 선택해주세요", - }), + techVendorType: z.array(z.enum(["조선", "해양TOP", "해양HULL"])).min(1, "최소 하나의 벤더 타입을 선택해주세요"), representativeName: z.string().optional(), representativeEmail: z.string().email("올바른 이메일 주소를 입력해주세요").optional().or(z.literal("")), representativePhone: z.string().optional(), @@ -87,7 +79,7 @@ export function AddVendorDialog({ onSuccess }: AddVendorDialogProps) { address: "", phone: "", website: "", - techVendorType: undefined, + techVendorType: [], representativeName: "", representativeEmail: "", representativePhone: "", @@ -110,6 +102,7 @@ export function AddVendorDialog({ onSuccess }: AddVendorDialogProps) { address: data.address || null, phone: data.phone || null, website: data.website || null, + techVendorType: data.techVendorType.join(','), representativeName: data.representativeName || null, representativeEmail: data.representativeEmail || null, representativePhone: data.representativePhone || null, @@ -218,18 +211,29 @@ export function AddVendorDialog({ onSuccess }: AddVendorDialogProps) { render={({ field }) => ( 벤더 타입 * - +
+ {["조선", "해양TOP", "해양HULL"].map((type) => ( +
+ { + const currentValue = field.value || []; + if (e.target.checked) { + field.onChange([...currentValue, type]); + } else { + field.onChange(currentValue.filter((v) => v !== type)); + } + }} + className="w-4 h-4" + /> + +
+ ))} +
)} -- cgit v1.2.3