From f2be91986c82858b37e86cd8d74491ea03893a93 Mon Sep 17 00:00:00 2001 From: ljpark Date: Wed, 1 Apr 2026 16:26:46 +0900 Subject: [PATCH 1/9] =?UTF-8?q?wr:=20=EA=B3=A0=EC=A0=95=20width?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matMng/coMng/coSttn/page.tsx | 1 + .../matMng/coMng/ldrmntCoSttn/page.tsx | 3 +- .../ruseFcltMng/fcltSttn/htdflSttn/page.tsx | 1 + .../ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 1 + .../ruseFcltMng/fcltSttn/rainSttn/page.tsx | 1 + .../ruseFcltMng/fcltSttn/rswtSttn/page.tsx | 1 + .../prfmncReg/chkgdnReg/TableHead.tsx | 5 +- .../prfmncSttn/pbnstPrfmncSttn/page.tsx | 1 + apps/wr/app/store/common/type/header.tsx | 2 + apps/wr/app/store/matDmd/coSttn/headList.tsx | 99 +---- .../store/matDmd/ldrmntCoSttn/headList.tsx | 398 ++---------------- .../chkgdnSttn/rainChkgdnSttn/headList.tsx | 93 +--- .../chkgdnSttn/rswtChkgdnSttn/headList.tsx | 160 ++----- .../prfmncSttn/pbnstPrfmncSttn/headList.tsx | 29 +- .../fcltSttn/htdflSttn/headList.tsx | 18 + .../fcltSttn/pbnstSttn/headList.tsx | 42 +- .../fcltSttn/rainSttn/headList.tsx | 47 ++- .../fcltSttn/rswtSttn/headList.tsx | 21 + apps/wr/components/lib/func/TableData.tsx | 6 +- .../chkgdTable/rainChkgd/rainChkgdTable.tsx | 16 +- .../chkgdTable/rswtChkgd/rswtChkgdTable.tsx | 16 +- 21 files changed, 264 insertions(+), 697 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx index 872284783..8646d3a44 100644 --- a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx @@ -345,6 +345,7 @@ export default function CoSttn() { coSttnSearch(String(page), "13", String(con)); }} resetSelection={isResetSelection} + widthFixed={true} > diff --git a/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx index 6279d9987..5f4b576b8 100644 --- a/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx @@ -248,7 +248,7 @@ export default function LdrmntCoSttn() {
- + { cellClick(index ?? undefined) }} onPageChange={setPageNation} resetPageNo={resetPage} + widthFixed={true} />
diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx index 1eb3fdbdb..28c286352 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx @@ -241,6 +241,7 @@ export default function HtdflSttn() { }} onPageChange={setPageNation} resetPageNo={resetPage} + widthFixed={true} > diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx index 185af81b9..2d20be6aa 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -226,6 +226,7 @@ export default function PbnstSttn() { setIsReset(false); }} resetPageNo={isReset} + widthFixed={true} > diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx index 781b418fa..60c917751 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx @@ -286,6 +286,7 @@ export default function RainSttn() { }} onPageChange={setPageNation} resetPageNo={resetPage} + widthFixed={true} > diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx index 8ddd0cc7c..25ad68635 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx @@ -243,6 +243,7 @@ export default function RswtSttn() { cellClick={(index: number | undefined) => { cellClick(index ?? undefined) }} onPageChange={setPageNation} resetPageNo={resetPage} + widthFixed={true} > diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/TableHead.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/TableHead.tsx index 28ba6c512..72069f4d8 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/TableHead.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/TableHead.tsx @@ -17,6 +17,7 @@ export const headMakeprfmnc = ( className={`border border-gray-600 px-2 py-1 `} rowSpan={2} key={head.id} + style={{ width: head.widthPercent ? `${head.widthPercent}%` : undefined }} > {head.title} @@ -28,6 +29,7 @@ export const headMakeprfmnc = ( colSpan={ makeHeadNm?.find((ch) => ch.headNm === head.upName)?.length } + style={{ width: head.widthPercent ? `${head.widthPercent}%` : undefined }} > {makeHeadNm?.find((ch) => ch.headNm === head.upName)?.text} @@ -43,6 +45,7 @@ export const headMakeprfmnc = ( {head.title} @@ -51,4 +54,4 @@ export const headMakeprfmnc = ( ); - }; \ No newline at end of file + }; diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx index 0754b656f..07382917f 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx @@ -635,6 +635,7 @@ export default function PbnstPrfmncSttn() { onPageChange={setPageNation} index={0} resetPageNo={resetPage} + widthFixed={true} />
diff --git a/apps/wr/app/store/common/type/header.tsx b/apps/wr/app/store/common/type/header.tsx index 75bf29433..9f116a9d1 100644 --- a/apps/wr/app/store/common/type/header.tsx +++ b/apps/wr/app/store/common/type/header.tsx @@ -3,6 +3,7 @@ export type CommonTableProps = { title: string; upName?: string; upSequnce?: number; + widthPercent?: number; row?: number; rowSpan?: number; colSpan?: number; @@ -14,6 +15,7 @@ export type TableUpperProps = { title: string; upName?: string; upSequnce?: number; + widthPercent?: number; edit?:boolean; visible?:boolean; rowSpan?: number; diff --git a/apps/wr/app/store/matDmd/coSttn/headList.tsx b/apps/wr/app/store/matDmd/coSttn/headList.tsx index b3b87aac8..7786be658 100644 --- a/apps/wr/app/store/matDmd/coSttn/headList.tsx +++ b/apps/wr/app/store/matDmd/coSttn/headList.tsx @@ -6,6 +6,7 @@ export const sttnHeadListType = z.array( id: z.string(), title: z.string(), visible: z.boolean(), + widthPercent: z.number().optional(), }) ); @@ -14,90 +15,20 @@ export const coRegExcel = z.object({ }); export const coSttHeadListExport: z.infer = [ - { - id: "cityText", - title: "시도", - visible: true, - }, - { - id: "sggText", - title: "시군구", - visible: true, - }, - { - id: "dmdCoNm", - title: "회사명", - visible: true, - }, - { - id: "daddr", - title: "주소", - visible: true, - }, - { - id: "dmdInfoId", - title: "사업자번호", - visible: true, - }, - { - id: "telno", - title: "전화번호", - visible: true, - }, - { - id: "regDt", - title: "등록일자", - visible: true, - }, + { id: "cityText", title: "시도", visible: true, widthPercent: 8 }, + { id: "sggText", title: "시군구", visible: true, widthPercent: 8 }, + { id: "dmdCoNm", title: "회사명", visible: true, widthPercent: 18 }, + { id: "daddr", title: "주소", visible: true, widthPercent: 28 }, + { id: "dmdInfoId", title: "사업자번호", visible: true, widthPercent: 14 }, + { id: "telno", title: "전화번호", visible: true, widthPercent: 12 }, + { id: "regDt", title: "등록일자", visible: true, widthPercent: 12, }, ]; export const coSttNodeListExport: CommonTableProps[] = [ - { - id: "cityText", - title: "시도", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "sggText", - title: "시군구", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "dmdCoNm", - title: "회사명", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "daddr", - title: "주소", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "dmdInfoId", - title: "사업자번호", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "telno", - title: "전화번호", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, -]; \ No newline at end of file + { id: "cityText", title: "시도", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "sggText", title: "시군구", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "dmdCoNm", title: "회사명", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "daddr", title: "주소", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "dmdInfoId", title: "사업자번호", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "telno", title: "전화번호", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, +]; diff --git a/apps/wr/app/store/matDmd/ldrmntCoSttn/headList.tsx b/apps/wr/app/store/matDmd/ldrmntCoSttn/headList.tsx index bb7c79024..88dbf1e4d 100644 --- a/apps/wr/app/store/matDmd/ldrmntCoSttn/headList.tsx +++ b/apps/wr/app/store/matDmd/ldrmntCoSttn/headList.tsx @@ -46,359 +46,51 @@ export const ldrmntZod = z.object({ }) export const ldrmntHeadListExport: CommonTableProps[] = [ - { - id: "ctpvCd", - title: "시도", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "sggCd", - title: "시군구", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "dmdCoNm", - title: "회사명", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fctryAddr", - title: "회사주소", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fctryMngNo", - title: "공장관리번호", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "telno", - title: "전화번호", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, + { id: "ctpvCd", title: "시도", visible: true, row: 1, rowSpan: 1, colSpan: 1, widthPercent: 8, }, + { id: "sggCd", title: "시군구", visible: true, row: 1, rowSpan: 1, colSpan: 1, widthPercent: 8 }, + { id: "dmdCoNm", title: "회사명", visible: true, row: 1, rowSpan: 1, colSpan: 1, widthPercent: 18 }, + { id: "fctryAddr", title: "회사주소", visible: true, row: 1, rowSpan: 1, colSpan: 1, widthPercent: 30 }, + { id: "fctryMngNo", title: "공장관리번호", visible: true, row: 1, rowSpan: 1, colSpan: 1, widthPercent: 18 }, + { id: "telno", title: "전화번호", visible: true, row: 1, rowSpan: 1, colSpan: 1, widthPercent: 18 }, ] export const ldrmntNodeListExport: CommonTableProps[] = [ - { - id: "ctpvCd", - title: "시도", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "sggCd", - title: "시군구", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "mngInstNm", - title: "관리기관", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "dmdCoNm", - title: "회사명", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fctrySe", - title: "공장구분", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "cmpxNm", - title: "단지명", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fndnSe", - title: "설립구분", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "mvnShp", - title: "입주형태", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "hldSe", - title: "보유구분", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "frstAprvYmd", - title: "최초승인일", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "frstRegYmd", - title: "최초등록일", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "regSe", - title: "등록구분", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "regYmd", - title: "등록일", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "telno", - title: "전화번호", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "maleEmpCnt", - title: "남자종업원", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fmaleEmpCnt", - title: "여자종업원", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "frgnrMaleEmpCnt", - title: "외국인남자종업원", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "frgnrFmaleEmpCnt", - title: "외국인여자종업원", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "totalEmpCnt", - title: "종업원합계", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "prdctnItem", - title: "생산품", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "splyMtrl", - title: "원자재", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fctryScl", - title: "공장규모", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "usgRgn", - title: "용도지역", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "ldcg", - title: "지목", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "usgRgnArea", - title: "용지면적(m²)", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "mnftrFcltArea", - title: "제조시설면적", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "sbsdFcltArea", - title: "부대시설면적", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "archArea", - title: "건축면적", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "knwlIndstCntrNm", - title: "지식산업센터명", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "rprsTpbiz", - title: "대표업종", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "tpbizNm", - title: "업종명", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "tpbizCd", - title: "업종코드", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "cycl", - title: "차수", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "corpAddr", - title: "법인주소", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "esntlIdx", - title: "필지수", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fctryAddr", - title: "공장주소", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fctryLotnoAddr", - title: "공장주소_지번", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "fctryMngNo", - title: "공장관리번호", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, -]; \ No newline at end of file + { id: "ctpvCd", title: "시도", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "sggCd", title: "시군구", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "mngInstNm", title: "관리기관", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "dmdCoNm", title: "회사명", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "fctrySe", title: "공장구분", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "cmpxNm", title: "단지명", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "fndnSe", title: "설립구분", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "mvnShp", title: "입주형태", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "hldSe", title: "보유구분", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "frstAprvYmd", title: "최초승인일", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "frstRegYmd", title: "최초등록일", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "regSe", title: "등록구분", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "regYmd", title: "등록일", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "telno", title: "전화번호", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "maleEmpCnt", title: "남자종업원", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "fmaleEmpCnt", title: "여자종업원", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "frgnrMaleEmpCnt", title: "외국인남자종업원", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "frgnrFmaleEmpCnt", title: "외국인여자종업원", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "totalEmpCnt", title: "종업원합계", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "prdctnItem", title: "생산품", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "splyMtrl", title: "원자재", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "fctryScl", title: "공장규모", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "usgRgn", title: "용도지역", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "ldcg", title: "지목", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "usgRgnArea", title: "용지면적(m²)", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "mnftrFcltArea", title: "제조시설면적", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "sbsdFcltArea", title: "부대시설면적", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "archArea", title: "건축면적", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "knwlIndstCntrNm", title: "지식산업센터명", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "rprsTpbiz", title: "대표업종", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "tpbizNm", title: "업종명", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "tpbizCd", title: "업종코드", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "cycl", title: "차수", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "corpAddr", title: "법인주소", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "esntlIdx", title: "필지수", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "fctryAddr", title: "공장주소", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "fctryLotnoAddr", title: "공장주소_지번", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, + { id: "fctryMngNo", title: "공장관리번호", visible: true, row: 1, rowSpan: 1, colSpan: 1 }, +]; diff --git a/apps/wr/app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/headList.tsx b/apps/wr/app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/headList.tsx index 51b9634d3..1568d567b 100644 --- a/apps/wr/app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/headList.tsx +++ b/apps/wr/app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/headList.tsx @@ -1,61 +1,25 @@ import type { TableUpperProps } from "@/app/store/common/type/header"; export const rainChkgdnHeadSttnExport: TableUpperProps[] = [ - { id: 'order', title: "순번", mergeCell: true }, - { id: "cityText", title: "시도", mergeCell: true }, - { id: "sggText", title: "시군구", mergeCell: true }, - { id: "bdstNm", title: "시설명", mergeCell: true }, - { id: "operMngCdText", title: "운영관리형태", mergeCell: true }, - { id: "oilqMeasMthdText", title: "유량측정방법", mergeCell: true }, - { id: "anlOperCst", title: "연간운영비(원/년)", mergeCell: true }, - { id: "dtfcltCpct", title: "빗물저류조용량(m³)", mergeCell: true }, - { id: "chckYmd", title: "점검일", mergeCell: true }, - { id: "utztnUsgCdText", title: "이용용도" }, - { id: "totalSplyUswtrUtztnQnt", title: "연간대체수이용량(m³)" }, - { id: "totalRuseFcltUtztnQnt", title: "연간빗물이용량(m³)" }, - { - id: "ph", - title: "수소이온농도(pH)", - upName: "useQuilty", - upSequnce: 1, - type: "number", - }, - { - id: "trbt", - title: "탁도(NTU)", - upName: "useQuilty", - upSequnce: 2, - type: "number", - }, - { - id: "grssClfg", - title: "총대장균군수(개/mg)", - upName: "useQuilty", - upSequnce: 3, - type: "number", - }, + { id: 'order', title: "순번", mergeCell: true, widthPercent: 4 }, + { id: "cityText", title: "시도", mergeCell: true, widthPercent: 5 }, + { id: "sggText", title: "시군구", mergeCell: true, widthPercent: 5 }, + { id: "bdstNm", title: "시설명", mergeCell: true, widthPercent: 7 }, + { id: "operMngCdText", title: "운영관리형태", mergeCell: true, widthPercent: 6 }, + { id: "oilqMeasMthdText", title: "유량측정방법", mergeCell: true, widthPercent: 6 }, + { id: "anlOperCst", title: "연간운영비(원/년)", mergeCell: true, widthPercent: 7 }, + { id: "dtfcltCpct", title: "빗물저류조용량(m³)", mergeCell: true, widthPercent: 6 }, + { id: "chckYmd", title: "점검일", mergeCell: true, widthPercent: 5 }, + { id: "utztnUsgCdText", title: "이용용도", widthPercent: 5 }, + { id: "totalSplyUswtrUtztnQnt", title: "연간대체수이용량(m³)", widthPercent: 7 }, + { id: "totalRuseFcltUtztnQnt", title: "연간빗물이용량(m³)", widthPercent: 7 }, + { id: "ph", title: "수소이온농도(pH)", upName: "useQuilty", upSequnce: 1, type: "number", widthPercent: 5 }, + { id: "trbt", title: "탁도(NTU)", upName: "useQuilty", upSequnce: 2, type: "number", widthPercent: 4 }, + { id: "grssClfg", title: "총대장균군수(개/mg)", upName: "useQuilty", upSequnce: 3, type: "number", widthPercent: 5 }, - { - id: "vltnDt", - title: "부과일(위반일)", - upName: "feeHist", - upSequnce: 1, - type: "text", - }, - { - id: "vltnMttr", - title: "위반사항", - upName: "feeHist", - upSequnce: 2, - type: "text", - }, - { - id: "levyAmt", - title: "부과금액(천원)", - upName: "feeHist", - upSequnce: 3, - type: "number", - }, + { id: "vltnDt", title: "부과일(위반일)", upName: "feeHist", upSequnce: 1, type: "text", widthPercent: 5 }, + { id: "vltnMttr", title: "위반사항", upName: "feeHist", upSequnce: 2, type: "text", widthPercent: 6 }, + { id: "levyAmt", title: "부과금액(천원)", upName: "feeHist", upSequnce: 3, type: "number", widthPercent: 5 }, ]; export const ruseSttnHeadListExport: TableUpperProps[] = [ @@ -87,24 +51,9 @@ export const splSttnHeadListExport: TableUpperProps[] = [ { id: "spl07", title: "7월", upName: "splWater", upSequnce: 8 }, { id: "spl08", title: "8월", upName: "splWater", upSequnce: 9 }, { id: "spl09", title: "9월", upName: "splWater", upSequnce: 10 }, - { - id: "spl10", - title: "10월", - upName: "splWater", - upSequnce: 11, - }, - { - id: "spl11", - title: "11월", - upName: "splWater", - upSequnce: 12, - }, - { - id: "spl12", - title: "12월", - upName: "splWater", - upSequnce: 13, - }, + { id: "spl10", title: "10월", upName: "splWater", upSequnce: 11 }, + { id: "spl11", title: "11월", upName: "splWater", upSequnce: 12 }, + { id: "spl12", title: "12월", upName: "splWater", upSequnce: 13 }, ]; export const rswtDetailHeadListExport: TableUpperProps[] = [ diff --git a/apps/wr/app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx b/apps/wr/app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx index 831266e36..2eba48db1 100644 --- a/apps/wr/app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx +++ b/apps/wr/app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx @@ -1,142 +1,46 @@ import type { TableUpperProps } from "@/app/store/common/type/header"; export const rswtChkSttnHeadListExport: TableUpperProps[] = [ - { id: "order", title: "순번", mergeCell: true }, - { id: "cityText", title: "시도", mergeCell: true }, - { id: "sggText", title: "시군구", mergeCell: true }, - { id: "bdstNm", title: "시설명", mergeCell: true }, - { id: "operMngCd", title: "운영관리형태", mergeCell: true }, - { id: "anlOperCst", title: "연간운영비(원/년)", mergeCell: true }, - { id: "prcsCpct", title: "처리용량(m³)", mergeCell: true }, - { id: "spwtPositn", title: "채수지점", mergeCell: true }, - { id: "chckYmd", title: "점검일", mergeCell: true }, - { id: "utztnUsgCdText", title: "이용용도" }, - { id: "splyUswtrUtztnQnt", title: "연간보급수이용량(m³)", type: "number" }, - { id: "ruseFcltUtztnQnt", title: "연간중수도이용량(m³)", type: "number" }, + { id: "order", title: "순번", mergeCell: true, widthPercent: 4 }, + { id: "cityText", title: "시도", mergeCell: true, widthPercent: 7 }, + { id: "sggText", title: "시군구", mergeCell: true, widthPercent: 5 }, + { id: "bdstNm", title: "시설명", mergeCell: true, widthPercent: 10 }, + { id: "operMngCd", title: "운영관리형태", mergeCell: true, widthPercent: 6 }, + { id: "anlOperCst", title: "연간운영비(원/년)", mergeCell: true, widthPercent: 7 }, + { id: "prcsCpct", title: "처리용량(m³)", mergeCell: true, widthPercent: 6 }, + { id: "spwtPositn", title: "채수지점", mergeCell: true, widthPercent: 6 }, + { id: "chckYmd", title: "점검일", mergeCell: true, widthPercent: 7 }, + { id: "utztnUsgCdText", title: "이용용도", widthPercent: 7 }, + { id: "splyUswtrUtztnQnt", title: "연간보급수이용량(m³)", type: "number", widthPercent: 5 }, + { id: "ruseFcltUtztnQnt", title: "연간중수도이용량(m³)", type: "number", widthPercent: 5 }, - { - id: "grssClfgUswtr", - title: "총대장균군수(개/mg)", - upName: "useQuilty", - upSequnce: 1, - type: "number", - }, - { - id: "combResdch", - title: "결합잔류염소(mh/L)", - upName: "useQuilty", - upSequnce: 2, - type: "number", - }, - { - id: "trbt", - title: "탁도(NTU)", - upName: "useQuilty", - upSequnce: 3, - type: "number", - }, - { - id: "bod", - title: "BOD(mg/L)", - upName: "useQuilty", - upSequnce: 4, - type: "number", - }, - { - id: "smll", - title: "냄새", - upName: "useQuilty", - upSequnce: 5, - type: "text", - }, - { - id: "crmty", - title: "색도(도)", - upName: "useQuilty", - upSequnce: 6, - type: "number", - }, - { id: "tn", title: "총질소(T-N)(mg/L)", upName: "useQuilty", upSequnce: 7, type: "number" }, - { - id: "tph", - title: "총인(T-P)(mg/L)", - upName: "useQuilty", - upSequnce: 8, - type: "number", - }, - { id: "ph", title: "수소이온농도(pH)", upName: "useQuilty", upSequnce: 9, type: "text" }, - { - id: "clIonQnt", - title: "염화물(mg/L)", - upName: "useQuilty", - upSequnce: 10, - type: "number", - }, + { id: "grssClfgUswtr", title: "총대장균군수(개/mg)", upName: "useQuilty", upSequnce: 1, type: "number", widthPercent: 6 }, + { id: "combResdch", title: "결합잔류염소(mh/L)", upName: "useQuilty", upSequnce: 2, type: "number", widthPercent: 6 }, + { id: "trbt", title: "탁도(NTU)", upName: "useQuilty", upSequnce: 3, type: "number", widthPercent: 4 }, + { id: "bod", title: "BOD (mg/L)", upName: "useQuilty", upSequnce: 4, type: "number", widthPercent: 4 }, + { id: "smll", title: "냄새", upName: "useQuilty", upSequnce: 5, type: "text", widthPercent: 4 }, + { id: "crmty", title: "색도(도)", upName: "useQuilty", upSequnce: 6, type: "number", widthPercent: 4 }, + { id: "tn", title: "총질소(T-N)(mg/L)", upName: "useQuilty", upSequnce: 7, type: "number", widthPercent: 5 }, + { id: "tph", title: "총인(T-P)(mg/L)", upName: "useQuilty", upSequnce: 8, type: "number", widthPercent: 5 }, + { id: "ph", title: "수소이온농도(pH)", upName: "useQuilty", upSequnce: 9, type: "text", widthPercent: 5 }, + { id: "clIonQnt", title: "염화물(mg/L)", upName: "useQuilty", upSequnce: 10, type: "number", widthPercent: 5 }, - { - id: "vltnDt", - title: "부과일(위반일)", - upName: "feeHist", - upSequnce: 1, - type: "text", - }, - { - id: "vltnMttr", - title: "위반사항", - upName: "feeHist", - upSequnce: 2, - type: "text", - }, - { - id: "levyAmt", - title: "부과금액(천원)", - upName: "feeHist", - upSequnce: 3, - type: "number", - }, + { id: "vltnDt", title: "부과일(위반일)", upName: "feeHist", upSequnce: 1, type: "text", widthPercent: 5 }, + { id: "vltnMttr", title: "위반사항", upName: "feeHist", upSequnce: 2, type: "text", widthPercent: 6 }, + { id: "levyAmt", title: "부과금액(천원)", upName: "feeHist", upSequnce: 3, type: "number", widthPercent: 5 }, ]; export const rswtDetailSttnHeadListExport: TableUpperProps[] = [ { id: "utztnUsgCd", title: "이용용도" }, - { - id: "grssClfgUswtr", - title: "총대장균군수", - upName: "detailQulity", - upSequnce: 2, - }, - { - id: "combResdch", - title: "결합잔류염소", - upName: "detailQulity", - upSequnce: 3, - }, - { - id: "trbt", - title: "탁도", - upName: "detailQulity", - upSequnce: 4, - }, + { id: "grssClfgUswtr", title: "총대장균군수", upName: "detailQulity", upSequnce: 2 }, + { id: "combResdch", title: "결합잔류염소", upName: "detailQulity", upSequnce: 3 }, + { id: "trbt", title: "탁도", upName: "detailQulity", upSequnce: 4 }, { id: "bod", title: "BOD", upName: "detailQulity", upSequnce: 5 }, - { - id: "smll", - title: "냄새", - upName: "detailQulity", - upSequnce: 6, - }, - { - id: "crmty", - title: "색도", - upName: "detailQulity", - upSequnce: 7, - }, - { id: "tn", title: "T-N", upName: "detailQulity", upSequnce: 8}, + { id: "smll", title: "냄새", upName: "detailQulity", upSequnce: 6 }, + { id: "crmty", title: "색도", upName: "detailQulity", upSequnce: 7 }, + { id: "tn", title: "T-N", upName: "detailQulity", upSequnce: 8 }, { id: "tph", title: "T-P", upName: "detailQulity", upSequnce: 9 }, { id: "ph", title: "pH", upName: "detailQulity", upSequnce: 10 }, - { - id: "clIonQnt", - title: "염화물", - upName: "detailQulity", - upSequnce: 11, - }, + { id: "clIonQnt", title: "염화물", upName: "detailQulity", upSequnce: 11 }, ]; diff --git a/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/headList.tsx b/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/headList.tsx index b6641a796..0df7ec37c 100644 --- a/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/headList.tsx +++ b/apps/wr/app/store/prfmncSttn/pbnstPrfmncSttn/headList.tsx @@ -5,31 +5,36 @@ export const pbnstPrfmncSttnHeadListExport: TableUpperProps[] = [ id: "number", title: "No", rowSpan: 2, - row: 0 + row: 0, + widthPercent: 4, }, { id: "sido", title: "시도", rowSpan: 2, - row: 0 + row: 0, + widthPercent: 6, }, { id: "gugun", title: "시군구", rowSpan: 2, - row: 0 + row: 0, + widthPercent: 6, }, { id: "bscFctNm", title: "시설명", rowSpan: 2, - row: 0 + row: 0, + widthPercent: 10, }, { id: "ruseUtztnFcltNm", title: "재이용시설명", rowSpan: 2, - row: 0 + row: 0, + widthPercent: 12, }, ] @@ -39,22 +44,26 @@ export const pbnstYearHeadListExport: TableUpperProps[] = [ id: "year", title: "년도", colSpan: 3, - row: 0 + row: 0, + widthPercent: 18, }, { id: "total", title: "계(m³)", - row: 1 + row: 1, + widthPercent: 6, }, { id: "inUsage", title: "장내용수(m³)", - row: 1 + row: 1, + widthPercent: 6, }, { id: "outUsage", title: "장외용수(m³)", - row: 1 + row: 1, + widthPercent: 6, }, ] @@ -78,4 +87,4 @@ export const monthSttnHeadListExport: TableUpperProps[] = [ { id: "10월", title: "10" }, { id: "11월", title: "11월" }, { id: "12월", title: "12월", }, -]; \ No newline at end of file +]; diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/headList.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/headList.tsx index a37067775..76049d5c9 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/headList.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/htdflSttn/headList.tsx @@ -7,94 +7,112 @@ export const htdflSttHeadListExport: z.infer = [ id: "cityText", title: "시도", visible: true, + widthPercent: 4, }, { id: "sggText", title: "시군구", visible: true, + widthPercent: 4, }, { id: "bdstNm", title: "발전소명", visible: true, + widthPercent: 7, }, { id: "daddr", title: "주소", visible: true, + widthPercent: 9, }, { id: "frstArchPrmsnDt", title: "준공년월", visible: true, + widthPercent: 5, }, { id: "etgtType", title: "발전유형", visible: true, + widthPercent: 4, }, { id: "fclCpct", title: "설비용량(KW)", visible: true, + widthPercent: 5, }, { id: "plwtYn", title: "담수화여부", visible: true, + widthPercent: 4, }, { id: "orgwtWtritSpt", title: "원수취수지점", visible: true, + widthPercent: 5, }, { id: "wtritEntrcTp", title: "취수구온도(℃)", visible: true, + widthPercent: 5, }, { id: "orgwtOcrnProcs", title: "원수발생공정", visible: true, + widthPercent: 6, }, { id: "amtgnr", title: "발생량", visible: true, + widthPercent: 5, }, { id: "prcsProcsYn", title: "처리공정여부", visible: true, + widthPercent: 4, }, { id: "prcsFcltCpct", title: "처리시설용량(m³)", visible: true, + widthPercent: 6, }, { id: "fmYn", title: "유량계여부", visible: true, + widthPercent: 4, }, { id: "utztnCpct", title: "이용량(m³)", visible: true, + widthPercent: 5, }, { id: "utztnUsg", title: "이용용도", visible: true, + widthPercent: 4, }, { id: "emsnExitTp", title: "배출구온도(℃)", visible: true, + widthPercent: 4, }, ]; diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/headList.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/headList.tsx index ac766b0b3..71c4c01d7 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/headList.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/headList.tsx @@ -6,31 +6,31 @@ import type { import { z } from "zod"; export const pbnSttHeadListExport: z.infer = [ - { id: "rvbsn", title: "권역", visible: true }, - { id: "lgbsn", title: "단위유역", visible: true, }, - { id: "mdmbsn", title: "중권역", visible: true, }, - { id: "rgnNm", title: "환경청", visible: true }, - { id: "sido", title: "시도", visible: true, }, - { id: "gugun", title: "시군구", visible: true, }, - { id: "bscFctNm", title: "시설명", visible: true }, - { id: "efflWqltStndrdNm", title: "지역구분", visible: true }, + { id: "rvbsn", title: "권역", visible: true, widthPercent: 4 }, + { id: "lgbsn", title: "단위유역", visible: true, widthPercent: 4 }, + { id: "mdmbsn", title: "중권역", visible: true, widthPercent: 4 }, + { id: "rgnNm", title: "환경청", visible: true, widthPercent: 5 }, + { id: "sido", title: "시도", visible: true, widthPercent: 4 }, + { id: "gugun", title: "시군구", visible: true, widthPercent: 4 }, + { id: "bscFctNm", title: "시설명", visible: true, widthPercent: 7 }, + { id: "efflWqltStndrdNm", title: "지역구분", visible: true, widthPercent: 5 }, - { id: "tel", title: "전화번호", visible: true }, - { id: "fctCpc", title: "시설용량(톤/일)", visible: true }, - { id: "ruseUtztnFcltNm", title: "재이용시설명", visible: true }, + { id: "tel", title: "전화번호", visible: true, widthPercent: 6 }, + { id: "fctCpc", title: "시설용량(톤/일)", visible: true, widthPercent: 5 }, + { id: "ruseUtztnFcltNm", title: "재이용시설명", visible: true, widthPercent: 7 }, - { id: "fcltCpct", title: "시설용량(m³/일)", visible: true, }, - { id: "splyExtraCpct", title: "하수처리량(m³/일)", visible: true, }, - { id: "ruseCpct", title: "재이용량(m³/일)", visible: true, }, + { id: "fcltCpct", title: "시설용량(m³/일)", visible: true, widthPercent: 5 }, + { id: "splyExtraCpct", title: "하수처리량(m³/일)", visible: true, widthPercent: 5 }, + { id: "ruseCpct", title: "재이용량(m³/일)", visible: true, widthPercent: 5 }, - { id: "usageTotal", title: "합계", visible: true, }, - { id: "inUsage", title: "장내용수", visible: true, }, - { id: "outUsage", title: "장외용수", visible: true, }, + { id: "usageTotal", title: "합계", visible: true, widthPercent: 4 }, + { id: "inUsage", title: "장내용수", visible: true, widthPercent: 4 }, + { id: "outUsage", title: "장외용수", visible: true, widthPercent: 4 }, - { id: "operMthd", title: "운영방식", visible: true, }, - { id: "rprtvBzenty", title: "대행업체", visible: true, }, - { id: "bgngDt", title: "시작일", visible: true, }, - { id: "endDt", title: "종료일", visible: true, }, + { id: "operMthd", title: "운영방식", visible: true, widthPercent: 4 }, + { id: "rprtvBzenty", title: "대행업체", visible: true, widthPercent: 5 }, + { id: "bgngDt", title: "시작일", visible: true, widthPercent: 4 }, + { id: "endDt", title: "종료일", visible: true, widthPercent: 4 }, ]; // id는 다확인해야함 diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/headList.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/headList.tsx index a461b3336..2895d28c5 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/headList.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/headList.tsx @@ -6,38 +6,39 @@ export const sttnHeadListType = z.array( id: z.string(), title: z.string(), visible: z.boolean(), + widthPercent: z.number().optional(), }) ); export const rainSttHeadListExport: z.infer = [ - { id: "cityText", title: "시도", visible: true, }, - { id: "sggText", title: "시군구", visible: true, }, - { id: "bdstNm", title: "건축물명", visible: true, }, - { id: "daddr", title: "주소", visible: true, }, - { id: "bdsgUsgText", title: "건축물용도", visible: true, }, - { id: "frstArchPrmsnDt", title: "최초건축허가일시", visible: true, }, - { id: "archArea", title: "건축면적", visible: true, }, - { id: "chBuildingYn", title: "증축・개축・재축여부", visible: true, }, - { id: "lawTrgtYn", title: "법적의무대상여부", visible: true, }, - { id: "instlCmptnDt", title: "설치완료일시", visible: true, }, + { id: "cityText", title: "시도", visible: true, widthPercent: 4 }, + { id: "sggText", title: "시군구", visible: true, widthPercent: 4 }, + { id: "bdstNm", title: "건축물명", visible: true, widthPercent: 6 }, + { id: "daddr", title: "주소", visible: true, widthPercent: 8 }, + { id: "bdsgUsgText", title: "건축물용도", visible: true, widthPercent: 5 }, + { id: "frstArchPrmsnDt", title: "최초건축허가일시", visible: true, widthPercent: 6 }, + { id: "archArea", title: "건축면적", visible: true, widthPercent: 4 }, + { id: "chBuildingYn", title: "증축・개축・재축여부", visible: true, widthPercent: 4 }, + { id: "lawTrgtYn", title: "법적의무대상여부", visible: true, widthPercent: 4 }, + { id: "instlCmptnDt", title: "설치완료일시", visible: true, widthPercent: 5 }, - { id: "instlCst", title: "설치비용", visible: true, }, + { id: "instlCst", title: "설치비용", visible: true, widthPercent: 6 }, - { id: "pntfColKnd", title: "집수지점종류", visible: true, }, - { id: "pntfColArea", title: "집수지점면적", visible: true, }, + { id: "pntfColKnd", title: "집수지점종류", visible: true, widthPercent: 3 }, + { id: "pntfColArea", title: "집수지점면적", visible: true, widthPercent: 4 }, - { id: "dtfcltCpct", title: "저류조용량", visible: true, }, - { id: "filtrTrtmfctYn", title: "여과처리시설유무", visible: true, }, - { id: "filtrTrtmfctCpct", title: "여과처리시설용량", visible: true, }, - { id: "filtrTrtmfctPrs", title: "여과처리시설처리공정", visible: true, }, + { id: "dtfcltCpct", title: "저류조용량", visible: true, widthPercent: 4 }, + { id: "filtrTrtmfctYn", title: "여과처리시설유무", visible: true, widthPercent: 4 }, + { id: "filtrTrtmfctCpct", title: "여과처리시설용량", visible: true, widthPercent: 5 }, + { id: "filtrTrtmfctPrs", title: "여과처리시설처리공정", visible: true, widthPercent: 6 }, - { id: "instlCstSprtYn", title: "설치지원비용여부", visible: true, }, - { id: "instlCstSprtAmt", title: "설치지원비용", visible: true, }, + { id: "instlCstSprtYn", title: "설치지원비용여부", visible: true, widthPercent: 4 }, + { id: "instlCstSprtAmt", title: "설치지원비용", visible: true, widthPercent: 5 }, - { id: "grntchBdstCertYn", title: "녹색건축물인증여부", visible: true, }, - { id: "grntchBdstCertYr", title: "녹색건축물인증년도", visible: true, }, - { id: "grntchBdstCertNo", title: "녹색건축물인증번호", visible: true, }, - { id: "grntchBdstCertGrdText", title: "녹색건축물인증등급", visible: true, }, + { id: "grntchBdstCertYn", title: "녹색건축물인증여부", visible: true, widthPercent: 3 }, + { id: "grntchBdstCertYr", title: "녹색건축물인증년도", visible: true, widthPercent: 3 }, + { id: "grntchBdstCertNo", title: "녹색건축물인증번호", visible: true, widthPercent: 4 }, + { id: "grntchBdstCertGrdText", title: "녹색건축물인증등급", visible: true, widthPercent: 4 }, ]; // id는 다확인해야함 diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/headList.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/headList.tsx index 5c9dbd638..1702154e7 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/headList.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rswtSttn/headList.tsx @@ -7,36 +7,43 @@ export const rswtSttHeadListExport: z.infer = [ id: "cityText", title: "시도", visible: true, + widthPercent: 4, }, { id: "sggText", title: "시군구", visible: true, + widthPercent: 4, }, { id: "bdstNm", title: "건축물명", visible: true, + widthPercent: 6, }, { id: "daddr", title: "주소", visible: true, + widthPercent: 8, }, { id: "bdsgUsgText", title: "건축물용도", visible: true, + widthPercent: 5, }, { id: "frstArchPrmsnDt", title: "최초건축허가일시", visible: true, + widthPercent: 6, }, { id: "archArea", title: "건축면적", visible: true, + widthPercent: 4, }, // { // id: "wtrUsqty", @@ -47,12 +54,14 @@ export const rswtSttHeadListExport: z.infer = [ id: "chBuildingYn", title: "증축・개축・재축여부", visible: true, + widthPercent: 4, }, { id: "lawTrgtYn", title: "법적의무대상여부", visible: true, + widthPercent: 4, }, // { // id: "oblgTrgtWtrUsqty", @@ -63,65 +72,77 @@ export const rswtSttHeadListExport: z.infer = [ id: "instlCmptnDt", title: "설치완료일시", visible: true, + widthPercent: 5, }, { id: "instlCst", title: "설치비용", visible: true, + widthPercent: 4, }, { id: "orgwtKndCd", title: "원수종류", visible: true, + widthPercent: 4, }, { id: "filtrTrtmfctCpct", title: "처리시설용량", visible: true, + widthPercent: 5, }, { id: "filtrTrtmfctProcs", title: "주요처리공정", visible: true, + widthPercent: 6, }, { id: "filtrTrtmfctUsgCd", title: "이용용도", visible: true, + widthPercent: 4, }, { id: "instlCstSprtYn", title: "설치지원비용여부", visible: true, + widthPercent: 4, }, { id: "instlCstSprtAmt", title: "설치지원비용", visible: true, + widthPercent: 5, }, { id: "grntchBdstCertYn", title: "녹색건축물인증여부", visible: true, + widthPercent: 3, }, { id: "grntchBdstCertYr", title: "녹색건축물인증년도", visible: true, + widthPercent: 3, }, { id: "grntchBdstCertNo", title: "녹색건축물인증번호", visible: true, + widthPercent: 4, }, { id: "grntchBdstCertGrdText", title: "녹색건축물인증등급", visible: true, + widthPercent: 5, }, ]; diff --git a/apps/wr/components/lib/func/TableData.tsx b/apps/wr/components/lib/func/TableData.tsx index 54c669b86..0e87ad63c 100644 --- a/apps/wr/components/lib/func/TableData.tsx +++ b/apps/wr/components/lib/func/TableData.tsx @@ -138,7 +138,8 @@ export const chRowspanTable = ( {key === "checkBox" ? ( handleCellClick(rowIndex, head.id)} + style={{ width: head.widthPercent ? `${head.widthPercent}%` : undefined }} > {head.edit === true ? ( [ diff --git a/apps/wr/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx b/apps/wr/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx index 9fb84e205..a8664063e 100644 --- a/apps/wr/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx +++ b/apps/wr/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx @@ -190,7 +190,21 @@ export default function RainChkgdTable({ return ( <> - +
+ + {headList.headList + .filter((head) => head.visible !== false) + .map((head) => ( + + ))} + {headMakeprfmnc( headList?.headList, diff --git a/apps/wr/components/ui/table/chkgdTable/rswtChkgd/rswtChkgdTable.tsx b/apps/wr/components/ui/table/chkgdTable/rswtChkgd/rswtChkgdTable.tsx index 080084f93..5694c8085 100644 --- a/apps/wr/components/ui/table/chkgdTable/rswtChkgd/rswtChkgdTable.tsx +++ b/apps/wr/components/ui/table/chkgdTable/rswtChkgd/rswtChkgdTable.tsx @@ -145,7 +145,21 @@ export default function RswtChkgdTable({ return ( <> -
+
+ + {headList.headList + .filter((head) => head.visible !== false) + .map((head) => ( + + ))} + {headMakeprfmnc(headList?.headList, headList?.upHeadList)} From 4b1dd416b51842c5d7489b6f722615e4949a0cfc Mon Sep 17 00:00:00 2001 From: ljpark Date: Wed, 1 Apr 2026 18:12:28 +0900 Subject: [PATCH 2/9] =?UTF-8?q?wr:=20=EA=B3=A0=EC=A0=95=20width2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matMng/coMat/coMatRvw/page.tsx | 1 + .../matMng/coMat/ruseRvwHstry/page.tsx | 1 + .../wr/app/store/matDmd/coMatRvw/headList.tsx | 201 ++------- .../wr/app/store/matDmd/drgtSttn/headList.tsx | 92 +--- .../app/store/matDmd/ruseCaseMng/headList.tsx | 409 +++--------------- .../store/matDmd/ruseRvwHstry/headList.tsx | 79 +--- 6 files changed, 113 insertions(+), 670 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx index 56096015f..12532f317 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx @@ -305,6 +305,7 @@ export default function CoMatRvw() { headName={"수요매칭검토현황"} tableData={dmdMatData || []} headlist={coRvwHeadList} + widthFixed={true} pageSize={13} total={coMatRvwCount} cellClick={(index: number | undefined) => { diff --git a/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx index 392cc2fd3..d012d2b7b 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx @@ -334,6 +334,7 @@ export default function RuseRvwHstry() { headName={"재이용검토현황"} tableData={rvwHistData || []} headlist={ruseHistHeadList} + widthFixed={true} pageSize={20} total={rvwHistCount} cellClick={(index: number | undefined, headId: string) => { diff --git a/apps/wr/app/store/matDmd/coMatRvw/headList.tsx b/apps/wr/app/store/matDmd/coMatRvw/headList.tsx index 895ba5f89..c6ef94875 100644 --- a/apps/wr/app/store/matDmd/coMatRvw/headList.tsx +++ b/apps/wr/app/store/matDmd/coMatRvw/headList.tsx @@ -3,187 +3,46 @@ import type { CommonTableProps } from "../../common/type/header"; export const coRvwHeadListExport: CommonTableProps[]= [ - { - id: "cityText", - title: "시도", - visible: true, - }, - { - id: "sggText", - title: "시군구", - visible: true, - }, - { - id: "dmdCoNm", - title: "회사명", - visible: true, - }, - { - id: "daddr", - title: "주소", - visible: true, - }, - { - id: "telno", - title: "전화번호", - visible: true, - }, - { - id: "dmndTmng", - title: "신청일자", - visible: true, - }, - { - id: "splyFcltFlg", - title: "진행상태", - visible: true, - }, + { id: "cityText", title: "시도", visible: true, widthPercent: 12, }, + { id: "sggText", title: "시군구", visible: true, widthPercent: 8, }, + { id: "dmdCoNm", title: "회사명", visible: true, widthPercent: 14, }, + { id: "daddr", title: "주소", visible: true, widthPercent: 28, }, + { id: "telno", title: "전화번호", visible: true, widthPercent: 12, }, + { id: "dmndTmng", title: "신청일자", visible: true, widthPercent: 12, }, + { id: "splyFcltFlg", title: "진행상태", visible: true, widthPercent: 14, }, ]; // id는 다확인해야함 export const coRvwNodeListExport: CommonTableProps[] = [ - { - id: "ctpv", - title: "시도", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "sgg", - title: "시군구", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "coNm", - title: "회사명", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "addr", - title: "공장주소", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "telNo", - title: "전화번호", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "regDt", //바꾸기 - title: "신청일자", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "state", //바꾸기 - title: "진행상태", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, + { id: "ctpv", title: "시도", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "sgg", title: "시군구", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "coNm", title: "회사명", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "addr", title: "공장주소", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "telNo", title: "전화번호", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "regDt", title: "신청일자", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, //바꾸기 + { id: "state", title: "진행상태", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, //바꾸기 ]; export const constCostHeadListExport: CommonTableProps[] = [ - { - id: "gubun", - title: "구분", - visible: true, - }, - { - id: "500", - title: "500", - visible: true, - }, - { - id: "1000", - title: "1,000", - visible: true, - }, - { - id: "2000", - title: "2,000", - visible: true, - }, - { - id: "3000", //바꾸기 - title: "3,000", - visible: true, - }, - { - id: "5000", //바꾸기 - title: "5,000", - visible: true, - }, - { - id: "10000", // - title: "10,000", - visible: true, - }, - { - id: "20000", // - title: "20,000", - visible: true, - }, - { - id: "30000", // - title: "30,000", - visible: true, - }, - { - id: "50000", // - title: "50,000", - visible: true, - }, - { - id: "100000", //바꾸기 - title: "100,000", - visible: true, - }, + { id: "gubun", title: "구분", visible: true, }, + { id: "500", title: "500", visible: true, }, + { id: "1000", title: "1,000", visible: true, }, + { id: "2000", title: "2,000", visible: true, }, + { id: "3000", title: "3,000", visible: true, }, //바꾸기 + { id: "5000", title: "5,000", visible: true, }, //바꾸기 + { id: "10000", title: "10,000", visible: true, }, // + { id: "20000", title: "20,000", visible: true, }, // + { id: "30000", title: "30,000", visible: true, }, // + { id: "50000", title: "50,000", visible: true, }, // + { id: "100000", title: "100,000", visible: true, }, //바꾸기 ]; export const rateFeeHeadListExport: CommonTableProps[] = [ - { - id: "gubun", - title: "공사비/구분", - visible: true, - }, - { - id: "BD", - title: "기본조사설계비", - visible: true, - }, - { - id: "WD", - title: "실시설계비", - visible: true, - }, - { - id: "SE", - title: "공사감리비", - visible: true, - }, - { - id: "CE", - title: "시설부대비", - visible: true, - }, + { id: "gubun", title: "공사비/구분", visible: true, }, + { id: "BD", title: "기본조사설계비", visible: true, }, + { id: "WD", title: "실시설계비", visible: true, }, + { id: "SE", title: "공사감리비", visible: true, }, + { id: "CE", title: "시설부대비", visible: true, }, ]; export const usageProcData = [ diff --git a/apps/wr/app/store/matDmd/drgtSttn/headList.tsx b/apps/wr/app/store/matDmd/drgtSttn/headList.tsx index dcdc655b5..34fb7db6f 100644 --- a/apps/wr/app/store/matDmd/drgtSttn/headList.tsx +++ b/apps/wr/app/store/matDmd/drgtSttn/headList.tsx @@ -15,87 +15,17 @@ export const drgtZod = z.object({ }) export const drgtHeadListExport: CommonTableProps[] = [ - { - id: "ctpvCd", - title: "시도", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "sggNm", - title: "시군구", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "normal", - title: "정상(횟수)", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "attention", - title: "관심(횟수)", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "caution", - title: "주의(횟수)", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "warning", - title: "관심+주의(횟수)", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "ranking", - title: "가뭄순위", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, + { id: "ctpvCd", title: "시도", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "sggNm", title: "시군구", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "normal", title: "정상(횟수)", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "attention", title: "관심(횟수)", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "caution", title: "주의(횟수)", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "warning", title: "관심+주의(횟수)", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "ranking", title: "가뭄순위", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, ]; export const drgtDetailHeadListExport: CommonTableProps[] = [ - { - id: "year", - title: "년", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "month", - title: "월", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, - { - id: "drgtState", - title: "가뭄상태", - visible: true, - row: 1, - rowSpan: 1, - colSpan: 1, - }, -] \ No newline at end of file + { id: "year", title: "년", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "month", title: "월", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, + { id: "drgtState", title: "가뭄상태", visible: true, row: 1, rowSpan: 1, colSpan: 1, }, +] diff --git a/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx b/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx index c201f5d28..81659ad6d 100644 --- a/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx +++ b/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx @@ -2,358 +2,63 @@ import type { SelectDataType } from "@common/business_components/ui"; import type { TableUpperProps } from "../../common/type/header"; export const ruseCaseHeadListExport: TableUpperProps[] = [ - { - id: "ruseBizNm", - title: "사업명", - visible: true, - row: 0, - rowSpan: 2, - }, - { - id: "bizBgngDate", - title: "사업시작년", - visible: true, - row: 0, - rowSpan: 2, - }, - { - id: "bizEndDate", - title: "사업종료년", - visible: true, - row: 0, - rowSpan: 2, - }, - { - id: "c", - title: "공급처", - visible: true, - row: 0, - colSpan: 3, - }, - { - id: "splyFcltKnd", - title: "시설종류", - visible: true, - row: 1, - }, - { - id: "splyFcltNm", - title: "공급처명", - visible: true, - row: 1, - }, - { - id: "splyFcltCpct", - title: "시설용량(m³/일)", - visible: true, - row: 1, - }, - { - id: "g", - title: "수요처", - visible: true, - row: 0, - colSpan: 2, - }, - { - id: "dmdFcltNm", - title: "수요처명", - visible: true, - row: 1, - }, - { - id: "dmdFcltAddr", - title: "주소", - visible: true, - row: 1, - }, - { - id: "q", - title: "재이용시설", - visible: true, - row: 0, - colSpan: 5, - }, - { - id: "ruseFcltCpct", - title: "시설용량(m³/일)", - visible: true, - row: 1, - }, - { - id: "ruseFcltPplLen", - title: "관로(km)", - visible: true, - row: 1, - }, - { - id: "ruseFcltUsg", - title: "용도", - visible: true, - row: 1, - }, - { - id: "ruseFcltSplyCpct", - title: "공급량(m³/일)", - visible: true, - row: 1, - }, - { - id: "ruseFcltPrcsMsrc", - title: "처리공법", - visible: true, - row: 1, - }, - { - id: "k", - title: "보증수질", - visible: true, - row: 0, - colSpan: 13, - }, - { - id: "grnteWqUsg", - title: "용도별", - visible: true, - row: 1, - }, - { - id: "grnteWqGrssClfg", - title: "총대장균군수​(개/100ml)", - visible: true, - row: 1, - }, - { - id: "grnteWqCombResdch", - title: "결합잔류염소(mg/L)", - visible: true, - row: 1, - }, - { - id: "grnteWqTrbt", - title: "탁도(NTU)", - visible: true, - row: 1, - }, - { - id: "grnteWqBod", - title: "생물학적​산소요구량(BOD)(mg/L)​", - visible: true, - row: 1, - }, - { - id: "grnteWqSmll", - title: "냄새​", - visible: true, - row: 1, - }, - { - id: "grnteWqCrmty", - title: "색도​", - visible: true, - row: 1, - }, - { - id: "grnteWqTn", - title: "총질소(T-N)(mg/L)​", - visible: true, - row: 1, - }, - { - id: "grnteWqTp", - title: "총인(T-P)(mg/L)", - visible: true, - row: 1, - }, - { - id: "grnteWqPh", - title: "수소이온농도(pH)​", - visible: true, - row: 1, - }, - { - id: "grnteWqClIonQnt", - title: "염화물", - visible: true, - row: 1, - }, - { - id: "grnteWqCndctStat", - title: "전기전도도​(㎲/cm)", - visible: true, - row: 1, - }, - { - id: "grnteWqRmrk", - title: "비고​", - visible: true, - row: 1, - }, - { - id: "h", - title: "소요사업비(백만원)", - visible: true, - row: 0, - colSpan: 14, - }, - { - id: "reqBizGrssCst", - title: "총", - visible: true, - row: 1, - }, - { - id: "reqBizReuseFcltCst", - title: "토목재이용시설", - visible: true, - row: 1, - }, - { - id: "reqBizPplCst", - title: "토목관로", - visible: true, - row: 1, - }, - { - id: "reqBizArchCst", - title: "건축", - visible: true, - row: 1, - }, - { - id: "reqBizMchnCst", - title: "기계", - visible: true, - row: 1, - }, - { - id: "reqBizMtrngCst", - title: "전기・계측", - visible: true, - row: 1, - }, - { - id: "reqBizGisCst", - title: "GIS・DB", - visible: true, - row: 1, - }, - { - id: "reqBizCctvCst", - title: "CCTV", - visible: true, - row: 1, - }, - { - id: "reqBizCmcnCst", - title: "시공및준공", - visible: true, - row: 1, - }, - { - id: "reqBizWstCst", - title: "페기물", - visible: true, - row: 1, - }, - { - id: "reqBizDesignCst", - title: "설계비", - visible: true, - row: 1, - }, - { - id: "reqBizSpvsCst", - title: "감리비", - visible: true, - row: 1, - }, - { - id: "reqBizSbsdCst", - title: "시설부대비", - visible: true, - row: 1, - }, - { - id: "reqBizEtc", - title: "기타", - visible: true, - row: 1, - }, - { - id: "i", - title: "자원조달계획(백만원)", - visible: true, - row: 0, - colSpan: 5, - }, - { - id: "prcmPlanGrssCst", - title: "총", - visible: true, - row: 1, - }, - { - id: "prcmPlanNlep", - title: "국비", - visible: true, - row: 1, - }, - { - id: "prcmPlanLcep", - title: "지방비", - visible: true, - row: 1, - }, - { - id: "prcmPlanBrdnCst", - title: "원인자부담", - visible: true, - row: 1, - }, - { - id: "prcmPlanEcqrRt", - title: "국고비율(%)", - visible: true, - row: 1, - }, - { - id: "j", - title: "사업비정산(백만원)", - visible: true, - row: 0, - colSpan: 5, - }, - { - id: "clclnGrssCst", - title: "총", - visible: true, - row: 1, - }, - { - id: "clclnNlep", - title: "국비", - visible: true, - row: 1, - }, - { - id: "clclnLcep", - title: "지방비", - visible: true, - row: 1, - }, - { - id: "clclnBrdnCst", - title: "원인자부담", - visible: true, - row: 1, - }, - { - id: "clclnEcqrRt", - title: "국고비율(%)", - visible: true, - row: 1, - }, + { id: "ruseBizNm", title: "사업명", visible: true, row: 0, rowSpan: 2, }, + { id: "bizBgngDate", title: "사업시작년", visible: true, row: 0, rowSpan: 2, }, + { id: "bizEndDate", title: "사업종료년", visible: true, row: 0, rowSpan: 2, }, + { id: "c", title: "공급처", visible: true, row: 0, colSpan: 3, }, + { id: "splyFcltKnd", title: "시설종류", visible: true, row: 1, }, + { id: "splyFcltNm", title: "공급처명", visible: true, row: 1, }, + { id: "splyFcltCpct", title: "시설용량(m³/일)", visible: true, row: 1, }, + { id: "g", title: "수요처", visible: true, row: 0, colSpan: 2, }, + { id: "dmdFcltNm", title: "수요처명", visible: true, row: 1, }, + { id: "dmdFcltAddr", title: "주소", visible: true, row: 1, }, + { id: "q", title: "재이용시설", visible: true, row: 0, colSpan: 5, }, + { id: "ruseFcltCpct", title: "시설용량(m³/일)", visible: true, row: 1, }, + { id: "ruseFcltPplLen", title: "관로(km)", visible: true, row: 1, }, + { id: "ruseFcltUsg", title: "용도", visible: true, row: 1, }, + { id: "ruseFcltSplyCpct", title: "공급량(m³/일)", visible: true, row: 1, }, + { id: "ruseFcltPrcsMsrc", title: "처리공법", visible: true, row: 1, }, + { id: "k", title: "보증수질", visible: true, row: 0, colSpan: 13, }, + { id: "grnteWqUsg", title: "용도별", visible: true, row: 1, }, + { id: "grnteWqGrssClfg", title: "총대장균군수​(개/100ml)", visible: true, row: 1, }, + { id: "grnteWqCombResdch", title: "결합잔류염소(mg/L)", visible: true, row: 1, }, + { id: "grnteWqTrbt", title: "탁도(NTU)", visible: true, row: 1, }, + { id: "grnteWqBod", title: "생물학적​산소요구량(BOD)(mg/L)​", visible: true, row: 1, }, + { id: "grnteWqSmll", title: "냄새​", visible: true, row: 1, }, + { id: "grnteWqCrmty", title: "색도​", visible: true, row: 1, }, + { id: "grnteWqTn", title: "총질소(T-N)(mg/L)​", visible: true, row: 1, }, + { id: "grnteWqTp", title: "총인(T-P)(mg/L)", visible: true, row: 1, }, + { id: "grnteWqPh", title: "수소이온농도(pH)​", visible: true, row: 1, }, + { id: "grnteWqClIonQnt", title: "염화물", visible: true, row: 1, }, + { id: "grnteWqCndctStat", title: "전기전도도​(㎲/cm)", visible: true, row: 1, }, + { id: "grnteWqRmrk", title: "비고​", visible: true, row: 1, }, + { id: "h", title: "소요사업비(백만원)", visible: true, row: 0, colSpan: 14, }, + { id: "reqBizGrssCst", title: "총", visible: true, row: 1, }, + { id: "reqBizReuseFcltCst", title: "토목재이용시설", visible: true, row: 1, }, + { id: "reqBizPplCst", title: "토목관로", visible: true, row: 1, }, + { id: "reqBizArchCst", title: "건축", visible: true, row: 1, }, + { id: "reqBizMchnCst", title: "기계", visible: true, row: 1, }, + { id: "reqBizMtrngCst", title: "전기・계측", visible: true, row: 1, }, + { id: "reqBizGisCst", title: "GIS・DB", visible: true, row: 1, }, + { id: "reqBizCctvCst", title: "CCTV", visible: true, row: 1, }, + { id: "reqBizCmcnCst", title: "시공및준공", visible: true, row: 1, }, + { id: "reqBizWstCst", title: "페기물", visible: true, row: 1, }, + { id: "reqBizDesignCst", title: "설계비", visible: true, row: 1, }, + { id: "reqBizSpvsCst", title: "감리비", visible: true, row: 1, }, + { id: "reqBizSbsdCst", title: "시설부대비", visible: true, row: 1, }, + { id: "reqBizEtc", title: "기타", visible: true, row: 1, }, + { id: "i", title: "자원조달계획(백만원)", visible: true, row: 0, colSpan: 5, }, + { id: "prcmPlanGrssCst", title: "총", visible: true, row: 1, }, + { id: "prcmPlanNlep", title: "국비", visible: true, row: 1, }, + { id: "prcmPlanLcep", title: "지방비", visible: true, row: 1, }, + { id: "prcmPlanBrdnCst", title: "원인자부담", visible: true, row: 1, }, + { id: "prcmPlanEcqrRt", title: "국고비율(%)", visible: true, row: 1, }, + { id: "j", title: "사업비정산(백만원)", visible: true, row: 0, colSpan: 5, }, + { id: "clclnGrssCst", title: "총", visible: true, row: 1, }, + { id: "clclnNlep", title: "국비", visible: true, row: 1, }, + { id: "clclnLcep", title: "지방비", visible: true, row: 1, }, + { id: "clclnBrdnCst", title: "원인자부담", visible: true, row: 1, }, + { id: "clclnEcqrRt", title: "국고비율(%)", visible: true, row: 1, }, ]; export const ruseUtzType: SelectDataType[] = [ diff --git a/apps/wr/app/store/matDmd/ruseRvwHstry/headList.tsx b/apps/wr/app/store/matDmd/ruseRvwHstry/headList.tsx index e2873d573..1e3253329 100644 --- a/apps/wr/app/store/matDmd/ruseRvwHstry/headList.tsx +++ b/apps/wr/app/store/matDmd/ruseRvwHstry/headList.tsx @@ -2,71 +2,18 @@ import type { TableUpperProps } from "../../common/type/header"; export const ruseHstryHeadListExport:TableUpperProps[]= [ - { - id: "cityText", - title: "시도", - visible: true, - - }, - { - id: "sggText", - title: "시군구", - visible: true, - }, - { - id: "dmdCoNm", - title: "회사명", - visible: true, - }, - { - id: "daddr", - title: "주소", - visible: true, - }, - { - id: "telno", - title: "전화번호", - visible: true, - }, - { - id: "dmndTmng", //바꾸기 - title: "신청일자", - visible: true, - }, - { - id: "rvwCmptnYmd", //바꾸기 - title: "검토일자", - visible: true, - }, - { - id: "mtchnCmptnYmd", //바꾸기 - title: "매칭 완료일자", - visible: true, - }, - { - id: "ruseUtztnFcltNm", //바꾸기 - title: "공급처", - visible: true, - }, - { - id: "dmndQty", //바꾸기 - title: "요구수량(m³/일)", - visible: true, - }, - { - id: "useUsgCd", //바꾸기 - title: "사용용도", - visible: true, - }, - { - id: "splyFcltFlg", //바꾸기 - title: "진행상태", - visible: true, - }, - { - id: "completeYn", //바꾸기 - title: "매칭완료 여부", - visible: true, - }, + { id: "cityText", title: "시도", visible: true, widthPercent: 8, }, + { id: "sggText", title: "시군구", visible: true, widthPercent: 6, }, + { id: "dmdCoNm", title: "회사명", visible: true, widthPercent: 10, }, + { id: "daddr", title: "주소", visible: true, widthPercent: 16, }, + { id: "telno", title: "전화번호", visible: true, widthPercent: 8, }, + { id: "dmndTmng", title: "신청일자", visible: true, widthPercent: 8, }, //바꾸기 + { id: "rvwCmptnYmd", title: "검토일자", visible: true, widthPercent: 8, }, //바꾸기 + { id: "mtchnCmptnYmd", title: "매칭 완료일자", visible: true, widthPercent: 8, }, //바꾸기 + { id: "ruseUtztnFcltNm", title: "공급처", visible: true, widthPercent: 10, }, //바꾸기 + { id: "dmndQty", title: "요구수량(m³/일)", visible: true, widthPercent: 7, }, //바꾸기 + { id: "useUsgCd", title: "사용용도", visible: true, widthPercent: 5, }, //바꾸기 + { id: "splyFcltFlg", title: "진행상태", visible: true, widthPercent: 3, }, //바꾸기 + { id: "completeYn", title: "매칭완료 여부", visible: true, widthPercent: 3, }, //바꾸기 ]; From 64d33bec6d3e3a406bb0bf22e7cfe4ec6b77d934 Mon Sep 17 00:00:00 2001 From: ljpark Date: Thu, 2 Apr 2026 10:32:04 +0900 Subject: [PATCH 3/9] =?UTF-8?q?wr:=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20?= =?UTF-8?q?=EC=A0=84=20cookie=20=EC=82=AD=EC=A0=9C=20=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matMng/coMat/ruseCaseMng/page.tsx | 1 + .../app/store/matDmd/ruseCaseMng/headList.tsx | 100 +++++++++--------- .../store/matDmd/ruseRvwHstry/headList.tsx | 12 +-- .../wr/src/entities/auth/api/login-service.ts | 1 + 4 files changed, 58 insertions(+), 56 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx index edda29ac6..01b0ccec5 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx @@ -315,6 +315,7 @@ export default function RuseCaseMng() { headName={"물재이용사례 현황"} tableData={ruseCaseMngList} headlist={ruseCaseMng.ruseHeadList} + widthFixed={true} pageSize={20} total={count} cellClick={undefined} diff --git a/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx b/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx index 81659ad6d..003b32caa 100644 --- a/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx +++ b/apps/wr/app/store/matDmd/ruseCaseMng/headList.tsx @@ -2,63 +2,63 @@ import type { SelectDataType } from "@common/business_components/ui"; import type { TableUpperProps } from "../../common/type/header"; export const ruseCaseHeadListExport: TableUpperProps[] = [ - { id: "ruseBizNm", title: "사업명", visible: true, row: 0, rowSpan: 2, }, - { id: "bizBgngDate", title: "사업시작년", visible: true, row: 0, rowSpan: 2, }, - { id: "bizEndDate", title: "사업종료년", visible: true, row: 0, rowSpan: 2, }, + { id: "ruseBizNm", title: "사업명", visible: true, row: 0, rowSpan: 2, widthPercent: 6, }, + { id: "bizBgngDate", title: "사업시작년", visible: true, row: 0, rowSpan: 2, widthPercent: 2, }, + { id: "bizEndDate", title: "사업종료년", visible: true, row: 0, rowSpan: 2, widthPercent: 2, }, { id: "c", title: "공급처", visible: true, row: 0, colSpan: 3, }, - { id: "splyFcltKnd", title: "시설종류", visible: true, row: 1, }, - { id: "splyFcltNm", title: "공급처명", visible: true, row: 1, }, - { id: "splyFcltCpct", title: "시설용량(m³/일)", visible: true, row: 1, }, + { id: "splyFcltKnd", title: "시설종류", visible: true, row: 1, widthPercent: 2, }, + { id: "splyFcltNm", title: "공급처명", visible: true, row: 1, widthPercent: 5, }, + { id: "splyFcltCpct", title: "시설용량\n(m³/일)", visible: true, row: 1, widthPercent: 3, }, { id: "g", title: "수요처", visible: true, row: 0, colSpan: 2, }, - { id: "dmdFcltNm", title: "수요처명", visible: true, row: 1, }, - { id: "dmdFcltAddr", title: "주소", visible: true, row: 1, }, + { id: "dmdFcltNm", title: "수요처명", visible: true, row: 1, widthPercent: 4, }, + { id: "dmdFcltAddr", title: "주소", visible: true, row: 1, widthPercent: 7, }, { id: "q", title: "재이용시설", visible: true, row: 0, colSpan: 5, }, - { id: "ruseFcltCpct", title: "시설용량(m³/일)", visible: true, row: 1, }, - { id: "ruseFcltPplLen", title: "관로(km)", visible: true, row: 1, }, - { id: "ruseFcltUsg", title: "용도", visible: true, row: 1, }, - { id: "ruseFcltSplyCpct", title: "공급량(m³/일)", visible: true, row: 1, }, - { id: "ruseFcltPrcsMsrc", title: "처리공법", visible: true, row: 1, }, + { id: "ruseFcltCpct", title: "시설용량\n(m³/일)", visible: true, row: 1, widthPercent: 1.5, }, + { id: "ruseFcltPplLen", title: "관로(km)", visible: true, row: 1, widthPercent: 1.5, }, + { id: "ruseFcltUsg", title: "용도", visible: true, row: 1, widthPercent: 3, }, + { id: "ruseFcltSplyCpct", title: "공급량\n(m³/일)", visible: true, row: 1, widthPercent: 2, }, + { id: "ruseFcltPrcsMsrc", title: "처리공법", visible: true, row: 1, widthPercent: 3, }, { id: "k", title: "보증수질", visible: true, row: 0, colSpan: 13, }, - { id: "grnteWqUsg", title: "용도별", visible: true, row: 1, }, - { id: "grnteWqGrssClfg", title: "총대장균군수​(개/100ml)", visible: true, row: 1, }, - { id: "grnteWqCombResdch", title: "결합잔류염소(mg/L)", visible: true, row: 1, }, - { id: "grnteWqTrbt", title: "탁도(NTU)", visible: true, row: 1, }, - { id: "grnteWqBod", title: "생물학적​산소요구량(BOD)(mg/L)​", visible: true, row: 1, }, - { id: "grnteWqSmll", title: "냄새​", visible: true, row: 1, }, - { id: "grnteWqCrmty", title: "색도​", visible: true, row: 1, }, - { id: "grnteWqTn", title: "총질소(T-N)(mg/L)​", visible: true, row: 1, }, - { id: "grnteWqTp", title: "총인(T-P)(mg/L)", visible: true, row: 1, }, - { id: "grnteWqPh", title: "수소이온농도(pH)​", visible: true, row: 1, }, - { id: "grnteWqClIonQnt", title: "염화물", visible: true, row: 1, }, - { id: "grnteWqCndctStat", title: "전기전도도​(㎲/cm)", visible: true, row: 1, }, - { id: "grnteWqRmrk", title: "비고​", visible: true, row: 1, }, + { id: "grnteWqUsg", title: "용도별", visible: true, row: 1, widthPercent: 2, }, + { id: "grnteWqGrssClfg", title: "총대장균군수​\n(개/100ml)", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqCombResdch", title: "결합잔류염소\n(mg/L)", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqTrbt", title: "탁도(NTU)", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqBod", title: "생물학적​산소요구량\n(BOD)(mg/L)​", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqSmll", title: "냄새​", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqCrmty", title: "색도​", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqTn", title: "총질소(T-N)(mg/L)​", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqTp", title: "총인(T-P)(mg/L)", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqPh", title: "수소이온농도(pH)​", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqClIonQnt", title: "염화물", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqCndctStat", title: "전기전도도​(㎲/cm)", visible: true, row: 1, widthPercent: 1.92, }, + { id: "grnteWqRmrk", title: "비고​", visible: true, row: 1, widthPercent: 1.92, }, { id: "h", title: "소요사업비(백만원)", visible: true, row: 0, colSpan: 14, }, - { id: "reqBizGrssCst", title: "총", visible: true, row: 1, }, - { id: "reqBizReuseFcltCst", title: "토목재이용시설", visible: true, row: 1, }, - { id: "reqBizPplCst", title: "토목관로", visible: true, row: 1, }, - { id: "reqBizArchCst", title: "건축", visible: true, row: 1, }, - { id: "reqBizMchnCst", title: "기계", visible: true, row: 1, }, - { id: "reqBizMtrngCst", title: "전기・계측", visible: true, row: 1, }, - { id: "reqBizGisCst", title: "GIS・DB", visible: true, row: 1, }, - { id: "reqBizCctvCst", title: "CCTV", visible: true, row: 1, }, - { id: "reqBizCmcnCst", title: "시공및준공", visible: true, row: 1, }, - { id: "reqBizWstCst", title: "페기물", visible: true, row: 1, }, - { id: "reqBizDesignCst", title: "설계비", visible: true, row: 1, }, - { id: "reqBizSpvsCst", title: "감리비", visible: true, row: 1, }, - { id: "reqBizSbsdCst", title: "시설부대비", visible: true, row: 1, }, - { id: "reqBizEtc", title: "기타", visible: true, row: 1, }, + { id: "reqBizGrssCst", title: "총", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizReuseFcltCst", title: "토목재이용시설", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizPplCst", title: "토목관로", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizArchCst", title: "건축", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizMchnCst", title: "기계", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizMtrngCst", title: "전기・계측", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizGisCst", title: "GIS・DB", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizCctvCst", title: "CCTV", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizCmcnCst", title: "시공및준공", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizWstCst", title: "페기물", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizDesignCst", title: "설계비", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizSpvsCst", title: "감리비", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizSbsdCst", title: "시설부대비", visible: true, row: 1, widthPercent: 1.43, }, + { id: "reqBizEtc", title: "기타", visible: true, row: 1, widthPercent: 1.43, }, { id: "i", title: "자원조달계획(백만원)", visible: true, row: 0, colSpan: 5, }, - { id: "prcmPlanGrssCst", title: "총", visible: true, row: 1, }, - { id: "prcmPlanNlep", title: "국비", visible: true, row: 1, }, - { id: "prcmPlanLcep", title: "지방비", visible: true, row: 1, }, - { id: "prcmPlanBrdnCst", title: "원인자부담", visible: true, row: 1, }, - { id: "prcmPlanEcqrRt", title: "국고비율(%)", visible: true, row: 1, }, + { id: "prcmPlanGrssCst", title: "총", visible: true, row: 1, widthPercent: 1.6, }, + { id: "prcmPlanNlep", title: "국비", visible: true, row: 1, widthPercent: 1.6, }, + { id: "prcmPlanLcep", title: "지방비", visible: true, row: 1, widthPercent: 1.6, }, + { id: "prcmPlanBrdnCst", title: "원인자부담", visible: true, row: 1, widthPercent: 1.6, }, + { id: "prcmPlanEcqrRt", title: "국고비율(%)", visible: true, row: 1, widthPercent: 1.6, }, { id: "j", title: "사업비정산(백만원)", visible: true, row: 0, colSpan: 5, }, - { id: "clclnGrssCst", title: "총", visible: true, row: 1, }, - { id: "clclnNlep", title: "국비", visible: true, row: 1, }, - { id: "clclnLcep", title: "지방비", visible: true, row: 1, }, - { id: "clclnBrdnCst", title: "원인자부담", visible: true, row: 1, }, - { id: "clclnEcqrRt", title: "국고비율(%)", visible: true, row: 1, }, + { id: "clclnGrssCst", title: "총", visible: true, row: 1, widthPercent: 2, }, + { id: "clclnNlep", title: "국비", visible: true, row: 1, widthPercent: 1.5, }, + { id: "clclnLcep", title: "지방비", visible: true, row: 1, widthPercent: 1.5, }, + { id: "clclnBrdnCst", title: "원인자부담", visible: true, row: 1, widthPercent: 1.5, }, + { id: "clclnEcqrRt", title: "국고비율(%)", visible: true, row: 1, widthPercent: 1.5, }, ]; export const ruseUtzType: SelectDataType[] = [ diff --git a/apps/wr/app/store/matDmd/ruseRvwHstry/headList.tsx b/apps/wr/app/store/matDmd/ruseRvwHstry/headList.tsx index 1e3253329..c7b1c2c53 100644 --- a/apps/wr/app/store/matDmd/ruseRvwHstry/headList.tsx +++ b/apps/wr/app/store/matDmd/ruseRvwHstry/headList.tsx @@ -7,13 +7,13 @@ export const ruseHstryHeadListExport:TableUpperProps[]= [ { id: "dmdCoNm", title: "회사명", visible: true, widthPercent: 10, }, { id: "daddr", title: "주소", visible: true, widthPercent: 16, }, { id: "telno", title: "전화번호", visible: true, widthPercent: 8, }, - { id: "dmndTmng", title: "신청일자", visible: true, widthPercent: 8, }, //바꾸기 - { id: "rvwCmptnYmd", title: "검토일자", visible: true, widthPercent: 8, }, //바꾸기 - { id: "mtchnCmptnYmd", title: "매칭 완료일자", visible: true, widthPercent: 8, }, //바꾸기 + { id: "dmndTmng", title: "신청일자", visible: true, widthPercent: 7, }, //바꾸기 + { id: "rvwCmptnYmd", title: "검토일자", visible: true, widthPercent: 7, }, //바꾸기 + { id: "mtchnCmptnYmd", title: "매칭 완료일자", visible: true, widthPercent: 7, }, //바꾸기 { id: "ruseUtztnFcltNm", title: "공급처", visible: true, widthPercent: 10, }, //바꾸기 - { id: "dmndQty", title: "요구수량(m³/일)", visible: true, widthPercent: 7, }, //바꾸기 + { id: "dmndQty", title: "요구수량\n(m³/일)", visible: true, widthPercent: 6, }, //바꾸기 { id: "useUsgCd", title: "사용용도", visible: true, widthPercent: 5, }, //바꾸기 - { id: "splyFcltFlg", title: "진행상태", visible: true, widthPercent: 3, }, //바꾸기 - { id: "completeYn", title: "매칭완료 여부", visible: true, widthPercent: 3, }, //바꾸기 + { id: "splyFcltFlg", title: "진행상태", visible: true, widthPercent: 5, }, //바꾸기 + { id: "completeYn", title: "매칭완료 여부", visible: true, widthPercent: 5, }, //바꾸기 ]; diff --git a/apps/wr/src/entities/auth/api/login-service.ts b/apps/wr/src/entities/auth/api/login-service.ts index 77d114004..9f2671c76 100644 --- a/apps/wr/src/entities/auth/api/login-service.ts +++ b/apps/wr/src/entities/auth/api/login-service.ts @@ -17,6 +17,7 @@ export class LoginApiService implements LoginService { public async login(payload: ILogin): Promise { try { + tokenManager.clearAuthToken(); const response = await fetch( PROXY_HOST+ ENDPOINT.USER_SERVICE.LOGIN, { method: "POST", body: JSON.stringify({ From 70b941c081183eec7f54e3396390630a3ceca240 Mon Sep 17 00:00:00 2001 From: ljpark Date: Thu, 2 Apr 2026 16:14:54 +0900 Subject: [PATCH 4/9] =?UTF-8?q?wr:=20=EC=82=AC=EC=9A=A9=EC=9A=A9=EB=8F=84-?= =?UTF-8?q?WR018?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matMng/coMat/ruseCaseMng/page.tsx | 19 +++++++++++++-- .../matMng/coMat/ruseRvwHstry/page.tsx | 5 +++- apps/wr/components/lib/func/common.tsx | 18 +++++++++++++- .../ruseCaseMng/ruseCaseMngExcelModal.tsx | 23 ++++++++++++++++-- apps/wr/public/sample_ruseCaseMng.xlsx | Bin 20272 -> 20846 bytes 5 files changed, 59 insertions(+), 6 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx index 01b0ccec5..542f66844 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx @@ -44,6 +44,7 @@ export default function RuseCaseMng() { const [selectUtz, setSelectUtz] = useState(""); const [name, setName] = useState(""); const [resetPage, isResetPage] = useState(false); + const [displayRuseCaseMngList, setDisplayRuseCaseMngList] = useState(ruseCaseMngList); const { t } = useTranslation("base"); const alert = useAlertStore((state) => state.setMessage); @@ -56,6 +57,19 @@ export default function RuseCaseMng() { ruseCaseMngInit(); }, []); + useEffect(() => { + const sewageOutUseCodeList = code.sewageOutFclttUse ?? []; + + setDisplayRuseCaseMngList( + ruseCaseMngList.map((item) => ({ + ...item, + grnteWqUsg: + sewageOutUseCodeList.find((codeItem) => codeItem.val === item.grnteWqUsg)?.text ?? + item.grnteWqUsg, + })) + ); + }, [code.sewageOutFclttUse, ruseCaseMngList]); + // 시도 선택 const getSelCity = (val: string | number) => { const cityValue = String(val); @@ -133,7 +147,8 @@ export default function RuseCaseMng() { item.ruseFcltUsg, item.ruseFcltSplyCpct, item.ruseFcltPrcsMsrc, - item.grnteWqUsg, + code.sewageOutFclttUse.find((codeItem) => codeItem.val === item.grnteWqUsg)?.text ?? + item.grnteWqUsg, item.grnteWqGrssClfg, item.grnteWqCombResdch, item.grnteWqTrbt, @@ -313,7 +328,7 @@ export default function RuseCaseMng() {
codeItem.val === item.useUsgCd)?.text ?? + item.useUsgCd, dmndTmng: item?.dmndTmng ? moment(item?.dmndTmng).format("YYYY-MM-DD") : "없음", @@ -232,7 +235,7 @@ export default function RuseRvwHstry() { setRvwHistData(tableData(data, { code })); } - }, [rvwHistRes]); + }, [code.sewageOutFclttUse, rvwHistRes]); return ( diff --git a/apps/wr/components/lib/func/common.tsx b/apps/wr/components/lib/func/common.tsx index e8a034b62..1d9d4a43e 100644 --- a/apps/wr/components/lib/func/common.tsx +++ b/apps/wr/components/lib/func/common.tsx @@ -94,6 +94,22 @@ export const excelDownload = ( if (!response.ok) { throw Error(response.statusText); } + + const isTemplateOnlyDownload = + excelList.length === 1 && + Array.isArray(excelList[0]) && + excelList[0].length === 0; + + if (isTemplateOnlyDownload) { + const blob = await response.blob(); + const link = document.createElement("a"); + link.href = URL.createObjectURL(blob); + link.download = fileNm.endsWith(".xlsx") ? fileNm : `${fileNm}.xlsx`; + link.click(); + URL.revokeObjectURL(link.href); + return; + } + // 받은 파일 바인너리 처리 const blobRet = await response.arrayBuffer(); // 버퍼에 있는 엑셀데이터 전달 후 json으로 변환 @@ -406,4 +422,4 @@ export function handleLaeSeCdChange( isCityCd, isSggCd: [{ text: "전체", val: "0" }, ...sggOrdered], }; -} \ No newline at end of file +} diff --git a/apps/wr/components/ui/modal/coMat/ruseCaseMng/ruseCaseMngExcelModal.tsx b/apps/wr/components/ui/modal/coMat/ruseCaseMng/ruseCaseMngExcelModal.tsx index bbcc9497b..8f0445cd6 100644 --- a/apps/wr/components/ui/modal/coMat/ruseCaseMng/ruseCaseMngExcelModal.tsx +++ b/apps/wr/components/ui/modal/coMat/ruseCaseMng/ruseCaseMngExcelModal.tsx @@ -12,13 +12,14 @@ import { useForm } from "react-hook-form"; import type { z } from "zod"; export default function RuseCaseMngExcel({setIsExcelOpen}:{setIsExcelOpen: (isOpen:boolean)=>void}) { - const { insertRuseCaseMng } = useWrStore((state) => state); + const { insertRuseCaseMng, code } = useWrStore((state) => state); const alert = useAlertStore((state) => state.setMessage); const form = useForm>({ resolver: zodResolver(coRegExcel), }); const [file, setFiles] = useState(); + const sewageOutUseCodeList = code.sewageOutFclttUse ?? []; const onSubmit = () => { if (file) { @@ -125,7 +126,25 @@ export default function RuseCaseMngExcel({setIsExcelOpen}:{setIsExcelOpen: (isOp if(parsingExcel.ok&&parsingExcel.value){ - newArray.push(parsingExcel.value); + const parsedValue = { ...parsingExcel.value }; + const usageText = parsedValue.grnteWqUsg?.toString().trim(); + + if (usageText) { + const usageCode = sewageOutUseCodeList.find( + (codeItem) => codeItem.text.trim() === usageText + )?.val; + + if (!usageCode) { + isError.push([ + `${parsedValue.ruseBizNm || "행"} => [보증수질_용도별] '${usageText}' 에 해당하는 WR018 코드가 없습니다.`, + ]); + return; + } + + parsedValue.grnteWqUsg = usageCode; + } + + newArray.push(parsedValue); }else if(parsingExcel.errors){ isError.push(parsingExcel.errors); } diff --git a/apps/wr/public/sample_ruseCaseMng.xlsx b/apps/wr/public/sample_ruseCaseMng.xlsx index 3676b4f71f972b6d877a9f03946a2c5af8cd5b0e..6c6abd4c0d39cc29185b3d3734b9cfe14d1c2612 100644 GIT binary patch delta 13778 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 From b8ff15f187100d2d58a8b86da54cb31f28f0ea7c Mon Sep 17 00:00:00 2001 From: ljpark Date: Fri, 3 Apr 2026 17:33:34 +0900 Subject: [PATCH 5/9] =?UTF-8?q?wr:=20Toaster=20=EC=83=81=EC=9C=84=EB=A1=9C?= =?UTF-8?q?=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matMng/coMat/coMatRvw/page.tsx | 2 - .../matMng/coMat/ruseCaseMng/page.tsx | 2 - .../matMng/coMat/ruseRvwHstry/page.tsx | 2 - .../matMng/coMng/coSttn/page.tsx | 2 - .../matMng/coMng/drgtSttn/page.tsx | 2 - .../matMng/coMng/ldrmntCoSttn/page.tsx | 2 - .../ruseFcltMng/fcltReg/htdflReg/page.tsx | 2 - .../ruseFcltMng/fcltReg/pbnstReg/page.tsx | 53 +++++++++---------- .../ruseFcltMng/fcltReg/rainReg/page.tsx | 2 - .../ruseFcltMng/fcltReg/rswtReg/page.tsx | 2 - .../ruseFcltMng/fcltSttn/htdflSttn/page.tsx | 3 +- .../ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 3 +- .../ruseFcltMng/fcltSttn/rainSttn/page.tsx | 3 +- .../ruseFcltMng/fcltSttn/rswtSttn/page.tsx | 3 +- .../ruseFcltMng/prfmncReg/chkgdnReg/page.tsx | 3 +- .../prfmncReg/pbnstPrfmncReg/page.tsx | 3 +- .../prfmncSttn/chkgdnSttn/page.tsx | 3 +- .../prfmncSttn/pbnstPrfmncSttn/page.tsx | 3 +- .../app/(with-layout)/stats/rswtStat/page.tsx | 3 +- apps/wr/src/app/providers/app-provider.tsx | 2 + 20 files changed, 35 insertions(+), 65 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx index 12532f317..4304945bd 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx @@ -44,7 +44,6 @@ import { zodResolver } from "@hookform/resolvers/zod"; import moment from "moment"; import { useEffect, useRef, useState } from "react"; import { useForm, useWatch } from "react-hook-form"; -import { Toaster } from "react-hot-toast"; import { z } from "zod"; @@ -771,7 +770,6 @@ export default function CoMatRvw() {
- ); } diff --git a/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx index 542f66844..9fc636427 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/ruseCaseMng/page.tsx @@ -23,7 +23,6 @@ import ListDiv from "@common/business_components/ui/list_div"; import { Button, Label } from "@common/components/ui"; import { useAlertStore } from "@/src/shared/lib"; import { useEffect, useState } from "react"; -import { Toaster } from "react-hot-toast"; import { useTranslation } from "react-i18next"; import * as XLSX from "xlsx"; @@ -357,7 +356,6 @@ export default function RuseCaseMng() { - {/* 엑셀 등록 모달 */} - ); } diff --git a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx index 8646d3a44..88b58e3f7 100644 --- a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx @@ -32,7 +32,6 @@ import type { DemandCompType } from "@common/business_components/ui/sdmInsertFor import { Button } from "@common/components/ui"; import moment from "moment"; import { useCallback, useEffect, useState } from "react"; -// import toast, { Toaster } from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { useAlertStore } from "@/src/shared/lib"; import { useConfirm } from "@frontend-opensource/use-react-hooks"; @@ -374,7 +373,6 @@ export default function CoSttn() { } > - {/* */} ); } diff --git a/apps/wr/app/(with-layout)/matMng/coMng/drgtSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/drgtSttn/page.tsx index 1509e2081..1aafb4318 100644 --- a/apps/wr/app/(with-layout)/matMng/coMng/drgtSttn/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMng/drgtSttn/page.tsx @@ -11,7 +11,6 @@ import ListDiv from "@common/business_components/ui/list_div"; import { Button, Label, ScrollArea } from "@common/components/ui"; import { useAlertStore } from "@/src/shared/lib"; import { useEffect, useState, useRef } from "react"; -import { Toaster } from "react-hot-toast"; export default function DrgtSttn() { const { code, drgt, drgtSearch, drgtModalSearch, drgtInit } = useWrStore((state) => state); @@ -292,7 +291,6 @@ export default function DrgtSttn() { bodyClass={"w-[50vw] max-w-none h-[80vh]"} body={} /> - ) diff --git a/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx index 5f4b576b8..41e16088e 100644 --- a/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx @@ -29,7 +29,6 @@ import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components/ui"; import { useAlertStore } from "@/src/shared/lib"; import { useCallback, useEffect, useState } from "react"; -import { Toaster } from "react-hot-toast"; import { useTranslation } from "react-i18next"; export default function LdrmntCoSttn() { @@ -290,7 +289,6 @@ export default function LdrmntCoSttn() { bodyClass={"w-[40vw] max-w-none"} body={ setIsExcelOpen({ isModal: isOpen })} />} /> - diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/htdflReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/htdflReg/page.tsx index acc44571f..d8f52297c 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/htdflReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/htdflReg/page.tsx @@ -18,7 +18,6 @@ import { import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components"; import { useEffect, useRef, useState } from "react"; -import { Toaster } from "react-hot-toast"; export default function Home() { const { @@ -183,7 +182,6 @@ export default function Home() { }} /> - ); diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx index 87dff04fd..102414c37 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx @@ -30,7 +30,7 @@ import { btnClass } from "@/app/store/common/code"; import { Tabs, TabsList, TabsTrigger, TabsContent } from "@common/components"; import { useCallback, useEffect, useRef, useState } from "react"; import ListDiv from "@common/business_components/ui/list_div"; -import { confirmToast, tableData } from "@/components/lib/func/common"; +import { tableData } from "@/components/lib/func/common"; import type { customPbnst, fcBizType, @@ -44,13 +44,13 @@ import { import { PbnstMngForm } from "@/components/ui/form/fcltReg/pbnstReg/mngReg/mngRegForm"; import { PbnstBuseForm } from "@/components/ui/form/fcltReg/pbnstReg/buseReg/bugRegForm"; import { PbnstRegModal } from "@/components/ui/modal/fcltReg/pbnstRegModal/pbnstRegModal"; -import { Toaster } from "react-hot-toast"; import { writeRgtrAndMdfr } from "@/app/store/ruseFcltMng/fcltReg/pbnstReg"; import { useFieldArray, useForm, type FieldErrors } from "react-hook-form"; // FieldErrors 타입 추가 import { zodResolver } from "@hookform/resolvers/zod"; import { z } from "zod"; import { createDefaultPbnstItem } from "./utilsZod"; import { useTranslation } from "react-i18next"; +import { useConfirm } from "@frontend-opensource/use-react-hooks"; import { useAlertStore } from "@/src/shared/lib"; export default function PublicReuseFaciltyInsert() { const { @@ -67,6 +67,7 @@ export default function PublicReuseFaciltyInsert() { } = useWrStore((state) => state); const { t } = useTranslation("base"); + const { confirm } = useConfirm(); const alert = useAlertStore((state) => state.setMessage); const { pubFacHeadList, pbnstHasuResCount, pbnstHasuRes, pbnstRes } = pbnst; const { regAuthrtYn, mdfcnAuthrtYn, laeSeCd } = auth; @@ -137,30 +138,29 @@ export default function PublicReuseFaciltyInsert() { }); const handleConfirm = async () => { - Promise.allSettled([ + const [resFclt, resBiz] = await Promise.allSettled([ pbnstRuseFcltUpdate(pbnst as customPbnst[]), pbnstRuseBizUpdate(bizs), - ]).then(([resFclt, resBiz]) => { - const isFcltSuccess = resFclt.status === "fulfilled"; - const isBizSuccess = resBiz.status === "fulfilled"; - if (isFcltSuccess && isBizSuccess) { - alert("하수 재이용 시설 및 사업이 수정되었습니다."); - // 메시지 표시, 페이지 이동 등 - } else { - let message = ""; - // ✅ 각각 어떤 항목이 실패했는지도 로그/알림 처리 - if (!isFcltSuccess) { - message = "하수재이용 시설 "; - } - if (!isBizSuccess) { - message += "하수재이용 시설 사업 "; - } - alert(message + "오류 입니다 "); - pubHasuInit("1", laeSeCd); + ]); + const isFcltSuccess = resFclt.status === "fulfilled"; + const isBizSuccess = resBiz.status === "fulfilled"; + if (isFcltSuccess && isBizSuccess) { + alert("하수 재이용 시설 및 사업이 수정되었습니다."); + } else { + let message = ""; + if (!isFcltSuccess) { + message = "하수재이용 시설 "; } - }); + if (!isBizSuccess) { + message += "하수재이용 시설 사업 "; + } + alert(message + "오류 입니다 "); + pubHasuInit("1", laeSeCd); + } }; - confirmToast(t("isUpdatetMsg"), handleConfirm); + if (await confirm(t("isUpdatetMsg"))) { + await handleConfirm(); + } }; // 폼 유효성 검사 실패 시 호출될 함수 @@ -330,9 +330,7 @@ export default function PublicReuseFaciltyInsert() { onClick={() => { // pbnstMngData([] as customPbnst[]); if (!selectRow) { - alert( - "재시용시설을 등록할 하수리시시설을 테이블에서 선택하고 등록버튼을 눌러주세요" - ); + alert("재시용시설을 등록할 하수처리시설을 목록에서 선택하고\n 등록버튼을 눌러주세요"); return; } else { appendPbnstRuseFclt(); @@ -433,9 +431,7 @@ export default function PublicReuseFaciltyInsert() { onClick={() => { // pbnstMngData([] as customPbnst[]); if (!selectRow) { - alert( - "하수리시시설을 테이블을 선택하고 등록버튼을 눌러주세요" - ); + alert("하수처리시설을 목록에서 선택하고\n 등록버튼을 눌러주세요"); return; } else { appendPbnstRuseFclt(); @@ -470,7 +466,6 @@ export default function PublicReuseFaciltyInsert() { }} /> - ); diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx index 9dd14c844..82344fa1f 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rainReg/page.tsx @@ -20,7 +20,6 @@ import { import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components"; import { useEffect, useRef, useState } from "react"; -import { Toaster } from "react-hot-toast"; @@ -199,7 +198,6 @@ export default function Home() { }} /> - ); diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx index ec2c7eda8..845ebf0e8 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/rswtReg/page.tsx @@ -20,7 +20,6 @@ import { import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components"; import { useEffect, useRef, useState } from "react"; -import { Toaster } from "react-hot-toast"; /** @@ -202,7 +201,6 @@ export default function Home() { }} /> - ); diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx index 28c286352..07b99d5b8 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx @@ -34,7 +34,7 @@ import ListDiv from "@common/business_components/ui/list_div"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; export default function HtdflSttn() { @@ -276,7 +276,6 @@ export default function HtdflSttn() { body={} /> - ); } diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx index 2d20be6aa..53c41a17d 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -30,7 +30,7 @@ import ListDiv from "@common/business_components/ui/list_div"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; @@ -270,7 +270,6 @@ export default function PbnstSttn() { }} /> - ); } diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx index 60c917751..bf6601164 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx @@ -32,7 +32,7 @@ import ListDiv from "@common/business_components/ui/list_div"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; export default function RainSttn() { @@ -319,7 +319,6 @@ export default function RainSttn() { body={} /> - ); } diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx index 25ad68635..ac53229d0 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx @@ -32,7 +32,7 @@ import ListDiv from "@common/business_components/ui/list_div"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; export default function RswtSttn() { @@ -279,7 +279,6 @@ export default function RswtSttn() { /> - ); } diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx index 28f1e01b2..5bf2850c8 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx @@ -38,7 +38,7 @@ import { TooltipTrigger, } from "@common/components/ui/tooltip"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; export default function Page() { @@ -434,7 +434,6 @@ export default function Page() { > } /> - ); } diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx index 4261ab657..aa9945f90 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx @@ -37,7 +37,7 @@ import { TableHeader, } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { headMakeprfmnc } from "../chkgdnReg/TableHead"; @@ -381,7 +381,6 @@ export default function PrfmncPrfmncReg() { setIsExcelOPen({ ...isExcelOpen, isModal: false }); }} > - ); } diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx index 18a30d2be..43cc6874d 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx @@ -21,7 +21,7 @@ import { import ListDiv from "@common/business_components/ui/list_div"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; export default function Page() { @@ -307,7 +307,6 @@ export default function Page() { /> } > - ); } diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx index 07382917f..fc790ea26 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx @@ -11,7 +11,7 @@ import { CHART_FORM, ContentsDiv, MainChart, ScrollArea, SearchBaseForm, SearchI import ListDiv from "@common/business_components/ui/list_div"; import { Label, Table, TableBody, TableHeader } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; import { headMakeprfmnc } from "../../prfmncReg/chkgdnReg/TableHead"; @@ -723,7 +723,6 @@ export default function PbnstPrfmncSttn() { - ) } diff --git a/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx b/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx index 026c27a62..9fa896555 100644 --- a/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx +++ b/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx @@ -15,7 +15,7 @@ import { import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components/ui"; import { useEffect, useState } from "react"; -import toast, { Toaster } from "react-hot-toast"; +import toast from "react-hot-toast"; import { useTranslation } from "react-i18next"; export default function RswtStat() { @@ -296,7 +296,6 @@ export default function RswtStat() { - ); diff --git a/apps/wr/src/app/providers/app-provider.tsx b/apps/wr/src/app/providers/app-provider.tsx index 0497e1f52..88a10e46e 100644 --- a/apps/wr/src/app/providers/app-provider.tsx +++ b/apps/wr/src/app/providers/app-provider.tsx @@ -14,6 +14,7 @@ import { ConfirmDialog } from "../../shared/ui/confirm-dialog"; // import "./globals.css"; import i18next from "i18next"; import { I18nextProvider } from "react-i18next"; +import { Toaster } from "react-hot-toast"; import koBase from "@/public/locales/ko/message.json"; import { StoreProvider as WrStoreProvider } from "@/app/store"; //import { LoginApi } from "@/src/entities/auth"; @@ -54,6 +55,7 @@ const AppProvider = ({ children }: Readonly<{ children: React.ReactNode }>) => { + From bbca5ac6f21c7a13b85264244e589899994bc4f7 Mon Sep 17 00:00:00 2001 From: ljpark Date: Fri, 3 Apr 2026 17:50:13 +0900 Subject: [PATCH 6/9] wr: confirmToast->useConfirm --- .../matMng/coMat/ruseRvwHstry/page.tsx | 11 +++++++---- .../(with-layout)/matMng/coMng/coSttn/page.tsx | 2 -- .../matMng/coMng/ldrmntCoSttn/page.tsx | 7 +++++-- .../ruseFcltMng/prfmncReg/chkgdnReg/page.tsx | 15 ++++++++++----- .../ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx | 13 ++++++++----- .../ui/form/fcltReg/htdflReg/htdflRegForm.tsx | 15 +++++++++++---- .../form/fcltReg/pbnstReg/buseReg/bugRegForm.tsx | 2 -- .../ui/form/fcltReg/rainReg/rainRegForm.tsx | 15 +++++++++++---- .../ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx | 15 +++++++++++---- .../modal/fcltReg/pbnstRegModal/pbnstRegModal.tsx | 7 +++++-- 10 files changed, 68 insertions(+), 34 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx index c649d20b6..1732db4d8 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx @@ -7,13 +7,13 @@ import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; import { type RvwHistTableType } from "@/app/store/matDmd/coMatRvw/type"; import { - confirmToast, formatPhoneNumber, getCity, getdmdMatFlag, tableData, yearOptions, } from "@/components/lib/func/common"; +import { useConfirm } from "@frontend-opensource/use-react-hooks"; import type { objSearchType } from "@/components/ui/modal/fcltReg/bdstRegModal/bdstRegModal"; import { ContentsDiv, @@ -44,6 +44,7 @@ export default function RuseRvwHstry() { const { rvwHistRes, ruseHistHeadList, rvwHistCount } = ruseHist; const { regAuthrtYn } = auth; const alert = useAlertStore((state) => state.setMessage); + const { confirm } = useConfirm(); const [pageNation, setPageNatiion] = useState(1); @@ -145,7 +146,7 @@ export default function RuseRvwHstry() { }, [rvwHistData] ); - const confrirmToast = () => { + const confrirmToast = async () => { const completeData = rvwHistData ?.map((item) => { if (item?.completeYn.chk && item.splyFcltFlg === "검토완료") { @@ -155,7 +156,9 @@ export default function RuseRvwHstry() { .filter((item) => item !== undefined); if (completeData && completeData?.length > 0) { - confirmToast(t('isMatchFinishMsg'), () => ruseRvwComplete(completeData as number[])); + if (await confirm(t("isMatchFinishMsg"))) { + await ruseRvwComplete(completeData as number[]); + } // const handleConfirm = async () => { // ruseRvwComplete(completeData as number[]); @@ -319,7 +322,7 @@ export default function RuseRvwHstry() { > 조회 - diff --git a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx index 88b58e3f7..8e82c8c0d 100644 --- a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx @@ -8,7 +8,6 @@ import { btnClass } from "@/app/store/common/code"; import { excelCoSttnParsing } from "@/app/store/matDmd/coSttn/excel"; import { fetchType, getFetch } from "@/components/lib/api"; import { - //confirmToast, excelDownload, formatPhoneNumber, getCity, @@ -180,7 +179,6 @@ export default function CoSttn() { const message = await coSttnPwInit(dmdInfoId); alert(message); }; - //confirmToast( t('isInitPw', { dmdInfoId: dmdInfoSliceId }), handleConfirm, 'text-2xl'); if (await confirm(t('isInitPw', { dmdInfoId: dmdInfoSliceId }))) { await handleConfirm(); } diff --git a/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx index 41e16088e..4bbaa3a43 100644 --- a/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMng/ldrmntCoSttn/page.tsx @@ -5,7 +5,6 @@ import { btnClass } from "@/app/store/common/code"; import { type customLdrmnt } from "@/app/store/matDmd/ldrmntCoSttn"; import { ldrmntHeadListExport } from "@/app/store/matDmd/ldrmntCoSttn/headList"; import { - confirmToast, excelDownload, getCity, tableData @@ -27,6 +26,7 @@ import { } from "@common/business_components/ui"; import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components/ui"; +import { useConfirm } from "@frontend-opensource/use-react-hooks"; import { useAlertStore } from "@/src/shared/lib"; import { useCallback, useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; @@ -47,6 +47,7 @@ export default function LdrmntCoSttn() { const [isDownloadClicked, setIsDownloadClicked] = useState(false); const { t } = useTranslation('base'); const alert = useAlertStore((state) => state.setMessage); + const { confirm } = useConfirm(); const { regAuthrtYn, mdfcnAuthrtYn } = auth; const excelClick = useCallback(() => { @@ -277,7 +278,9 @@ export default function LdrmntCoSttn() { setDetailModal({ ...detailModal, isOpen: false }); ldrmntSearch(false, pageNation, '20', computeCityNm(), searchTxt || ""); }; - confirmToast(t('isUpdateMsg'), handleConfirm); + if (await confirm(t("isUpdateMsg"))) { + await handleConfirm(); + } }} />} /> diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx index 5bf2850c8..4577ef3e8 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx @@ -11,11 +11,11 @@ import { type rswtrChkDetailsZodType, } from "@/app/store/prfmncReg/chkgdnReg/rswrtChkgdn"; import { - confirmToast, excelArrayDownload, excelDownload, yearOptions, } from "@/components/lib/func/common"; +import { useConfirm } from "@frontend-opensource/use-react-hooks"; import ChkgdExcel from "@/components/ui/modal/chkgd/chkgdExcel/chkgdExcel"; import ChkgdModal from "@/components/ui/modal/chkgd/chkgdModal/chkgdModal"; import RainChkgdTable from "@/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable"; @@ -66,6 +66,7 @@ export default function Page() { return state; }); const { regAuthrtYn, mdfcnAuthrtYn, delAuthrtYn,laeSeCd } = auth; + const { confirm } = useConfirm(); const [isRegExcel, setIsRegExcel] = useState(false); const [updateRainDetail, setUpdateRainDetail] = useState([]); const [updateRswtDetail, setUpdateRSwtDetail] = useState([]); @@ -236,18 +237,22 @@ export default function Page() { }, [rainChkgdn.isSttn, rswtChkgdn.isSttn]); const { t } = useTranslation('base'); - const clickDelete = (data: number[], selFcltDiv: string) => { + const clickDelete = async (data: number[], selFcltDiv: string) => { if (data.length > 0) { if (selFcltDiv === "RNB") { const handleConfirm = async () => { rainChkDelete(data, searchYear); }; - confirmToast(t('isDeleteMsg'), handleConfirm); + if (await confirm(t("isDeleteMsg"))) { + await handleConfirm(); + } } else { const handleConfirm = async () => { rswtChkDelete(data, searchYear); }; - confirmToast(t('isDeleteMsg'), handleConfirm); + if (await confirm(t("isDeleteMsg"))) { + await handleConfirm(); + } } } }; @@ -330,7 +335,7 @@ export default function Page() { - - - - )); + if (await confirm("검토완료 변경시 공사비는 변경할수 없습니다.\n진행하시겠습니까?")) { + const message = await coMatRvwUpdate( pk, form.getValues("dmdInfoId"), data ); + alert(message); + } } else { - const message = await coMatRvwUpdate( - pk, - form.getValues("dmdInfoId"), - data - ); + const message = await coMatRvwUpdate( pk, form.getValues("dmdInfoId"), data ); alert(message); } }else{ - alert('후보지를 먼저 선택해주세요') + alert('후보지를 먼저 선택해주세요'); } } } else if (type === "hist") { From 1b6fb6f77d8eceeca39288673fc9217691fb2126 Mon Sep 17 00:00:00 2001 From: dongsilove Date: Fri, 3 Apr 2026 21:42:52 +0900 Subject: [PATCH 8/9] =?UTF-8?q?wr:=20(with-layout)=20toast=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matMng/coMat/ruseRvwHstry/page.tsx | 22 +------------------ .../matMng/coMng/coSttn/page.tsx | 3 +-- .../ruseFcltMng/fcltSttn/htdflSttn/page.tsx | 7 +++--- .../ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 7 +++--- .../ruseFcltMng/fcltSttn/rainSttn/page.tsx | 7 +++--- .../ruseFcltMng/fcltSttn/rswtSttn/page.tsx | 7 +++--- .../ruseFcltMng/prfmncReg/chkgdnReg/page.tsx | 9 ++++---- .../prfmncReg/pbnstPrfmncReg/page.tsx | 13 ++++++----- .../prfmncSttn/chkgdnSttn/page.tsx | 9 ++++---- .../prfmncSttn/pbnstPrfmncSttn/page.tsx | 11 +++++----- .../app/(with-layout)/stats/rainStat/page.tsx | 7 +++--- .../app/(with-layout)/stats/rswtStat/page.tsx | 7 +++--- .../store/prfmncReg/pbnstPrfmncReg/index.tsx | 13 ++++++----- 13 files changed, 57 insertions(+), 65 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx index 1732db4d8..a8800273b 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx @@ -1,4 +1,4 @@ -/** +/** * 수요처매칭 > 재이용검토이력 */ "use client"; @@ -163,26 +163,6 @@ export default function RuseRvwHstry() { // const handleConfirm = async () => { // ruseRvwComplete(completeData as number[]); // }; - // toast((t) => ( - // - // 매칭완료를 진행하시겠습니까? - //
- //
- // - // - //
- //
- // )); } else { alert(t('isNotMatchFinishMsg')); } diff --git a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx index 8e82c8c0d..71ec60cf0 100644 --- a/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMng/coSttn/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; /** * 수요처관리 @@ -184,7 +184,6 @@ export default function CoSttn() { } } else { alert("비밀번호 초기화를 원하는 행을 선택해주세요."); - // toast.error("비밀번호 초기화를 원하는 행을 선택해주세요.") } } diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx index 07b99d5b8..2f31e616c 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/htdflSttn/page.tsx @@ -1,4 +1,4 @@ -/** +/** * 온배수시설 현황 */ "use client"; @@ -34,7 +34,7 @@ import ListDiv from "@common/business_components/ui/list_div"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; export default function HtdflSttn() { @@ -58,6 +58,7 @@ export default function HtdflSttn() { // chBuilding: chgBuilding[]; // }>({ isOpen: false, chBuilding: [] }); const [fcltNm, setFcltNm] = useState(""); + const alert = useAlertStore((state) => state.setMessage); console.log("laeSeCd : ", laeSeCd); useEffect(() => { @@ -128,7 +129,7 @@ export default function HtdflSttn() { sheetArray ); } else { - toast.error(t('excelDownErrMsg')); + alert(t('excelDownErrMsg')); } isDownloadTriggered.current = false; }, [htdflSttn.excelList, code]); diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx index 53c41a17d..3e085ea89 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -1,4 +1,4 @@ -/** +/** * 하수재이용 시설 현황 * 재이용시설 현황 - 하수재이용시설 현황 * - layout.tsx에 의해 공통 레이아웃이 적용됨 @@ -30,7 +30,7 @@ import ListDiv from "@common/business_components/ui/list_div"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; @@ -61,6 +61,7 @@ export default function PbnstSttn() { const isDownloadTriggered = useRef(false); const [pbnRuseNm, setPbnRuseNm] = useState(""); const { t } = useTranslation("base"); + const alert = useAlertStore((state) => state.setMessage); const excelClick = useCallback(() => { isDownloadTriggered.current = true; pbnstSttnSearch( @@ -119,7 +120,7 @@ export default function PbnstSttn() { sheetArray ); } else { - toast.error(t("excelDownErrMsg")); + alert(t("excelDownErrMsg")); } isDownloadTriggered.current = false; }, [pbnstSttn.excelList]); diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx index bf6601164..9de317a08 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx @@ -1,4 +1,4 @@ -/** +/** * 빗물이용시설 현황 */ "use client"; @@ -32,7 +32,7 @@ import ListDiv from "@common/business_components/ui/list_div"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; export default function RainSttn() { @@ -58,6 +58,7 @@ export default function RainSttn() { const [fcltNm, setFcltNm] = useState(""); const { t } = useTranslation("base"); + const alert = useAlertStore((state) => state.setMessage); const cellClick = (index: number | undefined) => { if (index !== undefined && bdstTable !== undefined) { @@ -173,7 +174,7 @@ export default function RainSttn() { sheetArray ); } else { - toast.error(t("excelDownErrMsg")); + alert(t("excelDownErrMsg")); } isDownloadTriggered.current = false; }, [rainSttn.excelList]); diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx index ac53229d0..c95c7aafe 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx @@ -1,4 +1,4 @@ -/** +/** * 중수도시설 현황 */ "use client"; @@ -32,7 +32,7 @@ import ListDiv from "@common/business_components/ui/list_div"; import { HeadMakeColSpan } from "@common/business_components/ui/table/HeadMakeColSpan"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; export default function RswtSttn() { @@ -52,6 +52,7 @@ export default function RswtSttn() { const [detailModal, setDetailModal] = useState<{ isOpen: boolean, data: customRswtBdst | undefined }>({ data: undefined, isOpen: false }) const [fcltNm, setFcltNm] = useState(""); const { t } = useTranslation('base'); + const alert = useAlertStore((state) => state.setMessage); const cellClick = (index: number | undefined) => { if ( index !== undefined && bdstTable !== undefined) { @@ -143,7 +144,7 @@ export default function RswtSttn() { sheetArray ); } else { - toast.error(t('excelDownErrMsg')); + alert(t('excelDownErrMsg')); } isDownloadTriggered.current = false; }, [rswtSttn.excelList]); diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx index 4577ef3e8..8e7ff98cb 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; @@ -38,7 +38,7 @@ import { TooltipTrigger, } from "@common/components/ui/tooltip"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; export default function Page() { @@ -237,6 +237,7 @@ export default function Page() { }, [rainChkgdn.isSttn, rswtChkgdn.isSttn]); const { t } = useTranslation('base'); + const alert = useAlertStore((state) => state.setMessage); const clickDelete = async (data: number[], selFcltDiv: string) => { if (data.length > 0) { if (selFcltDiv === "RNB") { @@ -261,13 +262,13 @@ export default function Page() { if (updateRainDetail && updateRainDetail.length > 0) { rainChkDetilUpdate(updateRainDetail, searchYear); } else { - toast.error("수정을 원하는 행을 선택하고 저장버튼을 눌러주세요 "); + alert("수정을 원하는 행을 선택하고 저장버튼을 눌러주세요 "); } } else { if (updateRswtDetail && updateRswtDetail.length > 0) { rswtChkDetilsUpdate(updateRswtDetail, searchYear); } else { - toast.error("수정을 원하는 행을 선택하고 저장버튼을 눌러주세요 "); + alert("수정을 원하는 행을 선택하고 저장버튼을 눌러주세요 "); } } }; diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx index f87ac44f5..96d44fe36 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/pbnstPrfmncReg/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; import { excelToPbnPrfData } from "@/app/store/prfmncReg/pbnstPrfmncReg/excel"; @@ -37,7 +37,7 @@ import { TableHeader, } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; import { headMakeprfmnc } from "../chkgdnReg/TableHead"; @@ -73,6 +73,7 @@ export default function PrfmncPrfmncReg() { String(new Date().getFullYear()) ); const { confirm } = useConfirm(); + const alert = useAlertStore((state) => state.setMessage); const useInitRef = useRef(false); @@ -90,7 +91,7 @@ export default function PrfmncPrfmncReg() { const handleConfirm = async () => { if (!pbnstRuseFcltId) return; - prfmnRegData( + const message = await prfmnRegData( 1, laeSeCd, excelToPbnPrfData( @@ -101,6 +102,7 @@ export default function PrfmncPrfmncReg() { searchYear, prfPbnFclts ); + alert(message); }; if (await confirm(t("isUpdateMsg"))) { @@ -287,7 +289,7 @@ export default function PrfmncPrfmncReg() { className={btnClass} onClick={() => { if (cellNum === undefined) { - toast.error("하수처리재이용시설을 선택해주세요."); + alert("하수처리재이용시설을 선택해주세요."); return; } else { setIsExcelOPen({ ...isExcelOpen, isModal: true }); @@ -374,7 +376,8 @@ export default function PrfmncPrfmncReg() { setIsExcelOPen({ ...isExcelOpen, isModal: open }); }} setModalExcelData={async (excelData) => { - await prfmnRegData(1, laeSeCd, excelData, searchYear, prfPbnFclts); + const message = await prfmnRegData(1, laeSeCd, excelData, searchYear, prfPbnFclts); + alert(message); // 데이터 저장 후 UI 업데이트는 useEffect가 감지하여 처리하므로 여기서는 호출하지 않습니다. }} > diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx index 43cc6874d..4e675954a 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; @@ -21,7 +21,7 @@ import { import ListDiv from "@common/business_components/ui/list_div"; import { Button, Label } from "@common/components/ui"; import { useCallback, useEffect, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; export default function Page() { @@ -137,13 +137,14 @@ export default function Page() { [isModal] ); const { t } = useTranslation("base"); + const alert = useAlertStore((state) => state.setMessage); const excelDown = () => { if (rainChkSttn.sttnExcelList && selFcltDiv === "RNB") { if ( !rainChkSttn.sttnExcelList || rainChkSttn.sttnExcelList.length === 0 ) { - toast.error(t("excelDownErrMsg")); + alert(t("excelDownErrMsg")); return; } // console.log(rainChkSttn.sttnExcelList); @@ -165,7 +166,7 @@ export default function Page() { !rswtChkSttn.sttnExcelList || rswtChkSttn.sttnExcelList.length === 0 ) { - toast.error(t("excelDownErrMsg")); + alert(t("excelDownErrMsg")); return; } const sheetArray: SheetParameter[] = [{ diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx index fc790ea26..adb93cf22 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/pbnstPrfmncSttn/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; @@ -11,7 +11,7 @@ import { CHART_FORM, ContentsDiv, MainChart, ScrollArea, SearchBaseForm, SearchI import ListDiv from "@common/business_components/ui/list_div"; import { Label, Table, TableBody, TableHeader } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; import { headMakeprfmnc } from "../../prfmncReg/chkgdnReg/TableHead"; @@ -37,6 +37,7 @@ export default function PbnstPrfmncSttn() { // const [swtrmtFcltNm, setSwtrmtFcltNm] = useState(); const [pbnRuseNm, setPbnRuseNm] = useState(""); const { t } = useTranslation('base'); + const alert = useAlertStore((state) => state.setMessage); const searchYear = String(new Date().getFullYear()); const [excelData, setExcelData] = useState([]); const [pageNation, setPageNation] = useState(1); @@ -44,7 +45,7 @@ export default function PbnstPrfmncSttn() { const excelClick = useCallback(() => { if (!excelData || excelData.length === 0) { - toast.error(t('excelDownErrMsg')); + alert(t('excelDownErrMsg')); return; } const sheetArray: SheetParameter[] = [{ @@ -598,10 +599,10 @@ export default function PbnstPrfmncSttn() { const fromNum = Number(fromDate); const toNum = Number(toDate); if (fromNum > toNum) { - toast.error("시작년도가 종료년도 이후로 설정할 수 없습니다."); + alert("시작년도가 종료년도 이후로 설정할 수 없습니다."); } else { if (toNum - fromNum > 4) { - toast.error("최대 5년까지 선택 가능합니다."); + alert("최대 5년까지 선택 가능합니다."); } else { tableHeadMaker(fromNum, toNum); diff --git a/apps/wr/app/(with-layout)/stats/rainStat/page.tsx b/apps/wr/app/(with-layout)/stats/rainStat/page.tsx index 72d339d24..332ae537f 100644 --- a/apps/wr/app/(with-layout)/stats/rainStat/page.tsx +++ b/apps/wr/app/(with-layout)/stats/rainStat/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; @@ -17,7 +17,7 @@ import { import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components/ui"; import { useEffect, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; export default function RainStat() { @@ -30,6 +30,7 @@ export default function RainStat() { //const [exData, setExData] = useState>>(); const [bdstTable, setBdstTable] = useState(); const { t } = useTranslation('base'); + const alert = useAlertStore((state) => state.setMessage); useEffect(() => { searchRainStatList(searchYear ,code.cityCd); @@ -184,7 +185,7 @@ export default function RainStat() { decimalArray0: [1,2,3,4,5,6,7,8,9,10,11,12], // 0부터 시작 }) }else{ - toast.error(t('excelDownErrMsg')); + alert(t('excelDownErrMsg')); } } diff --git a/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx b/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx index 9fa896555..3e3e26dcf 100644 --- a/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx +++ b/apps/wr/app/(with-layout)/stats/rswtStat/page.tsx @@ -1,4 +1,4 @@ -"use client"; +"use client"; import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; import type { RswtStatProps } from "@/app/store/stats/rswtStat"; @@ -15,7 +15,7 @@ import { import ListDiv from "@common/business_components/ui/list_div"; import { Button } from "@common/components/ui"; import { useEffect, useState } from "react"; -import toast from "react-hot-toast"; +import { useAlertStore } from "@/src/shared/lib"; import { useTranslation } from "react-i18next"; export default function RswtStat() { @@ -27,6 +27,7 @@ export default function RswtStat() { ); const { t } = useTranslation('base'); + const alert = useAlertStore((state) => state.setMessage); useEffect(() => { searchRswtStatList(searchYear, code.cityCd, code.rswtBdstType); }, [searchRswtStatList, code.cityCd]) @@ -62,7 +63,7 @@ export default function RswtStat() { decimalArray0: [1,2,3,4,5,6,7,8,9,10,11,12,13], // 0부터 시작 }) } else { - toast.error(t("excelDownErrMsg")) + alert(t("excelDownErrMsg")) } } diff --git a/apps/wr/app/store/prfmncReg/pbnstPrfmncReg/index.tsx b/apps/wr/app/store/prfmncReg/pbnstPrfmncReg/index.tsx index 13429fbc7..83057114c 100644 --- a/apps/wr/app/store/prfmncReg/pbnstPrfmncReg/index.tsx +++ b/apps/wr/app/store/prfmncReg/pbnstPrfmncReg/index.tsx @@ -1,4 +1,4 @@ -/** +/** * 재이용실적등록 > 하수재이용실적등록 * * 🔗 사용 API @@ -13,7 +13,6 @@ import { pbnstPrfmncHeadListExport, monthHeadListExport } from "./headList"; import type { pubHasuType } from "../../ruseFcltMng/fcltReg/pbnstReg/type"; import type { FcPrfType, PrfType } from "./type"; import type { TableUpperProps } from "../../common/type/header"; -import toast from "react-hot-toast"; const pbnstPrfmncHeadList = pbnstPrfmncHeadListExport; const monthHeadList = monthHeadListExport; @@ -66,7 +65,7 @@ type pbnstPrfmncActions = { data: PrfType, year: string, prfPbnFclts: string[] - ) => void; + ) => Promise; getPrfFmcRes: () => void; }; @@ -203,6 +202,7 @@ export const pbnstPrfmncActionsExport: (set: any) => pbnstPrfmncActions = ( year: string, prfPbnFclts: string[] ) => { + const failMessage = "하수재이용 시설 실적 등록이 실패하였습니다."; try { const ressponse = await postFectch( "/reuseFc/pubFcPrf", @@ -211,7 +211,6 @@ export const pbnstPrfmncActionsExport: (set: any) => pbnstPrfmncActions = ( ); if (ressponse.status === 200) { - toast.success("하수재이용 시설 실적 등록이 완료되었습니다."); const prfmncRes = await hasuListFetch( page, sggOrCity, @@ -219,7 +218,7 @@ export const pbnstPrfmncActionsExport: (set: any) => pbnstPrfmncActions = ( prfPbnFclts ); - return set((state: pbnstPrfmncState) => ({ + set((state: pbnstPrfmncState) => ({ ...state, prfmnc: { ...state.prfmnc, @@ -229,10 +228,12 @@ export const pbnstPrfmncActionsExport: (set: any) => pbnstPrfmncActions = ( pageKey: state.prfmnc.pageKey + 1, }, })); + return "하수재이용 시설 실적 등록이 완료되었습니다."; } + return failMessage; } catch (e) { console.log(e); - toast.error("하수재이용 시설 실적 등록이 실패하였습니다."); + return failMessage; } }, }; From 5cb0719297bb84a4762095513ed55e9e9a001ce9 Mon Sep 17 00:00:00 2001 From: dongsilove Date: Sat, 4 Apr 2026 20:30:45 +0900 Subject: [PATCH 9/9] =?UTF-8?q?wr:=20store=20toast=20=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../matMng/coMat/ruseRvwHstry/page.tsx | 3 +- .../ruseFcltMng/fcltReg/pbnstReg/page.tsx | 5 +- .../ruseFcltMng/prfmncReg/chkgdnReg/page.tsx | 16 +++-- .../app/store/matDmd/ruseRvwHstry/index.tsx | 23 ++++--- .../prfmncReg/chkgdnReg/rainChkgdn/excel.tsx | 18 +++-- .../prfmncReg/chkgdnReg/rainChkgdn/index.tsx | 66 +++++++++---------- .../prfmncReg/chkgdnReg/rswrtChkgdn/index.tsx | 59 ++++++++++------- .../ruseFcltMng/fcltReg/htdflReg/index.tsx | 36 +++++----- .../ruseFcltMng/fcltReg/pbnstReg/index.tsx | 18 ++--- .../ruseFcltMng/fcltReg/rainReg/index.tsx | 50 +++++++------- .../ruseFcltMng/fcltReg/rswtReg/index.tsx | 50 +++++++------- .../ui/form/coMat/conCostForm/conCostForm.tsx | 3 +- .../ui/form/fcltReg/htdflReg/htdflRegForm.tsx | 16 +++-- .../ui/form/fcltReg/rainReg/rainRegForm.tsx | 16 +++-- .../ui/form/fcltReg/rswtrReg/rswtrRegForm.tsx | 16 +++-- .../ui/modal/chkgd/chkgdExcel/chkgdExcel.tsx | 22 ++++--- .../ui/modal/chkgd/chkgdModal/chkgdModal.tsx | 10 ++- 17 files changed, 246 insertions(+), 181 deletions(-) diff --git a/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx b/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx index a8800273b..b142bff16 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/ruseRvwHstry/page.tsx @@ -157,7 +157,8 @@ export default function RuseRvwHstry() { if (completeData && completeData?.length > 0) { if (await confirm(t("isMatchFinishMsg"))) { - await ruseRvwComplete(completeData as number[]); + const message = await ruseRvwComplete(completeData as number[]); + alert(message); } // const handleConfirm = async () => { diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx index 102414c37..0a243a41f 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx @@ -450,7 +450,10 @@ export default function PublicReuseFaciltyInsert() { form={form} // form prop 전달 setPbnstInsert={(data) => { if (data) { - pbnstInsert(data); // pbnstInsert 함수 호출 + void (async () => { + const message = await pbnstInsert(data); + alert(message); + })(); setIsRuseReg({ isModal: false }); } }} diff --git a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx index 8e7ff98cb..363f07e82 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncReg/chkgdnReg/page.tsx @@ -242,14 +242,16 @@ export default function Page() { if (data.length > 0) { if (selFcltDiv === "RNB") { const handleConfirm = async () => { - rainChkDelete(data, searchYear); + const message = await rainChkDelete(data, searchYear); + alert(message); }; if (await confirm(t("isDeleteMsg"))) { await handleConfirm(); } } else { const handleConfirm = async () => { - rswtChkDelete(data, searchYear); + const message = await rswtChkDelete(data, searchYear); + alert(message); }; if (await confirm(t("isDeleteMsg"))) { await handleConfirm(); @@ -257,16 +259,18 @@ export default function Page() { } } }; - const chkUpdateTable = (selFcltDiv: string) => { + const chkUpdateTable = async (selFcltDiv: string) => { if (selFcltDiv === "RNB") { if (updateRainDetail && updateRainDetail.length > 0) { - rainChkDetilUpdate(updateRainDetail, searchYear); + const message = await rainChkDetilUpdate(updateRainDetail, searchYear); + alert(message); } else { alert("수정을 원하는 행을 선택하고 저장버튼을 눌러주세요 "); } } else { if (updateRswtDetail && updateRswtDetail.length > 0) { - rswtChkDetilsUpdate(updateRswtDetail, searchYear); + const message = await rswtChkDetilsUpdate(updateRswtDetail, searchYear); + alert(message); } else { alert("수정을 원하는 행을 선택하고 저장버튼을 눌러주세요 "); } @@ -349,7 +353,7 @@ export default function Page() {