Co-authored-by: truthplumage <truthplumage@users.noreply.github.com>
This commit is contained in:
@@ -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>
|
||||
|
||||
+1
-1
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user