67 lines
2.8 KiB
TypeScript
67 lines
2.8 KiB
TypeScript
import { useWrStore } from "@/app/store";
|
|
import { pbnPrfRegExcelZod } from "@/app/store/prfmncReg/pbnstPrfmncReg/headList";
|
|
import type { FcPrfType, PrfType } from "@/app/store/prfmncReg/pbnstPrfmncReg/type";
|
|
import { yearOptions } from "@/components/lib/func/commom";
|
|
import { FileUpload, Form, FormField, FormUi, SelectBox, Title } from "@common/business_components/ui";
|
|
import { Button, Input } from "@common/components/ui";
|
|
import { zodResolver } from "@hookform/resolvers/zod";
|
|
import { useState } from "react";
|
|
import { useForm } from "react-hook-form";
|
|
import type { z } from "zod";
|
|
|
|
export default function LdrmntExcelModal({ data }: { data: FcPrfType }) {
|
|
const { prfmnRegData } = useWrStore((state) => state);
|
|
const [excelData, setExcelData] = useState<PrfType[]>();
|
|
const form = useForm<z.infer<typeof pbnPrfRegExcelZod>>({
|
|
resolver: zodResolver(pbnPrfRegExcelZod),
|
|
defaultValues: {
|
|
ym: String(new Date().getFullYear()),
|
|
},
|
|
});
|
|
const onSubmit = (values: z.infer<typeof pbnPrfRegExcelZod>) => {
|
|
if (excelData) {
|
|
prfmnRegData(excelData as unknown as PrfType);
|
|
}
|
|
};
|
|
const [files, setFiles] = useState<File[] | null>(null);
|
|
return (
|
|
<>
|
|
<div>
|
|
<Form {...form}>
|
|
<form onSubmit={form.handleSubmit(onSubmit)}>
|
|
<div>
|
|
<Title title={"잠재수요처 등록"}></Title>
|
|
</div>
|
|
<div className="flex justify-between">
|
|
<h3 className="text-2xl font-bold text-gray-900 mt-1 ml-7">
|
|
{"잠재수요처 파일"}
|
|
</h3>
|
|
|
|
<Button className="" type="submit" size={"sm"}>
|
|
저장
|
|
</Button>
|
|
</div>
|
|
<div className="mt-4">
|
|
<FormField
|
|
control={form.control}
|
|
name="file"
|
|
render={({ field }) => (
|
|
<FormUi label="">
|
|
<FileUpload
|
|
files={files || []}
|
|
setFiles={(files: File[] | null) => {
|
|
if (files) setFiles(files);
|
|
}}
|
|
fileTypes="xlsx"
|
|
></FileUpload>
|
|
</FormUi>
|
|
)}
|
|
/>
|
|
</div>
|
|
</form>
|
|
</Form>
|
|
</div>
|
|
</>
|
|
)
|
|
|
|
} |