From fa1a9159eb50029231949467b971b787614af18c Mon Sep 17 00:00:00 2001 From: leedj312 Date: Thu, 29 May 2025 16:59:33 +0900 Subject: [PATCH] Co-authored-by: truthplumage --- .../app/ruseFcltMng/fcltReg/pbnstReg/page.tsx | 6 +- .../ruseFcltMng/fcltReg/pbnstReg/headList.tsx | 176 ++++++++-------- .../ruseFcltMng/fcltReg/pbnstReg/type.tsx | 188 ++++++++---------- .../fcltReg/pbnstReg/buseReg/bugRegForm.tsx | 13 +- .../fcltReg/pbnstReg/mngReg/mngRegForm.tsx | 57 +++--- .../mngRegFormDetail/mngRegFormDetail.tsx | 2 +- .../fcltReg/pbnstRegModal/pbnstRegModal.tsx | 43 ++-- .../pbnstReg/ruseMngTable/ruseMngTable.tsx | 8 +- 8 files changed, 249 insertions(+), 244 deletions(-) diff --git a/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx b/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx index 7c5ebdb10..67f02fdb2 100644 --- a/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltReg/pbnstReg/page.tsx @@ -57,7 +57,9 @@ useEffect(() => { const cellClick = (val: number | undefined) => { if (val === undefined) return; const selectRow = pbnstHasuRes?.[val]; - setSelectedRow(selectRow); + if (selectRow) { + setSelectedRow(selectRow); + } if (pbnstRes !== null){ alert("등록된 재이용시설 정보가 없습니다. 신규등록 하십시오.") return; @@ -145,7 +147,7 @@ useEffect(() => { - + diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/headList.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/headList.tsx index a0dce391a..f97a791dd 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/headList.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/headList.tsx @@ -1,10 +1,6 @@ import type { chHeadType } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList"; import type { TableUpperProps } from "../rainReg"; - - - - export const pubFacHeadListExport: TableUpperProps[] = [ { id: "sido", title: "시도" }, { id: "gugun", title: "시군구" }, @@ -18,118 +14,120 @@ export const pubFacHeadListExport: TableUpperProps[] = [ export const pbnstMngUpHeadListExport: TableUpperProps[] = [ { id: "choose", title: "선택", type: "checkbox" }, - { id: "operMthd", title: "운영방식", edit: true}, - { id: "rprtvBzenty", title: "대행업체", edit: true}, - { id: "bgngDt", title: "시작일", upName: "upChangeRe", upSequnce: 1, type: "date"}, - { id: "endDt", title: "종료일", upName: "upChangeRe", upSequnce: 2, type: "date"}, -]; - + { id: "operMthd", title: "운영방식", edit: true }, + { id: "rprtvBzenty", title: "대행업체", edit: true }, + { + id: "bgngDt", + title: "시작일", + upName: "upChangeRe", + upSequnce: 1, + type: "date", + }, + { + id: "endDt", + title: "종료일", + upName: "upChangeRe", + upSequnce: 2, + type: "date", + }, +]; export const pplInstlsHeadListExport: TableUpperProps[] = [ { id: "choose", title: "선택", type: "checkbox" }, - { id: "ppMqlt", title: "관재질", type: "select", selectData:'pplQulity' }, - { id: "pdmt", title: "관경", type: "select", selectData:'pplLenght'}, + { id: "ppMqlt", title: "관재질", type: "select", selectData: "pplQulity" }, + { id: "pdmt", title: "관경", type: "select", selectData: "pplLenght" }, { id: "cpct", title: "연장", edit: true, type: "number" }, ]; - export const pbnstDemandHeadListExport: TableUpperProps[] = [ { id: "dmdCoNm", title: "수요처명" }, { id: "daddr", title: "위치(주소)" }, - { id: "useUsgCd", title: "사용용도", }, - { id: "splyBgngDay", title: "공급시작일", }, - { id: "splyEndDay", title: "공급종료일", }, - { id: "splyCpct", title: "공급량(m³/일)", }, - { id: "splyFmYon", title: "공급유량계 유무", }, + { id: "useUsgCd", title: "사용용도" }, + { id: "splyBgngDay", title: "공급시작일" }, + { id: "splyEndDay", title: "공급종료일" }, + { id: "splyCpct", title: "공급량(m³/일)" }, + { id: "splyFmYon", title: "공급유량계 유무" }, ]; - export const pbnstOrgwtHeadListRxport: TableUpperProps[] = [ - { id: "ruseUtztnFcltNm", title: "운영방식" }, + { id: "ruseUtztnFcltNm", title: "운영방식" }, { id: "orgwtWtritQnt", title: "원수취수량" }, - { id: "tmsYn", title: "하수처리량TMS 전후", }, - { id: "dschgFmYn", title: "하수처리장 방류 유량계 전·후​", }, - { id: "dtlPstnExpln", title: "상세위치 설명", }, + { id: "tmsYn", title: "하수처리량TMS 전후" }, + { id: "dschgFmYn", title: "하수처리장 방류 유량계 전·후​" }, + { id: "dtlPstnExpln", title: "상세위치 설명" }, ]; export const fcOrgwtsHeadListExport: TableUpperProps[] = [ { id: "sido", title: "시도" }, - { id: "gugun", title: "시군구" }, + { id: "gugun", title: "시군구" }, { id: "bscFctNm", title: "시설명" }, { id: "addr", title: "위치" }, - -] +]; export const pbnstMngNmExport: chHeadType[] = [ { headNm: "upChangeRe", text: "운영대행기간", length: 2 }, ]; -export type formDetailType ={ - id:string, - lable:string - type?:string -} +export type formDetailType = { + id: string; + lable: string; + type?: string; +}; +export const wasteWaterFcltINfo: formDetailType[] = [ + { id: "wwtEmsnFcltPrmsnYn", lable: "폐수배출물신고 허가여부" }, + { id: "tmsInstlYn", lable: "Tms설치여부" }, + { id: "pbnstDrngInflwExclYn", lable: "공공하수도유입제외 허가여부" }, +]; -export const wasteWaterFcltINfo:formDetailType[]=[ - {id:'wwtEmsnFcltPrmsnYn' , lable:'폐수배출물신고 허가여부'}, - {id:'tmsInstlYn' , lable:'Tms설치여부'}, - {id:'pbnstDrngInflwExclYn' , lable:'공공하수도유입제외 허가여부'}, -] +export const concentratedWaterInfo: formDetailType[] = [ + { id: "erctWtrOcrnCpct", lable: "눙축수 발생량(m³/일)", type: "number" }, + { id: "erctUswtrLinkSpt", lable: "눙축수연계지점" }, + { id: "erctUswtrFcltCpct", lable: "시설용량(m³/일)", type: "number" }, + { id: "erctUswtrPrcsMeth", lable: "눙축수처리방식" }, + { id: "erctUswtrPrcsMsrcCd", lable: "눙축수처리공법" }, +]; -export const concentratedWaterInfo:formDetailType[]=[ -{id:'erctWtrOcrnCpct' , lable:'눙축수 발생량(m³/일)'}, -{id:'erctUswtrLinkSpt' , lable:'눙축수연계지점'}, -{id:'erctUswtrFcltCpct' , lable:'시설용량(m³/일)'}, -{id:'erctUswtrPrcsMeth' , lable:'눙축수처리방식'}, -{id:'erctUswtrPrcsMsrcCd' , lable:'눙축수처리공법'}, -] +export const ruseFcltinfo: formDetailType[] = [ + { id: "rprcsFcltCpct", lable: "시설용량(m³/일)", type: "number" }, + { id: "majorPrcsMsrcCd", lable: "주처리공법" }, + { id: "addr", lable: "위치(주소)" }, + { id: "rprcsMthdCd", lable: "재처리방식" }, + { id: "inoutYn", lable: "위치(처리장 내외)" }, // 머가 내? 외?, + { id: "mainSplyPumpCpct", lable: "메인공급펌프 용량", type: "number" }, +]; -export const ruseFcltinfo:formDetailType[]=[ - {id:'rprcsFcltCpct' , lable:'시설용량(m³/일)'}, - {id:'majorPrcsMsrcCd' , lable:'주처리공법'}, - {id:'addr' , lable:'위치(주소)'}, - {id:'rprcsMthdCd' , lable:'재처리방식'}, - {id:'inoutYn' , lable:'위치(처리장 내외)'},// 머가 내? 외?, - {id:'mainSplyPumpCpct' , lable:'메인공급펌프 용량'}, - ] - +export const businessMoneyInfo: formDetailType[] = [ + { id: "gvsbs", lable: "국고", type: "number" }, + { id: "lcep", lable: "지방비", type: "number" }, + { id: "cusrAlotm", lable: "민간투자비", type: "number" }, + { id: "etc", lable: "기타" }, + { id: "totalMoney", lable: "합계", type: "number" }, +]; -export const businessMoneyInfo:formDetailType[]=[ - {id:'gvsbs' , lable:'국고'}, - {id:'lcep' , lable:'지방비'}, - {id:'username' , lable:'민간투자비'}, - {id:'cusrAlotm' , lable:'원인자부담금'}, - {id:'etc' , lable:'기타'}, - {id:'totalMoney' , lable:'합계'}, -] - -export const businessSttnInfo:formDetailType[]=[ - {id:'seCd' , lable:'구분'}, - {id:'bizMthdCd' , lable:'사업방식'}, - {id:'bizCmcnDay' , lable:'사업준공일' ,type:'date'}, - {id:'instlAprvSncnDt' , lable:'설치승인인가일' ,type:'date'} , -] - - -export const ruseFcltIntakeList:formDetailType[]=[ - {id:'seCd' , lable:'구분'}, - {id:'bizMthdCd' , lable:'사업방식'}, - {id:'bizCmcnDay' , lable:'사업준공일' ,type:'date'}, - {id:'instlAprvSncnDt' , lable:'설치승인인가일' ,type:'date'} , -] - -export const ruseWaterQulityList:formDetailType[]=[ - {id:'bod' , lable:'BOD(mg/L)'}, - {id:'grssClfg' , lable:'총대장균군수(개/mg)'}, - {id:'combResdch' , lable:'결합잔류염소(mh/L)'}, - {id:'trbt' , lable:'탁도(NTU)'}, - {id:'smll' , lable:'냄새'}, - {id:'crmty' , lable:'색도'}, - {id:'tn' , lable:'총질소(mg/L)'}, - {id:'tph' , lable:'총인(mg/L)'}, - {id:'ph' , lable:'수소이온농도'}, - {id:'clIonQnt' , lable:'염화물(mg/L)'}, - {id:'cdtnv' , lable:'전기전도도(μs/cm)​'}, -] +export const businessSttnInfo: formDetailType[] = [ + { id: "seCd", lable: "구분" }, + { id: "bizMthdCd", lable: "사업방식" }, + { id: "bizCmcnDay", lable: "사업준공일", type: "date" }, + { id: "instlAprvSncnDt", lable: "설치승인인가일", type: "date" }, +]; +export const ruseFcltIntakeList: formDetailType[] = [ + { id: "seCd", lable: "구분" }, + { id: "bizMthdCd", lable: "사업방식" }, + { id: "bizCmcnDay", lable: "사업준공일", type: "date" }, + { id: "instlAprvSncnDt", lable: "설치승인인가일", type: "date" }, +]; +export const ruseWaterQulityList: formDetailType[] = [ + { id: "bod", lable: "BOD(mg/L)", type: "number" }, + { id: "grssClfg", lable: "총대장균군수(개/mg)", type: "number" }, + { id: "combResdch", lable: "결합잔류염소(mh/L)", type: "number" }, + { id: "trbt", lable: "탁도(NTU)", type: "number" }, + { id: "smll", lable: "냄새", type: "number" }, + { id: "crmty", lable: "색도", type: "number" }, + { id: "tn", lable: "총질소(mg/L)", type: "number" }, + { id: "tph", lable: "총인(mg/L)", type: "number" }, + { id: "ph", lable: "수소이온농도", type: "number" }, + { id: "clIonQnt", lable: "염화물(mg/L)", type: "number" }, + { id: "cdtnv", lable: "전기전도도(μs/cm)​", type: "number" }, +]; diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx index c04302663..903fe01b9 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/type.tsx @@ -50,137 +50,116 @@ export type fcFileType = z.infer; const pplInstlSchema = z.object({ ruseFcltBizFk: z.string(), choose:z.boolean().default(false), - pdmt: z.string(), - ppMqlt: z.string(), - cpct: z.string(), + pdmt: z.string().default(''), + ppMqlt: z.string().default(""), + cpct: z.number().default(0), }); const fcFileSchema = z.object({ - ruseFcltFk: z.number().default(0).nullish(), + ruseFcltFk: z.number().nullish(), fileTkn: z.string(), filePath: z.string(), fileKnd: z.string(), regDt: z.date().default(new Date()).nullish(), - rgtr: z.string(), + rgtr: z.string().nullish(), mdfcnDt: z.date().default(new Date()).nullish(), - mdfr: z.string(), + mdfr: z.string().nullish(), }); const fcOperSchema = z.object({ - pbnstRuseFcltOperInfoPk: z.number().default(0), - pbnstRuseFcltFk: z.number().default(0), + pbnstRuseFcltOperInfoPk: z.number().nullish(), + pbnstRuseFcltFk: z.number().nullish(), operMthd: z.string(), rprtvBzenty: z.string(), bgngDt: z.date().default(new Date()), endDt: z.date().default(new Date()), regDt: z.date().nullish(), - rgtr: z.string(), + rgtr: z.string().default(""), mdfcnDt: z.date().nullish(), - mdfr: z.string().default("test"), + mdfr: z.string().default(""), choose: z.boolean().default(false), }); const fcOrgwtSchema = z.object({ - pbnstRuseFcltBizFk: z.number().default(0), - swtrmtFcltFk: z.string().default(''), - orgwtWtritQnt: z.string(), - tmsYn: z.string(), - dschgFmYn: z.string(), - dtlPstnExpln: z.string(), - regDt: z.string().nullish(), - rgtr: z.string(), - mdfcnDt: z.string().nullish(), - mdfr: z.string(), + pbnstRuseFcltBizFk: z.number().nullish(), + swtrmtFcltFk: z.number().default(0), + orgwtWtritQnt: z.number(), + tmsYn: z.enum(["Y", "N"] ).default("N"), + dschgFmYn: z.enum(["Y", "N"] ).default("N"), + dtlPstnExpln: z.string().default(''), + regDt: z.date().nullish(), + rgtr: z.string().default(''), + mdfcnDt: z.date().nullish(), + mdfr: z.string().default(''), + choose: z.boolean().default(false), }); -const fcPrfmncSchema = z.object({ - pbnstRuseFcltFk: z.number().default(0), - ym: z.string(), - wshwtr: z.string(), - coolUswtr: z.string(), - cleanUswtr: z.string(), - drwtUswtr: z.string(), - dltnUswtr: z.string(), - ithlRswtr: z.string(), - ithlEtcUswtr: z.string(), - cleanToilUswtr: z.string(), - resn: z.string(), - lndwtr: z.string(), - hydUswtr: z.string(), - rvrKeepUswtr: z.string(), - farmUswtr: z.string(), - ugwtChr: z.string(), - indstUswtr: z.string(), - regDt: z.date().nullish(), - rgtr: z.string(), - mdfcnDt: z.date().nullish(), - mdfr: z.string(), -}); export const fcBizSchema = z.object({ - pbnstRuseFcltBizPk: z.number().default(0), - pbnstRuseFcltFk: z.string().default(''), - cycl: z.string(), + pbnstRuseFcltBizPk: z.number().default(1), + pbnstRuseFcltFk: z.number().nullish(), + superkey: z.string().default(""), + cycl: z.number(), seCd: z.string(), bizMthdCd: z.string(), - instlAprvSncnDt: z.string(), - bizCmcnDay: z.string(), - gvsbs: z.string(), - lcep: z.string(), - cusrAlotm: z.string(), - etc: z.string(), - totalMoney: z.string(), - rprcsFcltCpct: z.string(), + instlAprvSncnDt: z.date().nullish(), + bizCmcnDay: z.date().nullish(), + gvsbs: z.number().default(0), + lcep: z.number().default(0), + cusrAlotm: z.number().default(0), + etc: z.string().default(''), + totalMoney: z.number().default(0).nullish(), + rprcsFcltCpct: z.number(), majorPrcsMsrcCd: z.string(), addr: z.string(), rprcsMthdCd: z.string(), - inoutYn: z.string(), - mainSplyPumpCpct: z.string(), - erctWtrOcrnCpct: z.string(), - erctUswtrLinkSpt: z.string(), - erctUswtrFcltCpct: z.string(), - erctUswtrPrcsMeth: z.string(), - erctUswtrPrcsMsrcCd: z.string(), - wwtEmsnFcltPrmsnYn: z.string(), - tmsInstlYn: z.string(), - pbnstDrngInflwExclYn: z.string(), - bod: z.string(), - grssClfg: z.string(), - combResdch: z.string(), - trbt: z.string(), - clIonQnt: z.string(), - smll: z.string(), - crmty: z.string(), - tph: z.string(), - tn: z.string(), - ph: z.string(), - cdtnv: z.string(), - designCst: z.string(), - cstrnSpvsCst: z.string(), - fcltSbsdCst: z.string(), - wstCst: z.string(), - cnstCmcnCst: z.string(), - mntrgEqpmntInstlCst: z.string(), - gisDbCst: z.string(), - elpwrMtrngCst: z.string(), - mchnCst: z.string(), - archCst: z.string(), - pplCst: z.string(), - ruseFcltCst: z.string(), - designCstClcln: z.string(), - cstrnSpvsCstClcln: z.string(), - fcltSbsdCstClcln: z.string(), - wstCstClcln: z.string(), - cnstCmcnCstClcln: z.string(), - mntrgEqpmntInstlCstClcln: z.string(), - gisDbCstClcln: z.string(), - elpwrMtrngCstClcln: z.string(), - mchnCstClcln: z.string(), - archCstClcln: z.string(), - pplCstClcln: z.string(), - ruseFcltCstClcln: z.string(), + inoutYn: z.enum(["Y", "N"]), + mainSplyPumpCpct: z.number().nullish(), + erctWtrOcrnCpct: z.number().nullish(), + erctUswtrLinkSpt: z.string().nullish(), + erctUswtrFcltCpct: z.number().nullish(), + erctUswtrPrcsMeth: z.string().nullish(), + erctUswtrPrcsMsrcCd: z.string().nullish(), + wwtEmsnFcltPrmsnYn: z.enum(["Y", "N"]), + tmsInstlYn: z.enum(["Y", "N"]), + pbnstDrngInflwExclYn: z.enum(["Y", "N"]), + bod: z.number(), + grssClfg: z.number(), + combResdch: z.number(), + trbt: z.number(), + clIonQnt: z.number(), + smll: z.number(), + crmty: z.number(), + tph: z.number(), + tn: z.number(), + ph: z.number(), + cdtnv: z.number(), + designCst: z.number().nullish(), + cstrnSpvsCst: z.number().nullish(), + fcltSbsdCst: z.number().nullish(), + wstCst: z.number().nullish(), + cnstCmcnCst: z.number().nullish(), + mntrgEqpmntInstlCst: z.number().nullish(), + gisDbCst: z.number().nullish(), + elpwrMtrngCst: z.number().nullish(), + mchnCst: z.number().nullish(), + archCst: z.number().nullish(), + pplCst: z.number().nullish(), + ruseFcltCst: z.number().nullish(), + designCstClcln: z.number().nullish(), + cstrnSpvsCstClcln: z.number().nullish(), + fcltSbsdCstClcln: z.number().nullish(), + wstCstClcln: z.number().nullish(), + cnstCmcnCstClcln: z.number().nullish(), + mntrgEqpmntInstlCstClcln: z.number(), + gisDbCstClcln: z.number().nullish(), + elpwrMtrngCstClcln: z.number().nullish(), + mchnCstClcln: z.number().nullish(), + archCstClcln: z.number().nullish(), + pplCstClcln: z.number().nullish(), + ruseFcltCstClcln: z.number().nullish(), fcOrgwts: z.array(fcOrgwtSchema), pplInstls: z.array(pplInstlSchema), - flg: z.string(), + flg: z.string().nullish(), regDt: z.string().nullish(), rgtr: z.string(), mdfcnDt: z.string().nullish(), @@ -188,12 +167,13 @@ export const fcBizSchema = z.object({ }); export const pbnstRegZod = z.object({ - pbnstRuseFcltPk: z.string().default(""), + pbnstRuseFcltPk: z.number().default(1), swtrmtFcltFk: z.string().default(""), + superkey:z.string().default(""), ruseUtztnFcltNm: z.string().default(""), - fcltCpct: z.string().default(""), - ruseCpct: z.string().default(""), - splyExtraCpct: z.string().default(""), + fcltCpct: z.number().default(0), + ruseCpct: z.number().default(0), + splyExtraCpct: z.number().default(0), regDt: z.date().default(new Date()), rgtr: z.string().default("test"), mdfcnDt: z.date().default(new Date()), diff --git a/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx b/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx index 3496e1140..aa8d181e9 100644 --- a/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx @@ -68,7 +68,13 @@ export function PbnstBuseForm({ data }: { data: fcBizType[] }) { }); useEffect(() => { - pbnstBizData(form.watch() as fcBizType); + + const formData = form.watch() + + formData.pplInstls = ref.current? [...ref.current]:[] // ← form 내부 상태 기준으로 복사 + console.log("formData pplReg", formData) + + pbnstBizData(formData as fcBizType); }, [form.formState]); useEffect(() => { @@ -86,8 +92,8 @@ export function PbnstBuseForm({ data }: { data: fcBizType[] }) { ruseFcltBizFk: ref.current?.[0]?.ruseFcltBizFk??"", choose: false, ppMqlt: "", - pdmt: "", - cpct: "", + pdmt: '', + cpct: 0, } const currentTableDataFromRef = ref.current ? [...ref.current] : []; const newDataForRHF = [...currentTableDataFromRef, regData]; @@ -131,7 +137,6 @@ export function PbnstBuseForm({ data }: { data: fcBizType[] }) { }, [code]); useEffect(() => { - console.log("ppiSelectList:", ppiSelectList); }, [ppiSelectList]); useEffect(() => { 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 018f9b011..3477c5b81 100644 --- a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm.tsx @@ -8,6 +8,7 @@ import { zodResolver } from "@hookform/resolvers/zod"; import { use, useEffect, useRef, useState } from "react"; import { useFieldArray, useForm } from "react-hook-form"; import { z } from "zod"; +import moment from "moment"; import { commonButonSize, @@ -16,7 +17,6 @@ import { } from "@/components/lib/class/comClass"; import { TusClientUpload } from "@/components/lib/useTus_wr/useTusWr"; import RuseMngTable from "@/components/ui/table/pbnstReg/ruseMngTable/ruseMngTable"; -import type { Upload } from "tus-js-client"; import { pbnstRegZod, type customPbnst, @@ -34,14 +34,10 @@ export function PbnstMngForm({ data }: { data: customPbnst }) { const { pbnst, pbnstUpdate, fileDelete, pbnstMngData } = useWrStore( (state) => state ); - const { pbnstMngUpHeadList } = pbnst; - const [ruseOperData, setRuseOperData] = useState(); + const [planFiles, setPlanFiles] = useState(null); const [relationfiles, setRelationFiles] = useState(null); - const [isModalOpen, setIsModalOpen] = useState(false); const [regFileList, setRegFileList] = useState(null); - - const [upload, setUpload] = useState(null); const [progress, setProgress] = useState(0); //const new File([] as BlobPart[], "") 파일 다운로드 활용 const handleProgress = (percentage: string) => { @@ -52,7 +48,6 @@ export function PbnstMngForm({ data }: { data: customPbnst }) { const form = useForm>({ resolver: zodResolver(pbnstRegZod), defaultValues: pbnstRegZod.parse({}), - //mode:'onChange' }); const { @@ -64,22 +59,17 @@ export function PbnstMngForm({ data }: { data: customPbnst }) { name: "fcOpers", }); -useEffect(() => { - console.log("ref.current", ref.current); -},[ref.current]) - useEffect(() => { - const formData = form.getValues(); - // 기존 코드: formData.fcOpers = ref.current ? [...ref.current] : []; - // 새 코드: 상태를 유지한 채 복사 - formData.fcOpers = form.getValues("fcOpers"); // ← form 내부 상태 기준으로 복사 + useEffect(() => { + const formData = form.watch(); + formData.fcOpers = ref.current ? [...ref.current] : []; formData.fcFiles = regFileList ? [...regFileList] : []; pbnstMngData([formData] as customPbnst[]); }, [form.formState, regFileList]); useEffect(() => { - console.log(" mngRegFrom ", pbnst.pbnstMngRegData); + pbnstMngData(pbnst.pbnstMngRegData); }, [pbnst.pbnstMngRegData]); const fileDownload = (index: number) => {}; @@ -88,8 +78,6 @@ useEffect(() => { choose: false, rgtr: "", mdfr: "", - pbnstRuseFcltFk: 0, - pbnstRuseFcltOperInfoPk: 0, operMthd: "", rprtvBzenty: "", bgngDt: new Date(), @@ -99,7 +87,7 @@ useEffect(() => { const newDataForRHF = [...currentTableDataFromRef, regData]; form.setValue("fcOpers", newDataForRHF, { shouldValidate: true, // 필요하다면 유효성 검사 실행 - shouldDirty: true, // 폼 상태를 dirty로 변경 + shouldDirty: true, // 폼 상태를 dirty로 변경 }); const latestOpers = form.getValues("fcOpers"); ref.current = [...latestOpers]; @@ -115,12 +103,23 @@ useEffect(() => { useEffect(() => { if (data) { + console.log(" data ", data ) + console.log(" pbnst.pbnstMngRegData ", pbnst.pbnstMngRegData) form.reset(data); form.setValue("pbnstRuseFcltPk", data.pbnstRuseFcltPk); - ref.current = data.fcOpers || []; + ref.current = data.fcOpers; } }, [data]); + // useEffect(() => { + // if (pbnst.pbnstMngRegData && !mountCheck.current) { + // console.log('pbnst.pbnstMngRegData ', pbnst.pbnstMngRegData) + // mountCheck.current=true + // // form.reset(data); + // // form.setValue("pbnstRuseFcltPk", data.pbnstRuseFcltPk); + // // ref.current = data.fcOpers || []; + // } + // }, [ ]); // 2. Define a submit handler. function onSubmit(values: z.infer) { values.fcOpers = ref.current || []; @@ -130,7 +129,6 @@ useEffect(() => { } const fileHandler = (files: File[], type: string) => { - console.log("fileHandler", files); let fileList = [] as FilesType[]; if (type === "relation" && relationfiles) { fileList = relationfiles; @@ -208,7 +206,6 @@ useEffect(() => { } }, [planFiles]); - useEffect(() => { console.log("form errors:", form.formState.errors); }, [form.formState.errors]); @@ -278,7 +275,9 @@ useEffect(() => { { + field.onChange(Number(e.target.value)); + }} value={field.value} /> @@ -294,7 +293,9 @@ useEffect(() => { { + field.onChange(Number(e.target.value)); + }} value={field.value} /> @@ -310,7 +311,9 @@ useEffect(() => { { + field.onChange(Number(e.target.value)); + }} value={field.value} /> @@ -326,7 +329,9 @@ useEffect(() => { { + field.onChange(Number(e.target.value)); + }} value={field.value} /> diff --git a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegFormDetail/mngRegFormDetail.tsx b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegFormDetail/mngRegFormDetail.tsx index 21b3f7ce0..0afb35206 100644 --- a/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegFormDetail/mngRegFormDetail.tsx +++ b/apps/wr/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegFormDetail/mngRegFormDetail.tsx @@ -45,7 +45,7 @@ export default function MngRegFormDetail({ className={"rounded-lg !w-full"} /> ) : item.type === "number" ? ( - + {field.onChange(Number(e.target.value))}} /> ) : ( )} diff --git a/apps/wr/components/ui/modal/fcltReg/pbnstRegModal/pbnstRegModal.tsx b/apps/wr/components/ui/modal/fcltReg/pbnstRegModal/pbnstRegModal.tsx index 4d2553878..e58f7b856 100644 --- a/apps/wr/components/ui/modal/fcltReg/pbnstRegModal/pbnstRegModal.tsx +++ b/apps/wr/components/ui/modal/fcltReg/pbnstRegModal/pbnstRegModal.tsx @@ -11,33 +11,33 @@ import { getCity } from "@/components/lib/func/commom"; import { PbnstMngForm } from "@/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm"; import { ScrollArea, - SelectBox, - UiTable, - type SelectDataType, } from "@common/business_components"; import { Button, - Input, - Label, Tabs, TabsContent, TabsList, TabsTrigger, } from "@common/components/ui"; import { useEffect, useState } from "react"; -import type { objSearchType } from "../bdstRegModal/bdstRegModal"; import { PbnstBuseForm } from "@/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm"; export function PbnstRegModal({ data }: { data: pubHasuType }) { - const { code, pbnst } = useWrStore((state) => { + const { pbnst ,pbnstUpdate} = useWrStore((state) => { return state; }); - const { pubFacHeadList, pbnstHasuRes, pbnstRes } = pbnst; const [pbnstBdstForm, setPbnstBdstForm] = useState( {} as customPbnst ); const [currentTab, setCurrentTab] = useState("mng"); - // const nodeList = headMakeColSpan(pubFacHeadList.moUpHeadList); + +const pbnstRegTotal = ()=>{ + console.log(" pbnst.pbnstMngRegData ", pbnst.pbnstMngRegData) + + if(pbnst.pbnstMngRegData[0]) + pbnstUpdate(pbnst.pbnstMngRegData[0]) +} + const handleTabChange = (value: string) => { setCurrentTab(value); @@ -45,15 +45,26 @@ export function PbnstRegModal({ data }: { data: pubHasuType }) { useEffect(() => { - const regData = { - pbnstRuseFcltPk: String(data.bscFctCd + "R" + "1"), - fcBizs: [{ pbnstRuseFcltFk: String(data.bscFctCd + "R" + "1") } as unknown as fcBizType], - }; - console.log("regData ", regData) - setPbnstBdstForm(regData as customPbnst); + if(data ){ + + let regData = { + superKey: String(data.bscFctCd + "1"), + swtrmtFcltFk: String(data.bscFctCd ), + pbnstRuseFcltPk: 1, + fcBizs: [{ pbnstRuseFcltFk: 1 ,cycl:1 } as unknown as fcBizType], + }; + + setPbnstBdstForm(regData as unknown as customPbnst); + } + }, [data]); + + useEffect(() =>{ + + console.log('pbnst.pbnstMngRegData ', pbnst.pbnstMngRegData) + },[pbnst.pbnstMngRegData]) return ( <>

@@ -70,7 +81,7 @@ export function PbnstRegModal({ data }: { data: pubHasuType }) { 차수별정보 - diff --git a/apps/wr/components/ui/table/pbnstReg/ruseMngTable/ruseMngTable.tsx b/apps/wr/components/ui/table/pbnstReg/ruseMngTable/ruseMngTable.tsx index aba220a4c..73add7846 100644 --- a/apps/wr/components/ui/table/pbnstReg/ruseMngTable/ruseMngTable.tsx +++ b/apps/wr/components/ui/table/pbnstReg/ruseMngTable/ruseMngTable.tsx @@ -36,6 +36,7 @@ const RuseMngTable = React.forwardRef( }, [tableState]); useEffect(() => { + if(tableData) setTableState(tableData); }, [tableData]); return ( @@ -75,7 +76,9 @@ const RuseMngTable = React.forwardRef( return next; }) }} - value={tableState[i][head.id] || ""} + value={head.type === "number" ? + Number(tableState[i][head.id])||0 : tableState[i][head.id] || "" + } /> ) : head.type === "select" ? ( ( }} > - ) : ( + ) : + ( `${item[head.id] || ""}` )}