diff --git a/apps/wr/app/ruseFcltMng/fcltReg/htdflReg/page.tsx b/apps/wr/app/ruseFcltMng/fcltReg/htdflReg/page.tsx index 9b3688e61..d3333f676 100644 --- a/apps/wr/app/ruseFcltMng/fcltReg/htdflReg/page.tsx +++ b/apps/wr/app/ruseFcltMng/fcltReg/htdflReg/page.tsx @@ -43,7 +43,7 @@ export default function Home() { useEffect(() => { if (!htdfl.isInit) { - initHtdflReg('41') + initHtdflReg('0') } }, [htdfl.isInit, initHtdflReg]); useEffect(() => { @@ -89,7 +89,7 @@ export default function Home() { // setBdstChgProps({ isOpen: true, chgBuilding: chgBuilding }); // }; useEffect(() => { - getHtdflBdstData(pageNation, "41"); + getHtdflBdstData(pageNation, "0"); }, [pageNation]); return ( @@ -115,9 +115,9 @@ export default function Home() { size={"sm"} onClick={() => { if(searchTxt&&searchTxt.length>0){ - htdflNmSearch(String(41),searchTxt) + htdflNmSearch(String(0),searchTxt) }else{ - initHtdflReg(String(41) ); + initHtdflReg(String(0) ); } }} diff --git a/apps/wr/app/store/common/code/basicCode.tsx b/apps/wr/app/store/common/code/basicCode.tsx index 56c59b502..b80dfb3b2 100644 --- a/apps/wr/app/store/common/code/basicCode.tsx +++ b/apps/wr/app/store/common/code/basicCode.tsx @@ -181,10 +181,26 @@ export const rswtPrscCdMthdCd = [ ]; export const htdPowerMthdCd= [ + { + val: "해당없음", + text: "해당없음", + }, { val: "석탄화력발전", text: "석탄화력발전", }, + { + val: "화력발전", + text: "화력발전", + }, + { + val: "수력발전", + text: "수력발전", + }, + { + val: "태양관발전", + text: "태양관발전", + }, ]; //(공업용수/양식장/농업용수) diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx index ce30e3893..294bb517c 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/rainReg/index.tsx @@ -134,7 +134,7 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = ( ...state, rain: { ...state.rain, - rainRes: rainRes, + rainRes: rainRes.data, isInit: false, }, })); diff --git a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx index 31e8dbacb..886dd2da9 100644 --- a/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx +++ b/apps/wr/components/ui/form/fcltReg/bdstReg/bdstReg.tsx @@ -89,7 +89,7 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { return ( <> -

{ type !== "HTB"?"건축물 기본 정보": '발전소 기본 정보'}

+

{ type !== "HTB"?"건축물 기본 정보": '시설 기본 정보'}

( - + @@ -156,7 +156,7 @@ export default function BdstReg({ form, type }: { form: any; type?: string }) { control={form.control} name="daddr" render={({ field }) => ( - + ) => { if (isModal) { const data = regCtpvCd ? regCtpvCd : regSggcd ? regSggcd : "noCd"; @@ -54,7 +57,7 @@ export default function HtdflRegForm({ toast.error("시도/시군구 코드를 선택해야합니다."); return; } - htdflBdstReg(values,data); + htdflBdstReg(values, data); if (setIsModal) setIsModal(false); } else { @@ -98,7 +101,7 @@ export default function HtdflRegForm({ form.reset(cleanHtdflData(htdflForm)); } // Case 2: 데이터가 없는 순수 신규 등록 모드인 경우 - if(isModal) { + if (isModal) { const firstYnValue = code.yn?.[0]?.val; const firstHtdPowerMthdCd = code.htdPowerMthdCd?.[0]?.val; const firstHtdUtztnUsgCd = code.htdUtztnUsgCd?.[0]?.val; @@ -117,6 +120,16 @@ export default function HtdflRegForm({ } }, [htdflForm, code, form]); + useEffect(() => { + if (!isPowerPlant) { + form.setValue( + "reuseBuilding.0.htdflObj.etgtType", + "해당없음", // 빈 문자열로 초기화 + { shouldDirty: true } // dirty 상태로 남길지 여부는 취사선택 + ); + } + }, [isPowerPlant, form]); + return (
@@ -138,549 +151,550 @@ export default function HtdflRegForm({ )}
+ + {isModal && htdflForm != undefined ? ( + + ) : ( + <> + )} + {isModal ? ( +
+

온배수 시설 정보

+
+ ) : ( + <> + )} - {isModal && htdflForm != undefined ? ( - - ) : ( - <> - )} - {isModal ? ( +
+
+ ( + + { } : field.onChange} + // value={field.value ?? ""} + value={field.value || code.htdPowerMthdCd[0].val} + readOnly={readonly || !isPowerPlant} + /> + + )} + /> +
+ +
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { } : field.onChange} + value={field.value ?? ""} + readOnly={readonly} + /> + + )} + /> +
+
-

온배수 시설 정보

-
- ) : ( - <> - )} - -
-
- ( - - {} : field.onChange} - value={field.value ?? ""} - readOnly={readonly} - /> - - )} - /> +

온배수 시설 운영현황

-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - {} : field.onChange} - value={field.value ?? ""} - readOnly={readonly} - /> - - )} - /> -
-
-
-

온배수 시설 운영현황

-
- -
-
- ( - - { - if (!readonly) field.onChange((e.target.value)); - }} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - { - if (!readonly) field.onChange(e.target.value); - }} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - {} : field.onChange} - value={field.value ?? ""} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - {} : field.onChange} - value={field.value ?? ""} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - {} : field.onChange} - value={field.value ?? ""} - readOnly={readonly} - /> - - )} - /> -
-
- -
-

수질

-
- -
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> +
+
+ ( + + { + if (!readonly) field.onChange((e.target.value)); + }} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { + if (!readonly) field.onChange(e.target.value); + }} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { } : field.onChange} + value={field.value ?? ""} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { } : field.onChange} + value={field.value ?? ""} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+
+ ( + + { } : field.onChange} + value={field.value ?? ""} + readOnly={readonly} + /> + + )} + /> +
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
- -
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> +
+

수질

-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
+
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
-
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> +
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
+
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
-
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> +
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
+
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
-
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> +
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> -
-
+
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
-
-
- ( - - { - if (!readonly) - handleCommaNumberChange(e, field.onChange); - }} - value={formatCommaNumber(field.value)} - readOnly={readonly} - /> - - )} - /> +
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
-
+
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+ +
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+
+ +
+
+ ( + + { + if (!readonly) + handleCommaNumberChange(e, field.onChange); + }} + value={formatCommaNumber(field.value)} + readOnly={readonly} + /> + + )} + /> +
+
+
diff --git a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx index 0fbffbf59..3178da01f 100644 --- a/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx +++ b/apps/wr/components/ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx @@ -19,7 +19,7 @@ import { FormUi, SelectBox, } from "@common/business_components/ui"; -import { Button, Input } from "@common/components/ui"; +import { Button, Input, ScrollArea } from "@common/components/ui"; import { zodResolver } from "@hookform/resolvers/zod"; import { useEffect } from "react"; import { useForm, type UseFormReturn } from "react-hook-form"; @@ -64,7 +64,7 @@ export default function RswtrRegForm({ }; const filtrTrtmfctCpct = form.watch('reuseBuilding.0.rswtrObj.filtrTrtmfctCpct') - const cleanRswtData = (raw: any): z.infer => { + const cleanRswtData = (raw: any): z.infer => { console.log('raw ', raw) return { @@ -82,7 +82,7 @@ export default function RswtrRegForm({ : new Date(), // item?.instlCmptnDt가 유효하지 않으면 현재 날짜로 초기화 operMngCd: item?.operMngCd ?? "", // null → "" instlCstSprtYn: item?.instlCstSprtYn || code.yn[0]?.val, // null → "Y" - grntchBdstCertYn: item?.grntchBdstCertYn|| code.yn[0]?.val, + grntchBdstCertYn: item?.grntchBdstCertYn || code.yn[0]?.val, rswtrObj: { ...item?.rswtrObj, filtrTrtmfctYn: item?.rainyObj?.filtrTrtmfctYn || code.yn[0]?.val, @@ -96,10 +96,10 @@ export default function RswtrRegForm({ // useEffect(() =>{ // console.log(' formform ', form.watch()) // },[form.formState]) - useEffect(() =>{ + useEffect(() => { console.log(' filtrTrtmfctCpct ', filtrTrtmfctCpct) - },[filtrTrtmfctCpct]) - + }, [filtrTrtmfctCpct]) + useEffect(() => { console.log("form errors:", form.formState.errors); }, [form.formState.errors]); @@ -119,7 +119,7 @@ export default function RswtrRegForm({ form.setValue("reuseBuilding.0.grntchBdstCertGrd", "확인불가"); } else if (instlCstSprtYn === "D") { form.setValue("reuseBuilding.0.instlCstSprtAmt", -1); - } + } }, [grntchBdstCertYn, instlCstSprtYn, filtrTrtmfctProcs, form]); @@ -148,334 +148,335 @@ export default function RswtrRegForm({ )}
- - {isModal && rswtForm != undefined ? : <>} - {isModal ? ( -

- 중수도 시설 정보{" "} -

- ) : ( - <> - )} -

기본정보

-
-
- ( - - field.onChange(date), - }} - selectClass={"w-full"} - readOnly={readonly} - /> - - )} - /> -
-
- { - const value = field.value; - const isUnknown = value === null || value === -1; // 또는 Number(value) === -1 - return ( - - { - // 입력 시 자동으로 확인불가 해제 - if (isUnknown && !readonly) { - field.onChange(""); // 초기화 - } - }} - onChange={(e) => { - if (readonly) return; - handleMinusNumberChange(e, field.onChange); + + {isModal && rswtForm != undefined ? : <>} + {isModal ? ( +

+ 중수도 시설 정보{" "} +

+ ) : ( + <> + )} +

기본정보

+
+
+ ( + + field.onChange(date), }} + selectClass={"w-full"} readOnly={readonly} /> - ); - }} - /> -
-
-
-

중수도 시설 정보

-
- -
-
- { - const value = field.value; - const isUnknown = value === null || value === -1; // 또는 Number(value) === -1 - - return ( - - { - // 입력 시 자동으로 확인불가 해제 - if (isUnknown && !readonly) { - - console.log('value') - field.onChange(""); // 초기화 + )} + /> +
+
+ { + const value = field.value; + const isUnknown = value === null || value === -1; // 또는 Number(value) === -1 + return ( + + { - if (readonly) return; - handleMinusNumberChange(e, field.onChange); - }} + onFocus={() => { + // 입력 시 자동으로 확인불가 해제 + if (isUnknown && !readonly) { + field.onChange(""); // 초기화 + } + }} + onChange={(e) => { + if (readonly) return; + handleMinusNumberChange(e, field.onChange); + }} + readOnly={readonly} + /> + + ); + }} + /> +
+
+
+

중수도 시설 정보

+
+ +
+
+ { + const value = field.value; + const isUnknown = value === null || value === -1; // 또는 Number(value) === -1 + + return ( + + { + // 입력 시 자동으로 확인불가 해제 + if (isUnknown && !readonly) { + + console.log('value') + field.onChange(""); // 초기화 + } + }} + onChange={(e) => { + if (readonly) return; + handleMinusNumberChange(e, field.onChange); + }} + readOnly={readonly} + /> + + ); + }} + /> +
+
+ ( + + { } : field.onChange} + value={field.value ?? code.orgwtKndCd[0]?.val} readOnly={readonly} /> - ); - }} - /> -
-
- ( - - {} : field.onChange} - value={field.value ?? code.orgwtKndCd[0]?.val} - readOnly={readonly} - /> - - )} - /> -
-
- ( - - {} : field.onChange} - value={field.value ?? code.rswtPrscCdMthdCd[0]?.val} - readOnly={readonly} - /> - - )} - /> -
-
- -
-

인센티브 정보

-
-
-

설치비 지원

-
-
-
- ( - - {} : field.onChange} - value={field.value ?? code.bdstIncenYn[0]?.val} - readOnly={readonly} - /> - - )} - /> -
-
- { - const value = field.value; - const isUnknown = value === null || value === -1; // 또는 Number(value) === -1 - return ( - - { - // 입력 시 자동으로 확인불가 해제 - if (isUnknown && !readonly) { - field.onChange(""); // 초기화 - } - }} - onChange={(e) => { - if (readonly) return; - handleMinusNumberChange(e, field.onChange); - }} - disabled={instlCstSprtYn === "N"||instlCstSprtYn === "D"} + )} + /> +
+
+ ( + + { } : field.onChange} + value={field.value ?? code.rswtPrscCdMthdCd[0]?.val} + readOnly={readonly} /> - ); - }} - /> + )} + /> +
-
-
-

녹색건축물 인증

-
-
-
- ( - - {} : field.onChange} - value={field.value || code.yn[0]?.val} - readOnly={readonly} - /> - - )} - /> +
+

인센티브 정보

-
- - { - const isUnknown = field.value === null || field.value === "0000"; // 또는 Number(value) === -1 - return ( - - { - // 입력 시 자동으로 확인불가 해제 - if (isUnknown && !readonly) { - field.onChange(""); // 초기화 - } - }} - value={ - isUnknown?'확인불가':field.value ?? ""} - onChange={(e) => { - if (readonly) return - if (e.target.value === '확인불가') { - field.onChange('0000'); - }else{ - field.onChange(e.target.value); - } - }} - disabled={grntchBdstCertYn == "N" || grntchBdstCertYn == "D"} - max={4} - /> - - )}} - /> +
+

설치비 지원

-
- - { +
+
+ ( + + { } : field.onChange} + value={field.value ?? code.bdstIncenYn[0]?.val} + readOnly={readonly} + /> + + )} + /> +
+
+ { + const value = field.value; + const isUnknown = value === null || value === -1; // 또는 Number(value) === -1 + return ( + + { + // 입력 시 자동으로 확인불가 해제 + if (isUnknown && !readonly) { + field.onChange(""); // 초기화 + } + }} + onChange={(e) => { + if (readonly) return; + handleMinusNumberChange(e, field.onChange); + }} + disabled={instlCstSprtYn === "N" || instlCstSprtYn === "D"} + /> + + ); + }} + /> +
+
+ +
+

녹색건축물 인증

+
+
+
+ ( + + { } : field.onChange} + value={field.value || code.yn[0]?.val} + readOnly={readonly} + /> + + )} + /> +
+
+ { const isUnknown = field.value === null || field.value === "0000"; // 또는 Number(value) === -1 - return ( - - { - // 입력 시 자동으로 확인불가 해제 - if (isUnknown && !readonly) { - field.onChange(""); // 초기화 - } - }} - value={ - isUnknown?'확인불가':field.value ?? ""} - onChange={(e) => { - if (readonly) return - - if (e.target.value === '확인불가') { - field.onChange(''); - }else{ - field.onChange(e.target.value); - } - }} - disabled={grntchBdstCertYn == "N" || grntchBdstCertYn == "D"} - + return ( + + { + // 입력 시 자동으로 확인불가 해제 + if (isUnknown && !readonly) { + field.onChange(""); // 초기화 + } + }} + value={ + isUnknown ? '확인불가' : field.value ?? ""} + onChange={(e) => { + if (readonly) return + if (e.target.value === '확인불가') { + field.onChange('0000'); + } else { + field.onChange(e.target.value); + } + }} + disabled={grntchBdstCertYn == "N" || grntchBdstCertYn == "D"} + max={4} + /> + + ) + }} + /> +
+
+ { + const isUnknown = field.value === null || field.value === "0000"; // 또는 Number(value) === -1 + return ( + + { + // 입력 시 자동으로 확인불가 해제 + if (isUnknown && !readonly) { + field.onChange(""); // 초기화 + } + }} + value={ + isUnknown ? '확인불가' : field.value ?? ""} + onChange={(e) => { + if (readonly) return + + if (e.target.value === '확인불가') { + field.onChange(''); + } else { + field.onChange(e.target.value); + } + }} + disabled={grntchBdstCertYn == "N" || grntchBdstCertYn == "D"} - /> - - )}} - /> + + /> + + ) + }} + /> +
+
+ ( + + { } : field.onChange} + value={field.value ?? code.bdstGrntchClass[0]?.val} + readOnly={readonly} + /> + + )} + /> +
-
- ( - - {} : field.onChange} - value={field.value ?? code.bdstGrntchClass[0]?.val} - readOnly={readonly} - /> - - )} - /> -
-
+