From 5c9b39eb011763a7491b3e8542de9f6d4976dd65 Mon Sep 17 00:00:00 2001
From: dujinkim <dujin.kim@dtsolution.co.kr>
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 }) => (
                   <FormItem>
                     <FormLabel>벤더 타입 *</FormLabel>
-                    <Select onValueChange={field.onChange} defaultValue={field.value}>
-                      <FormControl>
-                        <SelectTrigger>
-                          <SelectValue placeholder="벤더 타입을 선택하세요" />
-                        </SelectTrigger>
-                      </FormControl>
-                      <SelectContent>
-                        <SelectItem value="조선">조선</SelectItem>
-                        <SelectItem value="해양TOP">해양TOP</SelectItem>
-                        <SelectItem value="해양HULL">해양HULL</SelectItem>
-                      </SelectContent>
-                    </Select>
+                    <div className="space-y-2">
+                      {["조선", "해양TOP", "해양HULL"].map((type) => (
+                        <div key={type} className="flex items-center space-x-2">
+                          <input
+                            type="checkbox"
+                            id={type}
+                            checked={field.value?.includes(type as "조선" | "해양TOP" | "해양HULL")}
+                            onChange={(e) => {
+                              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"
+                          />
+                          <label htmlFor={type} className="text-sm font-medium cursor-pointer">
+                            {type}
+                          </label>
+                        </div>
+                      ))}
+                    </div>
                     <FormMessage />
                   </FormItem>
                 )}
-- 
cgit v1.2.3

