From af3c78ad1d6d7e6162c41022a6554787dde430e7 Mon Sep 17 00:00:00 2001 From: yschoi Date: Thu, 3 Jul 2025 11:45:31 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EB=A9=94=EC=9D=B8=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=EB=A6=AC=EB=8B=A4=EC=9D=B4=EB=A0=89=ED=8A=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/sn/.env.local | 1 + apps/sn/app/page.tsx | 87 ++++++++++++++++++++++---------------------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/apps/sn/.env.local b/apps/sn/.env.local index fb952385e..26a9a0490 100644 --- a/apps/sn/.env.local +++ b/apps/sn/.env.local @@ -1,6 +1,7 @@ NEXT_PUBLIC_SITE_ID = SN NEXT_PUBLIC_PORT = 3002 NEXT_PUBLIC_PROXY_HOST = http://localhost:3002 +#NEXT_PUBLIC_PROXY_HOST = http://sn.hasu.or.kr:3002 NEXT_PUBLIC_SERVER_API_URL = http://dev.onasys.co.kr:8000 NEXT_PUBLIC_GEOSERVER_URL = http://rsone.iptime.org:10010/geoserver NEXT_PUBLIC_LX_GEOSERVER_URL = http://con.mind-one.co.kr:11306/geoserver #TODO 운영에서 바꿔야 함 diff --git a/apps/sn/app/page.tsx b/apps/sn/app/page.tsx index 21d1c7b3f..d19bd5e79 100644 --- a/apps/sn/app/page.tsx +++ b/apps/sn/app/page.tsx @@ -1,51 +1,50 @@ -"use client"; import { Button } from "@common/components"; import Link from "next/link"; import { redirect } from "next/navigation"; export default function Home() { - //redirect("/map"); + redirect("/map"); - return ( -
-
-

하수관망도

-
- - - -
-
-
-

운영정보 관리

-
- - - - - - -
-
-
-

- I/I 분석(기초정보 설정) -

-
- - - - - - - - - - - - -
-
-
- ); + // return ( + //
+ //
+ //

하수관망도

+ //
+ // + // + // + //
+ //
+ //
+ //

운영정보 관리

+ //
+ // + // + // + // + // + // + //
+ //
+ //
+ //

+ // I/I 분석(기초정보 설정) + //

+ //
+ // + // + // + // + // + // + // + // + // + // + // + // + //
+ //
+ //
+ // ); } From d56d4fc00dd50411570cc9d5bfd1dc6a675eb840 Mon Sep 17 00:00:00 2001 From: ljpark Date: Thu, 3 Jul 2025 17:33:37 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EA=B7=B8=EB=9E=98=ED=94=84=20POPUP?= =?UTF-8?q?=EC=A0=9C=EB=AA=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../popupComponent/chart/aplcnYms.ts | 26 +++--- .../popupComponent/chart/infilChart.tsx | 53 +++++++---- .../popupComponent/chart/rdiiChart.tsx | 89 ++++++++++++------- apps/sn/package.json | 1 + pnpm-lock.yaml | 15 ++-- 5 files changed, 114 insertions(+), 70 deletions(-) diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/aplcnYms.ts b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/aplcnYms.ts index e8240aa5b..7f4acf616 100644 --- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/aplcnYms.ts +++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/aplcnYms.ts @@ -1,5 +1,7 @@ import {useState, useEffect} from 'react'; import { getData } from '@/components/lib/api'; +import moment from "moment"; + export type TInftwtAnls = { inftwtAnlsSn:number; aplcnYm: string; @@ -122,7 +124,7 @@ export const selectInftwtAnls = async(aplcnYm:String) => { // 침입수분석 }; export const getChartDataInftwtAnlsRslt = (arr: TInftwtAnlsRslt[]): { label: string; val: number }[] => { const options = arr.map(anlsRslt => ({ - label: anlsRslt.anlsTm.substring(4), + label: moment(anlsRslt.anlsTm, "YYYYMMDDHHmmss").format("DD HH:mm"), val: anlsRslt.predcOilq, })); return options; @@ -170,11 +172,13 @@ export const selectPplInftwtQty = async(inftwtAnlsSn:number, pplMngNo:string) => console.warn("inftwtAnlsSn or pplMngNo is not provided"); return []; } - const result = await getData(`v1/inftwtAnlsRslt/pplinftwtQty/${inftwtAnlsSn}/${pplMngNo}`); - if (result && result.numberOfElements > 0) { - console.log("selectPplInftwtQty", result.content); - return result.content; - } + const result = await getData(`v1/inftwtAnlsRslt/pplInftwtQty/${inftwtAnlsSn}/${pplMngNo}`); + if (result.length > 0) { + console.log("selectPplInftwtQty", result); + return result[0].avg_day_flow; + } else { + return 0; // 데이터가 없을 경우 0 반환 + } } catch (error) { console.error(error); } @@ -187,9 +191,9 @@ export const selectPplRdiiQty = async(rainInfwtAnlsSn:number, pplMngNo:string) = return []; } const result = await getData(`v1/rdiiAnlsRslt/pplRdiiQty/${rainInfwtAnlsSn}/${pplMngNo}`); - if (result && result.numberOfElements > 0) { - console.log("selectPplInftwtQty", result.content); - return result.content; + if (result?.sustaintime > 0) { + console.log("selectPplRdiiQty", result); + return result; } } catch (error) { console.error(error); @@ -219,14 +223,14 @@ export const selectRdiiAnls = async(aplcnYm:String) => { // 침입수분석 }; export const getChartDataRdiiAnlsRslt = (arr: TRdiiAnlsRslt[]): { label: string; val: number }[] => { const options = arr.map(anlsRslt => ({ - label: anlsRslt.anlsTm.substring(4), + label: moment(anlsRslt.anlsTm, "YYYYMMDDHHmmss").format("DD HH:mm"), val: anlsRslt.predcOilq, })); return options; }; export const getChartDataRdiiAnlsRsltMinq = (arr: TRdiiAnlsRslt[]): { label: string; val: number }[] => { const options = arr.map(anlsRslt => ({ - label: anlsRslt.anlsTm.substring(4), + label: moment(anlsRslt.anlsTm, "YYYYMMDDHHmmss").format("DD HH:mm"), val: anlsRslt.minq, })); return options; diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx index 97b0309e2..987728fe2 100644 --- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx +++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx @@ -3,6 +3,7 @@ import { CHART_FORM, type ChartConfig, MainChart, UiModal } from "@common/busine import { SelectBox } from '@common/business_components/ui'; import { Button, Input, Label } from '@common/components'; import React, { useEffect, useState } from 'react'; +import moment from "moment"; import type { TInftwtAnls, TOilqData } from './aplcnYms'; import * as fn from './aplcnYms'; @@ -16,7 +17,7 @@ type ModalOpenProp = { type DataType = {label: string; val: number}; const InfilChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo }: ModalOpenProp) => { - const [popupOpen, setPopupOpen] = React.useState(true); + const [popupOpen, setPopupOpen] = React.useState(false); // 조회조건팝업 const buttonRef = React.useRef(null); // 버튼 참조 const [popupPosition, setPopupPosition] = useState<{ top: number; left: number }>({ top: 0, left: 0 }); // 팝업 위치 const [aplcnYm, setAplcnYm] = useState("0"); @@ -25,10 +26,9 @@ const InfilChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo const [inftwtAnls, setInftwtAnls] = useState(null); // 침입수분석정보 const [inftwtAnlsSn, setInftwtAnlsSn] = useState(0); // 침입수분석 정보 선택시 사용 const [chartData, setChartData] = useState<{ chartData1: DataType[]; chartData2: DataType[] }>({ - chartData1: [], chartData2: [{ label: "1", val: 15 }, - { label: "2", val: 35 }, - { label: "3", val: 55 },], + chartData1: [], chartData2: [], }); + const [inftwtQty, setInftwtQty] = useState(0); // 침입수량 const aplcnYms = fn.useAplcnYms('inftwtAnlsRslt'); // 상수사용월 데이터 가져오기 pplMngNo = "L"+pplMngNo; // "L13101003"; console.log("pplMngNo", pplMngNo); @@ -51,15 +51,14 @@ const InfilChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo useEffect(() => { if (isModalOpen === false) { - setPopupOpen(true); // 모달이 닫힐 때 조회조건팝업은 열어두기 + setPopupOpen(false); // 모달이 닫힐 때 조회조건팝업은 열어두기 setAplcnYm(""); // 상수사용월 초기화 setInftwtAnlss([]); // 침입수분석 초기화 setInftwtAnlsInfos([{ val: 0, text: '선택' }]); // 침입수분석정보 초기화 setInftwtAnls(null); // 침입수분석정보 초기화 setInftwtAnlsSn(0); // 침입수분석 일련번호 초기화 - setChartData({chartData1: [], chartData2: [{ label: "1", val: 15 }, - { label: "2", val: 35 }, - { label: "3", val: 55 },],}); // 차트 데이터 초기화 + setChartData({chartData1: [], chartData2: [],}); // 차트 데이터 초기화 + setInftwtQty(0); // 침입수량 초기화 } }, [isModalOpen]); @@ -119,31 +118,45 @@ const InfilChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo chartData2: [] // 유량 데이터 초기화 })); }); + fn.selectPplInftwtQty(inftwtAnlsSn, pplMngNo).then((data) => {// 침입수량 조회 + if (data > 0) { + setInftwtQty(data); + } + }); setPopupOpen(false); }; const renderBody = () => ( <> - {/* */} - {/* 분석 입력현황 조회 */} +
침입수분석결과
+
- - {/* 침입수량 분석결과 */} -
- 침입수량 분석결과 + {/* 상수사용량 적용연월 */} +
+ 상수사용량 적용연월
- 120 - m³/d + + {(aplcnYm!=="0") && moment(aplcnYm, "YYYYMM").format("YYYY-MM")} + +
+
+ {/* 침입수량 분석결과 */} +
+ 침입수량 분석결과 +
+ {inftwtQty} + m³/d
{/* 차트 */} -
- +
+
{popupOpen && ( @@ -243,15 +256,17 @@ const InfilChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo ) } diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx index 750a91dd6..79fc4ad1d 100644 --- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx +++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx @@ -3,20 +3,21 @@ import { CHART_FORM, type ChartConfig, MainChart, UiModal } from "@common/busine import { SelectBox } from '@common/business_components/ui'; import { Button, Input, Label } from '@common/components'; import React, { useEffect, useState } from 'react'; +import moment from "moment"; import type { TRdiiAnls, TRdiiAnlsRslt, TOilqData } from './aplcnYms'; -import { selectRdiiAnlsRslt, getChartDataRdiiAnlsRslt, getChartDataRdiiAnlsRsltMinq } from './aplcnYms'; -import { getOptionsRdiiAnlsInfo, selectRdiiAnls, useAplcnYms } from './aplcnYms'; +import * as fn from './aplcnYms'; type ModalOpenProp = { isModalOpen: boolean, setIsModalOpen: (open: boolean) => void, closeModal: () => void, btnTxt?: string, - pplMngNo?: string, // 관로관리번호 + pplMngNo: string, // 관로관리번호 } type DataType = {label: string; val: number}; + const RdiiChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo }: ModalOpenProp) => { - const [popupOpen, setPopupOpen] = React.useState(true); + const [popupOpen, setPopupOpen] = React.useState(false); // 조회조건팝업 const buttonRef = React.useRef(null); // 버튼 참조 const [popupPosition, setPopupPosition] = useState<{ top: number; left: number }>({ top: 0, left: 0 }); // 팝업 위치 const [aplcnYm, setAplcnYm] = useState(""); @@ -24,11 +25,12 @@ const RdiiChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo } const [rdiiAnlsInfos, setRdiiAnlsInfos] = useState([{ val: 0, text: '선택' }]); // 강우유입수분석정보 options const [rdiiAnls, setRdiiAnls] = useState(null); // 강우유입수분석정보 const [rainInfwtAnlsSn, setRainInfwtAnlsSn] = useState(0); // 강우유입수분석 정보 선택시 사용 - const [chartData, setChartData] = useState<{ chartData1: DataType[]; chartData2: DataType[] }>({ - chartData1: [], chartData2: [], + const [chartData, setChartData] = useState<{ chartData1: DataType[]; }>({ + chartData1: [], //chartData2: [], }); - - const aplcnYms = useAplcnYms('rdiiAnlsRslt'); // 상수사용월 데이터 가져오기 + const [rdiiQty, setRdiiQty] = useState(0); // 강우유입수량 + const [totalVolume, setTotalVolume] = useState(0); // 총체적 m³/mm + const aplcnYms = fn.useAplcnYms('rdiiAnlsRslt'); // 상수사용월 데이터 가져오기 pplMngNo = "L"+pplMngNo; // "L13101003"; console.log("pplMngNo", pplMngNo); const openPopup = () => { @@ -41,23 +43,24 @@ const RdiiChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo } } setPopupOpen(true); // 팝업 열기 }; - //console.log("btnTxt", btnTxt); const chartForm = CHART_FORM.LINE; const chartConfig = { - chartData1: { label: 'BSF', color: "orange", }, - chartData2: { label: '강우유입수예측유량', color: "red", }, + chartData1: { label: 'RDII(m³/h)', color: "red", }, + //chartData2: { label: '순오수량(m³/h)', color: "orange", }, } as ChartConfig; useEffect(() => { if (isModalOpen === false) { - setPopupOpen(true); // 모달이 닫힐 때 팝업은 + setPopupOpen(false); // 모달이 닫힐 때 팝업은 setAplcnYm(""); // 상수사용월 초기화 setRdiiAnlss([]); // 강우유입수분석 초기화 setRdiiAnlsInfos([{ val: 0, text: '선택' }]); // 강우유입수분석정보 초기화 setRdiiAnls(null); // 강우유입수분석정보 초기화 setRainInfwtAnlsSn(0); // 강우유입수분석 일련번호 초기화 - setChartData({chartData1: [], chartData2: []}); // 차트 데이터 초기화 + setChartData({chartData1: [], }); // 차트 데이터 초기화 + setRdiiQty(0); // 강우유입수량 초기화 + setTotalVolume(0); // 총체적 m³/mm 초기화 } }, [isModalOpen]); @@ -69,11 +72,11 @@ const RdiiChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo } setRdiiAnlsInfos([]); return; } - - selectRdiiAnls(aplcnYm) + console.log(moment(aplcnYm).format("YYYY-MM")); + fn.selectRdiiAnls(aplcnYm) .then((data) => { - setRdiiAnlss(data ?? []); - setRdiiAnlsInfos(getOptionsRdiiAnlsInfo(data)); + setRdiiAnlss(data ?? []); // 선택한 월의 분석성공한 RDII분석데이터[] + setRdiiAnlsInfos(fn.getOptionsRdiiAnlsInfo(data)); setRdiiAnls(null); // 오수전환율 이후 초기화 setRainInfwtAnlsSn(0); // 초기화 }) @@ -95,41 +98,57 @@ const RdiiChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo } }, [rainInfwtAnlsSn]); const closePopup = () => { // 팝업 닫기 - selectRdiiAnlsRslt(rainInfwtAnlsSn, pplMngNo).then((data) => {// 강우유입수분석 결과 조회 - const rsltData1 = getChartDataRdiiAnlsRsltMinq(data ?? []); - const rsltData2 = getChartDataRdiiAnlsRslt(data ?? []); + fn.selectRdiiAnlsRslt(rainInfwtAnlsSn, pplMngNo).then((data) => {// 강우유입수분석 결과 조회 + const rsltData1 = fn.getChartDataRdiiAnlsRslt(data ?? []); + //const rsltData2 = fn.getChartDataRdiiAnlsRsltMinq(data ?? []); setChartData(prev => ({ - chartData1: rsltData1, // BSF - chartData2: rsltData2 // 강우유입수분석결과 + chartData1: rsltData1, // 순오수량(m³/h) + // chartData2: rsltData2 // RDII(m³/h) 강우유입수분석결과 })); }); - + fn.selectPplRdiiQty(rainInfwtAnlsSn, pplMngNo).then((data) => {// 강우유입수량 조회 + setRdiiQty(Math.round(data.rdiih*24)); // cmd: m³/d 단위로 변환 + setTotalVolume(Math.round(data.rdiih * data.sustaintime)); // 총체적 m³/mm + }); setPopupOpen(false); }; - - const renderBody = () => ( <> - {/* 분석 입력현황 조회 */} +
RDII분석결과
+
- - {/* 강우유입수량 분석결과 */} -
- 강우유입수량 분석결과 + {/* 상수사용량 적용연월 */} +
+ 상수사용량 적용연월
- 120 + + {(aplcnYm!=="0") && moment(aplcnYm, "YYYYMM").format("YYYY-MM")} + +
+
+ + {/* 강우유입수량 분석결과 */} +
+ 강우유입수량 분석결과 +
+ {rdiiQty} m³/d
+
+ {totalVolume} + m³/mm +
{/* 차트 */} -
- +
+
{popupOpen && ( @@ -229,15 +248,17 @@ const RdiiChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo } ) } diff --git a/apps/sn/package.json b/apps/sn/package.json index fb8707352..95ec8f3e9 100644 --- a/apps/sn/package.json +++ b/apps/sn/package.json @@ -24,6 +24,7 @@ "chart.js": "^4.4.8", "dayjs": "^1.11.13", "js-cookie": "^3.0.5", + "moment": "^2.30.1", "next": "15.1.7", "react-chartjs-2": "^5.3.0", "react-dnd": "^16.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d9c68525b..ab4cf5db0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -347,6 +347,9 @@ importers: js-cookie: specifier: ^3.0.5 version: 3.0.5 + moment: + specifier: ^2.30.1 + version: 2.30.1 next: specifier: 15.1.7 version: 15.1.7(react-dom@18.3.1)(react@18.3.1) @@ -2401,7 +2404,7 @@ packages: magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.6.3) typescript: 5.6.3 - vite: 6.2.0(@types/node@22.13.9) + vite: 6.2.0(@types/node@22.13.5) dev: true /@jridgewell/gen-mapping@0.3.8: @@ -2514,7 +2517,7 @@ packages: dnd-multi-backend: 8.1.2(dnd-core@16.0.1) framer-motion: 11.18.2(react-dom@18.3.1)(react@18.3.1) react: 18.3.1 - react-dnd: 16.0.1(@types/node@22.13.9)(@types/react@18.3.18)(react@18.3.1) + react-dnd: 16.0.1(@types/node@22.13.5)(@types/react@18.3.18)(react@18.3.1) react-dnd-html5-backend: 16.0.1 react-dnd-touch-backend: 16.0.1 react-dom: 18.3.1(react@18.3.1) @@ -3994,7 +3997,7 @@ packages: browser-assert: 1.2.1 storybook: 8.6.0(prettier@3.5.2) ts-dedent: 2.2.0 - vite: 6.2.0(@types/node@22.13.9) + vite: 6.2.0(@types/node@22.13.5) dev: true /@storybook/components@8.6.0(storybook@8.6.0): @@ -4126,7 +4129,7 @@ packages: resolve: 1.22.10 storybook: 8.6.0(prettier@3.5.2) tsconfig-paths: 4.2.0 - vite: 6.2.0(@types/node@22.13.9) + vite: 6.2.0(@types/node@22.13.5) transitivePeerDependencies: - rollup - supports-color @@ -4601,7 +4604,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.0(@types/node@22.13.9) + vite: 6.2.0(@types/node@22.13.5) transitivePeerDependencies: - supports-color dev: true @@ -9787,7 +9790,7 @@ packages: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.5(typescript@5.6.3) - vite: 6.2.0(@types/node@22.13.9) + vite: 6.2.0(@types/node@22.13.5) transitivePeerDependencies: - supports-color - typescript From 498b86ce76cf1556d5a3a2911a40f0d5eb35e052 Mon Sep 17 00:00:00 2001 From: ljpark Date: Thu, 3 Jul 2025 20:23:51 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=A0=81=EC=9A=A9=EC=97=B0=EC=9B=94=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/components/popupComponent/chart/infilChart.tsx | 4 ++-- .../map/components/popupComponent/chart/rdiiChart.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx index 987728fe2..6f98705b1 100644 --- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx +++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/infilChart.tsx @@ -20,7 +20,7 @@ const InfilChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo const [popupOpen, setPopupOpen] = React.useState(false); // 조회조건팝업 const buttonRef = React.useRef(null); // 버튼 참조 const [popupPosition, setPopupPosition] = useState<{ top: number; left: number }>({ top: 0, left: 0 }); // 팝업 위치 - const [aplcnYm, setAplcnYm] = useState("0"); + const [aplcnYm, setAplcnYm] = useState(""); const [inftwtAnlss, setInftwtAnlss] = useState([]); const [inftwtAnlsInfos, setInftwtAnlsInfos] = useState([{ val: 0, text: '선택' }]); // 침입수분석정보 options const [inftwtAnls, setInftwtAnls] = useState(null); // 침입수분석정보 @@ -140,7 +140,7 @@ const InfilChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo 상수사용량 적용연월
- {(aplcnYm!=="0") && moment(aplcnYm, "YYYYMM").format("YYYY-MM")} + {(aplcnYm)? moment(aplcnYm, "YYYYMM").format("YYYY-MM"):""}
diff --git a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx index 79fc4ad1d..96d07233f 100644 --- a/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx +++ b/apps/sn/app/(map-layout)/map/components/popupComponent/chart/rdiiChart.tsx @@ -127,7 +127,7 @@ const RdiiChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal, pplMngNo } 상수사용량 적용연월
- {(aplcnYm!=="0") && moment(aplcnYm, "YYYYMM").format("YYYY-MM")} + {(aplcnYm)? moment(aplcnYm, "YYYYMM").format("YYYY-MM"):""}