From fbd9575df79199e4fc7dfef367b6c740b36689b8 Mon Sep 17 00:00:00 2001 From: jyha00 Date: Mon, 21 Jul 2025 11:07:51 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=A0=EC=9E=AC=EC=88=98=EC=9A=94=EC=B2=98?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wr/app/matMng/coMng/ldrmntCoSttn/page.tsx | 54 ++++++------ .../app/store/matDmd/ldrmntCoSttn/index.tsx | 85 ++++++++++++------- .../coReg/coRegExcel/coRegExcelModal.tsx | 2 +- 3 files changed, 79 insertions(+), 62 deletions(-) diff --git a/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx b/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx index 910923499..36a8b7151 100644 --- a/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx +++ b/apps/wr/app/matMng/coMng/ldrmntCoSttn/page.tsx @@ -43,8 +43,9 @@ export default function LdrmntCoSttn() { const [objSearch, setObjSearch] = useState({ sgg: "", city: "" }); const [bdstTable, setBdstTable] = useState(); const [searchTxt, setSearchTxt] = useState(); - const [excelData, setExcelData] = useState(); + const [excelData, setExcelData] = useState() const [resetPage, isResetPage] = useState(false); + const [isDownloadClicked, setIsDownloadClicked] = useState(false); const { t } = useTranslation('base'); const excelClick = useCallback(() => { @@ -79,10 +80,31 @@ export default function LdrmntCoSttn() { const excelDownloadClick = useCallback(() => { const cityNm = computeCityNm(); + setExcelData(undefined); + setIsDownloadClicked(true); ldrmntSearch(true, 1, String(ldrmntResCount), cityNm, searchTxt || ""); }, [objSearch, searchTxt, code, ldrmntSearch, computeCityNm, ldrmntResCount]); useEffect(() => { + const transData = Array.isArray(excelList) ? excelList : [excelList]; + const exData = tableData(transData, { code }); + const data = Array.isArray(exData) + ? exData.map((item: customLdrmnt) => { + return { + "시도": item.fctryAddr?.split(" ")[0] || "", + "시군구": item.fctryAddr?.split(" ")[1] || "", + "회사명": item.dmdCoNm, + "공장주소": item.fctryAddr, + "공장관리번호": item.fctryMngNo, + "전화번호": item.telno + } + }) : []; + setExcelData(data) + }, [excelList]) + + useEffect(() => { + if (!isDownloadClicked) return; + if (excelData === undefined) return; if (excelData && excelData.length > 0) { downloadExcel({ data: excelData, @@ -93,7 +115,8 @@ export default function LdrmntCoSttn() { } else { toast.error(t('excelDownErrMsg')); } - }, [excelData]); + setIsDownloadClicked(false); + }, [excelData, isDownloadClicked]); const [isExcelOpen, setIsExcelOpen] = useState<{ isModal: boolean; @@ -125,7 +148,7 @@ export default function LdrmntCoSttn() { useEffect(() => { if (!ldrmnt.isInit) { - ldrmntInit("0"); + ldrmntInit(false, "0"); } }, [ldrmnt.isInit, ldrmntInit]); @@ -144,23 +167,6 @@ export default function LdrmntCoSttn() { setBdstTable(tbData); }, [ldrmntRes, code]); - useEffect(() => { - const transData = Array.isArray(excelList) ? excelList : [excelList]; - const exData = tableData(transData, { code }); - const data = Array.isArray(exData) - ? exData.map((item: customLdrmnt) => { - return { - "시도": item.fctryAddr?.split(" ")[0] || "", - "시군구": item.fctryAddr?.split(" ")[1] || "", - "회사명": item.dmdCoNm, - "공장주소": item.fctryAddr, - "공장관리번호": item.fctryMngNo, - "전화번호": item.telno - } - }) : []; - setExcelData(data) - }, [excelList]) - useEffect(() => { ldrmntSearch(false, pageNation, '20', computeCityNm(), searchTxt || ""); isResetPage(false) @@ -264,10 +270,6 @@ export default function LdrmntCoSttn() { }} bodyClass={"w-[40vw] max-w-none max-h-[calc(100%-70px)]"} body={ { - // confirmToast(t('isUpdateMsg'), await ldrmntUpdate(value)) - // // await ldrmntUpdate(value) - // setDetailModal({ ...detailModal, isOpen: false }) - // ldrmntSearch(false, pageNation, '20', computeCityNm(), searchTxt || ""); const handleConfirm = async () => { await ldrmntUpdate(value); setDetailModal({ ...detailModal, isOpen: false }); @@ -286,12 +288,8 @@ export default function LdrmntCoSttn() { body={ setIsExcelOpen({ isModal: isOpen })} />} /> - - - ) - } \ No newline at end of file diff --git a/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx b/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx index c268ca1e6..fed013417 100644 --- a/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx +++ b/apps/wr/app/store/matDmd/ldrmntCoSttn/index.tsx @@ -29,11 +29,11 @@ type ExcelType = { [key: string]: string | number | undefined; }; -const excelDownList: ExcelType[] = []; +// const excelDownList: ExcelType[] = []; type ldrmntActions = { ldrmntRegData: (data: any[]) => void, - ldrmntInit: (con: string) => void + ldrmntInit: (isExcel: boolean, con: string) => void ldrmntSearch: (isExcel: boolean, page: number, sggCd: string, total: string, coNm: string) => void; ldrmntUpdate: (ldrmntRes: customLdrmnt) => void; ldrmntDelete: () => void; @@ -58,25 +58,47 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( set: any ) => { return { - ldrmntInit: async (con: string) => { + ldrmntInit: async (isExcel: boolean,con: string) => { try { const ldrmntRes = await getFetchWithCount( fetchType.WR, `/reuseFc/request/temp/1/20/${con}` ); - - set((state: ldrmntState) => { - return { - ...state, - ldrmnt: { - ...state.ldrmnt, - ldrmntRes: ldrmntRes.data, - ldrmntResCount: ldrmntRes.count, - isInit: false, - excelList: excelDownList, - }, - } - }); + if (isExcel) { + const excelDownList: ExcelType[] = []; + ldrmntRes.data.forEach((item: customLdrmnt) => { + excelDownList.push({ + ctpvCd: item.ctpvCd, + sggCd: item.sggCd, + dmdCoNm: item.dmdCoNm, + fctryAddr: item.fctryAddr, + fctryMngNo: item.fctryMngNo, + telno: item.telno, + }) + }) + set((state: ldrmntState) => { + return { + ...state, + ldrmnt: { + ...state.ldrmnt, + excelList: excelDownList, + ldrmntResCount: ldrmntRes.count, + }, + }; + }); + } else { + set((state: ldrmntState) => { + return { + ...state, + ldrmnt: { + ...state.ldrmnt, + ldrmntRes: ldrmntRes.data, + ldrmntResCount: ldrmntRes.count, + isInit: false, + }, + } + }); + } } catch (e) { console.log(e) } @@ -96,6 +118,7 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( await deleteFectch( `/reuseFc/request/temp`, ); + console.log("deleteFectch", deleteFectch) const response = await postFectch( "/reuseFc/request/temp", @@ -121,7 +144,6 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( fetchType.WR, searchUrl ); - console.log("알이에스", ldrmntRes) if (isExcel) { const excelDownList: ExcelType[] = []; ldrmntRes.data.forEach((item: customLdrmnt) => { @@ -144,7 +166,6 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( }, }; }); - return excelDownList; } else set((state: ldrmntState) => { return { @@ -157,27 +178,26 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( }, }; }); - return ldrmntRes; } catch (e) { console.log(e) } }, ldrmntUpdate: async (ldrmntRes: customLdrmnt) => { - if(ldrmntRes) - try { - ldrmntRes.rgtr = TEST_UUID; - const res = await putFectch( - `/reuseFc/request/temp`, - ldrmntRes - ); + if (ldrmntRes) + try { + ldrmntRes.rgtr = TEST_UUID; + const res = await putFectch( + `/reuseFc/request/temp`, + ldrmntRes + ); - if (res.ok) { - toast.success("잠재수요처 상세정보가 수정되었습니다.",) + if (res.ok) { + toast.success("잠재수요처 상세정보가 수정되었습니다.",) + } + } catch (error) { + console.error("Error ldrmntUpdate:", error); + toast.error("잠재수요처 상세정보 수정에 실패하였습니다.") } - } catch (error) { - console.error("Error ldrmntUpdate:", error); - toast.error("잠재수요처 상세정보 수정에 실패하였습니다.") - } }, ldrmntDelete: async () => { try { @@ -193,7 +213,6 @@ export const ldrmntActionsExport: (set: any) => ldrmntActions = ( await deleteFectch( `/reuseFc/request/temp`, ); - } catch (error) { console.log("error", error) set((state: ldrmntState) => { diff --git a/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx b/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx index 66fdf91d0..1e51fb11c 100644 --- a/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx +++ b/apps/wr/components/ui/modal/coReg/coRegExcel/coRegExcelModal.tsx @@ -89,7 +89,7 @@ export default function CoRegExcel({

{"잠재수요처 파일"}

-