From 0131cae0d7e198d1c4792d739476464d1a37154f Mon Sep 17 00:00:00 2001 From: ljpark Date: Thu, 11 Jun 2026 17:45:58 +0900 Subject: [PATCH 01/12] =?UTF-8?q?wr:=20=ED=95=98=EC=88=98=EC=9E=AC?= =?UTF-8?q?=EC=9D=B4=EC=9A=A9=EC=8B=9C=EC=84=A4=EB=93=B1=EB=A1=9D=20?= =?UTF-8?q?=ED=9B=84=20=EB=AA=A9=EB=A1=9D=20=EC=9E=AC=EC=A1=B0=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx | 6 ++++++ apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx | 3 +++ apps/wr/next-env.d.ts | 1 + 3 files changed, 10 insertions(+) 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 fd3e660f8..90a3d8185 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltReg/pbnstReg/page.tsx @@ -462,6 +462,12 @@ export default function PublicReuseFaciltyInsert() { void (async () => { const message = await pbnstInsert(data); alert(message); + + if (searchTxt && searchTxt.trim().length > 0) { + await pubHasuSearch(pageNation, laeSeCd, searchTxt); + } else { + await pubHasuInit(pageNation, laeSeCd); + } })(); setIsRuseReg({ isModal: false }); } diff --git a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx index 887f437a7..0b395d1b3 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/index.tsx @@ -261,11 +261,14 @@ export const pubFacActionsExport: (set: any, get: any) => pubFacActions = (set: const newPbnstRes = await initFetch( pbnstRes.pbnstRuseFcltId.slice(0, 11) ); + const wrRegList = await getFetch("wr", `/reuseFc/pubFc`); + const fclts = Array.isArray(wrRegList) ? wrRegList : []; set((state: pubFacState) => ({ ...state, pbnst: { ...state.pbnst, pbnstRes: newPbnstRes, + fclts, }, })); return successMessage; diff --git a/apps/wr/next-env.d.ts b/apps/wr/next-env.d.ts index 1b3be0840..830fb594c 100644 --- a/apps/wr/next-env.d.ts +++ b/apps/wr/next-env.d.ts @@ -1,5 +1,6 @@ /// /// +/// // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. From b31691dd9cea9d8fdf71d347c4c96c40a0817f65 Mon Sep 17 00:00:00 2001 From: ljpark Date: Fri, 12 Jun 2026 10:33:30 +0900 Subject: [PATCH 02/12] =?UTF-8?q?dm:=20=EB=AC=BC=EC=9E=AC=EC=9D=B4?= =?UTF-8?q?=EC=9A=A9=20=EC=86=8C=EA=B0=9C,=20=EC=82=AC=EB=A1=80=20id=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/dm/.env.production | 4 ++-- apps/dm/next-env.d.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/dm/.env.production b/apps/dm/.env.production index b2617e68e..b09c7da8a 100644 --- a/apps/dm/.env.production +++ b/apps/dm/.env.production @@ -18,8 +18,8 @@ NEXT_PUBLIC_SEWERAGE_API_URL = http://apigateway.iipbs-was.svc.cluster.local:800 NEXT_PUBLIC_NGII_URL = http://172.29.143.87/poiact NEXT_PUBLIC_NGII_PARAM = BDE2BEF39DAFEC293AB6730150F222AC&service=WMTS&request=GetTile&version=1.0.0&format=image/png&layer=korean_map&style=korean&tilematrixset=korean&tilematrix={z}&tilecol={y}&tilerow={x} NEXT_PUBLIC_GATEWAY_URL = http://apigateway.iipbs-was.svc.cluster.local:8000 -CONTENTS_INTRO = 31 -CONTENTS_EXAMPLE = 32 +CONTENTS_INTRO = 24 +CONTENTS_EXAMPLE = 25 NEXT_PUBLIC_FINDADRESS_URL=https://business.juso.go.kr/addrlink/addrLinkApi.do NEXT_PRIVATE_WR_ADDRESS_KEY = U01TXOFVVEgyMDI1MDgyODE0MTAxNzExNjEyMjA= diff --git a/apps/dm/next-env.d.ts b/apps/dm/next-env.d.ts index 1b3be0840..830fb594c 100644 --- a/apps/dm/next-env.d.ts +++ b/apps/dm/next-env.d.ts @@ -1,5 +1,6 @@ /// /// +/// // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. From 04edb49c9f6367a2bbda4af3364da3b60bb850ac Mon Sep 17 00:00:00 2001 From: ljpark Date: Mon, 15 Jun 2026 15:48:05 +0900 Subject: [PATCH 03/12] =?UTF-8?q?wr:=20=EC=A7=80=EB=8F=84=20back=20?= =?UTF-8?q?=ED=85=8C=EB=A7=88=20=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/src/app/styles/components.css | 56 +++++++++++++++++++ .../business_components/src/ui/map/GisTree.js | 14 ++--- 2 files changed, 63 insertions(+), 7 deletions(-) diff --git a/apps/wr/src/app/styles/components.css b/apps/wr/src/app/styles/components.css index 4dc30bafd..fd651fe6c 100644 --- a/apps/wr/src/app/styles/components.css +++ b/apps/wr/src/app/styles/components.css @@ -21,6 +21,62 @@ .card-header { @apply border-b-[#3f4042]; } + + .gis-layer-panel { + background: #111214; + border-right-color: #2f3136; + box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.03); + } + + .gis-layer-panel-title { + color: #f3f4f6; + } + + .gis-layer-panel hr { + border-color: #2f3136; + } + + .gis-layer-row { + color: #e5e7eb; + } + + .gis-layer-row:hover { + background: rgba(255, 255, 255, 0.08); + } + + .gis-layer-row span, + .gis-layer-row label { + color: #e5e7eb !important; + } + + .gis-layer-row input[type="checkbox"] { + accent-color: #c026d3; + } + + .gis-layer-action-button { + background: #1a1c20; + border-color: #3b82f6; + color: #cfe3ff; + } + + .gis-layer-action-button:hover { + background: #23262b; + } + + .gis-layer-setting { + background: #111214; + border-top: 1px solid #2f3136; + } + + .gis-layer-toggle { + background: #111214; + border-color: #2f3136; + color: #f3f4f6; + } + + .gis-layer-toggle:hover { + background: #1a1c20; + } } input[type="file"] { diff --git a/packages/common/business_components/src/ui/map/GisTree.js b/packages/common/business_components/src/ui/map/GisTree.js index 75f523cd4..5f9510bb5 100644 --- a/packages/common/business_components/src/ui/map/GisTree.js +++ b/packages/common/business_components/src/ui/map/GisTree.js @@ -518,7 +518,7 @@ export default React.memo(function GisTree({ <> {/* 사이드 패널 */}
-

시설물

+

시설물


{/* DnD Tree */} @@ -550,7 +550,7 @@ export default React.memo(function GisTree({ return (
handleLayerImgClick( node.data.lyrTyNm, @@ -627,13 +627,13 @@ export default React.memo(function GisTree({
{LayerSettingView && ( -
+
)} @@ -641,7 +641,7 @@ export default React.memo(function GisTree({ {!visible && ( From 1fc6707bb327834b34ff069f2d19d59cbf901321 Mon Sep 17 00:00:00 2001 From: ljpark Date: Mon, 15 Jun 2026 16:27:41 +0900 Subject: [PATCH 04/12] =?UTF-8?q?wr:=20=EC=B4=9D=EB=8C=80=EC=9E=A5?= =?UTF-8?q?=EA=B7=A0=EA=B5=B0=EC=88=98=20=EB=8B=A8=EC=9C=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx | 2 +- apps/wr/app/store/matDmd/coMatRvw/type.tsx | 2 +- apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx | 2 +- apps/wr/app/store/prfmncReg/chkgdnReg/rswrtChkgdn/headList.tsx | 2 +- .../app/store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/headList.tsx | 2 +- .../app/store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx | 2 +- apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/headList.tsx | 2 +- apps/wr/app/store/ruseFcltMng/fcltSttn/pbnstSttn/headList.tsx | 2 +- .../pbnstReg/buseReg/buseWaterQulity/buseWaterQulity.tsx | 2 +- 9 files changed, 9 insertions(+), 9 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 bf784b41a..bf8d5c5bb 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx @@ -440,7 +440,7 @@ export default function CoMatRvw() { control={form.control} name="grssClfg" render={({ field }) => ( - +
( - +
Date: Tue, 16 Jun 2026 15:51:44 +0900 Subject: [PATCH 05/12] =?UTF-8?q?wr:=20=EC=8B=9C=EA=B5=B0=EA=B5=AC=20?= =?UTF-8?q?=ED=95=B4=EB=8B=B9=20=EC=9C=84=EC=B9=98=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/ui/map/searchBar/searchBar.tsx | 11 +- .../src/ui/map/searchBar/utils.ts | 135 ++++++++++++------ 2 files changed, 95 insertions(+), 51 deletions(-) diff --git a/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx b/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx index a663feabf..e117b86e0 100644 --- a/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx +++ b/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx @@ -4,7 +4,7 @@ import { Button } from "@common/components/ui"; import { useCallback, useEffect, useState } from "react"; import SearchInputText from "./SearchInputText"; import GisApp from "../lib/gis.core"; -import { moveMapToCenter, sidoCenter, sigunguCenter } from "./utils"; +import { getSigunguCenter, moveMapToCenter, sidoCenter } from "./utils"; const FACILITY_TYPE_URL_MAP: Record = { tb_il_swage_prcs_fclt: @@ -112,9 +112,9 @@ export const SearchBar = ({ .map((item: any) => ({ val: item.lwpoCd, text: item.lwpoCdNm, - center: sigunguCenter[item.lwpoCd?.trim()], - })) - .sort((a: any, b: any) => a.text.localeCompare(b.text, 'ko')); + center: getSigunguCenter(item.lwpoCd), + })); + //.sort((a: any, b: any) => a.text.localeCompare(b.text, 'ko')); setSidoData([{ text: "시도", val: "0" }, ...sidoList]); setSigunData(sigunList); }; @@ -168,7 +168,10 @@ export const SearchBar = ({ const selectedSido = sidoData.find((item) => item.val === sidoValue); if (!selectedSido?.center) return; + console.log("시도 : " +sidoValue); + console.log("시군구 : " + sigunValue); if (sigunValue !== "0") { + console.log(sigunData.filter((item) => item.val == sigunValue)); const selectedSigun = filteredSigunData.find((item) => item.val === sigunValue) ?? sigunData.find((item) => item.val === sigunValue); diff --git a/packages/common/business_components/src/ui/map/searchBar/utils.ts b/packages/common/business_components/src/ui/map/searchBar/utils.ts index 57528d6b9..5c9aef350 100644 --- a/packages/common/business_components/src/ui/map/searchBar/utils.ts +++ b/packages/common/business_components/src/ui/map/searchBar/utils.ts @@ -2,6 +2,11 @@ import type { RefObject } from "react"; import { transform } from "ol/proj"; import GisApp from "../lib/gis.core"; +/** + * + * @param geometry + * @returns + */ export const getGeometryCenter = (geometry: any): [number, number] | null => { if (!geometry?.coordinates) return null; @@ -42,22 +47,34 @@ export const getGeometryCenter = (geometry: any): [number, number] | null => { return [(minX + maxX) / 2, (minY + maxY) / 2]; }; +/** + * 이미 5179좌표계이면 변환하지 않음. + * @param centerCoord + * @returns + */ export const getMapCenterCoordinate = (centerCoord: [number, number]): [number, number] => { const [x, y] = centerCoord; - const looksLikeLonLat = Math.abs(x) <= 180 && Math.abs(y) <= 90; - const looksLikeLatLonSwapped = Math.abs(x) <= 90 && Math.abs(y) <= 180; + const looksLikeLonLat = Math.abs(x) <= 180 && Math.abs(y) <= 90; // 경위도 + const looksLikeLatLonSwapped = Math.abs(x) <= 90 && Math.abs(y) <= 180; // 위경도 - if (looksLikeLonLat) { - return transform(centerCoord, GisApp.FROM_PROJ, GisApp.TO_PROJ) as [number, number]; + if (looksLikeLonLat) { + return transform(centerCoord, GisApp.FROM_PROJ, GisApp.TO_PROJ) as [number, number]; // 4326 -> 5179 } if (looksLikeLatLonSwapped) { - return transform([y, x], GisApp.FROM_PROJ, GisApp.TO_PROJ) as [number, number]; + return transform([y, x], GisApp.FROM_PROJ, GisApp.TO_PROJ) as [number, number]; // 4326 -> 5179 } return centerCoord; }; +/** + * + * @param gisMaps + * @param centerCoord + * @param zoom + * @returns + */ export const moveMapToCenter = ( gisMaps: RefObject, centerCoord?: [number, number], @@ -69,7 +86,7 @@ export const moveMapToCenter = ( if (!map?.getView) return; const view = map.getView(); - const center = getMapCenterCoordinate(centerCoord); + const center = getMapCenterCoordinate(centerCoord); // 4326 -> 5179 if (!Number.isFinite(center[0]) || !Number.isFinite(center[1])) return; const projection = view.getProjection?.(); @@ -89,7 +106,28 @@ export const moveMapToCenter = ( }); }; +/** + * 시군구 코드에 해당하는 중심 좌표를 반환한다. + * 먼저 전체 코드로 정확히 조회하고, 값이 없으면 앞 4자리가 같은 다른 시군구 코드의 좌표를 대체로 사용한다. + * + * @param lwpoCd 행정구역 코드. 예: "41110" + * @returns 시군구 중심 좌표. 조회 결과가 없으면 undefined + */ +export const getSigunguCenter = (lwpoCd?: string | null): [number, number] | undefined => { + const code = lwpoCd?.trim(); + if (!code) return undefined; + const exactCenter = sigunguCenter[code]; + if (exactCenter) return exactCenter; + + const prefix = code.slice(0, 4); + if (prefix.length < 4) return undefined; + + const fallbackCode = Object.keys(sigunguCenter).find((key) => key.startsWith(prefix)); + return fallbackCode ? sigunguCenter[fallbackCode] : undefined; +}; + +// EPSG:5179 기준 export const sidoCenter: Record = { "11": [953551.4119216551, 1951826.357686395], // 서울특별시 "26": [1139616.39795744, 1683535.70569214], // 부산광역시 @@ -98,23 +136,25 @@ export const sidoCenter: Record = { "29": [939294.465052485, 1684630.0528689548], // 광주광역시 "30": [991301.069516585, 1816039.953510165], // 대전광역시 "31": [1155621.6870651902, 1727062.69578941], // 울산광역시 - "36": [979381.304388835, 1841430.83666584], // 세종특별자치시 + // "36": [979381.304388835, 1841430.83666584], // 세종특별자치시 "41": [965621.8990488851, 1954345.5683645], // 경기도 - "51": [1065114.938094025, 1980661.8453088552], // 강원특별자치도 + "42": [1065114.938094025, 1980661.8453088552], // 강원특별자치도 "43": [1041183.7558293699, 1848671.9260201901], // 충청북도 "44": [918689.7963483699, 1836216.9375309348], // 충청남도 - "52": [949568.330647045, 1748060.215177075], // 전북특별자치도 + "45": [949568.330647045, 1748060.215177075], // 전북특별자치도 "46": [906934.38266853, 1637218.959990745], // 전라남도 "47": [1207219.543276005, 1843195.136606685], // 경상북도 "48": [1081504.77257488, 1690185.644486565], // 경상남도 - "50": [912295.3285630699, 1508716.724020285], // 제주특별자치도 + "49": [909678.884, 1485988.314], // [912295.3285630699, 1508716.724020285], // 제주특별자치도 + "50": [979381.304388835, 1841430.83666584], // 세종특별자치시 }; +// EPSG:5179 기준, 구코드 기준임. 즉, 하수도정보시스템 기준, tb_ms_sgg는 신코드 기준임. export const sigunguCenter: Record = { "41820": [994886.197272545, 1979052.53325589], // 가평군 "11680": [961673.31210415, 1944170.63969123], // 강남구 "11740": [968769.7482373801, 1950018.61637764], // 강동구 - "51150": [1117008.10469879, 1968660.393087245], // 강릉시 + "42150": [1117008.10469879, 1968660.393087245], // 강릉시 "11305": [957184.89551525, 1960948.17897649], // 강북구 "11500": [940169.1006571399, 1952038.261591505], // 강서구 "26440": [1125722.34144724, 1680630.4026719849], // 강서구 @@ -128,11 +168,11 @@ export const sigunguCenter: Record = { "28245": [932663.7165225251, 1951314.751646345], // 계양구 "47830": [1074241.6005863552, 1748726.26930297], // 고령군 "48820": [1073144.623548525, 1668111.92215727], // 고성군 - "51820": [1079906.976889925, 2044841.96337935], // 고성군 + "42820": [1079906.976889925, 2044841.96337935], // 고성군 "41281": [945034.57886003, 1962467.607140625], // 고양시 덕양구 "41285": [937759.4023643399, 1964877.5403761598], // 고양시 일산동구 "41287": [931767.42700348, 1964473.38259711], // 고양시 일산서구 - "52790": [918393.62804468, 1716132.826828825], // 고창군 + "45790": [918393.62804468, 1716132.826828825], // 고창군 "46770": [982955.40283695, 1619845.06015117], // 고흥군 "46720": [976956.4637679299, 1689787.68075054], // 곡성군 "44150": [962642.898486655, 1831283.240475945], // 공주시 @@ -148,14 +188,14 @@ export const sigunguCenter: Record = { "11530": [943255.85156361, 1944224.7496726601], // 구로구 "41310": [967836.346287095, 1955821.725581055], // 구리시 "47190": [1076297.5737083051, 1801900.2253747801], // 구미시 - "52130": [904674.42544751, 1767715.183037305], // 군산시 + "45130": [904674.42544751, 1767715.183037305], // 군산시 "27720": [1103849.611897755, 1797204.1944948], // 군위군 "41410": [948411.5776788951, 1927135.757437655], // 군포시 "44710": [998110.87580872, 1792026.97835628], // 금산군 "26410": [1144696.85330015, 1697028.92074261], // 금정구 "11545": [946955.492372005, 1940271.753176735], // 금천구 "26710": [1155182.296211175, 1700204.308554315], // 기장군 - "52210": [935224.890489175, 1755205.56953502], // 김제시 + "45210": [935224.890489175, 1755205.56953502], // 김제시 "47150": [1052988.6733146599, 1783129.650228145], // 김천시 "41570": [925936.0119416551, 1965389.1203246699], // 김포시 "48250": [1123054.361467805, 1698359.11561172], // 김해시 @@ -166,7 +206,7 @@ export const sigunguCenter: Record = { "31140": [1164388.02782853, 1725008.616189565], // 남구 "28200": [931330.60305263, 1937119.742216935], // 남동구 "41360": [976250.43203106, 1960416.01281481], // 남양주시 - "52190": [993534.846345315, 1715101.9621615452], // 남원시 + "45190": [993534.846345315, 1715101.9621615452], // 남원시 "48840": [1042145.28987352, 1636788.3540021451], // 남해군 "11350": [962686.53614943, 1961831.238915105], // 노원구 "44230": [969310.08745166, 1800569.86826501], // 논산시 @@ -187,20 +227,20 @@ export const sigunguCenter: Record = { "41250": [963148.54470934, 1991284.1699954001], // 동두천시 "26260": [1143854.4548997101, 1691107.4825817398], // 동래구 "11590": [950875.3949149849, 1944274.8505625948], // 동작구 - "51170": [1137915.778823135, 1947378.462972425], // 동해시 + "42170": [1137915.778823135, 1947378.462972425], // 동해시 "11440": [947783.55349907, 1951598.7669664049], // 마포구 "46110": [897040.76889998, 1645038.46904772], // 목포시 "46840": [899587.661355305, 1664175.9893810651], // 무안군 - "52730": [1019648.0651991949, 1770211.22681309], // 무주군 + "45730": [1019648.0651991949, 1770211.22681309], // 무주군 "47280": [1055620.11152262, 1855147.380883595], // 문경시 - "28177": [926226.3594373399, 1940093.5607894901], // 미추홀구 + "28170": [926226.3594373399, 1940093.5607894901], // 미추홀구 "48270": [1117632.749546145, 1722736.830743895], // 밀양시 "44180": [896412.984839845, 1817364.412693855], // 보령시 "46780": [974939.082074685, 1646364.3864357], // 보성군 "43720": [1018843.696119875, 1832681.50774474], // 보은군 "47920": [1125627.975921425, 1881676.019098885], // 봉화군 "26230": [1140857.032737495, 1686905.10585393], // 부산진구 - "52800": [906904.98605649, 1743711.597374285], // 부안군 + "45800": [906904.98605649, 1743711.597374285], // 부안군 "44760": [943835.889385045, 1803731.764881715], // 부여군 "41194": [937043.513148805, 1941917.36078241], // 부천시 소사구 "41196": [937651.62357278, 1948088.650724335], // 부천시 오정구 @@ -214,14 +254,14 @@ export const sigunguCenter: Record = { "48240": [1048464.90586407, 1669923.18795966], // 사천시 "26380": [1134089.12930976, 1669378.70600097], // 사하구 "48860": [1036496.214687915, 1711373.1111203502], // 산청군 - "51230": [1142435.56217199, 1918978.17539709], // 삼척시 + "42230": [1142435.56217199, 1918978.17539709], // 삼척시 "47250": [1050861.110185015, 1827830.141259105], // 상주시 "26140": [1137931.5983933099, 1678744.3981297952], // 서구 "27170": [1094695.438967345, 1764784.74637237], // 서구 "28260": [922809.601799805, 1950975.3525035651], // 서구 "29140": [941246.057711575, 1682370.2693891348], // 서구 "30170": [985795.240808525, 1808929.24401602], // 서구 - "50130": [912245.46105533, 1478972.2801259952], // 서귀포시 + "49130": [912245.46105533, 1478972.2801259952], // 서귀포시 "11410": [950162.9458121, 1953864.48715979], // 서대문구 "44210": [909519.454637895, 1868915.7895147852], // 서산시 "44770": [925279.862903135, 1788678.070235445], // 서천군 @@ -233,7 +273,7 @@ export const sigunguCenter: Record = { "11290": [957924.54027983, 1956512.99273417], // 성북구 "47840": [1065227.20912238, 1769071.96163128], // 성주군 "36110": [979381.304388835, 1841430.83666584], // 세종특별자치시 - "51210": [1089137.1194603802, 2019900.279034885], // 속초시 + "42210": [1089137.1194603802, 2019900.279034885], // 속초시 "11710": [965928.83189988, 1945132.495701395], // 송파구 "27260": [1104712.551021275, 1760363.086093105], // 수성구 "26500": [1146933.8448469099, 1686288.07716536], // 수영구 @@ -241,7 +281,7 @@ export const sigunguCenter: Record = { "41117": [961096.623048695, 1919787.236461525], // 수원시 영통구 "41111": [955699.294199125, 1924459.3724800851], // 수원시 장안구 "41115": [956709.41575029, 1919672.72074137], // 수원시 팔달구 - "52770": [962532.77503817, 1714757.02288094], // 순창군 + "45770": [962532.77503817, 1714757.02288094], // 순창군 "46150": [989441.17839757, 1668074.09581569], // 순천시 "41390": [934025.6249972349, 1932609.450570995], // 시흥시 "46910": [837068.838454425, 1628081.7615658198], // 신안군 @@ -252,14 +292,14 @@ export const sigunguCenter: Record = { "41550": [983047.68986298, 1891835.77152603], // 안성시 "41173": [951774.092625505, 1933701.863194715], // 안양시 동안구 "41171": [947757.35105343, 1934091.7197804102], // 안양시 만안구 - "51800": [1044799.8868826301, 2018930.475621245], // 양구군 + "42800": [1044799.8868826301, 2018930.475621245], // 양구군 "48330": [1140452.0009971252, 1713003.89300298], // 양산시 - "51830": [1097181.1822994999, 2001875.93591869], // 양양군 - "41630": [957059.65493005, 1978556.8707086649], // 양주시 + "42830": [1097181.1822994999, 2001875.93591869], // 양양군 + "41710": [957059.65493005, 1978556.8707086649], // 양주시 "11470": [943115.85871501, 1947726.50098438], // 양천구 "41830": [1006799.81121338, 1946640.3454016], // 양평군 "46130": [1005710.6789662449, 1606473.622557845], // 여수시 - "41670": [1007389.488139985, 1920986.5590416798], // 여주시 + "41730": [1007389.488139985, 1920986.5590416798], // 여주시 "28185": [924301.1973107599, 1932716.5874987599], // 연수구 "26470": [1143967.4104618952, 1688206.29479672], // 연제구 "41800": [955142.1788103101, 2011772.731874695], // 연천군 @@ -270,7 +310,7 @@ export const sigunguCenter: Record = { "11560": [948221.9355719599, 1946989.433783595], // 영등포구 "46830": [918568.42419672, 1645644.03685685], // 영암군 "47760": [1147157.8720550952, 1855483.55416634], // 영양군 - "51750": [1089601.7085692, 1913792.65877573], // 영월군 + "42750": [1089601.7085692, 1913792.65877573], // 영월군 "47210": [1096747.798418135, 1876468.75553605], // 영주시 "47230": [1128168.955619915, 1779896.3669964802], // 영천시 "44810": [935536.49511435, 1852175.0178411552], // 예산군 @@ -279,7 +319,7 @@ export const sigunguCenter: Record = { "43730": [1016925.1630849349, 1812306.15335931], // 옥천군 "28720": [831017.06725137, 1941763.7671776651], // 옹진군 "46890": [934681.072970785, 1580260.96434381], // 완도군 - "52710": [971714.974980355, 1764297.860421155], // 완주군 + "45710": [971714.974980355, 1764297.860421155], // 완주군 "11170": [954152.265892775, 1948105.11473188], // 용산구 "41463": [966362.167328945, 1919086.059435395], // 용인시 기흥구 "41465": [962751.309054115, 1926067.760215145], // 용인시 수지구 @@ -287,7 +327,7 @@ export const sigunguCenter: Record = { "47940": [1339459.86503077, 1939972.251018405], // 울릉군 "31710": [1152103.383022245, 1727062.6953479801], // 울주군 "47930": [1158508.6557213152, 1879083.142978875], // 울진군 - "51130": [1042675.604280725, 1925192.470561375], // 원주시 + "42130": [1042675.604280725, 1925192.470561375], // 원주시 "30200": [985050.9636310451, 1820539.200680445], // 유성구 "11380": [949045.72456328, 1957730.2124330248], // 은평구 "43770": [1010863.03644352, 1888460.954926385], // 음성군 @@ -296,17 +336,18 @@ export const sigunguCenter: Record = { "41430": [954677.940289845, 1928890.756176705], // 의왕시 "41150": [962517.29720437, 1970466.861837395], // 의정부시 "41500": [998578.52141335, 1911408.9081171248], // 이천시 - "52140": [954517.27659099, 1780482.64843965], // 익산시 - "51810": [1065461.7186508449, 2010839.9914423148], // 인제군 - "52750": [978229.1338949, 1735882.14962747], // 임실군 + "45140": [954517.27659099, 1780482.64843965], // 익산시 + "42810": [1065461.7186508449, 2010839.9914423148], // 인제군 + "45750": [978229.1338949, 1735882.14962747], // 임실군 "46880": [932255.0392670301, 1705063.362106785], // 장성군 - "52740": [1002766.6532682499, 1739693.270420835], // 장수군 + "45740": [1002766.6532682499, 1739693.270420835], // 장수군 "46800": [946864.73876017, 1628580.0165673052], // 장흥군 + "45110": [965336.86328101, 1761811.9640769851], // 전주시 "52113": [965336.86328101, 1761811.9640769851], // 전주시 덕진구 "52111": [966893.605588815, 1754468.0213283598], // 전주시 완산구 - "51770": [1110360.32014753, 1931013.538670365], // 정선군 - "52180": [947098.239651715, 1735070.37728938], // 정읍시 - "50110": [912295.3285630699, 1517557.88079664], // 제주시 + "42770": [1110360.32014753, 1931013.538670365], // 정선군 + "45180": [947098.239651715, 1735070.37728938], // 정읍시 + "49110": [910293.463, 1500596.952], //[912295.3285630699, 1517557.88079664], // 제주시 "43150": [1055671.53255738, 1893115.04197246], // 제천시 "11110": [954639.31671291, 1955652.65017071], // 종로구 "11140": [955326.326625775, 1951065.0090038702], // 중구 @@ -318,7 +359,7 @@ export const sigunguCenter: Record = { "11260": [964157.58830932, 1955182.665424475], // 중랑구 "43745": [1009013.34585424, 1864734.46162539], // 증평군 "46900": [870540.7578711801, 1597916.46618356], // 진도군 - "52720": [995028.62264954, 1758625.23076353], // 진안군 + "45720": [995028.62264954, 1758625.23076353], // 진안군 "48170": [1057167.869451315, 1689727.04548209], // 진주시 "43750": [994342.7517215649, 1875793.7535851048], // 진천군 "48740": [1090841.266427235, 1726085.44764784], // 창녕군 @@ -329,7 +370,7 @@ export const sigunguCenter: Record = { "48129": [1111617.62626141, 1680996.6599733299], // 창원시 진해구 "44131": [974478.67761805, 1862026.08139811], // 천안시 동남구 "44133": [971707.02854063, 1875704.530427825], // 천안시 서북구 - "51780": [997447.306165415, 2024301.05104793], // 철원군 + "42780": [997447.306165415, 2024301.05104793], // 철원군 "47820": [1116479.97088183, 1746481.442573125], // 청도군 "47750": [1139213.58132652, 1821067.804006115], // 청송군 "44790": [941752.03871163, 1827462.3607307798], // 청양군 @@ -337,16 +378,16 @@ export const sigunguCenter: Record = { "43112": [994258.23710022, 1838908.2251619152], // 청주시 서원구 "43114": [997183.756680205, 1857171.4242312452], // 청주시 청원구 "43113": [989161.30366111, 1849501.26145491], // 청주시 흥덕구 - "51110": [1023515.451806125, 1986727.7291947599], // 춘천시 + "42110": [1023515.451806125, 1986727.7291947599], // 춘천시 "43130": [1034982.8699803599, 1889790.67989893], // 충주시 "47850": [1086736.697665845, 1779277.075473485], // 칠곡군 - "51190": [1131634.14282853, 1912631.8063723398], // 태백시 + "42190": [1131634.14282853, 1912631.8063723398], // 태백시 "44825": [864678.84145598, 1854929.12571281], // 태안군 "48220": [1085316.421521755, 1640596.827168765], // 통영시 "41480": [941812.744809255, 1983528.9263305948], // 파주시 - "51760": [1088652.567431635, 1949959.4658569149], // 평창군 + "42760": [1088652.567431635, 1949959.4658569149], // 평창군 "41220": [952557.5035727851, 1891740.1058186102], // 평택시 - "41650": [979667.7288193901, 1996457.8400075398], // 포천시 + "41810": [979667.7288193901, 1996457.8400075398], // 포천시 "47111": [1173941.15980316, 1776164.6804896551], // 포항시 남구 "47113": [1155413.511896325, 1798939.39325854], // 포항시 북구 "41450": [974619.56368595, 1947933.69704679], // 하남시 @@ -358,10 +399,10 @@ export const sigunguCenter: Record = { "46820": [907157.24936254, 1615346.232287635], // 해남군 "26350": [1151062.0301465848, 1690808.34175552], // 해운대구 "44800": [919404.43702764, 1841255.1935457601], // 홍성군 - "51720": [1049442.09422194, 1972233.65191397], // 홍천군 + "42720": [1049442.09422194, 1972233.65191397], // 홍천군 "41590": [941810.22622111, 1906896.59289364], // 화성시 "46790": [955520.512544285, 1669429.020528105], // 화순군 - "51790": [1015098.9945956401, 2015706.532260655], // 화천군 - "51730": [1046904.40402372, 1943541.6685614302], // 횡성군 + "42790": [1015098.9945956401, 2015706.532260655], // 화천군 + "42730": [1046904.40402372, 1943541.6685614302], // 횡성군 }; From 58a03678e46ad97435ff846c201b4c6688401958 Mon Sep 17 00:00:00 2001 From: ljpark Date: Tue, 16 Jun 2026 18:16:14 +0900 Subject: [PATCH 06/12] =?UTF-8?q?wr:=20=EC=8B=9C=EC=84=A4=EB=AA=85=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=EA=B2=80=EC=83=89=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruseFcltMng/fcltSttn/rainSttn/page.tsx | 72 +++++++++++++------ .../ruseFcltMng/fcltSttn/rswtSttn/page.tsx | 58 +++++++++++---- apps/wr/app/store/common/auth/index.tsx | 8 +-- .../ruseFcltMng/fcltSttn/rainSttn/index.tsx | 2 + .../src/ui/map/searchBar/searchBar.tsx | 4 +- 5 files changed, 103 insertions(+), 41 deletions(-) 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 c1e9fb141..3d87dbbbf 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rainSttn/page.tsx @@ -60,6 +60,11 @@ export default function RainSttn() { }>({ data: undefined, isOpen: false }); const [fcltNm, setFcltNm] = useState(""); + const [appliedSearch, setAppliedSearch] = useState({ + conValue: "0", + fcltNm: "", + }); + const [searchTrigger, setSearchTrigger] = useState(0); const { t } = useTranslation("base"); const alert = useAlertStore((state) => state.setMessage); const skipNextSearchRef = useRef(true); @@ -142,16 +147,27 @@ export default function RainSttn() { return; } + const initialConValue = + laeSeCd === undefined || laeSeCd === "0" + ? "0" + : laeSeCd.length === 5 + ? laeSeCd + : laeSeCd.slice(0, 2); + skipNextSearchRef.current = true; + setAppliedSearch({ + conValue: initialConValue, + fcltNm: "", + }); rainSttnInit( false, 1, rainSttnSize, - getFixedConValue(), - fcltNm, + initialConValue, + "", code as unknown as Record ); - }, [rainSttn.isInit, rainSttnInit, fcltNm, code, getFixedConValue, isLaeSeCdReady]); + }, [rainSttn.isInit, rainSttnInit, code, isLaeSeCdReady, laeSeCd]); useEffect(() => { if (!isLaeSeCdReady) { @@ -163,16 +179,28 @@ export default function RainSttn() { return; } + if (searchTrigger === 0) { + return; + } + rainSttnSearch( false, pageNation, rainSttnSize, - String(getFixedConValue()), - fcltNm, + appliedSearch.conValue, + appliedSearch.fcltNm, code as unknown as Record ); isResetPage(false); - }, [pageNation, rainSttnSearch, fcltNm, code, getFixedConValue, isLaeSeCdReady]); + }, [ + pageNation, + searchTrigger, + rainSttnSearch, + code, + appliedSearch.conValue, + appliedSearch.fcltNm, + isLaeSeCdReady, + ]); useEffect(() => { if (!isLaeSeCdReady) { @@ -212,19 +240,31 @@ export default function RainSttn() { true, 1, rainSttnResCount, - String(getFixedConValue()), - fcltNm, + appliedSearch.conValue, + appliedSearch.fcltNm, code as unknown as Record ); }, [ rainSttnSearch, - fcltNm, rainSttnResCount, code, - getFixedConValue, + appliedSearch.conValue, + appliedSearch.fcltNm, isLaeSeCdReady, ]); + const handleSearch = useCallback(() => { + const nextSearch = { + conValue: String(getFixedConValue()), + fcltNm, + }; + + setAppliedSearch(nextSearch); + isResetPage(true); + setPageNation(1); + setSearchTrigger((prev) => prev + 1); + }, [fcltNm, getFixedConValue]); + useEffect(() => { const data = tableData(rainSttnRes, { code }); const chData = data @@ -318,17 +358,7 @@ export default function RainSttn() {
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 da953bb43..4e76336c5 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/rswtSttn/page.tsx @@ -55,6 +55,11 @@ export default function RswtSttn() { const [objSearch, setObjSearch] = useState({ sgg: "", city: "" }); const [detailModal, setDetailModal] = useState<{ isOpen: boolean, data: customRswtBdst | undefined }>({ data: undefined, isOpen: false }) const [fcltNm, setFcltNm] = useState(""); + const [appliedSearch, setAppliedSearch] = useState({ + conValue: "0", + fcltNm: "", + }); + const [searchTrigger, setSearchTrigger] = useState(0); const { t } = useTranslation('base'); const alert = useAlertStore((state) => state.setMessage); const isAllAreaUser = laeSeCd === "0"; @@ -137,16 +142,27 @@ export default function RswtSttn() { return; } + const initialConValue = + laeSeCd === undefined || laeSeCd === "0" + ? "0" + : laeSeCd.length === 5 + ? laeSeCd + : laeSeCd.slice(0, 2); + skipNextSearchRef.current = true; + setAppliedSearch({ + conValue: initialConValue, + fcltNm: "", + }); rswtSttnInit( false, 1, rswtSttnSize, - getFixedConValue(), - fcltNm, + initialConValue, + "", code as unknown as Record ); - }, [rswtSttn.isInit, rswtSttnInit, fcltNm, code, getFixedConValue, isLaeSeCdReady]); + }, [rswtSttn.isInit, rswtSttnInit, code, isLaeSeCdReady, laeSeCd]); useEffect(() => { const data = tableData(rswtSttnRes, { code }); @@ -208,8 +224,8 @@ export default function RswtSttn() { } isDownloadTriggered.current = true; - rswtSttnSearch(true, 1, rswtSttnResCount, String(getFixedConValue()), fcltNm, code as unknown as Record); - }, [rswtSttnSearch, fcltNm, rswtSttnResCount, code, getFixedConValue, isLaeSeCdReady]); + rswtSttnSearch(true, 1, rswtSttnResCount, appliedSearch.conValue, appliedSearch.fcltNm, code as unknown as Record); + }, [rswtSttnSearch, rswtSttnResCount, code, appliedSearch.conValue, appliedSearch.fcltNm, isLaeSeCdReady]); useEffect(() => { if (!isLaeSeCdReady) { @@ -221,9 +237,29 @@ export default function RswtSttn() { return; } - rswtSttnSearch(false, pageNation, rswtSttnSize, String(getFixedConValue()), fcltNm, code as unknown as Record); + if (searchTrigger === 0) { + return; + } + + rswtSttnSearch(false, pageNation, rswtSttnSize, appliedSearch.conValue, appliedSearch.fcltNm, code as unknown as Record); isResetPage(false) - }, [pageNation, rswtSttnSearch, fcltNm, code, getFixedConValue, isLaeSeCdReady]); + }, [pageNation, searchTrigger, rswtSttnSearch, code, appliedSearch.conValue, appliedSearch.fcltNm, isLaeSeCdReady]); + + const handleSearch = useCallback(() => { + if (!isLaeSeCdReady) { + return; + } + + const nextSearch = { + conValue: String(getFixedConValue()), + fcltNm, + }; + + setAppliedSearch(nextSearch); + isResetPage(true); + setPageNation(1); + setSearchTrigger((prev) => prev + 1); + }, [fcltNm, getFixedConValue, isLaeSeCdReady]); return ( <> @@ -279,13 +315,7 @@ export default function RswtSttn() {
diff --git a/apps/wr/app/store/common/auth/index.tsx b/apps/wr/app/store/common/auth/index.tsx index 6e9396e6e..fe99a02ae 100644 --- a/apps/wr/app/store/common/auth/index.tsx +++ b/apps/wr/app/store/common/auth/index.tsx @@ -52,10 +52,10 @@ export const authActionsExport: (set: any, get: any) => authActions = ( auth: { ...state.auth, mngAuthrtYn: response[0].mngAuthrtYn, - inqAuthrtYn: response[0].mngAuthrtYn, - regAuthrtYn: response[0].mngAuthrtYn, - mdfcnAuthrtYn: response[0].mngAuthrtYn, - delAuthrtYn: response[0].mngAuthrtYn, + inqAuthrtYn: response[0].inqAuthrtYn, + regAuthrtYn: response[0].regAuthrtYn, + mdfcnAuthrtYn: response[0].mdfcnAuthrtYn, + delAuthrtYn: response[0].delAuthrtYn, }, }; }); diff --git a/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/index.tsx b/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/index.tsx index b278a9a22..67de7f687 100644 --- a/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/index.tsx +++ b/apps/wr/app/store/ruseFcltMng/fcltSttn/rainSttn/index.tsx @@ -149,6 +149,7 @@ export const rainSttnActionsExport: (set: any) => rainSttnActions = ( rainSttn: { ...state.rainSttn, excelList: rainExcel, + rainSttnResCount: rainSttnRes.count, }, }; }); @@ -159,6 +160,7 @@ export const rainSttnActionsExport: (set: any) => rainSttnActions = ( rainSttn: { ...state.rainSttn, rainSttnRes: rainSttnRes.data, + rainSttnResCount: rainSttnRes.count, isInit: false, }, }; diff --git a/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx b/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx index e117b86e0..e13965768 100644 --- a/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx +++ b/packages/common/business_components/src/ui/map/searchBar/searchBar.tsx @@ -168,8 +168,8 @@ export const SearchBar = ({ const selectedSido = sidoData.find((item) => item.val === sidoValue); if (!selectedSido?.center) return; - console.log("시도 : " +sidoValue); - console.log("시군구 : " + sigunValue); + // console.log("시도 : " +sidoValue); + // console.log("시군구 : " + sigunValue); if (sigunValue !== "0") { console.log(sigunData.filter((item) => item.val == sigunValue)); const selectedSigun = From da9d069a9ab8a0f161dfc99f7bcae0ee26ab5286 Mon Sep 17 00:00:00 2001 From: ljpark Date: Wed, 17 Jun 2026 13:32:23 +0900 Subject: [PATCH 07/12] =?UTF-8?q?wr:=20=EC=B4=9D=EB=8C=80=EC=9E=A5?= =?UTF-8?q?=EA=B7=A0=EA=B5=B0=EC=88=98=20=EB=8B=A8=EC=9C=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dm/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx | 2 +- apps/dm/app/(landing)/reuse/apply/register/page.tsx | 6 +++--- apps/dm/app/(landing)/reuse/apply/status/page.tsx | 4 ++-- apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx | 6 +++--- apps/dm/app/store/sdmMng/index.tsx | 2 +- apps/dm/components/ui/sdmInfoInsertForm/component.tsx | 6 +++--- apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx | 2 +- apps/wr/app/store/matDmd/coMatRvw/type.tsx | 2 +- .../app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx | 2 +- .../app/store/prfmncReg/chkgdnReg/rswrtChkgdn/headList.tsx | 2 +- .../store/prfmncSttn/chkgdnSttn/rainChkgdnSttn/headList.tsx | 2 +- .../store/prfmncSttn/chkgdnSttn/rswtChkgdnSttn/headList.tsx | 2 +- apps/wr/app/store/ruseFcltMng/fcltReg/pbnstReg/headList.tsx | 2 +- .../app/store/ruseFcltMng/fcltSttn/pbnstSttn/headList.tsx | 2 +- .../pbnstReg/buseReg/buseWaterQulity/buseWaterQulity.tsx | 2 +- 15 files changed, 22 insertions(+), 22 deletions(-) diff --git a/apps/dm/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx b/apps/dm/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx index 6f68ab515..90fe5a798 100644 --- a/apps/dm/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx +++ b/apps/dm/app/(landing)/reuse/apply/modal/SimilarCaseModal.tsx @@ -365,7 +365,7 @@ export default function SimilarCaseModal({ - 총대장균군수
(개/100ml) + 총대장균군수
(개/100mL) 용도별 결합 잔류염소
(mg/L) diff --git a/apps/dm/app/(landing)/reuse/apply/register/page.tsx b/apps/dm/app/(landing)/reuse/apply/register/page.tsx index 9350f59f4..1f376c296 100644 --- a/apps/dm/app/(landing)/reuse/apply/register/page.tsx +++ b/apps/dm/app/(landing)/reuse/apply/register/page.tsx @@ -428,7 +428,7 @@ export default function DemandRegisterPage() { - + @@ -438,7 +438,7 @@ export default function DemandRegisterPage() { - +
@@ -464,7 +464,7 @@ export default function DemandRegisterPage() {
diff --git a/apps/dm/app/(landing)/reuse/apply/status/page.tsx b/apps/dm/app/(landing)/reuse/apply/status/page.tsx index 3282f54a5..2bc608ff5 100644 --- a/apps/dm/app/(landing)/reuse/apply/status/page.tsx +++ b/apps/dm/app/(landing)/reuse/apply/status/page.tsx @@ -148,7 +148,7 @@ export default function DemandStatusPage() { { label: "요구시기", value: selected.detail.reqDate, required: true }, { label: "요구수량(㎡/d)", value: selected.detail.reqQty }, { label: "사용용도", value: selected.detail.usePurpose }, - { label: "희망단가(원)", value: selected.detail.price }, + { label: "희망단가(원/㎥)", value: selected.detail.price }, ]; }, [selected]); @@ -157,7 +157,7 @@ export default function DemandStatusPage() { if (!selected) return []; const w = selected.detail.water; return [ - { label: "총대장균군수(개/100mℓ)", value: w.coliform }, + { label: "총대장균군수(개/100mL)", value: w.coliform }, { label: "결합잔류염소(mg/L)", value: "-" }, { label: "탁도(NTU)", value: w.turbidity }, diff --git a/apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx b/apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx index cef0461d2..25b51a13a 100644 --- a/apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx +++ b/apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx @@ -467,7 +467,7 @@ export default function DemandRegisterPage() { - + @@ -490,7 +490,7 @@ export default function DemandRegisterPage() { - +
@@ -519,7 +519,7 @@ export default function DemandRegisterPage() {
{/* 1행 */} diff --git a/apps/dm/app/store/sdmMng/index.tsx b/apps/dm/app/store/sdmMng/index.tsx index dfe9d7850..de345f0d7 100644 --- a/apps/dm/app/store/sdmMng/index.tsx +++ b/apps/dm/app/store/sdmMng/index.tsx @@ -770,7 +770,7 @@ export const SdmReducer = (set: any): SdmActions => { "/cms-service/api/v1/lwpo-cds/?lwpoCdNm=&sort=regDt,desc&upCd=WR018&page=0&size=100" ); - const comUseTypes = upCd.content.filter(el=>el.lwpoCdNm != '친수용수').map((el: any) => ({ text: el.lwpoCdNm, val: el.lwpoCd })); + const comUseTypes = upCd.content.map((el: any) => ({ text: el.lwpoCdNm, val: el.lwpoCd })); set((state: SdmType) => ({ Sdm: { diff --git a/apps/dm/components/ui/sdmInfoInsertForm/component.tsx b/apps/dm/components/ui/sdmInfoInsertForm/component.tsx index 44c6d3f82..ac94e4a02 100644 --- a/apps/dm/components/ui/sdmInfoInsertForm/component.tsx +++ b/apps/dm/components/ui/sdmInfoInsertForm/component.tsx @@ -282,7 +282,7 @@ // }, // { // name: "money", -// label: "희망단가(원)", +// label: "희망단가(원/㎥)", // formIndex: 0, // required: true, // component: (field) => ( @@ -375,7 +375,7 @@ // render={({ field }) => // name === "money" ? ( //
-// +// // {component(field)} //
// ) : ( @@ -411,7 +411,7 @@ // return ( // //
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 bf8d5c5bb..4d6a92229 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx @@ -440,7 +440,7 @@ export default function CoMatRvw() { control={form.control} name="grssClfg" render={({ field }) => ( - +
( - +
Date: Wed, 17 Jun 2026 14:58:41 +0900 Subject: [PATCH 08/12] =?UTF-8?q?wr:=20=EC=A7=80=EB=8F=84=EC=A0=90?= =?UTF-8?q?=EA=B2=80=20=ED=98=84=ED=99=A9=20=ED=8C=9D=EC=97=85=20table=20?= =?UTF-8?q?=ED=95=AD=EB=AA=A9=EB=AA=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx | 3 +++ apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx | 4 ++-- apps/wr/components/lib/func/TableData.tsx | 4 ++-- .../ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) 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 ee2e776ba..ac3c72bc1 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/prfmncSttn/chkgdnSttn/page.tsx @@ -1,5 +1,8 @@ "use client"; +/** + * 재이용실적 현황 > 지도점검 현황 + */ import { useWrStore } from "@/app/store"; import { btnClass } from "@/app/store/common/code"; import { rainPageSize } from "@/app/store/prfmncReg/chkgdnReg/rainChkgdn"; diff --git a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx index 4d65d3db6..ead07ceef 100644 --- a/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx +++ b/apps/wr/app/store/prfmncReg/chkgdnReg/rainChkgdn/headList.tsx @@ -124,7 +124,7 @@ export const rainMainHeadNmExport: chHeadType[] = [ export const rainRuseHeadNmExport: chHeadType[] = [ { headNm: "useQuilty", text: "이용수질(필요시)", length: 3 }, { headNm: "feeHist", text: "과태료 부과내역", length: 3 }, - { headNm: "ruseWater", text: "연간대체수 이용량(m³)", length: 13 }, + { headNm: "ruseWater", text: "연간빗물이용량(m³)", length: 13 }, { headNm: "detailQulity", text: "분기", length: 11 }, ]; @@ -133,7 +133,7 @@ export const rainSplHeadNmExport: chHeadType[] = [ { headNm: "useQuilty", text: "이용수질(필요시)", length: 3 }, { headNm: "feeHist", text: "과태료 부과내역", length: 3 }, { headNm: "detailQulity", text: "분기", length: 11 }, - { headNm: "splWater", text: "연간빗물 이용량(m³)", length: 13 }, + { headNm: "splWater", text: "연간대체수이용량(m³)", length: 13 }, ]; export const rainChkgdnHeadListExport: TableUpperProps[] = [ diff --git a/apps/wr/components/lib/func/TableData.tsx b/apps/wr/components/lib/func/TableData.tsx index b2411eea4..03c000dd6 100644 --- a/apps/wr/components/lib/func/TableData.tsx +++ b/apps/wr/components/lib/func/TableData.tsx @@ -29,8 +29,8 @@ export const rainChkTableData = (chkData: rainChkZodType[]) => { totalRuseFcltUtztnQnt: 0, }; - acc[key].totalSplyUswtrUtztnQnt += cur.splyUswtrUtztnQnt; - acc[key].totalRuseFcltUtztnQnt += cur.ruseFcltUtztnQnt; + acc[key].totalSplyUswtrUtztnQnt += cur.splyUswtrUtztnQnt; // 연간대체수이용량(m³) + acc[key].totalRuseFcltUtztnQnt += cur.ruseFcltUtztnQnt; // 연간빗물이용량(m³) return acc; }, {}); diff --git a/apps/wr/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx b/apps/wr/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx index a8664063e..76e32425e 100644 --- a/apps/wr/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx +++ b/apps/wr/components/ui/table/chkgdTable/rainChkgd/rainChkgdTable.tsx @@ -63,8 +63,8 @@ export default function RainChkgdTable({ const handleCellClick = useCallback((index: number, headId: string) => { if ( - headId === "totalSplyUswtrUtztnQnt" || - headId === "totalRuseFcltUtztnQnt" + headId === "totalSplyUswtrUtztnQnt" || // 연간대체수이용량(m³) + headId === "totalRuseFcltUtztnQnt" // 연간빗물이용량(m³) ) { handleClick(makeTableData[index]) From 823ce262bb442d7f766ae54ccb019e328517d206 Mon Sep 17 00:00:00 2001 From: ljpark Date: Wed, 17 Jun 2026 16:29:28 +0900 Subject: [PATCH 09/12] =?UTF-8?q?wr:=20=EC=88=98=EC=9A=94=EC=B2=98=20?= =?UTF-8?q?=EB=A7=A4=EC=B9=AD=20=EA=B2=80=ED=86=A0=20=EC=B2=9C=EB=8B=A8?= =?UTF-8?q?=EC=9C=84=20,=20=EA=B1=B4=EC=88=98=2010=EA=B1=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/(with-layout)/apply/status/page.tsx | 19 ++- .../matMng/coMat/coMatRvw/page.tsx | 115 ++++++++++++++---- apps/wr/app/store/matDmd/coMatRvw/index.tsx | 4 +- apps/wr/app/store/matDmd/coMatRvw/type.tsx | 2 +- .../ui/form/coMat/conCostForm/conCostForm.tsx | 28 ++++- 5 files changed, 133 insertions(+), 35 deletions(-) diff --git a/apps/dm/app/(with-layout)/apply/status/page.tsx b/apps/dm/app/(with-layout)/apply/status/page.tsx index d5dbf68c5..97fe96ead 100644 --- a/apps/dm/app/(with-layout)/apply/status/page.tsx +++ b/apps/dm/app/(with-layout)/apply/status/page.tsx @@ -30,6 +30,19 @@ const formatValue = (value: string | number | null | undefined) => { return String(value); }; +const formatNumberWithComma = (value: string | number | null | undefined) => { + if (value === null || value === undefined || value === "") return "-"; + + const normalized = + typeof value === "string" ? Number(value.replace(/,/g, "")) : Number(value); + + if (Number.isNaN(normalized)) { + return String(value); + } + + return normalized.toLocaleString("ko-KR"); +}; + const formatBelow = (value: string | number | null | undefined) => { if (value === null || value === undefined || value === "") return "-"; if (Number(value) === -1) return "불검출"; @@ -234,9 +247,9 @@ export default function DemandStatusPage() { return [ { label: "요구시기", key: "dmndTmng", value: formatDate(selectedSdmInfoStatus.dmndTmng), required: true }, - { label: "요구수량(㎥/d)", key: "dmndQty", value: formatValue(selectedSdmInfoStatus.dmndQty) }, + { label: "요구수량(㎥/d)", key: "dmndQty", value: formatNumberWithComma(selectedSdmInfoStatus.dmndQty) }, { label: "사용용도", key: "useUsgCd", value: formatValue(selectedSdmInfoStatus.useUsgCd) }, - { label: "희망단가(원/㎥)", key: "wntUntprc", value: formatValue(selectedSdmInfoStatus.wntUntprc) }, + { label: "희망단가(원/㎥)", key: "wntUntprc", value: formatNumberWithComma(selectedSdmInfoStatus.wntUntprc) }, ]; }, [selectedSdmInfoStatus]); @@ -520,7 +533,7 @@ export default function DemandStatusPage() { {!selectedSdmInfoStatus ? (
- 상세 정보를 표시할 신청건이 없습니다. + 조회된 결과가 없습니다.
) : (
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 4d6a92229..0cae843bb 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx @@ -14,6 +14,7 @@ import { type DmdCoReqType, type DmdMatTableType, } from "@/app/store/matDmd/coMatRvw/type"; +import { DEFAULT_LIST_SIZE } from "@/src/shared/config"; import { formH1Class } from "@/components/lib/class/comClass"; import { formatPhoneNumber, @@ -46,6 +47,50 @@ import { useEffect, useRef, useState } from "react"; import { useForm, useWatch } from "react-hook-form"; import { z } from "zod"; +const formatNumberWithComma = (value: string | number | null | undefined) => { + if (value === null || value === undefined || value === "") return ""; + + const normalized = + typeof value === "string" ? Number(value.replace(/,/g, "")) : Number(value); + + if (Number.isNaN(normalized)) { + return String(value); + } + + return normalized.toLocaleString("ko-KR"); +}; + +const EMPTY_DETAIL_FORM: Partial = { + dmdInfoSn: 0, + dmdInfoId: "", + dmndQty: undefined, + wntUntprc: undefined, + useUsgCd: "", + dmndTmng: undefined, + grssClfg: undefined, + combResdch: undefined, + trbt: undefined, + blgcOxygDmndQnt: undefined, + smll: undefined, + crmty: undefined, + tn: undefined, + tph: undefined, + ph: undefined, + clIonQnt: undefined, + cdtnv: undefined, + rmrk: undefined, + ruseUtztnFcltNm: "", + splyCndtList: [], + totalConstCost: 0, + demandCst: { + usgPrcsProcs: "", + cstrnCst: 0, + fcltSbsdCstrnCst: 0, + prcsFcltCpctCstrnCst: 0, + }, + demandMatching: undefined, + demandCo: undefined, +}; export default function CoMatRvw() { const readOnlyInputClass = "bg-slate-50 text-gray-700"; @@ -75,6 +120,8 @@ export default function CoMatRvw() { const [toDate, setToDate] = useState( String(new Date().getFullYear()) ); + const [selectedRowIndex, setSelectedRowIndex] = useState(-1); + const [resetSelection, setResetSelection] = useState(false); const [selectData, setSelectData] = useState(null); // selectData를 null로 초기화 const [selectionVersion, setSelectionVersion] = useState(0); const bottomRef = useRef(null); @@ -100,14 +147,14 @@ export default function CoMatRvw() { if (dmdCoNm.length > 0) { coMatRvwSearch( pageNo, - 13, + DEFAULT_LIST_SIZE, String(startYear), String(endYear), sggCd, dmdCoNm ); } else { - coMatRvwInqua(pageNo, 13, String(startYear), String(endYear), sggCd); + coMatRvwInqua(pageNo, DEFAULT_LIST_SIZE, String(startYear), String(endYear), sggCd); } }; @@ -119,11 +166,22 @@ export default function CoMatRvw() { const TableCellClick = (index: number) => { if (coMatRvwRes && coMatRvwRes[index]) { + setSelectedRowIndex(index); + setResetSelection(false); setSelectData(coMatRvwRes[index]); setSelectionVersion((v) => v + 1); // 행을 클릭할 때마다 버전을 1씩 증가 bottomRef.current?.scrollIntoView({ behavior: "smooth" }); // 화면 스크롤 처리 } }; + + const resetDetailSections = () => { + setSelectedRowIndex(-1); + setResetSelection(true); + setSelectData(null); + form.reset(EMPTY_DETAIL_FORM); + setSelectionVersion((v) => v + 1); + }; + const useUsgCdWatch = useWatch({ control: form.control, name: "useUsgCd" }); const useUsgCdText = code.sewageOutFclttUse?.find((item) => item.val === useUsgCdWatch)?.text ?? @@ -166,6 +224,9 @@ export default function CoMatRvw() { }; }); setDmdMtaData(tableData(data, { code })); + } else { + setDmdMtaData([]); + setSelectData(null); } }, [coMatRvwRes]); @@ -185,7 +246,7 @@ export default function CoMatRvw() { useEffect(() => { if (!initRef.current) { - coMatRvwInit(1, 13, fromDate, toDate); + coMatRvwInit(1, DEFAULT_LIST_SIZE, fromDate, toDate); //setMounted(true); initRef.current = true; } @@ -295,6 +356,7 @@ export default function CoMatRvw() { ); } else { const con = getCurrentRegionCode(); + resetDetailSections(); //setPageNatiion(1); getSearch(1, fromNum, toNum, con, dmdCoNm); } @@ -321,8 +383,10 @@ export default function CoMatRvw() { tableData={dmdMatData || []} headlist={coRvwHeadList} widthFixed={true} - pageSize={13} + pageSize={DEFAULT_LIST_SIZE} total={coMatRvwCount} + resetSelection={resetSelection} + index={selectedRowIndex} cellClick={(index: number | undefined) => { if (index !== undefined && index >= 0) { TableCellClick(index); @@ -330,6 +394,7 @@ export default function CoMatRvw() { }} onPageChange={(val) => { const con = getCurrentRegionCode(); + resetDetailSections(); //setPageNatiion(val); getSearch(val, Number(fromDate), Number(toDate), con, dmdCoNm); }} @@ -377,12 +442,11 @@ export default function CoMatRvw() { { field.onChange(Number(e.target.value)); }} - value={field.value ?? 0} + value={formatNumberWithComma(field.value)} readOnly className={readOnlyInputClass} /> @@ -416,15 +480,14 @@ export default function CoMatRvw() { control={form.control} name="wntUntprc" render={({ field }) => ( - + { field.onChange(Number(e.target.value)); }} - value={field.value ?? 0} + value={formatNumberWithComma(field.value)} readOnly className={readOnlyInputClass} /> @@ -448,9 +511,13 @@ export default function CoMatRvw() { className={`w-full pr-16 border py-2 text-right rounded-md ${readOnlyInputClass}`} placeholder="" value={ - field.value != -1 ||field.value != undefined - ? `${field.value}` - : "불검출" + field.value === null || + field.value === undefined || + field.value === "" + ? "" + : field.value === -1 + ? "불검출" + : formatNumberWithComma(field.value) } readOnly /> @@ -480,7 +547,7 @@ export default function CoMatRvw() { type="text" className={`w-full pr-16 border py-2 text-right rounded-md ${readOnlyInputClass}`} placeholder="" - value={field.value ?? ""} + value={formatNumberWithComma(field.value)} readOnly /> @@ -504,7 +571,7 @@ export default function CoMatRvw() { placeholder="" className={`w-full pr-16 border py-2 text-right rounded-md ${readOnlyInputClass}`} type="text" - value={field.value ?? 0} + value={formatNumberWithComma(field.value)} readOnly /> @@ -532,7 +599,7 @@ export default function CoMatRvw() { onChange={(e) => { field.onChange(Number(e.target.value)); }} - value={field.value ?? ""} + value={formatNumberWithComma(field.value)} readOnly /> @@ -574,7 +641,7 @@ export default function CoMatRvw() { className={`w-full pr-16 border py-2 text-right rounded-md ${readOnlyInputClass}`} type="text" step="0.1" - value={field.value ?? ""} + value={formatNumberWithComma(field.value)} readOnly /> @@ -601,7 +668,7 @@ export default function CoMatRvw() { onChange={(e) => { field.onChange(Number(e.target.value)); }} - value={field.value ?? 0} + value={formatNumberWithComma(field.value)} readOnly /> @@ -628,7 +695,7 @@ export default function CoMatRvw() { onChange={(e) => { field.onChange(Number(e.target.value)); }} - value={field.value ?? 0} + value={formatNumberWithComma(field.value)} readOnly /> @@ -655,7 +722,7 @@ export default function CoMatRvw() { onChange={(e) => { field.onChange(Number(e.target.value)); }} - value={field.value ?? 0} + value={formatNumberWithComma(field.value)} readOnly />
@@ -679,7 +746,7 @@ export default function CoMatRvw() { onChange={(e) => { field.onChange(Number(e.target.value)); }} - value={field.value ?? 0} + value={formatNumberWithComma(field.value)} readOnly /> @@ -701,12 +768,12 @@ export default function CoMatRvw() {
{ field.onChange(Number(e.target.value)); }} - value={field.value ?? 0} + value={formatNumberWithComma(field.value)} readOnly /> diff --git a/apps/wr/app/store/matDmd/coMatRvw/index.tsx b/apps/wr/app/store/matDmd/coMatRvw/index.tsx index b347a1df8..afeb36fc1 100644 --- a/apps/wr/app/store/matDmd/coMatRvw/index.tsx +++ b/apps/wr/app/store/matDmd/coMatRvw/index.tsx @@ -1,4 +1,5 @@ import { fetchType, getFetchWithCount, putFectch } from "@/components/lib/api"; +import { DEFAULT_LIST_SIZE } from "@/src/shared/config"; import type { CommonTableProps } from "../../common/type/header"; import { constCostHeadListExport, @@ -12,6 +13,7 @@ const coRvwHeadList = coRvwHeadListExport; const coRvwNodeList = coRvwNodeListExport; const rateFeeHeadList = rateFeeHeadListExport; const constCostHeadList = constCostHeadListExport; + export type coRvwState = { coRvw: { isInit: boolean; @@ -118,7 +120,7 @@ export const coRvwActionsExport: (set: any) => coRvwActions = (set: any) => { const coMatRvwRes = await coMatInit( 1, - 10, + DEFAULT_LIST_SIZE, new Date().getFullYear().toString(), new Date().getFullYear().toString() ); diff --git a/apps/wr/app/store/matDmd/coMatRvw/type.tsx b/apps/wr/app/store/matDmd/coMatRvw/type.tsx index 388c24f45..ba618aecd 100644 --- a/apps/wr/app/store/matDmd/coMatRvw/type.tsx +++ b/apps/wr/app/store/matDmd/coMatRvw/type.tsx @@ -75,7 +75,7 @@ export const DmdCoReqSchema = z.object({ dmndTmng: z.coerce.date().nullish(), // 요구시기 dmndQty: z.number().nullish(), // 요구수량(m³/일) blgcOxygDmndQnt: z.number().nullish(), // 생물학적 산소요구량(BOD)(mg/L) - wntUntprc: z.number().nullish(), // 희망단가(원/m3) + wntUntprc: z.number().nullish(), // 희망단가(원/m³) grssClfg: z.number().nullish(), // 총대장균군수(개/100mL) combResdch: z.number().nullish(), // 결합잔류염소(mg/L) trbt: z.number().nullish(), // 탁도(NTU) diff --git a/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx b/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx index 09ed01987..2b567979c 100644 --- a/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx +++ b/apps/wr/components/ui/form/coMat/conCostForm/conCostForm.tsx @@ -28,6 +28,19 @@ import PopoverUi from "@common/business_components/ui/popover_ui"; import { Button, Checkbox, Input, Label } from "@common/components/ui"; import { useCallback, useEffect, useRef, useState } from "react"; import { useForm, type UseFormReturn } from "react-hook-form"; + +const formatNumberWithComma = (value: string | number | null | undefined) => { + if (value === null || value === undefined || value === "") return ""; + + const normalized = + typeof value === "string" ? Number(value.replace(/,/g, "")) : Number(value); + + if (Number.isNaN(normalized)) { + return String(value); + } + + return normalized.toLocaleString("ko-KR"); +}; /** * ConCostForm * 호출: (with-layout)/matMng/coMat/coMatRvw @@ -456,12 +469,16 @@ export default function ConCostForm({ { field.onChange(Number(e.target.value)); }} - value={field.value ?? 0} + value={ + isSim + ? field.value ?? 0 + : formatNumberWithComma(field.value) + } readOnly={!isSim} className={!isSim ? readOnlyInputClass : ""} /> @@ -524,14 +541,13 @@ export default function ConCostForm({ { console.log("dmndQty ", e); //field.onChange(Number(e.target.value) * 365 ); }} // value={Number(field.value) * 365 || 0} - value={Number(field.value) || 0} + value={formatNumberWithComma(Number(field.value) || 0)} readOnly className={readOnlyInputClass} /> From 98189cd14a07becfdac1b201a85f890ce053b11f Mon Sep 17 00:00:00 2001 From: ljpark Date: Wed, 17 Jun 2026 17:25:18 +0900 Subject: [PATCH 10/12] =?UTF-8?q?dm:=20=EC=B4=9D=EB=8C=80=EC=9E=A5?= =?UTF-8?q?=EA=B7=A0=EA=B5=B0=EC=88=98=20=EB=8B=A8=EC=9C=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../(landing)/reuse/apply/register/page.tsx | 2 +- .../app/(landing)/reuse/apply/status/page.tsx | 2 +- .../app/(with-layout)/apply/dmdinfo/page.tsx | 61 ++++++++++++------- .../app/(with-layout)/apply/status/page.tsx | 2 +- .../ui/sdmInfoInsertForm/component.tsx | 2 +- .../matMng/coMat/coMatRvw/page.tsx | 2 +- apps/wr/app/store/matDmd/coMatRvw/type.tsx | 2 +- .../chkgdnReg/rainChkgdn/headList.tsx | 2 +- .../chkgdnReg/rswrtChkgdn/headList.tsx | 2 +- .../chkgdnSttn/rainChkgdnSttn/headList.tsx | 2 +- .../chkgdnSttn/rswtChkgdnSttn/headList.tsx | 2 +- .../ruseFcltMng/fcltReg/pbnstReg/headList.tsx | 2 +- .../fcltSttn/pbnstSttn/headList.tsx | 2 +- .../buseWaterQulity/buseWaterQulity.tsx | 2 +- 14 files changed, 51 insertions(+), 36 deletions(-) diff --git a/apps/dm/app/(landing)/reuse/apply/register/page.tsx b/apps/dm/app/(landing)/reuse/apply/register/page.tsx index 1f376c296..21a5a027f 100644 --- a/apps/dm/app/(landing)/reuse/apply/register/page.tsx +++ b/apps/dm/app/(landing)/reuse/apply/register/page.tsx @@ -464,7 +464,7 @@ export default function DemandRegisterPage() {
diff --git a/apps/dm/app/(landing)/reuse/apply/status/page.tsx b/apps/dm/app/(landing)/reuse/apply/status/page.tsx index 2bc608ff5..2e95c780b 100644 --- a/apps/dm/app/(landing)/reuse/apply/status/page.tsx +++ b/apps/dm/app/(landing)/reuse/apply/status/page.tsx @@ -157,7 +157,7 @@ export default function DemandStatusPage() { if (!selected) return []; const w = selected.detail.water; return [ - { label: "총대장균군수(개/100mL)", value: w.coliform }, + { label: "총대장균군수(개/100㎖)", value: w.coliform }, { label: "결합잔류염소(mg/L)", value: "-" }, { label: "탁도(NTU)", value: w.turbidity }, diff --git a/apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx b/apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx index 25b51a13a..43e89cc30 100644 --- a/apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx +++ b/apps/dm/app/(with-layout)/apply/dmdinfo/page.tsx @@ -44,17 +44,17 @@ export default function DemandRegisterPage() { const [coliform, setColiform] = useState(""); // 총대장균군수 const [noDetect, setNoDetect] = useState(false); - const [tn, setTn] = useState(""); - const [residualCl, setResidualCl] = useState(""); - const [tp, setTp] = useState(""); - const [turbidity, setTurbidity] = useState(""); - const [ph, setPh] = useState({ min: "", max: "" }); - const [bod, setBod] = useState(""); - const [chloride, setChloride] = useState(""); - const [odor, setOdor] = useState("불쾌하지 않을 것"); - const [ec, setEc] = useState(""); - const [color, setColor] = useState(""); - const [remark, setRemark] = useState(""); + const [tn, setTn] = useState(""); // 총질소(T-N) + const [residualCl, setResidualCl] = useState(""); // 결합잔류염소 + const [tp, setTp] = useState(""); // 총인(T-P) + const [turbidity, setTurbidity] = useState(""); // 탁도 + const [ph, setPh] = useState({ min: "", max: "" }); // 수소이온농도(pH) + const [bod, setBod] = useState(""); // 생물학적산소요구량(BOD) + const [chloride, setChloride] = useState(""); // 염화물 + const [odor, setOdor] = useState("불쾌하지 않을 것"); // 냄새 + const [ec, setEc] = useState(""); // 전기전도도 + const [color, setColor] = useState(""); // 색도 + const [remark, setRemark] = useState(""); // 비고 // 공급처 후보지 선택(필수아님) const [cand1, setCand1] = useState(""); @@ -373,7 +373,8 @@ export default function DemandRegisterPage() { switch (value) { // 청소화장실용도 case '01': - setTp('0.2'); + setNoDetect(true); // 총대장균군수 불검출 + setResidualCl('0.2'); // 잔류염소 setTurbidity('2'); setPh({ min: '5.8', max: '8.5' }); setBod('5'); @@ -381,23 +382,35 @@ export default function DemandRegisterPage() { break; // 세척살수용도 case '02': - setTp('0.2'); - setTurbidity('2'); + setColiform('1000'); + setTurbidity('2'); // 탁도 setPh({ min: '5.8', max: '8.5' }); setBod('5'); break; // 조경용도 case '03': - setTp('0.2'); + setColiform('1000'); setTurbidity('2'); setPh({ min: '5.8', max: '8.5' }); setBod('5'); - setChloride('250'); + setChloride('250'); // 염화물 break; - // 지하수 + // 친수용도 + case '04': + setNoDetect(true); // 총대장균군수 불검출 + setResidualCl('0.1'); // 잔류염소 + setTurbidity('2'); + setBod('3'); + setColor('10'); + setTn('10'); // 총질소 + setTp('0.5'); // 총인 + setPh({ min: '5.8', max: '8.5' }); + setChloride('0.5'); + break; + // 지하수충전 case '05': break; - // 농업용도 + // 농업용수 case '06': setTurbidity('5'); setPh({ min: '5.8', max: '8.5' }); @@ -405,16 +418,18 @@ export default function DemandRegisterPage() { setEc('2000'); setFarmText("이하 (** 간접:2000,직접:700 )"); break; - // 하천 등 유지보수 + // 하천 등 유지용수 case '07': setColiform('1000'); - setTn('10'); + setBod('5'); + setTn('20'); setTp('0.5'); setPh({ min: '5.8', max: '8.5' }); - setBod('5'); + setChloride('0.5'); break; - // 공업 + // 공업용수 case '08': + setBod('20'); setPh({ min: '5.8', max: '8.5' }); break; default: @@ -519,7 +534,7 @@ export default function DemandRegisterPage() {
{/* 1행 */} diff --git a/apps/dm/app/(with-layout)/apply/status/page.tsx b/apps/dm/app/(with-layout)/apply/status/page.tsx index 97fe96ead..40241ee4f 100644 --- a/apps/dm/app/(with-layout)/apply/status/page.tsx +++ b/apps/dm/app/(with-layout)/apply/status/page.tsx @@ -257,7 +257,7 @@ export default function DemandStatusPage() { if (!selectedSdmInfoStatus) return []; return [ - { label: "총대장균군수(개/100mL)", key: "grssClfg", value: formatBelow(selectedSdmInfoStatus.grssClfg) }, + { label: "총대장균군수(개/100㎖)", key: "grssClfg", value: formatBelow(selectedSdmInfoStatus.grssClfg) }, { label: "결합잔류염소(mg/L)", key:"combResdch", value: formatBelow(selectedSdmInfoStatus.combResdch) }, { label: "탁도(NTU)", key:"trbt", value: formatBelow(selectedSdmInfoStatus.trbt) }, diff --git a/apps/dm/components/ui/sdmInfoInsertForm/component.tsx b/apps/dm/components/ui/sdmInfoInsertForm/component.tsx index ac94e4a02..e66807743 100644 --- a/apps/dm/components/ui/sdmInfoInsertForm/component.tsx +++ b/apps/dm/components/ui/sdmInfoInsertForm/component.tsx @@ -411,7 +411,7 @@ // return ( // //
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 0cae843bb..f038962da 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx @@ -503,7 +503,7 @@ export default function CoMatRvw() { control={form.control} name="grssClfg" render={({ field }) => ( - +
( - +
Date: Thu, 18 Jun 2026 10:27:00 +0900 Subject: [PATCH 11/12] =?UTF-8?q?wr:=20=EC=88=98=EC=9A=94=EC=B2=98=20?= =?UTF-8?q?=EB=A7=A4=EC=B9=AD=20=EA=B2=80=ED=86=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx | 3 +-- .../app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 2 +- 2 files changed, 2 insertions(+), 3 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 f038962da..4996b1cd9 100644 --- a/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx +++ b/apps/wr/app/(with-layout)/matMng/coMat/coMatRvw/page.tsx @@ -512,8 +512,7 @@ export default function CoMatRvw() { placeholder="" value={ field.value === null || - field.value === undefined || - field.value === "" + field.value === undefined ? "" : field.value === -1 ? "불검출" 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 4b635016e..50148809a 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -63,7 +63,7 @@ export default function PbnstSttn() { const [pbnRuseNm, setPbnRuseNm] = useState(""); const { t } = useTranslation("base"); const alert = useAlertStore((state) => state.setMessage); - const isAllAreaUser = laeSeCd === "0"; // 모든 지자체 권한이 있는 경우 + const isAllAreaUser = laeSeCd?.length != 5; // 모든 지자체 권한이 있는 경우 const fixedSidoValue = !isAllAreaUser && laeSeCd?.length ? laeSeCd.slice(0, 2) : ""; const fixedSigunValue = From 9c76b955e23d44498b03fa47844cb3478a4fd213 Mon Sep 17 00:00:00 2001 From: ljpark Date: Thu, 18 Jun 2026 10:35:10 +0900 Subject: [PATCH 12/12] =?UTF-8?q?wr:=20=EC=98=A4=EB=A5=98=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 50148809a..d9ca92126 100644 --- a/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx +++ b/apps/wr/app/(with-layout)/ruseFcltMng/fcltSttn/pbnstSttn/page.tsx @@ -210,11 +210,9 @@ export default function PbnstSttn() { : code.cityCd } selectSigunData={ - !isAllAreaUser && laeSeCd?.length === 5 + laeSeCd?.length === 5 ? code.sggCd.filter((item) => item.val === laeSeCd) - : !isAllAreaUser && laeSeCd?.length === 2 - ? code.sggCd.filter((item) => item.val.slice(0, 2) === laeSeCd) - : code.sggCd + : code.sggCd } selectRegionData={code.rvbsnCd} selectUnitWaterShedData={code.lgbsnCd}