diff --git a/apps/wr/app/ruseFcltMng/fcltReg/htdflReg/page.tsx b/apps/wr/app/ruseFcltMng/fcltReg/htdflReg/page.tsx index c92eb8bd3..905744eca 100644 --- a/apps/wr/app/ruseFcltMng/fcltReg/htdflReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltReg/htdflReg/page.tsx @@ -17,7 +17,7 @@ import { headMakeColSpan } from "../rainReg/page"; import ListDiv from "@common/business_components/ui/list_div"; import { useEffect, useState } from "react"; import { tableData } from "@/components/lib/func/commom"; -import { HtdflRegForm } from "@/components/ui/form/fcltReg/htdflReg/htdflRegForm"; +import HtdflRegForm from "@/components/ui/form/fcltReg/htdflReg/htdflRegForm"; import type { chgBuilding } from "@/app/store/ruseFcltMng/fcltReg/rainReg"; import BdstChgModal from "@/components/ui/modal/bdstChgModal/bdstChgModal"; import { BdstReg } from "@/components/ui/modal/bdstRegModal/bdstRegModal"; diff --git a/apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx b/apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx index df5d2c285..4b21b1ec5 100644 --- a/apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltReg/rainReg/page.tsx @@ -6,7 +6,7 @@ import type { TableUpperProps, } from "@/app/store/ruseFcltMng/fcltReg/rainReg"; import { tableData } from "@/components/lib/func/commom"; -import { RainRegForm } from "@/components/ui/form/fcltReg/rainReg/rainRegForm"; +import RainRegForm from "@/components/ui/form/fcltReg/rainReg/rainRegForm"; import BdstChgModal from "@/components/ui/modal/bdstChgModal/bdstChgModal"; import { BdstReg } from "@/components/ui/modal/bdstRegModal/bdstRegModal"; import { diff --git a/apps/wr/app/ruseFcltMng/fcltReg/rswtReg/page.tsx b/apps/wr/app/ruseFcltMng/fcltReg/rswtReg/page.tsx index 8864989d3..742ec983d 100644 --- a/apps/wr/app/ruseFcltMng/fcltReg/rswtReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltReg/rswtReg/page.tsx @@ -18,7 +18,7 @@ import { headMakeColSpan } from "../rainReg/page"; import { useEffect, useState } from "react"; import type { customRswtBdst } from "@/app/store/ruseFcltMng/fcltReg/rswtReg"; import { tableData } from "@/components/lib/func/commom"; -import { RswtrRegForm } from "@/components/ui/form/fcltReg/rswtrReg/RswtrRegForm"; +import RswtrRegForm from "@/components/ui/form/fcltReg/rswtrReg/rswtrRegForm"; import BdstChgModal from "@/components/ui/modal/bdstChgModal/bdstChgModal"; import type { chgBuilding } from "@/app/store/ruseFcltMng/fcltReg/rainReg"; diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/bdstReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/bdstReg/index.tsx index 8017286fa..a4c56a165 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/bdstReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/bdstReg/index.tsx @@ -1,5 +1,5 @@ import { getFectch } from "@/components/lib/api"; -import { TEST_UUID, type bdstAll, type customRainBdst } from "../rainReg"; +import { TEST_UUID, type customRainBdst } from "../rainReg"; import type { TableProps } from "../pbnstReg"; import type { customHtdflBdst } from "../htdflReg"; import type { customRswtBdst } from "../rswtReg"; @@ -32,7 +32,7 @@ type TableUpperProps = { -const bdstBase: bdstAll[] = []; +const bdstBase:any[] = []; const isRainBdst = (data: any): data is customRainBdst=> { diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/htdflReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/htdflReg/index.tsx index d185be093..119ea9968 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/htdflReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/htdflReg/index.tsx @@ -25,20 +25,21 @@ export const hdtflZod = z.object({ instlCst: z.number().nullish().default(0), operMngCd: z.string().nullish().default(""), anlOperCst: z.number().default(0), - instlCstSprtYn: z.string().default(""), + instlCstSprtYn: z.enum(["Y", "N"]), instlCstSprtAmt: z.number().nullish().default(0), - grntchBdstCertYn: z.string().default(""), - grntchBdstCertYr: z - .string() - .nullish(), + grntchBdstCertYn: z.enum(["Y", "N"]), + grntchBdstCertYr: z .string().default("") + .refine((year) =>year.length ===0 || /^\d{4}$/.test(year),{ + message:'4자리 연도만 입력하세요' + }), grntchBdstCertNo: z.string().nullish().default(""), grntchBdstCertGrd: z.string().nullish().default(""), - crgRdctYn: z.string().default(""), + crgRdctYn: z.enum(["Y", "N"]), crgRdctBss: z.string().nullish().default(""), crgRdctAmt: z.number().nullish().default(0), ruseFcltFlg: z.string().nullish().default(""), bdstUsgCd: z.number().default(0), - lawTrgtYn: z.string().default(""), + lawTrgtYn: z.enum(["Y", "N"]), rgtr:z.string().nullish().default(null), mdfr:z.string().nullish().default(null), // htdflObj 매핑 @@ -92,67 +93,9 @@ export const hdtflZod = z.object({ .default([]), }); - export type customHtdflBdst = Omit & { - reuseBuilding: htdflReuseBuilding[]; - }; + export type customHtdflBdst = z.infer + //export type customHtdflBdst = z.infer; -//export type customHtdflBdst = z.infer; - -// 타입을 조드로 만들어가 하는ㅓㄹ로 테트 -export type htdflReuseBuilding = { - bdstRuseFcltPk: number | undefined; - bdstInfoFk: number | undefined; - instlCmptnDt: Date | undefined; - instlCst: number | undefined; - operMngCd: string; - anlOperCst: number | undefined; - instlCstSprtYn: string | undefined; - instlCstSprtAmt: number | undefined; - grntchBdstCertYn?: string | undefined; - grntchBdstCertYr: string | undefined; - grntchBdstCertNo: string | undefined; - grntchBdstCertGrd: string | undefined; - crgRdctYn: string; - crgRdctBss: string | undefined; - crgRdctAmt: number | undefined; - ruseFcltFlg: string; - bdstUsgCd: number | undefined; - lawTrgtYn: string; - htdflObj: htdflObj; - rgtr?:string; - mdfr?:string; -}; - -export type htdflObj = { - htdflFcltPk?: number; - bdstRuseFcltFk?: number; - etgtType?: string; - fclCpct?: number | undefined; - plwtYn?: string; - orgwtWtritSpt: number | undefined; - orgwtOcrnProcs: string; - wtritEntrcTp: number | undefined; - amtgnr: number | undefined; - prcsProcsYn: string; - prcsFcltCpct: number | undefined; - fmYn: string; - utztnCpct: number | undefined; - utztnUsg: string; - grssClfg: number | undefined; - combResdch: number | undefined; - trbt: number | undefined; - bod: number | undefined; - smll: number | undefined; - crmty: number | undefined; - tn: number | undefined; - tph: number | undefined; - ph: number | undefined; - clIonQnt: number | undefined; - cdtnv: number | undefined; - emsnExitTp: number | undefined; - rgtr?:string; - mdfr?:string; -}; export type htdflFacState = { htdfl: { diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx index 81cf9f0c0..dd5f55d7d 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx @@ -1,12 +1,6 @@ import type { selectArray } from "@/app/store/common/code"; import { getFectch, postFectch, putFectch } from "@/components/lib/api"; -import { FormItem } from "@common/business_components/ui"; -import { zodResolver } from "@hookform/resolvers/zod"; -import type { UUID } from "crypto"; -import { useForm } from "react-hook-form"; import { z } from "zod"; -import type { customHtdflBdst } from "../htdflReg"; -import type { customRswtBdst } from "../rswtReg"; import { makeMdfr, makeRstr } from "../bdstReg"; @@ -24,7 +18,7 @@ export const rainZod = z.object({ archArea: z.number().default(0), archChgArea: z.number().default(0), rgtr:z.string().nullish(), - mdfr:z.string().optional(), + mdfr:z.string().nullish(), reuseBuilding: z.array( z.object({ @@ -36,34 +30,34 @@ export const rainZod = z.object({ anlOperCst: z.number().default(0), instlCstSprtYn: z.string().default(""), instlCstSprtAmt: z.number().nullish(), - grntchBdstCertYn: z.string().default(""), - grntchBdstCertYr: z.string() - .max(4, "4자리 연도를 입력하세요") - .regex(/^\d{4}$/, "4자리 연도를 입력하세요") - .default(""), + grntchBdstCertYn: z.enum(["Y", "N"]).nullish(), + grntchBdstCertYr: z.string().default("") + .refine((year)=> year.length===0 || /^\d{4}$/.test(year),{ + message:'4자리 연도만 입력하세요' + }), grntchBdstCertNo: z.string().default(""), grntchBdstCertGrd: z.string().default(""), - crgRdctYn: z.string().default("").nullish(), - crgRdctBss: z.string().default("").nullish(), - crgRdctAmt: z.number().default(0), + crgRdctYn: z.enum(["Y", "N"]), // 안쓰는 값 + crgRdctBss: z.string().default("").nullish(), /// 안쓰는 값 + crgRdctAmt: z.number().default(0), // 안쓰는 값 ruseFcltFlg: z.string().default(""), bdstUsgCd: z.number().default(0), - lawTrgtYn: z.string().default(""), + lawTrgtYn: z.enum(["Y", "N"]), rgtr:z.string().nullish(), - mdfr:z.string().optional(), + mdfr:z.string().nullish(), rainyObj: z.object({ bdstReuseFcltFk: z.number().nullish(), pntfColKnd: z.string().default(""), pntfColArea: z.number().default(0), dtfcltCpct: z.number().default(0), + filtrTrtmfctYn: z.enum(["Y", "N"]).nullish(), filtrTrtmfctCpct: z.number().nullish().default(0), - filtrTrtmfctYn: z.string().default(""), filtrTrtmfctPrs: z.string().default(""), annRnwtQty: z.number().default(0), oilqMeasMthd: z.string().default("").nullish(), rgtr:z.string().nullish(), - mdfr:z.string().optional(), + mdfr:z.string().nullish(), }).default({}) @@ -95,59 +89,8 @@ export type chgBuilding={ } -export type bdstAll = { - bdstInfoPk?: number; - ctpvCd: number; - sggCd: number; - bdstNm: string; - daddr: string; - frstArchPrmsnDt: Date; - archArea: number; - archChgArea: number; - rgtr?:string|null; - mdfr?:string|null; - reuseBuilding: rainReuseBuilding[]; - chgBuilding:chgBuilding[] -}; +export type customRainBdst = z.infer -export type customRainBdst = Omit & { - reuseBuilding: rainReuseBuilding[]; -}; - - -export type rainReuseBuilding = { - lawTrgtYn: string|undefined; - bdstUsgCd: number|undefined; - bdstRuseFcltPk?: number|null; - bdstInfoFk: number|undefined; - operMngCd?: number; - anlOperCst: number; - instlCmptnDt: Date|undefined; - instlCst: number; - //archChgPrmsnDt: string; - instlCstSprtYn: string|undefined; - instlCstSprtAmt?: number|undefined; - grntchBdstCertYn: string|undefined; - grntchBdstCertNo: string|undefined; - grntchBdstCertGrd: string|undefined; - grntchBdstCertYr: string|undefined; - rgtr?:string|null; - mdfr?:string|null; - rainyObj: rainyObj | null |undefined; -}; -export type rainyObj = { - bdstReuseFcltFk?: number|undefined; - pntfColKnd?: string | undefined; - pntfColArea?: number | undefined; - dtfcltCpct?: number; - filtrTrtmfctCpct?: number | undefined; - filtrTrtmfctYn?: string | undefined; - filtrTrtmfctPrs?: string | undefined; - annRnwtQty?: number; - oilqMeasMthd?: string | undefined; - rgtr?:string|null, - mdfr?:string|null, -}; export type TableUpperProps = { id: string; @@ -177,62 +120,6 @@ export const upHeadList: TableUpperProps[] = [ const rainRes: customRainBdst[] = []; - const regRainForm:customRainBdst = { - ctpvCd: 0, - sggCd: 0, - bdstNm: "", - daddr: "", - frstArchPrmsnDt:new Date(), - archArea: 0, - archChgArea: 0, - bdstInfoPk: 0, - rgtr:"", - mdfr:"", - reuseBuilding: [{ - rainyObj: { - bdstReuseFcltFk: 0, - pntfColKnd: undefined, - pntfColArea: undefined, - dtfcltCpct: 0, - filtrTrtmfctCpct: undefined, - filtrTrtmfctYn: undefined, - filtrTrtmfctPrs: undefined, - annRnwtQty: 0, - oilqMeasMthd: undefined, - rgtr:"", - mdfr:"", - }, - lawTrgtYn: undefined, - bdstUsgCd: undefined, - bdstRuseFcltPk: 0, - bdstInfoFk: 0, - operMngCd: 0, - anlOperCst: 0, - instlCmptnDt: undefined, - instlCst: 0, - // archChgPrmsnDt: "", - instlCstSprtYn: undefined, - instlCstSprtAmt: undefined, - grntchBdstCertYn: undefined, - grntchBdstCertNo: undefined, - grntchBdstCertGrd: undefined, - grntchBdstCertYr: undefined, - rgtr:"", - mdfr:"", - }], - //추가됨 - chgBuilding:[{ - bdstInfoFk: 0, - archChgPrmsnDt: new Date(), - archChgArea: "-", - bdstChgNm: "", - rgtr:"", - mdfr:"", - - }] -}; - - export const selectClass = "w-full h-full text-2xl"; const selectYN = [ { text: "Y", val: "1" }, @@ -244,7 +131,7 @@ export type rainFacState = { upHeadList: TableUpperProps[]; selectYN: selectArray[]; rainRes: customRainBdst[]; - regRainForm:customRainBdst, + // regRainForm:customRainBdst, }; }; @@ -263,7 +150,7 @@ export const rainFacStateExport: rainFacState = { rainRes: rainRes, upHeadList: upHeadList, selectYN: selectYN, - regRainForm:regRainForm, + //regRainForm:regRainForm, }, }; diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx index 8ba5b6586..f44c50032 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/rswtReg/index.tsx @@ -1,6 +1,5 @@ import { getFectch, postFectch, putFectch } from "@/components/lib/api"; -import { upHeadList, type bdstAll, type chgBuilding, type TableUpperProps } from "../rainReg"; -import { rswtBdstType } from "@/app/store/common/code"; +import { upHeadList, type chgBuilding, type TableUpperProps } from "../rainReg"; import { z } from "zod"; import { makeMdfr, makeRstr } from "../bdstReg"; @@ -28,19 +27,20 @@ export const rswtZod = z.object({ operMngCd: z.string().nullish().default(""), anlOperCst: z.number().default(0), - instlCstSprtYn: z.string().default(""), + instlCstSprtYn: z.enum(["Y", "N"]), instlCstSprtAmt: z.number().default(0), - grntchBdstCertYn: z.string().default("N"), - grntchBdstCertYr: z.string().max(4, "4자리 연도를 입력하세요") - .regex(/^\d{4}$/, "4자리 연도를 입력하세요") - .default(""), - grntchBdstCertNo: z.string().nullish().default(""), - grntchBdstCertGrd: z.string().nullish().default(""), + grntchBdstCertYn: z.enum(["Y", "N"]), + grntchBdstCertYr: z.string().default("") + .refine((year)=> year.length===0 ||/^\d{4}$/.test(year),{ + message:'4자리 연도만 입력하세요' + }), + grntchBdstCertNo: z.string().default(""), + grntchBdstCertGrd: z.string().default(""), - crgRdctYn: z.string().default(""), - crgRdctBss: z.string().default(""), - crgRdctAmt: z.number().default(0), + crgRdctYn: z.enum(["Y", "N"]), // 안쓰는 값 + crgRdctBss: z.string().default("").nullish(), /// 안쓰는 값 + crgRdctAmt: z.number().default(0), // 안쓰는 값 ruseFcltFlg: z.string().default(""), bdstUsgCd: z.number().default(0), lawTrgtYn: z.string().default(""), @@ -55,10 +55,10 @@ export const rswtZod = z.object({ filtrTrtmfctProcs: z.string().default(""), filtrTrtmfctUsgCd: z.string().default(""), rswtrUsqty: z.number().default(0), - altUswtrUtztnYn: z.string().default(""), - altUswtrKndCd: z.string().default(""), - altUswtrUtztnQnt: z.number().default(0), - altUswtrIdntyMthdCd: z.string().default(""), + altUswtrUtztnYn: z.enum(["Y", "N"]).nullish(),//안쓰는값 + altUswtrKndCd: z.string().default(""),//안쓰는값 + altUswtrUtztnQnt: z.number().default(0),//안쓰는값 + altUswtrIdntyMthdCd: z.string().default(""),//안쓰는값 rgtr:z.string().nullish().default(null), mdfr:z.string().nullish().default(null), }).default({}) @@ -81,48 +81,7 @@ export const rswtZod = z.object({ }); - -export type customRswtBdst = Omit & { - reuseBuilding: rswtReuseBuilding[]; -}; - - - -export type rswtReuseBuilding = { - bdstRuseFcltPk: number; - bdstInfoFk: number; - instlCmptnDt: Date | undefined; - instlCst: number | undefined; - operMngCd: number; - lawTrgtYn: string | undefined; - anlOperCst: number; - instlCstSprtYn: string | undefined; - instlCstSprtAmt: number | undefined; - bdstUsgCd: number | undefined; - grntchBdstCertYn: string ; - grntchBdstCertNo?: string | undefined; - grntchBdstCertGrd?: string | undefined; - grntchBdstCertYr?: string | undefined; - rgtr?:string; - mdfr?:string; - rswtrObj: rswtrObj | null; -}; -export type rswtrObj = { - bdstRuseFcltFk?: number | undefined; - wtrUsqty?: number | undefined; - oblgTrgtWtrUsqty?: number ; - orgwtKndCd?: string | undefined; - filtrTrtmfctProcs?: string | undefined; - filtrTrtmfctUsgCd?: string | undefined; - rswtrUsqty?: number; - altUswtrUtztnYn?: string; - altUswtrKndCd?: string; - altUswtrUtztnQnt?: number; - - altUswtrIdntyMthdCd?: string; - rgtr?:string; - mdfr?:string; -} +export type customRswtBdst = z.infer const rswtRes: customRswtBdst[] = []; diff --git a/apps/wr/components/lib/func/commom.ts b/apps/wr/components/lib/func/commom.ts index a6d3a94dc..3e5be1593 100644 --- a/apps/wr/components/lib/func/commom.ts +++ b/apps/wr/components/lib/func/commom.ts @@ -1,5 +1,4 @@ import type { comCodeState, selectArray } from "@/app/store/common/code"; -import type { bdstAll } from "@/app/store/ruseFcltMng/fcltReg/rainReg"; diff --git a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx index c1a1a79ea..a4107268f 100644 --- a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx +++ b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx @@ -1,6 +1,6 @@ import { useWrStore } from "@/app/store"; import type { selectArray } from "@/app/store/common/code"; -import { selectClass, type bdstAll } from "@/app/store/ruseFcltMng/fcltReg/rainReg"; +import { selectClass } from "@/app/store/ruseFcltMng/fcltReg/rainReg"; import { getCity } from "@/components/lib/func/commom"; import type { objSearchType } from "@/components/ui/modal/bdstRegModal/bdstRegModal"; import { FormField, FormUi, DatePicker, SelectBox } from "@common/business_components"; diff --git a/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx b/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx index f59791e80..3d1d66771 100644 --- a/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/htdflReg/htdflRegForm.tsx @@ -19,7 +19,7 @@ import { import { useEffect } from "react"; import BdstReg from "../bdstReg/bdstReg"; -export function HtdflRegForm({ +export default function HtdflRegForm({ htdflForm, isModal, }: { @@ -35,7 +35,7 @@ export function HtdflRegForm({ defaultValues: defaultValues, }); - function onSubmit(values: z.infer) { + const onSubmit=(values: z.infer)=> { if (isModal) { htdflReg(values); } else { @@ -47,7 +47,7 @@ export function HtdflRegForm({ console.log(val); }; - function cleanHtdflData(raw: any): z.infer { + const cleanHtdflData=(raw: any): z.infer =>{ return { ...raw, frstArchPrmsnDt: new Date(raw?.frstArchPrmsnDt || null), @@ -71,6 +71,10 @@ export function HtdflRegForm({ })), }; } + + + + useEffect(() => { console.log("form errors:", form.formState.errors); }, [form.formState.errors]); diff --git a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx index 147320992..88d7638cf 100644 --- a/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rainReg/rainRegForm.tsx @@ -12,11 +12,11 @@ import { Form, FormField, SelectBox } from "@common/business_components/ui"; import { Button, Input } from "@common/components/ui"; import { zodResolver } from "@hookform/resolvers/zod"; import { useEffect, useState } from "react"; -import { useForm, type UseFormReturn } from "react-hook-form"; +import { useForm, useWatch, type UseFormReturn } from "react-hook-form"; import { z } from "zod"; import BdstReg from "../bdstReg/bdstReg"; -export function RainRegForm({ +export default function RainRegForm({ rainForm, isModal, }: { @@ -25,7 +25,6 @@ export function RainRegForm({ }) { const { code, rainReg, rainUpdate, rain } = useWrStore((state) => state); const { rainFcltCd } = code; - const defaultValues: z.infer = rainZod.parse({}); const form = useForm>({ @@ -33,11 +32,13 @@ export function RainRegForm({ defaultValues: defaultValues, }); + const [grntchBdstCertYn, instlCstSprtYn, filtrTrtmfctYn] = form.watch([ + "reuseBuilding.0.grntchBdstCertYn", + "reuseBuilding.0.instlCstSprtYn", + "reuseBuilding.0.rainyObj.filtrTrtmfctYn", + ]); - - - - function cleanRainData(raw: any): z.infer { + const cleanRainData =(raw: any): z.infer =>{ return { ...raw, frstArchPrmsnDt: new Date(raw?.frstArchPrmsnDt||null), @@ -56,7 +57,19 @@ export function RainRegForm({ }; } +useEffect(() =>{ + if(grntchBdstCertYn ==='N'){ + form.setValue('reuseBuilding.0.grntchBdstCertYr' ,"" ) + form.setValue('reuseBuilding.0.grntchBdstCertNo' ,"" ) + form.setValue('reuseBuilding.0.grntchBdstCertGrd' ,"" ) + }else if(instlCstSprtYn ==='N'){ + form.setValue('reuseBuilding.0.instlCstSprtAmt' ,0 ) + }else if(filtrTrtmfctYn ==='N'){ + form.setValue('reuseBuilding.0.rainyObj.filtrTrtmfctCpct' ,0 ) + form.setValue('reuseBuilding.0.rainyObj.filtrTrtmfctPrs' ,"" ) + } +},[grntchBdstCertYn,instlCstSprtYn ,filtrTrtmfctYn]) // form 값이 변경될 때마다 로그 출력 @@ -65,23 +78,21 @@ export function RainRegForm({ return () => subscription.unsubscribe(); }, [form]); - - - - function onSubmit(values: z.infer) { - - if (isModal) { - - rainReg(values); - } else { - rainUpdate(values); - } - } - useEffect(() => { console.log("form errors:", form.formState.errors); }, [form.formState.errors]); + + + + const onSubmit =(values: z.infer)=> { + if (isModal) { + rainReg(values); + } else { + rainUpdate(values); + } + } + useEffect(() => { if(rainZod) @@ -89,6 +100,9 @@ export function RainRegForm({ }, [rainForm]); + + + return (
@@ -147,7 +161,7 @@ export function RainRegForm({ { field.onChange(e.target.value === "" ? "" : Number(e.target.value)); @@ -195,7 +209,7 @@ export function RainRegForm({ field.onChange(Number(e.target.value))} /> @@ -236,9 +250,10 @@ export function RainRegForm({ field.onChange(Number(e.target.value))} + readOnly={filtrTrtmfctYn!=='Y'} /> @@ -257,6 +272,7 @@ export function RainRegForm({ type="" value={field.value ?? ""} onChange={field.onChange} + readOnly={filtrTrtmfctYn!=='Y'} /> )} @@ -285,6 +301,7 @@ export function RainRegForm({ selectArray={code.yn} onSelectValue={field.onChange} value={field.value ?? code.yn[0]?.val} + /> )} @@ -299,12 +316,13 @@ export function RainRegForm({ { const value = e.target.value; field.onChange(value === "" ? "" : Number(value)); }} value={field.value ?? 0} + readOnly={instlCstSprtYn!=='Y'} /> )} @@ -341,7 +359,9 @@ export function RainRegForm({ render={({ field }) => ( + onChange={field.onChange} + + readOnly={grntchBdstCertYn!=='Y'}/> )} /> @@ -358,6 +378,7 @@ export function RainRegForm({ type="" value={field.value ?? ""} onChange={field.onChange} + readOnly={grntchBdstCertYn!=='Y'} /> )} @@ -370,7 +391,9 @@ export function RainRegForm({ render={({ field }) => ( + onChange={field.onChange} + readOnly={grntchBdstCertYn!=='Y'} + /> )} /> diff --git a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx index 362248218..d75e5e9a5 100644 --- a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx @@ -9,8 +9,8 @@ import { } from "@common/business_components/ui"; import { Button, Input } from "@common/components/ui"; import { zodResolver } from "@hookform/resolvers/zod"; -import { useFieldArray, useForm } from "react-hook-form"; -import { number, z } from "zod"; +import { useForm } from "react-hook-form"; +import { z } from "zod"; import { useWrStore } from "@/app/store"; import { selectClass } from "@/app/store/ruseFcltMng/fcltReg/rainReg"; import { @@ -20,7 +20,7 @@ import { import { useEffect } from "react"; import BdstReg from "../bdstReg/bdstReg"; -export function RswtrRegForm({ +export default function RswtrRegForm({ rswtForm, isModal, }: { @@ -39,29 +39,20 @@ export function RswtrRegForm({ }) - // 2. Define a submit handler. - async function onSubmit(values: z.infer) { - // Do something with the form values. - // ✅ This will be type-safe and validated. - console.log(values); - + const [grntchBdstCertYn, instlCstSprtYn,filtrTrtmfctProcs] = form.watch([ + "reuseBuilding.0.grntchBdstCertYn", + "reuseBuilding.0.instlCstSprtYn", + "reuseBuilding.0.rswtrObj.filtrTrtmfctProcs", + ]); + const onSubmit =(values: z.infer) => { if (isModal) { - // regRainForm.bdstInfoPk = null; - await rswtReg(values); + rswtReg(values); } else { rswtUpdate(values); } - } - - const onSelectValue = (val: string | number) => { - console.log(val); - - }; - - - function cleanRswtData(raw: any): z.infer { + const cleanRswtData = (raw: any): z.infer =>{ return { ...raw, frstArchPrmsnDt: new Date(raw?.frstArchPrmsnDt||null), @@ -81,9 +72,29 @@ export function RswtrRegForm({ } +useEffect(() => { + console.log("form errors:", form.formState.errors); +}, [form.formState.errors]); + + + +useEffect(() =>{ + + console.log("filtrTrtmfctProcs ", filtrTrtmfctProcs) + if(grntchBdstCertYn ==='N'){ + form.setValue('reuseBuilding.0.grntchBdstCertYr' ,"" ) + form.setValue('reuseBuilding.0.grntchBdstCertNo' ,"" ) + form.setValue('reuseBuilding.0.grntchBdstCertGrd' ,"" ) + }else if(instlCstSprtYn ==='N'){ + form.setValue('reuseBuilding.0.instlCstSprtAmt' ,0 ) + } +},[grntchBdstCertYn,instlCstSprtYn,filtrTrtmfctProcs ]) + + + + useEffect(() => { if(rswtZod) - console.log("rswtForm", rswtForm); form.reset( cleanRswtData(rswtForm)) }, [rswtForm]); @@ -151,7 +162,7 @@ useEffect(() => { field.onChange(Number(e.target.value))} /> @@ -170,7 +181,7 @@ useEffect(() => { field.onChange(Number(e.target.value))} /> @@ -188,7 +199,7 @@ useEffect(() => { field.onChange(Number(e.target.value))} /> @@ -277,11 +288,12 @@ useEffect(() => { { field.onChange(Number(e.target.value)); }} + readOnly={instlCstSprtYn!=='Y'} /> )} @@ -320,10 +332,11 @@ useEffect(() => { )} @@ -341,6 +354,8 @@ useEffect(() => { type="" value={field.value ?? ""} onChange={field.onChange} + readOnly={grntchBdstCertYn!=='Y'} + /> )} @@ -358,6 +373,8 @@ useEffect(() => { type="" value={field.value ?? ""} onChange={field.onChange} + readOnly={grntchBdstCertYn!=='Y'} + /> )} diff --git a/apps/wr/components/ui/modal/bdstRegModal/bdstRegModal.tsx b/apps/wr/components/ui/modal/bdstRegModal/bdstRegModal.tsx index 32a0360d1..308c01241 100644 --- a/apps/wr/components/ui/modal/bdstRegModal/bdstRegModal.tsx +++ b/apps/wr/components/ui/modal/bdstRegModal/bdstRegModal.tsx @@ -8,13 +8,13 @@ import { import { ScrollArea, SelectBox, UiTable } from "@common/business_components"; import { Button, Input, Label } from "@common/components"; import { useEffect, useState } from "react"; -import { RainRegForm } from "../../form/fcltReg/rainReg/rainRegForm"; +import RainRegForm from "../../form/fcltReg/rainReg/rainRegForm"; import { type selectArray } from "@/app/store/common/code"; import { getCity, tableData } from "@/components/lib/func/commom"; import type { customRswtBdst } from "@/app/store/ruseFcltMng/fcltReg/rswtReg"; -import { HtdflRegForm } from "../../form/fcltReg/htdflReg/htdflRegForm"; +import HtdflRegForm from "../../form/fcltReg/htdflReg/htdflRegForm"; import type { customHtdflBdst } from "@/app/store/ruseFcltMng/fcltReg/htdflReg"; -import { RswtrRegForm } from "../../form/fcltReg/rswtrReg/RswtrRegForm"; +import RswtrRegForm from "../../form/fcltReg/rswtrReg/rswtrRegForm"; export type objSearchType = { sgg: string|number; @@ -145,7 +145,7 @@ export function BdstReg({ moType }: BdstRegProps) { :moType==='RST' ? - : + : }