물재이용 31번까지 수정
This commit is contained in:
@@ -77,15 +77,18 @@ export default function CoSttn() {
|
||||
}, [coSttn.isInit, coSttnInit]);
|
||||
|
||||
useEffect(() => {
|
||||
if (coSttnRes?.length > 0 && code.cityCd.length > 0) {
|
||||
const data = tableData(coSttnRes, { code });
|
||||
const chData = data.map((item: any) => ({
|
||||
...item,
|
||||
}));
|
||||
// .filter((item: any) => item !== undefined);
|
||||
setBdstTable(chData);
|
||||
} else if (coSttnRes.length == 0) {
|
||||
setBdstTable([]);
|
||||
if(coSttnRes){
|
||||
|
||||
if (coSttnRes?.length > 0 && code.cityCd.length > 0) {
|
||||
const data = tableData(coSttnRes, { code });
|
||||
const chData = data.map((item: any) => ({
|
||||
...item,
|
||||
}));
|
||||
// .filter((item: any) => item !== undefined);
|
||||
setBdstTable(chData);
|
||||
} else if (coSttnRes?.length == 0) {
|
||||
setBdstTable([]);
|
||||
}
|
||||
}
|
||||
}, [coSttnRes, code]);
|
||||
|
||||
|
||||
@@ -158,7 +158,7 @@ export default function Home() {
|
||||
</div>
|
||||
</div>
|
||||
<UiModal
|
||||
body={<BdstReg moType="RNB"></BdstReg>}
|
||||
body={<BdstReg moType="RNB" isModal={issNewReg} setIsModal={setIsNewReg} ></BdstReg>}
|
||||
bodyClass="w-[68vw] max-w-none h-[90vh]"
|
||||
open={issNewReg}
|
||||
onOpenChange={(open) => {
|
||||
|
||||
@@ -9,7 +9,26 @@ const yn: SelectDataType[] = [
|
||||
{ val: 'Y', text: 'Y' },
|
||||
{ val: 'N', text: 'N' },
|
||||
]
|
||||
const bdstFilterYn: SelectDataType[] = [
|
||||
{ val: 'Y', text: 'Y' },
|
||||
{ val: 'N', text: 'N' },
|
||||
{ val: 'D', text: '확인불가' },
|
||||
{ val: 'F', text: '미가동' },
|
||||
]
|
||||
// 최우수(그린1)/우수(그린2), 우량(그린3), 일반(그린4), 확인불가 체크
|
||||
const bdstGrntchClass: SelectDataType[] = [
|
||||
{ val: '최우수(그린1)', text: '최우수(그린1)' },
|
||||
{ val: '우수(그린2)', text: '우수(그린2)' },
|
||||
{ val: '우량(그린3)', text: '우량(그린3)' },
|
||||
{ val: '일반(그린4)', text: '일반(그린4)' },
|
||||
{ val: '확인불가', text: '확인불가' },
|
||||
|
||||
]
|
||||
const bdstIncenYn: SelectDataType[] = [
|
||||
{ val: 'Y', text: 'Y' },
|
||||
{ val: 'N', text: 'N' },
|
||||
{ val: 'D', text: '확인불가' },
|
||||
]
|
||||
//처리장연계/자체+연계/자체처리
|
||||
const erctUswtrPrcsMeth : SelectDataType[]= [
|
||||
{ val: '처리장연계', text: '처리장연계' },
|
||||
@@ -204,6 +223,9 @@ export type comCodeState = {
|
||||
ruseBizMthdCd: SelectDataType[];
|
||||
rusePrcsMthdCd: SelectDataType[];
|
||||
erctUswtrPrcsMeth: SelectDataType[];
|
||||
bdstFilterYn: SelectDataType[];
|
||||
bdstIncenYn: SelectDataType[];
|
||||
bdstGrntchClass:SelectDataType[];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -217,7 +239,7 @@ export const getSggCd = async (set: any) => {
|
||||
})); */
|
||||
|
||||
const sggCd = [
|
||||
{ text: "전체", val: '0' },
|
||||
// { text: "전체", val: '0' },
|
||||
...sgg
|
||||
.map((item: any) => ({
|
||||
text: item.gugun || '',
|
||||
@@ -356,7 +378,10 @@ export const comCodeStateExport: comCodeState = {
|
||||
ruseSeCd:ruseSeCd,
|
||||
ruseBizMthdCd: ruseBizMthdCd,
|
||||
rusePrcsMthdCd:rusePrcsMthdCd,
|
||||
erctUswtrPrcsMeth:erctUswtrPrcsMeth
|
||||
erctUswtrPrcsMeth:erctUswtrPrcsMeth,
|
||||
bdstFilterYn:bdstFilterYn,
|
||||
bdstIncenYn:bdstIncenYn,
|
||||
bdstGrntchClass:bdstGrntchClass
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ export const TEST_UUID= '2d4b151d-1828-41e0-91d9-4cd28ea1cc7e'
|
||||
const rainyObjSchema = z.object({
|
||||
bdstReuseFcltFk: z.number().nullish(),
|
||||
pntfColKnd: z.string().min(1, { message: validationMessages.requiredSelect("종류") }),
|
||||
pntfColArea: z.number().positive({ message: validationMessages.required("면적(m³)") }),
|
||||
pntfColArea: z.number().nullish() ,
|
||||
dtfcltCpct: z.number().default(0),
|
||||
filtrTrtmfctYn: z.string().default("Y"),
|
||||
filtrTrtmfctCpct: z.number().nullish().default(0),
|
||||
@@ -162,29 +162,27 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = (
|
||||
|
||||
const test =await makeRstr(data);
|
||||
const res = await postFectch("/reuseFc/rainyInfo", test);
|
||||
if(res.ok){
|
||||
if(res.status===200){
|
||||
if(data.chgBuilding.length > 0){
|
||||
await res.json().then((resData: any) => {
|
||||
const chPK = resData?.data?.bdstInfoPk
|
||||
const makeCh= resData.data.chgBuilding.map((item: chgBuilding) =>
|
||||
|
||||
const chPK = res?.data?.bdstInfoPk
|
||||
const makeCh= res.data.chgBuilding.map((item: chgBuilding) =>
|
||||
( {
|
||||
...item,
|
||||
bdstInfoFk: chPK,
|
||||
})
|
||||
);
|
||||
const chch= postFectch("/reuseFc/chgBuilding", makeCh);
|
||||
return chch;
|
||||
}).then((chch: any) => {
|
||||
|
||||
console.log('chch ', chch)
|
||||
const chch= await postFectch("/reuseFc/chgBuilding", makeCh);
|
||||
if(chch.status ===200) {
|
||||
toast.success("등록이 완료되었습니다.");
|
||||
|
||||
toast.success("건축물 등록이 완료되었습니다.");
|
||||
}else{
|
||||
toast.error("건축물 증축/개축/중축 오류입니다.");
|
||||
}
|
||||
})
|
||||
}else{
|
||||
toast.success("등록이 완료되었습니다.");
|
||||
toast.success("건축물 등록이 완료되었습니다.");
|
||||
}
|
||||
}else{
|
||||
toast.error("건축물 등록이 완료되었습니다.");
|
||||
}
|
||||
const rainRes = await initFetch(code);
|
||||
set((state: rainFacState) => ({
|
||||
@@ -197,7 +195,7 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = (
|
||||
}));
|
||||
} catch (e) {
|
||||
console.log("e", e);
|
||||
alert("등록 오류입니다.");
|
||||
toast.error("등록시 오류가 발생하였습니다.");
|
||||
} finally {
|
||||
}
|
||||
},
|
||||
@@ -205,9 +203,9 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = (
|
||||
try {
|
||||
const chData =await makeMdfr(data);
|
||||
const res = await putFectch("/reuseFc/rainyInfo", chData);
|
||||
console.log('rainUpdate', res);
|
||||
if(res.ok){
|
||||
alert(" 수정이 완료되었습니다.")
|
||||
if(res.status === 200){
|
||||
toast.success("수정이 완료되었습니다.");
|
||||
|
||||
}
|
||||
const rainRes = await initFetch(code);
|
||||
set((state: rainFacState) => ({
|
||||
@@ -220,7 +218,7 @@ export const rainFacActionsExport: (set: any) => rainFacSActions = (
|
||||
}));
|
||||
} catch (e) {
|
||||
console.log("e", e);
|
||||
alert("업데이트 오류입니다.");
|
||||
toast.error("수정시 오류가 발생하였습니다.");
|
||||
} finally {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,19 +17,28 @@ export const baseReuseBuildingSchema = z.object({
|
||||
instlCstSprtYn: z.string().default("Y"),
|
||||
instlCstSprtAmt: z.number().nullish(),
|
||||
grntchBdstCertYn: z.string().default("Y"),
|
||||
grntchBdstCertYr: z.string().default("").refine(
|
||||
grntchBdstCertYr: z
|
||||
.string()
|
||||
.max(4, { message: validationMessages.yearFormat })
|
||||
.refine(
|
||||
(year) => year.length === 0 || /^\d{4}$/.test(year),
|
||||
{
|
||||
message: validationMessages.yearFormat,
|
||||
}
|
||||
),
|
||||
)
|
||||
.nullish(),
|
||||
grntchBdstCertNo: z.string().default(""),
|
||||
grntchBdstCertGrd: z.string().default(""),
|
||||
crgRdctYn: z.string().default("N").nullish(), /// 안쓰는 값
|
||||
crgRdctBss: z.string().default("").nullish(), /// 안쓰는 값
|
||||
crgRdctAmt: z.number().default(0), // 안쓰는 값
|
||||
ruseFcltFlg: z.string().default(""),
|
||||
bdstUsgCd: z.number().min(1, { message: validationMessages.requiredSelect("건축물용도") }).default(0),
|
||||
bdstUsgCd: z
|
||||
.number()
|
||||
.default(0)
|
||||
.refine((val) => val === -1 || val >= 1, {
|
||||
message: validationMessages.requiredSelect("건축물용도"),
|
||||
}),
|
||||
lawTrgtYn: z.string().default("Y"),
|
||||
rgtr: z.string().nullish(),
|
||||
mdfr: z.string().nullish(),
|
||||
|
||||
@@ -9,12 +9,22 @@ import {
|
||||
import type { RefObject } from "react";
|
||||
|
||||
export const getCity = (val: string, sggCd: SelectDataType[]) => {
|
||||
const data = sggCd
|
||||
.filter((item) => String(item.val).substring(0, 2) === val)
|
||||
|
||||
let data:any
|
||||
if(val !=='0'){
|
||||
data = sggCd
|
||||
.filter((item) => String(item.val).substring(0, 2) === val)
|
||||
.map((item) => ({
|
||||
val: item.val,
|
||||
text: item.text, // 한국어 텍스트
|
||||
}));
|
||||
}else{
|
||||
data = sggCd
|
||||
.map((item) => ({
|
||||
val: item.val,
|
||||
text: item.text, // 한국어 텍스트
|
||||
}));
|
||||
}
|
||||
data.unshift({ val: "0", text: "전체" });
|
||||
return data;
|
||||
};
|
||||
@@ -103,7 +113,18 @@ export const handleCommaNumberChange = (
|
||||
) => {
|
||||
const raw = e.target.value.replace(/,/g, "");
|
||||
if (!/^\d*$/.test(raw)) return;
|
||||
onChange(raw === "" ? "" : Number(raw));
|
||||
onChange(raw === "" ? "" : Number(raw));
|
||||
};
|
||||
|
||||
|
||||
// onchange 텍스트를 숫자로 and ,제거
|
||||
export const handleMinusNumberChange = (
|
||||
e: React.ChangeEvent<HTMLInputElement>,
|
||||
onChange: (value: number | "") => void
|
||||
) => {
|
||||
const raw = e.target.value.replace(/,/g, "");
|
||||
if (!/^\d*$/.test(raw)) return;
|
||||
onChange(raw === "" ? -1 : Number(raw));
|
||||
};
|
||||
|
||||
// 숫자입력시 , 삽입
|
||||
|
||||
@@ -16,8 +16,7 @@ import {
|
||||
type SelectDataType,
|
||||
} from "@common/business_components";
|
||||
import { Button, Checkbox, Input } from "@common/components";
|
||||
import { Check } from "lucide-react";
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useFieldArray } from "react-hook-form";
|
||||
|
||||
export default function BdstReg({ form }: { form: any }) {
|
||||
@@ -37,12 +36,6 @@ export default function BdstReg({ form }: { form: any }) {
|
||||
bdstUsgCd: "",
|
||||
});
|
||||
};
|
||||
// 잠깐 주석처리
|
||||
// const removeLastItem = () => {
|
||||
// if (fields.length > 0) {
|
||||
// remove(fields.length - 1);
|
||||
// }
|
||||
// };
|
||||
const removeSelected = () => {
|
||||
const idxsToRemove = fields
|
||||
.map((item, idx) => selectedIds.includes(item.id) ? idx : -1)
|
||||
@@ -100,7 +93,7 @@ export default function BdstReg({ form }: { form: any }) {
|
||||
return (
|
||||
<>
|
||||
<h1 className={formH1Class}>
|
||||
건축물 시설 정보
|
||||
건축물 기본 정보
|
||||
</h1>
|
||||
<div className="grid grid-cols-6 gap-2 mt-4">
|
||||
<div className="col-span-3">
|
||||
@@ -155,7 +148,7 @@ export default function BdstReg({ form }: { form: any }) {
|
||||
<FormUi label="건축물명">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="1,000,000"
|
||||
placeholder="건축물 명 입력하세요"
|
||||
type="text"
|
||||
{...field}
|
||||
/>
|
||||
@@ -168,10 +161,10 @@ export default function BdstReg({ form }: { form: any }) {
|
||||
control={form.control}
|
||||
name="daddr"
|
||||
render={({ field }) => (
|
||||
<FormUi label="위치">
|
||||
<FormUi label="건축물 주소">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder=""
|
||||
placeholder="위치를 입력해주세요"
|
||||
type="search"
|
||||
{...field}
|
||||
/>
|
||||
@@ -225,7 +218,7 @@ export default function BdstReg({ form }: { form: any }) {
|
||||
<FormUi label="건축면적(m³)">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="1,000,000"
|
||||
placeholder="면적을 입력하세요"
|
||||
type="text"
|
||||
onChange={(e) => {
|
||||
handleCommaNumberChange(e, field.onChange);
|
||||
@@ -324,8 +317,8 @@ export default function BdstReg({ form }: { form: any }) {
|
||||
<Input
|
||||
placeholder="-"
|
||||
type="text"
|
||||
onChange={e => handleCommaNumberChange(e, f.onChange)}
|
||||
value={formatCommaNumber(f.value)}
|
||||
onChange={e => f.onChange}
|
||||
value={f.value}
|
||||
className={selectClass}
|
||||
/>
|
||||
</FormUi>
|
||||
|
||||
@@ -30,7 +30,11 @@ import { Button, DataTable, Input, Label } from "@common/components";
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
import { useFieldArray, useForm, type UseFormReturn } from "react-hook-form";
|
||||
import MngRegFormDetail from "../mngReg/mngRegFormDetail/mngRegFormDetail";
|
||||
import { safeDate } from "@/components/lib/func/commom";
|
||||
import {
|
||||
formatCommaNumber,
|
||||
handleCommaNumberChange,
|
||||
safeDate,
|
||||
} from "@/components/lib/func/commom";
|
||||
import SearchInputText from "@/components/ui/searchInput/searchInput";
|
||||
import SdmInsertForm from "@common/business_components/ui/sdmInsertForm";
|
||||
import type { DemandCompType } from "@common/business_components/ui/sdmInsertForm/form";
|
||||
@@ -82,54 +86,57 @@ export function PbnstBuseForm({
|
||||
}>({ isMoal: false, data: {} as DemandCompType });
|
||||
|
||||
useEffect(() => {
|
||||
const etc= isNaN(Number(form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.etc`)))
|
||||
const etc = isNaN(
|
||||
Number(form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.etc`))
|
||||
);
|
||||
let total =
|
||||
(form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.gvsbs`) ?? 0) +
|
||||
(form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.lcep`) ?? 0) +
|
||||
(form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.cusrAlotm`) ?? 0)
|
||||
|
||||
if( !etc ) {
|
||||
total+=Number(form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.etc`))
|
||||
}
|
||||
(form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.cusrAlotm`) ?? 0);
|
||||
|
||||
if (!etc) {
|
||||
total += Number(
|
||||
form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.etc`)
|
||||
);
|
||||
}
|
||||
|
||||
form.setValue(`items.${indexMng}.fcBizs.${indexBiz}.totalMoney`, total);
|
||||
}, [
|
||||
form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.gvsbs`),
|
||||
form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.lcep`),
|
||||
form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.cusrAlotm`),
|
||||
form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.etc`)
|
||||
form.getValues(`items.${indexMng}.fcBizs.${indexBiz}.etc`),
|
||||
]);
|
||||
|
||||
const fcOrgwts = form.watch(`items.${indexMng}.fcBizs.${indexBiz}.fcOrgwts`);
|
||||
|
||||
const fcOrgwts = form.watch( `items.${indexMng}.fcBizs.${indexBiz}.fcOrgwts`)
|
||||
|
||||
useEffect(() =>{
|
||||
|
||||
console.log('fcOrgwts ', fcOrgwts)
|
||||
if(fcOrgwts&&fcOrgwts?.length>0){
|
||||
useEffect(() => {
|
||||
console.log("fcOrgwts ", fcOrgwts);
|
||||
if (fcOrgwts && fcOrgwts?.length > 0) {
|
||||
const swtrmtFcltFkList = fcOrgwts.map((item) => item.swtrmtFcltFk);
|
||||
|
||||
console.log('swtrmtFcltFkList ', swtrmtFcltFkList)
|
||||
console.log("swtrmtFcltFkList ", swtrmtFcltFkList);
|
||||
|
||||
if(swtrmtFcltFkList.length > 0){
|
||||
getFcOrgwts(swtrmtFcltFkList.filter((item): item is string => item != null), fcOrgwts?.length)
|
||||
if (swtrmtFcltFkList.length > 0) {
|
||||
getFcOrgwts(
|
||||
swtrmtFcltFkList.filter((item): item is string => item != null),
|
||||
fcOrgwts?.length
|
||||
);
|
||||
}
|
||||
}
|
||||
},[fcOrgwts])
|
||||
|
||||
useEffect(() =>{
|
||||
}, [fcOrgwts]);
|
||||
|
||||
useEffect(() => {
|
||||
if (fcOrgwtsNmList && fcOrgwtsNmList.length > 0) {
|
||||
|
||||
console.log('fcOrgwtsNmList ', fcOrgwtsNmList)
|
||||
console.log('fcOrgwts ', fcOrgwts)
|
||||
console.log("fcOrgwtsNmList ", fcOrgwtsNmList);
|
||||
console.log("fcOrgwts ", fcOrgwts);
|
||||
|
||||
fcOrgwts?.forEach((item, index) => {
|
||||
const orgwtNm = fcOrgwtsNmList.find(
|
||||
(orgwt) => orgwt.bscFctCd === item.swtrmtFcltFk
|
||||
)?.bscFctNm;
|
||||
|
||||
console.log('orgwtNm ', orgwtNm)
|
||||
console.log("orgwtNm ", orgwtNm);
|
||||
if (orgwtNm) {
|
||||
form.setValue(
|
||||
`items.${indexMng}.fcBizs.${indexBiz}.fcOrgwts.${index}.ruseUtztnFcltNm`,
|
||||
@@ -137,10 +144,8 @@ export function PbnstBuseForm({
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
},[fcOrgwtsNmList,fcOrgwts])
|
||||
|
||||
}
|
||||
}, [fcOrgwtsNmList, fcOrgwts]);
|
||||
|
||||
// fcBizs 데이터가 변경될 때마다 차수 선택 목록을 업데이트합니다.
|
||||
useEffect(() => {
|
||||
@@ -294,7 +299,6 @@ export function PbnstBuseForm({
|
||||
setSumCpct(sum);
|
||||
}, [form.formState, indexMng, indexBiz]);
|
||||
|
||||
|
||||
const pbnstBiz = form.watch(`items.${indexMng}.fcBizs`);
|
||||
return (
|
||||
<>
|
||||
@@ -527,7 +531,9 @@ export function PbnstBuseForm({
|
||||
).map((field, index) => (
|
||||
<div
|
||||
key={`fcDemands-${indexMng}-${indexBiz}=${index}`} // 이게 핵심!
|
||||
className="grid grid-cols-12 gap-4 mt-3"
|
||||
className="grid grid-cols-12 gap-4 mt-3
|
||||
border-b border-gray-400 pb-3
|
||||
"
|
||||
>
|
||||
<div key={index + "keySon1"} className="col-span-4">
|
||||
<FormField
|
||||
@@ -661,11 +667,11 @@ export function PbnstBuseForm({
|
||||
<FormUi label="(계약)공급량(m3/일)">
|
||||
<Input
|
||||
placeholder=""
|
||||
type="number"
|
||||
value={f.value ?? 0}
|
||||
type="text"
|
||||
onChange={(e) => {
|
||||
f.onChange(Number(e.target.value));
|
||||
handleCommaNumberChange(e, f.onChange);
|
||||
}}
|
||||
value={formatCommaNumber(f.value)}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
@@ -691,7 +697,6 @@ export function PbnstBuseForm({
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
<br></br>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
+1
-1
@@ -97,7 +97,7 @@ export default function MngRegFormDetail({
|
||||
: []
|
||||
}
|
||||
onSelectValue={field.onChange}
|
||||
value={field.value.trim()}
|
||||
value={field.value?.trim() ??""}
|
||||
readOnly={formHead.option === "readOnly"}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -4,29 +4,38 @@ import { useWrStore } from "@/app/store";
|
||||
import {
|
||||
rainZod,
|
||||
selectClass,
|
||||
type customRainBdst
|
||||
type customRainBdst,
|
||||
} from "@/app/store/ruseFcltMng/fcltReg/rainReg";
|
||||
import { formH1Class, formH2Class } from "@/components/lib/class/comClass";
|
||||
import {
|
||||
formatCommaNumber,
|
||||
handleCommaNumberChange,
|
||||
handleMinusNumberChange,
|
||||
} from "@/components/lib/func/commom";
|
||||
import { DatePicker, FormUi } from "@common/business_components";
|
||||
import { Form, FormField, SelectBox } from "@common/business_components/ui";
|
||||
import { Button, Input } from "@common/components/ui";
|
||||
import {
|
||||
Form,
|
||||
FormField,
|
||||
FormLabel,
|
||||
SelectBox,
|
||||
} from "@common/business_components/ui";
|
||||
import { Button, Checkbox, Input, Label } from "@common/components/ui";
|
||||
import { zodResolver } from "@hookform/resolvers/zod";
|
||||
import { useEffect } from "react";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useForm } from "react-hook-form";
|
||||
import { z } from "zod";
|
||||
import BdstReg from "../bdstReg/bdstReg";
|
||||
import toast from "react-hot-toast";
|
||||
|
||||
export default function RainRegForm({
|
||||
rainForm,
|
||||
isModal,
|
||||
readonly = false
|
||||
readonly = false,
|
||||
setIsModal
|
||||
}: {
|
||||
rainForm: customRainBdst;
|
||||
isModal: boolean;
|
||||
setIsModal?:(modal:boolean) => void
|
||||
readonly?: boolean;
|
||||
}) {
|
||||
const { code, rainBdstReg, rainBdstUpdate, rain } = useWrStore(
|
||||
@@ -38,6 +47,7 @@ export default function RainRegForm({
|
||||
resolver: zodResolver(rainZod),
|
||||
defaultValues: defaultValues,
|
||||
});
|
||||
const instlCst = form.watch(`reuseBuilding.0.instlCst`);
|
||||
|
||||
const [grntchBdstCertYn, instlCstSprtYn, filtrTrtmfctYn] = form.watch([
|
||||
"reuseBuilding.0.grntchBdstCertYn",
|
||||
@@ -69,7 +79,7 @@ export default function RainRegForm({
|
||||
? item?.grntchBdstCertYr
|
||||
: "", // null → ""
|
||||
instlCstSprtYn: item?.instlCstSprtYn ?? "Y", // null → "Y"
|
||||
grntchBdstCertYn:item?.grntchBdstCertYn??"Y",
|
||||
grntchBdstCertYn: item?.grntchBdstCertYn ?? "Y",
|
||||
rainyObj: {
|
||||
...item?.rainyObj,
|
||||
filtrTrtmfctYn: item?.rainyObj?.filtrTrtmfctYn ?? "Y",
|
||||
@@ -79,7 +89,6 @@ export default function RainRegForm({
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
if (grntchBdstCertYn === "N") {
|
||||
form.setValue("reuseBuilding.0.grntchBdstCertYr", "");
|
||||
form.setValue("reuseBuilding.0.grntchBdstCertNo", "");
|
||||
@@ -90,15 +99,25 @@ export default function RainRegForm({
|
||||
form.setValue("reuseBuilding.0.rainyObj.filtrTrtmfctCpct", 0);
|
||||
form.setValue("reuseBuilding.0.rainyObj.filtrTrtmfctPrs", "");
|
||||
}
|
||||
|
||||
if(grntchBdstCertYn === "D") {
|
||||
form.setValue("reuseBuilding.0.grntchBdstCertYr", "0000");
|
||||
form.setValue("reuseBuilding.0.grntchBdstCertNo", "확인불가");
|
||||
form.setValue("reuseBuilding.0.grntchBdstCertGrd", "확인불가");
|
||||
}else if (instlCstSprtYn === "D") {
|
||||
form.setValue("reuseBuilding.0.instlCstSprtAmt", -1);
|
||||
} else if (filtrTrtmfctYn === "D") {
|
||||
form.setValue("reuseBuilding.0.rainyObj.filtrTrtmfctCpct", -1);
|
||||
form.setValue("reuseBuilding.0.rainyObj.filtrTrtmfctPrs", "확인불가");
|
||||
}
|
||||
|
||||
}, [grntchBdstCertYn, instlCstSprtYn, filtrTrtmfctYn]);
|
||||
|
||||
|
||||
|
||||
const [regCtpvCd , regSggcd] = form.watch(['ctpvCd','sggCd'])
|
||||
|
||||
// form 값이 변경될 때마다 로그 출력
|
||||
useEffect(() => {
|
||||
const subscription = form.watch((value) => {
|
||||
});
|
||||
const subscription = form.watch((value) => {});
|
||||
return () => subscription.unsubscribe();
|
||||
}, [form]);
|
||||
|
||||
@@ -108,7 +127,15 @@ export default function RainRegForm({
|
||||
|
||||
const onSubmit = (values: z.infer<typeof rainZod>) => {
|
||||
if (isModal) {
|
||||
rainBdstReg(values, "41");
|
||||
const data = regCtpvCd?regCtpvCd:regSggcd?regSggcd:'noCd'
|
||||
|
||||
if(data ==='noCd'){
|
||||
toast.error("시도/시군구 코드를 선택해야합니다.");
|
||||
return
|
||||
}
|
||||
|
||||
rainBdstReg(values, data);
|
||||
setIsModal(false)
|
||||
} else {
|
||||
rainBdstUpdate(values, "41");
|
||||
}
|
||||
@@ -125,10 +152,14 @@ export default function RainRegForm({
|
||||
<div>
|
||||
<div className="grid grid-cols-12 flex items-center card-header">
|
||||
<h1 className="text-2xl font-medium text-label col-span-10">
|
||||
{isModal ? "건축물 운영정보" : "빗물이용시설 정보"}
|
||||
{isModal ? "건축물 정보" : "빗물이용시설 정보"}
|
||||
</h1>
|
||||
{!readonly && (
|
||||
<Button type="submit" className="col-start-12 col-span-1" size={"sm"}>
|
||||
<Button
|
||||
type="submit"
|
||||
className="col-start-12 col-span-1"
|
||||
size={"sm"}
|
||||
>
|
||||
저장
|
||||
</Button>
|
||||
)}
|
||||
@@ -142,12 +173,9 @@ export default function RainRegForm({
|
||||
) : (
|
||||
<></>
|
||||
)}
|
||||
<h1 className={formH1Class}>
|
||||
기본정보
|
||||
</h1>
|
||||
|
||||
<div className="grid grid-cols-4 gap-2 mt-4">
|
||||
<div className="col-span-2">
|
||||
<h1 className={formH1Class}>기본정보</h1>
|
||||
<div className="grid grid-cols-6 gap-2 mt-4">
|
||||
<div className="col-span-3">
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.instlCmptnDt"
|
||||
@@ -160,7 +188,8 @@ export default function RainRegForm({
|
||||
field.value && !isNaN(new Date(field.value).getTime())
|
||||
? new Date(field.value)
|
||||
: new Date(),
|
||||
onChange: (date: Date | undefined) => field.onChange(date),
|
||||
onChange: (date: Date | undefined) =>
|
||||
field.onChange(date),
|
||||
}}
|
||||
selectClass={"w-full"}
|
||||
readOnly={readonly}
|
||||
@@ -170,48 +199,95 @@ export default function RainRegForm({
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="col-span-2">
|
||||
<div className="col-span-3">
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.instlCst"
|
||||
render={({ field }) => (
|
||||
<FormUi label="설치비">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="1,000,000"
|
||||
type="text"
|
||||
onChange={(e) => {
|
||||
if (!readonly) handleCommaNumberChange(e, field.onChange);
|
||||
}}
|
||||
value={formatCommaNumber(field.value)}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
name={`reuseBuilding.0.instlCst`}
|
||||
render={({ field }) => {
|
||||
const value = field.value;
|
||||
const isUnknown = value === null || value === -1; // 또는 Number(value) === -1
|
||||
return (
|
||||
<div className="flex items-center gap-2">
|
||||
<FormUi label="설치비(원)">
|
||||
<Input
|
||||
placeholder="1,000,000"
|
||||
type="text"
|
||||
className={selectClass}
|
||||
readOnly={readonly }
|
||||
value={
|
||||
isUnknown ? "확인불가" : formatCommaNumber(value)
|
||||
}
|
||||
onFocus={() => {
|
||||
// 입력 시 자동으로 확인불가 해제
|
||||
if (isUnknown && !readonly) {
|
||||
field.onChange(""); // 초기화
|
||||
}
|
||||
}}
|
||||
onChange={(e) => {
|
||||
if (readonly ) return;
|
||||
handleMinusNumberChange(e, field.onChange);
|
||||
}}
|
||||
/>
|
||||
</FormUi>
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="">
|
||||
<h1 className={formH1Class}>
|
||||
빗물이용시설 정보
|
||||
</h1>
|
||||
<h1 className={formH1Class}>빗물이용시설 정보</h1>
|
||||
</div>
|
||||
<div>
|
||||
<h2 className={formH2Class}>집수면</h2>
|
||||
<h2 className={formH2Class}>집수면 및 저류조</h2>
|
||||
</div>
|
||||
<div className="grid grid-cols-10 gap-4 mt-4 ">
|
||||
<div className="col-span-5">
|
||||
<div className="grid grid-cols-12 gap-4 mt-4 ">
|
||||
<div className="col-span-4">
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.rainyObj.dtfcltCpct"
|
||||
render={({ field }) =>
|
||||
|
||||
{
|
||||
const isUnknown = field.value === null || field.value === -1; // 또는 Number(value) === -1
|
||||
return (
|
||||
<FormUi label="저류조 용량(m³)">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="1,000,000"
|
||||
type="text"
|
||||
value={
|
||||
isUnknown ? "확인불가" : formatCommaNumber(field.value)
|
||||
}
|
||||
onFocus={() => {
|
||||
// 입력 시 자동으로 확인불가 해제
|
||||
if (isUnknown && !readonly) {
|
||||
field.onChange(""); // 초기화
|
||||
}
|
||||
}}
|
||||
onChange={(e) => {
|
||||
if (readonly ) return;
|
||||
handleMinusNumberChange(e, field.onChange);
|
||||
}}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
</FormUi>
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-span-4">
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.rainyObj.pntfColKnd"
|
||||
render={({ field }) => (
|
||||
<FormUi label="종류">
|
||||
<FormUi label="집수면 종류">
|
||||
<SelectBox
|
||||
className={""}
|
||||
selectClass={selectClass}
|
||||
label={""}
|
||||
selectArray={rainFcltCd}
|
||||
onSelectValue={readonly ? () => { } : field.onChange}
|
||||
onSelectValue={readonly ? () => {} : field.onChange}
|
||||
value={field.value ?? rainFcltCd[0]?.val}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
@@ -219,24 +295,40 @@ export default function RainRegForm({
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-span-5">
|
||||
<div className="col-span-4">
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.rainyObj.pntfColArea"
|
||||
render={({ field }) => (
|
||||
<FormUi label="면적(m³)">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="1,000,000"
|
||||
type="text"
|
||||
onChange={(e) => {
|
||||
if (!readonly) handleCommaNumberChange(e, field.onChange);
|
||||
}}
|
||||
value={formatCommaNumber(field.value)}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
render={({ field }) => {
|
||||
const value = field.value;
|
||||
const isUnknown = value === null || value === -1; // 또는 Number(value) === -1
|
||||
return (
|
||||
<div className="flex items-center gap-2">
|
||||
<FormUi label="집수면 용량(m³)">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="1,000,000"
|
||||
type="text"
|
||||
value={
|
||||
isUnknown ? "확인불가" : formatCommaNumber(value)
|
||||
}
|
||||
onFocus={() => {
|
||||
// 입력 시 자동으로 확인불가 해제
|
||||
if (isUnknown && !readonly) {
|
||||
field.onChange(""); // 초기화
|
||||
}
|
||||
}}
|
||||
onChange={(e) => {
|
||||
if (readonly ) return;
|
||||
handleMinusNumberChange(e, field.onChange);
|
||||
}}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
</FormUi>
|
||||
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -255,8 +347,8 @@ export default function RainRegForm({
|
||||
className={""}
|
||||
selectClass={selectClass}
|
||||
label={""}
|
||||
selectArray={code.yn}
|
||||
onSelectValue={readonly ? () => { } : field.onChange}
|
||||
selectArray={code.bdstFilterYn}
|
||||
onSelectValue={readonly ? () => {} : field.onChange}
|
||||
value={field.value ?? code.yn[0]?.val}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
@@ -268,47 +360,68 @@ export default function RainRegForm({
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.rainyObj.filtrTrtmfctCpct"
|
||||
render={({ field }) => (
|
||||
render={({ field }) =>
|
||||
|
||||
|
||||
{
|
||||
const isUnknown = field.value === null || field.value === -1; // 또는 Number(value) === -1
|
||||
return(
|
||||
<FormUi label="용량(m³/일)">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="1,000,000"
|
||||
type="text"
|
||||
onChange={(e) => {
|
||||
if (!readonly) handleCommaNumberChange(e, field.onChange);
|
||||
value={
|
||||
isUnknown ? "확인불가" : formatCommaNumber(field.value)
|
||||
}
|
||||
onFocus={() => {
|
||||
// 입력 시 자동으로 확인불가 해제
|
||||
if (isUnknown && !readonly) {
|
||||
field.onChange(""); // 초기화
|
||||
}
|
||||
}}
|
||||
value={formatCommaNumber(field.value)}
|
||||
readOnly={readonly }
|
||||
onChange={(e) => {
|
||||
if (readonly ) return;
|
||||
handleMinusNumberChange(e, field.onChange);
|
||||
}}
|
||||
readOnly={readonly}
|
||||
disabled={filtrTrtmfctYn !== "Y"}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
)
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-span-4">
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.rainyObj.filtrTrtmfctPrs"
|
||||
render={({ field }) => (
|
||||
<FormUi label="처리공정">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder=""
|
||||
type="text"
|
||||
value={field.value ?? ""}
|
||||
onChange={field.onChange}
|
||||
readOnly={readonly }
|
||||
disabled={filtrTrtmfctYn !== "Y"}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
render={({ field }) => {
|
||||
const value = field.value;
|
||||
const isUnknown = value === null || value === "-"; // 또는 Number(value) === -1
|
||||
|
||||
return (
|
||||
<div className="flex items-center gap-2">
|
||||
<FormUi label="처리공정">
|
||||
<Input
|
||||
className={' h-full !text-xl col-span-4' }
|
||||
placeholder="처리공정 입력"
|
||||
type="text"
|
||||
value={field.value ?? ""}
|
||||
onChange={field.onChange}
|
||||
readOnly={readonly}
|
||||
disabled={filtrTrtmfctYn !== "Y"}
|
||||
/>
|
||||
</FormUi>
|
||||
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className=" my-2">
|
||||
<h1 className={formH1Class}>
|
||||
인센티브 정보
|
||||
</h1>
|
||||
<h1 className={formH1Class}>인센티브 정보</h1>
|
||||
</div>
|
||||
<div>
|
||||
<h2 className={formH2Class}>설치비 지원</h2>
|
||||
@@ -324,8 +437,8 @@ export default function RainRegForm({
|
||||
className={""}
|
||||
selectClass={selectClass}
|
||||
label={""}
|
||||
selectArray={code.yn}
|
||||
onSelectValue={readonly ? () => { } : field.onChange}
|
||||
selectArray={code.bdstIncenYn}
|
||||
onSelectValue={readonly ? () => {} : field.onChange}
|
||||
value={field.value ?? code.yn[0]?.val}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
@@ -337,24 +450,38 @@ export default function RainRegForm({
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.instlCstSprtAmt"
|
||||
render={({ field }) => (
|
||||
<FormUi label="지원금액(원)">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="1,000,000"
|
||||
type="text"
|
||||
onChange={(e) => {
|
||||
if (!readonly) handleCommaNumberChange(e, field.onChange);
|
||||
render={({ field }) =>
|
||||
{
|
||||
const value = field.value;
|
||||
const isUnknown = value === null || value === -1; // 또는 Number(value) === -1
|
||||
return (
|
||||
<FormUi label="지원금액(원)">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder=""
|
||||
type="text"
|
||||
readOnly={readonly || isUnknown}
|
||||
value={
|
||||
isUnknown ? "확인불가" : formatCommaNumber(value)
|
||||
}
|
||||
onFocus={() => {
|
||||
// 입력 시 자동으로 확인불가 해제
|
||||
if (isUnknown && !readonly) {
|
||||
field.onChange(""); // 초기화
|
||||
}
|
||||
}}
|
||||
value={formatCommaNumber(field.value)}
|
||||
readOnly={instlCstSprtYn !== "Y"}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
onChange={(e) => {
|
||||
if (readonly ) return;
|
||||
handleMinusNumberChange(e, field.onChange);
|
||||
}}
|
||||
disabled={instlCstSprtYn !== "Y"}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 className={formH2Class}>녹색건축물 인증</h2>
|
||||
</div>
|
||||
@@ -369,8 +496,8 @@ export default function RainRegForm({
|
||||
className={""}
|
||||
selectClass={selectClass}
|
||||
label={""}
|
||||
selectArray={code.yn}
|
||||
onSelectValue={readonly ? () => { } : field.onChange}
|
||||
selectArray={code.bdstIncenYn}
|
||||
onSelectValue={readonly ? () => {} : field.onChange}
|
||||
value={field.value ?? code.yn[0]?.val}
|
||||
/>
|
||||
</FormUi>
|
||||
@@ -381,20 +508,38 @@ export default function RainRegForm({
|
||||
<FormField
|
||||
control={form.control}
|
||||
name="reuseBuilding.0.grntchBdstCertYr"
|
||||
render={({ field }) => (
|
||||
<FormUi label="인증년도">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="2024"
|
||||
type=""
|
||||
value={field.value ?? ""}
|
||||
onChange={(e) => {
|
||||
if (!readonly) field.onChange(e);
|
||||
}}
|
||||
readOnly={grntchBdstCertYn !== "Y"}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
render={({ field }) =>
|
||||
{
|
||||
const isUnknown = field.value === null || field.value === "0000"; // 또는 Number(value) === -1
|
||||
return (
|
||||
<FormUi label="인증년도">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="2024"
|
||||
type=""
|
||||
onFocus={() => {
|
||||
// 입력 시 자동으로 확인불가 해제
|
||||
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 !== "Y"}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
}
|
||||
/>
|
||||
</div>
|
||||
<div className="col-span-3 ">
|
||||
@@ -411,7 +556,7 @@ export default function RainRegForm({
|
||||
onChange={(e) => {
|
||||
if (!readonly) field.onChange(e);
|
||||
}}
|
||||
readOnly={grntchBdstCertYn !== "Y"}
|
||||
disabled={grntchBdstCertYn !== "Y"}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
@@ -423,15 +568,14 @@ export default function RainRegForm({
|
||||
name="reuseBuilding.0.grntchBdstCertGrd"
|
||||
render={({ field }) => (
|
||||
<FormUi label="인증등급">
|
||||
<Input
|
||||
className={selectClass}
|
||||
placeholder="A"
|
||||
type=""
|
||||
value={field.value ?? ""}
|
||||
onChange={(e) => {
|
||||
if (!readonly) field.onChange(e);
|
||||
}}
|
||||
readOnly={grntchBdstCertYn !== "Y"}
|
||||
<SelectBox
|
||||
className={""}
|
||||
selectClass={selectClass}
|
||||
label={""}
|
||||
selectArray={code.bdstGrntchClass}
|
||||
onSelectValue={readonly ? () => {} : field.onChange}
|
||||
value={field.value ?? code.bdstGrntchClass[0]?.val}
|
||||
readOnly={readonly}
|
||||
/>
|
||||
</FormUi>
|
||||
)}
|
||||
|
||||
@@ -29,10 +29,11 @@ export type objSearchType = {
|
||||
|
||||
interface BdstRegProps<T extends MoType> {
|
||||
moType: T;
|
||||
isModal:boolean;
|
||||
setIsModal?: (open: boolean) => void;
|
||||
}
|
||||
|
||||
export function BdstReg<T extends MoType>({ moType,setIsModal }: BdstRegProps<T>) {
|
||||
export function BdstReg<T extends MoType>({ moType,setIsModal,isModal }: BdstRegProps<T>) {
|
||||
const { rain, code, bdst,findBdst } = useWrStore((state) => {
|
||||
return state;
|
||||
});
|
||||
@@ -45,13 +46,13 @@ export function BdstReg<T extends MoType>({ moType,setIsModal }: BdstRegProps<T>
|
||||
const getSelCity = (val: string | number) => {
|
||||
const cityValue = String(val); // Ensure val is treated as a string
|
||||
const data = getCity(cityValue, code.sggCd);
|
||||
|
||||
setSelectSgg(data);
|
||||
getSgg(data[0]?.val || "");
|
||||
// getSgg(data[0]?.val || "");
|
||||
setObjSearch({ city: cityValue, sgg: '' });
|
||||
};
|
||||
|
||||
const getSgg = (val: string | number) => {
|
||||
console.log(val);
|
||||
setObjSearch({...objSearch,sgg: String(val)})
|
||||
};
|
||||
|
||||
@@ -85,10 +86,7 @@ export function BdstReg<T extends MoType>({ moType,setIsModal }: BdstRegProps<T>
|
||||
if (data) {
|
||||
setRainBdstForm(data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
useEffect(()=>{
|
||||
@@ -122,7 +120,7 @@ export function BdstReg<T extends MoType>({ moType,setIsModal }: BdstRegProps<T>
|
||||
</div>
|
||||
<div className="border-t border-gray-300 my-4"></div>
|
||||
<div className="h-auto">
|
||||
<h1 className="text-2xl font-medium text-label pl-8">건축물 목록</h1>
|
||||
<h1 className="text-2xl font-medium text-label pl-8">건축물 목록 (유의 사항: 신규등록하려는 건축물이 목록에 없을 경우 하단 건축물 정보에 추가하여 주시기 바랍니다.)</h1>
|
||||
<ScrollArea className="h-[30vh]">
|
||||
<div>
|
||||
<UiTable
|
||||
@@ -142,9 +140,9 @@ export function BdstReg<T extends MoType>({ moType,setIsModal }: BdstRegProps<T>
|
||||
<ScrollArea className="h-[40vh]">
|
||||
<div>
|
||||
{ moType === 'RNB'?
|
||||
<RainRegForm rainForm={rainBdstForm as customRainBdst} isModal={true} />
|
||||
<RainRegForm rainForm={rainBdstForm as customRainBdst} isModal={isModal} setIsModal={setIsModal} />
|
||||
:moType==='RST'
|
||||
? <RswtrRegForm rswtForm={rainBdstForm as customRswtBdst} isModal={true} setIsModal={(open) =>{setIsModal}}></RswtrRegForm>
|
||||
? <RswtrRegForm rswtForm={rainBdstForm as customRswtBdst} isModal={isModal} setIsModal={(open) =>{setIsModal}}></RswtrRegForm>
|
||||
:<HtdflRegForm htdflForm={rainBdstForm as unknown as customHtdflBdst} isModal={true}></HtdflRegForm>
|
||||
}
|
||||
|
||||
|
||||
@@ -62,9 +62,6 @@ export default function SearchInputText({
|
||||
document.removeEventListener("mousedown", handleClickOutside);
|
||||
};
|
||||
}, []);
|
||||
useEffect(() =>{
|
||||
console.log('searchList ', searchList)
|
||||
},[searchList])
|
||||
|
||||
return (
|
||||
<div ref={wrapperRef}>
|
||||
|
||||
Reference in New Issue
Block a user