Merge commit '32b16055fb34e758084b993b8e786140048f5645' into iipbs/wr/dev

This commit is contained in:
leedj312
2025-07-25 13:45:47 +09:00
15 changed files with 176 additions and 123 deletions
+13 -9
View File
@@ -33,7 +33,7 @@ import toast, { Toaster } from "react-hot-toast";
import { useTranslation } from "react-i18next";
export default function LdrmntCoSttn() {
const { code, ldrmnt, ldrmntInit, ldrmntSearch, ldrmntUpdate } = useWrStore(
const { auth, code, ldrmnt, ldrmntInit, ldrmntSearch, ldrmntUpdate } = useWrStore(
(state) => state
);
const { ldrmntRes, excelList, ldrmntResCount } = ldrmnt;
@@ -47,6 +47,7 @@ export default function LdrmntCoSttn() {
const [resetPage, isResetPage] = useState(false);
const [isDownloadClicked, setIsDownloadClicked] = useState(false);
const { t } = useTranslation('base');
const { regAuthrtYn, mdfcnAuthrtYn } = auth;
const excelClick = useCallback(() => {
excelDownload(
@@ -224,6 +225,7 @@ export default function LdrmntCoSttn() {
onClick={() => {
setIsExcelOpen({ isModal: true });
}}
disabled={regAuthrtYn === 'N'}
>
엑셀등록
</Button>
@@ -269,14 +271,16 @@ export default function LdrmntCoSttn() {
setDetailModal({ ...detailModal, isOpen: !detailModal.isOpen })
}}
bodyClass={"w-[40vw] max-w-none max-h-[calc(100%-70px)]"}
body={<CoDetailModal formObj={detailModal.data} onFormSubmit={async (value) => {
const handleConfirm = async () => {
await ldrmntUpdate(value);
setDetailModal({ ...detailModal, isOpen: false });
ldrmntSearch(false, pageNation, '20', computeCityNm(), searchTxt || "");
};
confirmToast(t('isUpdateMsg'), handleConfirm);
}} />}
body={<CoDetailModal formObj={detailModal.data}
readonly={mdfcnAuthrtYn === 'N'}
onFormSubmit={async (value) => {
const handleConfirm = async () => {
await ldrmntUpdate(value);
setDetailModal({ ...detailModal, isOpen: false });
ldrmntSearch(false, pageNation, '20', computeCityNm(), searchTxt || "");
};
confirmToast(t('isUpdateMsg'), handleConfirm);
}} />}
/>
<UiModal
@@ -1,6 +1,11 @@
"use client";
import { useWrStore } from "@/app/store";
import { btnClass } from "@/app/store/common/code";
import type { customPbnst } from "@/app/store/ruseFcltMng/fcltReg/pbnstReg/type";
import type { WaterReuseFacility } from "@/app/store/ruseFcltMng/fcltSttn/pbnstSttn/type";
import { excelDownload, yearOptions } from "@/components/lib/func/commom";
import HeadChModal from "@/components/ui/modal/sttn/headChModal/headChModal";
import { PbnstSttnModal } from "@/components/ui/modal/sttn/pbnstSttnModal/pbnstSttnModal";
import {
ContentsDiv,
SearchBaseForm,
@@ -12,14 +17,9 @@ import {
type ReturnType,
} from "@common/business_components/ui";
import ListDiv from "@common/business_components/ui/list_div";
import { Button, Label } from "@common/components/ui";
import HeadChModal from "@/components/ui/modal/sttn/headChModal/headChModal";
import { useCallback, useEffect, useRef, useState } from "react";
import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan";
import type { customPbnst } from "@/app/store/ruseFcltMng/fcltReg/pbnstReg/type";
import { excelDownload, yearOptions } from "@/components/lib/func/commom";
import type { WaterReuseFacility } from "@/app/store/ruseFcltMng/fcltSttn/pbnstSttn/type";
import { PbnstSttnModal } from "@/components/ui/modal/sttn/pbnstSttnModal/pbnstSttnModal";
import { Button, Label } from "@common/components/ui";
import { useCallback, useEffect, useRef, useState } from "react";
export default function PbnstSttn() {
const {
@@ -29,6 +29,7 @@ export default function PbnstSttn() {
pbnSttnInit,
getPbnStnDetail,
getFlcts,
resetPbnstDetail
} = useWrStore((state) => state);
const { pbnstSttnRes, fclts, pbnstSttnResCount } = pbnstSttn;
@@ -103,9 +104,6 @@ export default function PbnstSttn() {
});
}, [pbnstSttn.pbnstDetail]);
useEffect(() => {
console.log("pbnDetaileData.isModal ", pbnDetaileData.isModal);
}, [pbnDetaileData.isModal]);
return (
<>
<ContentsDiv>
@@ -233,8 +231,9 @@ export default function PbnstSttn() {
open={pbnDetaileData.isModal}
onOpenChange={(open) => {
//TODO:OPEN 상태 확인필요
if(!open)
setPbnDetaileData({ data: {} as customPbnst, isModal: open });
if (!open)
setPbnDetaileData({ data: {} as customPbnst, isModal: open });
resetPbnstDetail();
}}
/>
</ContentsDiv>
@@ -44,6 +44,7 @@ import { useTranslation } from "react-i18next";
export default function Page() {
const {
auth,
code,
rainChkgdn,
rswtChkgdn,
@@ -64,6 +65,7 @@ export default function Page() {
} = useWrStore((state) => {
return state;
});
const { regAuthrtYn, mdfcnAuthrtYn, delAuthrtYn } = auth;
const [isRegExcel, setIsRegExcel] = useState(false);
const [updateRainDetail, setUpdateRainDetail] = useState<rainChkZodType[]>(
[]
@@ -301,6 +303,7 @@ export default function Page() {
onClick={() => {
clickDelete(deleteIdx, selFcltDiv);
}}
disabled={delAuthrtYn === 'N'}
>
삭제
</Button>
@@ -313,6 +316,7 @@ export default function Page() {
onClick={() => {
chkUpdateTable(selFcltDiv);
}}
disabled={mdfcnAuthrtYn === 'N'}
>
저장
</Button>
@@ -330,6 +334,7 @@ export default function Page() {
onClick={() => {
setIsRegExcel(!isRegExcel);
}}
disabled={regAuthrtYn === 'N'}
>
결과등록
</Button>
@@ -354,6 +359,7 @@ export default function Page() {
pageNation={rainPageNation}
onPageChange={rainPageChange}
pageCount={rainChkgdn.rainChkCount}
readonly={mdfcnAuthrtYn === 'N'}
/>
) : (
<RswtChkgdTable
@@ -380,6 +386,7 @@ export default function Page() {
type={selFcltDiv}
obj={isModal.data}
setIsModal={(open) => setIsModal((prev) => ({ ...prev, open }))}
readonly={mdfcnAuthrtYn === 'N' ? false : true}
/>
}
></UiModal>
@@ -38,10 +38,11 @@ import { useTranslation } from "react-i18next";
import { headMakeprfmnc } from "../chkgdnReg/TableHead";
export default function PrfmncPrfmncReg() {
const { prfmnc, prfmncHasuInit, prfmnRegData, prfmncHasuNmSearch } = useWrStore(
const { auth, prfmnc, prfmncHasuInit, prfmnRegData, prfmncHasuNmSearch } = useWrStore(
(state) => state
);
const { pbnstPrfmncHeadList, monthHeadList, prfmncRes, prfmncResCount } = prfmnc;
const { regAuthrtYn, mdfcnAuthrtYn } = auth;
const [bdstTable, setbdstTable] = useState<FcPrfType[]>();
const [searchTxt, setSearchTxt] = useState<string>();
const [isExcelOpen, setIsExcelOPen] = useState<{
@@ -92,7 +93,7 @@ export default function PrfmncPrfmncReg() {
searchYear,
pbnstRuseFcltId
) as unknown as PrfType
,searchYear
, searchYear
);
};
@@ -259,6 +260,7 @@ export default function PrfmncPrfmncReg() {
onClick={() => {
onSave();
}}
disabled={mdfcnAuthrtYn === 'N'}
>
저장
</Button>
@@ -272,6 +274,7 @@ export default function PrfmncPrfmncReg() {
setIsExcelOPen({ ...isExcelOpen, isModal: true });
}
}}
disabled={regAuthrtYn === 'N'}
>
파일등록
</Button>
@@ -321,7 +324,7 @@ export default function PrfmncPrfmncReg() {
{headMakeprfmnc(monthHeadList, [])}
</TableHeader>
<TableBody key={prfmnc.pageKey + 'pageKey'}>
{InputTableBody(inputData ?? [], monthHeadList, setInputData)}
{InputTableBody(inputData ?? [], monthHeadList, setInputData, mdfcnAuthrtYn === 'N' ? false : true)}
</TableBody>
</Table>
</ScrollArea>
@@ -348,7 +351,7 @@ export default function PrfmncPrfmncReg() {
}
open={isExcelOpen.isModal}
onOpenChange={() => {
setIsExcelOPen({ isModal: false, data: {} as FcPrfType });
setIsExcelOPen({ ...isExcelOpen, isModal: false });
}}
></UiModal>
<Toaster position="top-center" />
@@ -27,9 +27,9 @@ export type pbnstSttnState = {
ruseGuranteeHeadList: TableUpperProps[]
ruseDmdHeadList: TableUpperProps[]
ruseFcltHeadList: TableUpperProps[]
pbnstSttnResCount:number;
pbnstSttnResCount: number;
excelList: [];
fclts:string[]
fclts: string[]
isInit: boolean;
};
};
@@ -43,15 +43,15 @@ type pbnstSttnActions = {
reurnValue: ReturnType,
searchNm: string | undefined,
year: string,
fclts:string[]
fclts: string[]
) => void;
getFlcts:()=>void;
getFlcts: () => void;
pbnSttnInit: (
page: string,
total: string,
reurnValue: ReturnType,
year: string,
flcts:string[]
flcts: string[]
) => void;
getPbnStnDetail: (pbnstRuseFcltId: string) => void;
pbnNmSearch: (
@@ -60,8 +60,9 @@ type pbnstSttnActions = {
reurnValue: ReturnType,
searchNm: string | undefined,
year: string,
flcts:string[]
flcts: string[]
) => void;
resetPbnstDetail: () => void;
};
export type pbnstSttnType = pbnstSttnState & pbnstSttnActions;
@@ -77,11 +78,11 @@ export const pbnstSttnStateExport: pbnstSttnState = {
ruseDmdHeadList: ruseDmdHeadListExport,
ruseFcltHeadList: ruseFcltHeadListExport,
pbnstSttnRes: [],
pbnstSttnResCount:1,
pbnstSttnResCount: 1,
pbnstDetail: {} as customPbnst,
pbnstSearchData: [],
excelList: [],
fclts:[],
fclts: [],
isInit: false,
},
};
@@ -92,12 +93,12 @@ const hasuListFetch = async (
reurnValue: ReturnType,
searchNm: string | undefined,
year: string,
flcts:string[]
flcts: string[]
) => {
let url = `/prcsFclt/ruseInfo/`;
if (reurnValue.partValue === "A") {
url+=`${page}/${total}/${reurnValue.partValue}/${
url += `${page}/${total}/${reurnValue.partValue}/${
// reurnValue.sidoValue ? reurnValue.sidoValue : reurnValue.sigunValue
reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue
}/0/1/SW`
@@ -108,12 +109,12 @@ const hasuListFetch = async (
? reurnValue.unitWaterShedValue
: reurnValue.middleRegionValue
}/0/1/SW`
} else if( reurnValue.partValue === 'G'){
} else if (reurnValue.partValue === 'G') {
url += `${page}/${total}/${reurnValue.envPartValue}/${reurnValue.sigunValue !== '0' ? reurnValue.sigunValue : reurnValue.sidoValue}/0/1/SW`
}else{
} else {
url += `1/2/A/0/0/1/SW`
}
@@ -121,8 +122,7 @@ const hasuListFetch = async (
url += "/" + searchNm
}
console.log(' flcts ' ,flcts)
const pbnList = await postFectch(url, flcts,fetchType.COMMON);
const pbnList = await postFectch(url, flcts, fetchType.COMMON);
const getRuseList = await postFectch(
`/reuseFc/pubDetailList/${year}`,
flcts,
@@ -139,7 +139,7 @@ const hasuListFetch = async (
fclt.bscFctCd === item.pbnstRuseFcltId.substring(0, 11)
);
if(findData){
if (findData) {
const usage = item.prfList.reduce(
(acc, cur) => {
@@ -161,48 +161,42 @@ const hasuListFetch = async (
cur.rvrKeepUswtr +
cur.indstUswtr;
acc.total = acc.inUsage + acc.outUsage;
return acc;
},
{ total: 0, inUsage: 0, outUsage: 0 }
);
console.log('findData ', findData)
return {
rvbsn: findData?.rvbsn ||'-',
lgbsn: findData?.lgbsn||'-',
mdmbsn: findData?.mdmbsn||'-',
rgnNm: findData?.rgnNm||'-',
sido: findData?.sido||'-',
gugun: findData?.gugun||'-',
bscFctNm: findData?.bscFctNm||'-',
efflWqltStndrdNm: findData?.efflWqltStndrdNm||'-',
fctCpc: Number(findData?.fctCpc)||0,
rvbsn: findData?.rvbsn || '-',
lgbsn: findData?.lgbsn || '-',
mdmbsn: findData?.mdmbsn || '-',
rgnNm: findData?.rgnNm || '-',
sido: findData?.sido || '-',
gugun: findData?.gugun || '-',
bscFctNm: findData?.bscFctNm || '-',
efflWqltStndrdNm: findData?.efflWqltStndrdNm || '-',
fctCpc: Number(findData?.fctCpc) || 0,
tel: findData?.tel ?? "-",
ruseUtztnFcltNm: item?.ruseUtztnFcltNm||'-',
fcltCpct: item?.fcltCpct||'-',
splyExtraCpct: item?.splyExtraCpct||'-',
ruseCpct: item?.ruseCpct||'-',
pbnstRuseFcltId: item.pbnstRuseFcltId||'-',
ruseUtztnFcltNm: item?.ruseUtztnFcltNm || '-',
fcltCpct: item?.fcltCpct || '-',
splyExtraCpct: item?.splyExtraCpct || '-',
ruseCpct: item?.ruseCpct || '-',
pbnstRuseFcltId: item.pbnstRuseFcltId || '-',
usageTotal: usage?.total,
inUsage: usage?.inUsage,
outUsage: usage?.outUsage,
operMthd: item.operList[0]?.operMthd||'-',
operMthd: item.operList[0]?.operMthd || '-',
rprtvBzenty: item.operList[0]?.rprtvBzenty,
bgngDt: moment(item.operList[0]?.bgngDt).format("YYYY-MM-DD") ?? "",
endDt: moment(item.operList[0]?.endDt).format("YYYY-MM-DD") ?? "",
searchNm: findData?.bscFctNm||'-',
searchPk: findData?.bscFctCd||'-',
searchNm: findData?.bscFctNm || '-',
searchPk: findData?.bscFctCd || '-',
prfList: item?.prfList ?? []
};
}
}
).filter(Boolean);
console.log( ' checkWrRegListRes ', getRuseList.data)
console.log( ' data ', data)
return data;
};
@@ -210,12 +204,12 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
set: any
) => {
return {
getFlcts:async ()=>{
const fclts= await getFetch(fetchType.WR,'/reuseFc/pubFc')
getFlcts: async () => {
const fclts = await getFetch(fetchType.WR, '/reuseFc/pubFc')
return set((state: pbnstSttnState) => ({
pbnstSttn: {
...state.pbnstSttn,
fclts:fclts
fclts: fclts
},
}));
},
@@ -239,11 +233,11 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
reurnValue: ReturnType,
searchNm: string | undefined,
year: string,
fclts:string[]
fclts: string[]
) => {
try {
const pbnstSttnRes = await hasuListFetch(
page,
total,
@@ -265,7 +259,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
},
};
});
} else{
} else {
set((state: pbnstSttnState) => {
return {
@@ -273,8 +267,8 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
pbnstSttn: {
...state.pbnstSttn,
pbnstSttnRes: pbnstSttnRes,
pbnstSttnResCount:pbnstSttnRes.length
// isInit: false,
pbnstSttnResCount: pbnstSttnRes.length
// isInit: false,
},
};
});
@@ -283,31 +277,31 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
console.log("error", erTxt);
}
},
pbnSttnInit: async(
pbnSttnInit: async (
page: string,
total: string,
reurnValue: ReturnType,
year: string,
fclts:string[]
fclts: string[]
) => {
try {
const pbnstSttnRes = await hasuListFetch(
page,
total,
reurnValue,
undefined,
year,
fclts
);
console.log('pbnstSttnRes ' , pbnstSttnRes)
set( (state: pbnstSttnState) => {
page,
total,
reurnValue,
undefined,
year,
fclts
);
set((state: pbnstSttnState) => {
return {
...state,
pbnstSttn: {
...state.pbnstSttn,
pbnstSttnRes: pbnstSttnRes,
pbnstSttnResCount:pbnstSttnRes.length,
pbnstSttnResCount: pbnstSttnRes.length,
isInit: false,
pbnstDetail: {} as customPbnst
},
};
});
@@ -315,6 +309,17 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
console.log("error", erTxt);
}
},
resetPbnstDetail: async () => {
set((state: pbnstSttnState) => {
return {
...state,
pbnstSttn: {
...state.pbnstSttn,
pbnstDetail: {} as customPbnst
},
};
})
},
getPbnStnDetail: async (pbnstRuseFcltId: string) => {
try {
let pbnstDetail = await getFetch("wr", `/reuseFc/pubFc/${pbnstRuseFcltId}`);
@@ -340,7 +345,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
reurnValue: ReturnType,
searchNm: string | undefined,
year: string,
flcts:string[]
flcts: string[]
) => {
try {
@@ -359,7 +364,7 @@ export const pbnstSttnActionsExport: (set: any) => pbnstSttnActions = (
pbnstSttn: {
...state.pbnstSttn,
pbnstSearchData: pbnstSttnRes,
pbnstSttnResCount:pbnstSttnRes.length,
pbnstSttnResCount: pbnstSttnRes.length,
},
};
});
@@ -1,6 +1,7 @@
import type { SelectDataType } from "@common/business_components/ui";
import type { customRainBdst } from "../../fcltReg/rainReg";
import { bdstUsgCd } from "@/app/store/common/code/basicCode";
//TODO: 공통코드시 삭제되니 수정 해야됨
export const excelRainSttnParsing = (
excel: { data: customRainBdst[] },
sidoCode: SelectDataType[],
@@ -9,14 +10,15 @@ export const excelRainSttnParsing = (
const excelExportData: string[][] = [];
excel.data.forEach((item) => {
console.log("item", item)
excelExportData.push([
sidoCode.find((sido) => sido.val === item.ctpvCd?.toString())?.text ?? "",
sggCode.find((sgg) => sgg.val === item.sggCd?.toString())?.text ?? "",
item.bdstNm ?? "",
item.daddr ?? "",
String(item.bdstInfoSn ?? ""),
bdstUsgCd.find((cd) => cd.val === item.reuseBuilding?.[0]?.bdstUsgCd.toString())?.text ?? "", //건축물용도
String(item.frstArchPrmsnDt ?? ""),
String(item.archArea ?? ""),
String(item.archArea.split('.')[0] === '-1' ? '확인불가' : item.archArea.split('.')[0]),
String(item.chgBuilding.length > 0 ? "Y" : "N"),
String(item.reuseBuilding?.[0]?.lawTrgtYn ?? ""),
String(item.reuseBuilding?.[0]?.instlCmptnDt ?? ""),
@@ -28,7 +30,7 @@ export const excelRainSttnParsing = (
String(item.reuseBuilding?.[0]?.rainyObj?.filtrTrtmfctPrs ?? ""),
String(item.reuseBuilding?.[0]?.rainyObj?.dtfcltCpct ?? ""),
String(item.reuseBuilding?.[0]?.instlCstSprtYn ?? ""),
String(item.reuseBuilding?.[0]?.instlCstSprtAmt ?? ""),
String(item.reuseBuilding?.[0]?.instlCstSprtAmt === -1 ? "확인불가" : String(item.reuseBuilding?.[0]?.instlCstSprtAmt) ?? ""),
String(item.reuseBuilding?.[0]?.grntchBdstCertYn ?? ""),
String(item.reuseBuilding?.[0]?.grntchBdstCertYr ?? ""),
String(item.reuseBuilding?.[0]?.grntchBdstCertNo ?? ""),
+6 -2
View File
@@ -95,7 +95,8 @@ export const chRowspanTable = (
) => void,
toggleSelection: (pk: number, checked: boolean) => void,
selectedIds: number[],
handleCellClick: (index: number, headId: string) => void
handleCellClick: (index: number, headId: string) => void,
disable? : boolean
) => {
let order = 0
// rowspan된 셀 렌더링 여부 추적용
@@ -138,6 +139,7 @@ export const chRowspanTable = (
onCheckedChange={(checked) =>
toggleSelection(row.chkgdnSn, checked === true)
}
disabled={disable}
></Checkbox>
) : key === "order" ? (
++order
@@ -339,7 +341,9 @@ export const InputTableBody = (
// className={`${head.id !== "utztnUsgCd" ? "text-right" : "text-center"} !text-xl h-10 w-full`}
className={`${textAlignClass} !text-xl h-10 w-full`}
onChange={(e) =>
handleChange(dataIndex, head.id, e.target.value, setInputData)
handleCommaNumberChange(e, val =>
handleChange(dataIndex, head.id, String(val), setInputData)
)
}
value={formatCommaNumber(data[head.id as keyof any]) ?? ""}
maxLength={numSize}
@@ -511,6 +511,7 @@ export default function RainRegForm({
selectArray={code.bdstIncenYn}
onSelectValue={readonly ? () => { } : field.onChange}
value={field.value ?? code.yn[0]?.val}
readOnly={readonly}
/>
</FormUi>
)}
@@ -8,7 +8,7 @@ import { Button } from "@common/components/ui";
import React, { useEffect, useState } from "react";
import type { z } from "zod";
export default function ChkgdModal({ type, obj, setIsModal }: { type: string; obj: any, setIsModal: (open: boolean) => void }) {
export default function ChkgdModal({ type, obj, setIsModal, readonly }: { type: string; obj: any, setIsModal: (open: boolean) => void, readonly: boolean }) {
const {
rainChkgdn,
rswtChkgdn,
@@ -247,7 +247,7 @@ export default function ChkgdModal({ type, obj, setIsModal }: { type: string; ob
}
></Title>
{!rainChkSttn.isSttn ? (
<Button className="mt-8 mr-7" onClick={allDataUpdate}>
<Button className="mt-8 mr-7" onClick={allDataUpdate} disabled={!readonly}>
저장
</Button>
) : (
@@ -274,6 +274,7 @@ export default function ChkgdModal({ type, obj, setIsModal }: { type: string; ob
setChGuidData={(data) => {
setChGuidData(data);
}}
readonly={readonly}
/>
<div className="card-header">
<h3 className="text-2xl font-medium text-label">
@@ -288,6 +289,7 @@ export default function ChkgdModal({ type, obj, setIsModal }: { type: string; ob
setChGuidData={(data) => {
setChGuidData(data);
}}
readonly={readonly}
/>
{type !== "RNB" && polutionData !== undefined ? (
@@ -310,6 +312,7 @@ export default function ChkgdModal({ type, obj, setIsModal }: { type: string; ob
setChGuidData={(data) => {
getPolutionData(data);
}}
readonly={readonly}
/>
</React.Fragment>
);
@@ -138,7 +138,6 @@ export function PbnstSttnModal({ data, titleVisible }: { data: customPbnst; titl
});
});
}
console.log(tableData);
if (tableData && tableData.length > 0) {
setRuseTableData(tableData as any[]);
}
@@ -216,9 +215,6 @@ export function PbnstSttnModal({ data, titleVisible }: { data: customPbnst; titl
(usageTotalObj as any)[key] = val;
}
const tableData = [...inUsageData, ...outUsageData, usageTotalObj];
console.log("inusageData", inUsageData)
console.log("outUsageData", outUsageData)
console.log("tableData", tableData)
setPrfData({
inPrf: inUsageData,
outPrf: outUsageData,
@@ -248,10 +244,6 @@ export function PbnstSttnModal({ data, titleVisible }: { data: customPbnst; titl
}, [data, form])
useEffect(() => {
console.log("prfData", prfData);
}, [prfData])
return (
<>
<div>
@@ -12,10 +12,13 @@ import { useForm } from "react-hook-form";
import type { z } from "zod";
export default function CoDetailModal({
formObj,onFormSubmit
formObj,
onFormSubmit,
readonly
}: {
formObj: any;
onFormSubmit:(values:customLdrmnt)=>void;
onFormSubmit: (values: customLdrmnt) => void;
readonly?: boolean;
}) {
const defaultValues: z.infer<typeof ldrmntZod> = ldrmntZod.parse({});
const form = useForm<z.infer<typeof ldrmntZod>>({
@@ -52,7 +55,11 @@ export default function CoDetailModal({
<h1 className="text-2xl font-medium text-label col-span-10">
잠재수요처 상세정보
</h1>
<Button type="submit" className="col-start-12 col-span-1" size={"sm"}>
<Button type="submit"
className="col-start-12 col-span-1"
size={"sm"}
disabled={readonly}
>
저장
</Button>
</div>
@@ -71,7 +78,6 @@ export default function CoDetailModal({
</FormUi>
)}
/>
<div className="grid grid-cols-4 gap-2 mt-4">
<div className="col-span-2">
<FormField
@@ -86,8 +92,9 @@ export default function CoDetailModal({
onChange={(e) => {
field.onChange(e.target.value);
}}
value={field.value ?? ""}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -108,13 +115,13 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
/>
</div>
</div>
<div className="grid grid-cols-4 gap-2 mt-4">
<div className="col-span-2">
<FormField
@@ -131,6 +138,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -151,6 +159,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -173,6 +182,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -193,6 +203,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -213,6 +224,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -235,12 +247,12 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
/>
</div>
<div className="col-span-2">
<FormField
control={form.control}
@@ -256,6 +268,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -278,6 +291,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -298,6 +312,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -318,14 +333,13 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={13}
readOnly={readonly}
/>
</FormUi>
)}
/>
</div>
</div>
<div className="grid grid-cols-5 gap-2 mt-4">
<div className="col-span-1">
<FormField
@@ -344,6 +358,7 @@ export default function CoDetailModal({
value={formatCommaNumber(field.value)}
min={0}
maxLength={8}
readOnly={readonly}
/>
</FormUi>
)}
@@ -365,6 +380,7 @@ export default function CoDetailModal({
value={formatCommaNumber(field.value)}
min={0}
maxLength={8}
readOnly={readonly}
/>
</FormUi>
)}
@@ -386,6 +402,7 @@ export default function CoDetailModal({
value={formatCommaNumber(field.value)}
min={0}
maxLength={8}
readOnly={readonly}
/>
</FormUi>
)}
@@ -407,6 +424,7 @@ export default function CoDetailModal({
value={formatCommaNumber(field.value)}
min={0}
maxLength={8}
readOnly={readonly}
/>
</FormUi>
)}
@@ -434,7 +452,6 @@ export default function CoDetailModal({
/>
</div>
</div>
<div className="grid grid-cols-12 gap-2 mt-4">
<div className="col-span-4">
<FormField
@@ -451,6 +468,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -471,6 +489,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -491,13 +510,13 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
/>
</div>
</div>
<div className="grid grid-cols-12 gap-2 mt-4">
<div className="col-span-4">
<FormField
@@ -514,6 +533,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -534,6 +554,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -554,14 +575,13 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
/>
</div>
</div>
<div className="grid grid-cols-12 gap-2 mt-4">
<div className="col-span-4">
<FormField
@@ -578,6 +598,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -598,6 +619,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -618,14 +640,13 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
/>
</div>
</div>
<div className="grid grid-cols-12 gap-2 mt-4">
<div className="col-span-4">
<FormField
@@ -642,6 +663,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -662,6 +684,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -682,13 +705,13 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
/>
</div>
</div>
<div className="grid grid-cols-12 gap-2 mt-4">
<div className="col-span-4">
<FormField
@@ -705,6 +728,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -725,6 +749,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -745,6 +770,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -767,6 +793,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
@@ -787,13 +814,13 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={txtSize}
readOnly={readonly}
/>
</FormUi>
)}
/>
</div>
</div>
<div className="grid grid-cols-4 gap-2 mt-4">
<div className="col-span-2">
<FormField
@@ -810,6 +837,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={50}
readOnly={readonly}
/>
</FormUi>
)}
@@ -830,6 +858,7 @@ export default function CoDetailModal({
}}
value={field.value ?? ""}
maxLength={50}
readOnly={readonly}
/>
</FormUi>
)}
@@ -17,12 +17,14 @@ export function GuideDetailsTable({
headList,
upheadList,
setChGuidData,
readonly
}: {
chgRes: any[];
headList: TableUpperProps[];
upheadList: chHeadType[];
type: string;
setChGuidData: (chgRes: any[]) => void;
readonly?: boolean;
}) {
const [inputData, setInputData] = useState<any[]>();
@@ -30,7 +32,6 @@ export function GuideDetailsTable({
setInputData(chgRes);
}, [chgRes]);
useEffect(() => {
setChGuidData(inputData ?? []);
@@ -43,7 +44,7 @@ export function GuideDetailsTable({
<Table variant="secondary">
<TableHeader className="font-bold">{headMakeprfmnc(headList, upheadList)}</TableHeader>
<TableBody >
{InputTableBody(inputData ?? [], headList, setInputData)}
{InputTableBody(inputData ?? [], headList, setInputData, readonly)}
</TableBody>
</Table>
</div>
@@ -25,6 +25,7 @@ export default function RainChkgdTable({
pageNation,
onPageChange,
pageCount,
readonly,
}: {
detailUp: (data: rainChkZodType[]) => void;
handleClick?: (data: any) => void;
@@ -33,6 +34,7 @@ export default function RainChkgdTable({
pageNation: number;
onPageChange: (page: number) => void;
pageCount: number;
readonly: boolean;
}) {
const { code, rainChkgdn, rainChkSttn, getRainSttnExcel } = useWrStore((state) => state);
const [makeTableData, setMakeTableData] = useState<any[]>([]);
@@ -191,7 +193,8 @@ export default function RainChkgdTable({
handleChange,
toggleSelection,
selectedIds,
handleCellClick
handleCellClick,
readonly
)}
</TableBody>
</Table>
Binary file not shown.
Binary file not shown.