This commit is contained in:
leedj312
2025-05-29 16:59:33 +09:00
co-authored by truthplumage
parent 50f94aa4c2
commit fa1a9159eb
8 changed files with 249 additions and 244 deletions
@@ -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(() => {
</Button>
</TabsList>
<TabsContent className="max-h-full" value="mng">
<PbnstMngForm data={selectBdst || []} />
<PbnstMngForm data={selectBdst || null} />
</TabsContent>
<TabsContent className="max-h-full" value="buse">
<PbnstBuseForm data={pbnstBiz || []} />
@@ -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" },
];
@@ -50,137 +50,116 @@ export type fcFileType = z.infer<typeof fcFileSchema>;
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()),
@@ -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(() => {
@@ -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<operType[]>();
const [planFiles, setPlanFiles] = useState<FilesType[] | null>(null);
const [relationfiles, setRelationFiles] = useState<FilesType[] | null>(null);
const [isModalOpen, setIsModalOpen] = useState(false);
const [regFileList, setRegFileList] = useState<fcFileType[] | null>(null);
const [upload, setUpload] = useState<Upload | null>(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<z.infer<typeof pbnstRegZod>>({
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<typeof pbnstRegZod>) {
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(() => {
<Input
placeholder=""
type="number"
onChange={field.onChange}
onChange={(e) => {
field.onChange(Number(e.target.value));
}}
value={field.value}
/>
</FormUi>
@@ -294,7 +293,9 @@ useEffect(() => {
<Input
placeholder=""
type="number"
onChange={field.onChange}
onChange={(e) => {
field.onChange(Number(e.target.value));
}}
value={field.value}
/>
</FormUi>
@@ -310,7 +311,9 @@ useEffect(() => {
<Input
placeholder=""
type="number"
onChange={field.onChange}
onChange={(e) => {
field.onChange(Number(e.target.value));
}}
value={field.value}
/>
</FormUi>
@@ -326,7 +329,9 @@ useEffect(() => {
<Input
placeholder=""
type="number"
onChange={field.onChange}
onChange={(e) => {
field.onChange(Number(e.target.value));
}}
value={field.value}
/>
</FormUi>
@@ -45,7 +45,7 @@ export default function MngRegFormDetail({
className={"rounded-lg !w-full"}
/>
) : item.type === "number" ? (
<Input placeholder="" type="number" value={field.value??0} onChange={field.onChange} />
<Input placeholder="" type="number" value={field.value??0} onChange={(e) =>{field.onChange(Number(e.target.value))}} />
) : (
<Input placeholder="" type="text" value={field.value??''} onChange={field.onChange} />
)}
@@ -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<customPbnst>(
{} as customPbnst
);
const [currentTab, setCurrentTab] = useState<string>("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 (
<>
<h1 className="text-2xl font-medium text-label pl-8">
@@ -70,7 +81,7 @@ export function PbnstRegModal({ data }: { data: pubHasuType }) {
<TabsTrigger className="!text-xl" value="buse">
차수별정보
</TabsTrigger>
<Button size={"sm"} className="!justify-end">
<Button onClick={pbnstRegTotal} size={"sm"} className="!justify-end">
저장
</Button>
</TabsList>
@@ -36,6 +36,7 @@ const RuseMngTable = React.forwardRef<any[], RuseMngTableProps>(
}, [tableState]);
useEffect(() => {
if(tableData)
setTableState(tableData);
}, [tableData]);
return (
@@ -75,7 +76,9 @@ const RuseMngTable = React.forwardRef<any[], RuseMngTableProps>(
return next;
})
}}
value={tableState[i][head.id] || ""}
value={head.type === "number" ?
Number(tableState[i][head.id])||0 : tableState[i][head.id] || ""
}
/>
) : head.type === "select" ? (
<SelectBox
@@ -123,7 +126,8 @@ const RuseMngTable = React.forwardRef<any[], RuseMngTableProps>(
}}
>
</Checkbox>
) : (
) :
(
`${item[head.id] || ""}`
)}
</TableCell>