From 65ab4ea5633384e78ebe9add89ae5da6bc5a4076 Mon Sep 17 00:00:00 2001 From: leedj312 Date: Fri, 30 May 2025 17:01:34 +0900 Subject: [PATCH] Co-authored-by: truthplumage --- .../app/ruseFcltMng/fcltReg/pbnstReg/page.tsx | 12 +- .../ruseFcltMng/fcltReg/pbnstReg/index.tsx | 12 +- .../ruseFcltMng/fcltReg/pbnstReg/type.tsx | 4 +- .../fcltReg/pbnstReg/mngReg/mngRegForm.tsx | 134 ++++++++++++------ .../fcltReg/pbnstRegModal/pbnstRegModal.tsx | 3 +- 5 files changed, 109 insertions(+), 56 deletions(-) diff --git a/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx b/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx index e1f62c313..d7fb33b4c 100644 --- a/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx @@ -23,7 +23,7 @@ import { PbnstRegModal } from "@/components/ui/modal/fcltReg/pbnstRegModal/pbnst import { Toaster } from "react-hot-toast"; export default function PublicReuseFaciltyInsert() { - const { code, pbnst, pubHasuInit,pbnstRegInit } = useWrStore((state) => state); + const { code, pbnst, pubHasuInit,pbnstRegInit,pbnstMngData } = useWrStore((state) => state); const { pubFacHeadList,pbnstHasuRes, pbnstRes } = pbnst; const [currentTab, setCurrentTab] = useState("mng"); const [fcltMng, setFcltMng] = useState(); @@ -60,9 +60,7 @@ useEffect(() => { if (selectRow) { setSelectedRow(selectRow); } - - console.log('selectRow ', selectRow) pbnstRegInit(selectRow) // setSelectBdst(pbnstRes); @@ -109,7 +107,11 @@ useEffect(() => { @@ -148,7 +150,7 @@ useEffect(() => { - + diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx index 387368827..fb47d1f53 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx @@ -37,6 +37,7 @@ const fcOrgwtsHeadList = fcOrgwtsHeadListExport; export type pubFacState = { pbnst: { isInit: boolean; + isReginit:boolean; pubFacHeadList: TableUpperProps[]; pbnstMngUpHeadList: TableUpperProps[]; pbnstMngNm: chHeadType[]; @@ -61,7 +62,8 @@ type pubFacActions = { fileDownLoad: (atflCd: string) => void; pbnstMngData: (data: customPbnst[]) => void; pbnstBizData(data: fcBizType): void; - getBizCycle: (pbnstObj: customPbnst) => void; + getBizCycle: (pbnstObj: customPbnst) => void; + pbnstRegFormInit:()=>void }; export type pubFacType = pubFacState & pubFacActions; @@ -69,6 +71,7 @@ export type pubFacType = pubFacState & pubFacActions; export const pubFacStateExport: pubFacState = { pbnst: { isInit: false, + isReginit:false, pubFacHeadList: pubFacHeadList, pbnstMngUpHeadList: pbnstMngUpHeadList, pbnstMngNm: pbnstMngNm, @@ -242,6 +245,13 @@ export const pubFacActionsExport: (set: any) => pubFacActions = (set: any) => { return state; }); }, + pbnstRegFormInit:()=>{ + return set((state: pubFacState) => { + + return state.pbnst.pbnstMngRegData; + }); + + }, pbnstBizData: (data: fcBizType) => { return set((state: pubFacState) => { if (state.pbnst.pbnstMngRegData) { diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx index daaaaab98..ae2749c84 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx @@ -96,7 +96,7 @@ const fcOrgwtSchema = z.object({ export const fcBizSchema = z.object({ pbnstRuseFcltBizPk: z.number().default(1), - pbnstRuseFcltFk: z.number().nullish(), + pbnstRuseFcltFk: z.string().nullish(), superkey: z.string().default("").nullish(), cycl: z.number(), seCd: z.string(), @@ -167,7 +167,7 @@ export const fcBizSchema = z.object({ }); export const pbnstRegZod = z.object({ - pbnstRuseFcltPk: z.number().default(1), + pbnstRuseFcltPk: z.string().default(''), swtrmtFcltFk: z.string().default(""), superkey:z.string().default(""), ruseUtztnFcltNm: z.string().default(""), diff --git a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx index 9dcd9b5e5..865f7cbb1 100644 --- a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx @@ -33,22 +33,30 @@ export type FilesType = { file: File; }; - export function PbnstMngForm({ data }: { data: customPbnst[] }) { - const { pbnst, pbnstUpdate ,pbnstMngData, fileDelete,getBizCycle} = useWrStore((state) => state); - - +export function PbnstMngForm({ + formType, + firstFcltData, +}: { + formType: string; + firstFcltData?: customPbnst; +}) { + const { pbnst, pbnstUpdate, pbnstMngData, fileDelete, getBizCycle,pbnstRegFormInit } = + useWrStore((state) => state); const [regFileList, setRegFileList] = useState(null); - const [planFiles, setPlanFiles] = useState(null); + const [planFiles, setPlanFiles] = useState(null); const [relationfiles, setRelationFiles] = useState(null); - const [fcltNm, setFcltNm] = useState(null); + const [fcltNm, setFcltNm] = useState(null); + const [progress, setProgress] = useState(0); //const new File([] as BlobPart[], "") 파일 다운로드 활용 - const ref = useRef( null); + const ref = useRef(null); + + const form = useForm>({ resolver: zodResolver(pbnstRegZod), - defaultValues: pbnstRegZod.parse({}), + defaultValues: formType === 'reg' && pbnst.pbnstMngRegData ? pbnst.pbnstMngRegData[0] : pbnstRegZod.parse({}), }); const { fields: fcOpersField, @@ -59,20 +67,19 @@ export type FilesType = { name: "fcOpers", }); - - const handleProgress = (percentage: string) => { setProgress(Number(percentage)); }; - const selectFclt = (val: number) => { if (pbnst.pbnstRes && pbnst.pbnstRes[val]) { - getBizCycle(pbnst.pbnstRes[val]) - form.reset(pbnst.pbnstRes[val]) + //시설 선택시 데이터 초기화 + getBizCycle(pbnst.pbnstRes[val]); + ref.current = pbnst.pbnstRes[val].fcOpers; + form.reset(pbnst.pbnstRes[val]); + } }; -} const fileDownload = (index: number) => {}; const plusHist = () => { const regData = { @@ -160,50 +167,58 @@ export type FilesType = { fileKnd: string, regFile: fcFileType[] ) => { - const planDatas = regFile?.filter((item) => item.fileKnd !== fileKnd) || []; - const data = files.map((item) => ({ + const exFileDatas = + regFile?.filter((item) => item.fileKnd !== fileKnd) || []; + const currentdata = files.map((item) => ({ fileTkn: item.atflCd, filePath: item.file.name, fileKnd: fileKnd, rgtr: TEST_UUID, mdfr: TEST_UUID, })); - return [...planDatas, ...data]; - } + return [...exFileDatas, ...currentdata]; + }; + + // 등록할때 신규 값을 계속 가지고 있으려고 + useEffect(() => { + if ( + firstFcltData && + (form.getValues("swtrmtFcltFk") === "" || + form.getValues("swtrmtFcltFk") === undefined) + ) { + + form.setValue("swtrmtFcltFk", firstFcltData.swtrmtFcltFk); + form.setValue( + "pbnstRuseFcltPk", + String(firstFcltData.swtrmtFcltFk + "1") + ); + } + }, [firstFcltData]); useEffect(() => { const formData = form.watch(); + + console.log('formData ', formData) formData.fcOpers = ref.current ? [...ref.current] : []; formData.fcFiles = regFileList ? [...regFileList] : []; - pbnstMngData([formData] as customPbnst[]); }, [form.formState, regFileList]); + useEffect(() => { pbnstMngData(pbnst.pbnstMngRegData); }, [pbnst.pbnstMngRegData]); - useEffect(() => { - if (!data) return; - //form.reset(data); - ref.current = data[0]?.fcOpers ?? null; - }, [data]) - - - useEffect(() => { - if (!pbnst.pbnstRes) return; - const fcltNmList = pbnst.pbnstRes.map((item, index) => ({ + const fcltNmList = pbnst.pbnstRes.map((item, index) => ({ text: item.ruseUtztnFcltNm, - val: String(index) - })) + val: String(index), + })); - console.log('fcltNmList ', fcltNmList) - setFcltNm(fcltNmList) - - }, [pbnst.pbnstRes]) + setFcltNm(fcltNmList); + }, [pbnst.pbnstRes]); // 2. Define a submit handler. function onSubmit(values: z.infer) { @@ -213,8 +228,10 @@ export type FilesType = { pbnstUpdate(values); } - - + useEffect(() => { + console.log("form errors:", form.formState.errors); + }, [form.formState.errors]); + useEffect(() => { if (relationfiles) { setRegFileList(regFileFilter(relationfiles, "계통도", regFileList || [])); @@ -237,15 +254,40 @@ export type FilesType = {
- - {selectFclt( Number(val))}} - value={""} - /> + + + {formType === "reg" ? ( + ( + + { + field.onChange(String(e.target.value)); + }} + value={field.value} + /> + + )} + /> + ) : ( + { + selectFclt(Number(val)); + }} + value={""} + /> + )}
- +