From 9cf8a5355c357adb4e3e995d3c1ab0301943fec3 Mon Sep 17 00:00:00 2001 From: JIeunhuh Date: Fri, 16 May 2025 16:32:02 +0900 Subject: [PATCH] =?UTF-8?q?=ED=95=98=EC=88=98=EA=B4=80=EB=A1=9C=20?= =?UTF-8?q?=EC=B0=A8=ED=8A=B8=20/=20=EC=82=AC=EC=9A=A9=EC=9E=90=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=20=EC=A0=95=EB=B3=B4=20api=20=EC=9A=94?= =?UTF-8?q?=EC=B2=AD=20=EC=9E=91=EC=97=85=20=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/sn/app/components/ui/verticalTable.tsx | 4 +- apps/sn/app/map/components/common/index.ts | 2 +- .../components/popupComponent/MsSwagePpl.tsx | 8 ++- .../popupComponent/chart/infilChart.tsx | 72 +++++++++++-------- .../popupComponent/stormWaterPump.tsx | 10 +-- apps/sn/app/map/featureClickEventPopup.tsx | 27 +++++-- 6 files changed, 79 insertions(+), 44 deletions(-) diff --git a/apps/sn/app/components/ui/verticalTable.tsx b/apps/sn/app/components/ui/verticalTable.tsx index 3d6b10d91..ae3068a67 100644 --- a/apps/sn/app/components/ui/verticalTable.tsx +++ b/apps/sn/app/components/ui/verticalTable.tsx @@ -45,7 +45,7 @@ export function VerticalTable({ onPageChange(1); } }, [onPageChange, resetPageNo]); - + useEffect(() => { if (tableData.length > 0 && tableData[0]) { setFormData(tableData[0] as { [key: string]: string | number | boolean }); @@ -85,6 +85,7 @@ export function VerticalTable({ {children && children[head.id] ? children[head.id] : isEditable ? ( head.type === "select" ? ( ) : head.type === "input" ? ( handleInputChange(head.id, e.target.value)} diff --git a/apps/sn/app/map/components/common/index.ts b/apps/sn/app/map/components/common/index.ts index 25ff97e72..5e2826e33 100644 --- a/apps/sn/app/map/components/common/index.ts +++ b/apps/sn/app/map/components/common/index.ts @@ -17,7 +17,7 @@ type LayerContentMap = { const layerContentMap: LayerContentMap = { // TODO: gis데이터 추가되면 추가 작업 필요 "하수처리시설": { - component: SwtrmtFclt, + component: StormWaterPump, }, "하수처리구역": { }, "중점우수토실":{component: Ssc,}, diff --git a/apps/sn/app/map/components/popupComponent/MsSwagePpl.tsx b/apps/sn/app/map/components/popupComponent/MsSwagePpl.tsx index 470ca5920..1db284c8e 100644 --- a/apps/sn/app/map/components/popupComponent/MsSwagePpl.tsx +++ b/apps/sn/app/map/components/popupComponent/MsSwagePpl.tsx @@ -18,7 +18,9 @@ const inputColumn = [ const SwtrmtFclt = ({ featureData }: { featureData: any }) => { console.log("featureData", featureData); const [isModalOpen, setIsModalOpen] = React.useState(false); - const openModal = () => { + const [btnTxt, setBtnTxt] = useState(""); + const openModal = (e: React.MouseEvent) => { + e.currentTarget.textContent && setBtnTxt(e.currentTarget.textContent) setIsModalOpen(true); }; const closeModal = () => { @@ -72,12 +74,12 @@ const SwtrmtFclt = ({ featureData }: { featureData: any }) => { - + ) } diff --git a/apps/sn/app/map/components/popupComponent/chart/infilChart.tsx b/apps/sn/app/map/components/popupComponent/chart/infilChart.tsx index 2e52e194f..ba0b70455 100644 --- a/apps/sn/app/map/components/popupComponent/chart/infilChart.tsx +++ b/apps/sn/app/map/components/popupComponent/chart/infilChart.tsx @@ -6,8 +6,9 @@ type ModalOpenProp = { isModalOpen: boolean, setIsModalOpen: (open: boolean) => void, closeModal: () => void, + btnTxt?: string, } -const InfilChart = ({ isModalOpen, setIsModalOpen, closeModal }: ModalOpenProp) => { +const InfilChart = ({ btnTxt, isModalOpen, setIsModalOpen, closeModal }: ModalOpenProp) => { const [popupOpen, setPopupOpen] = React.useState(false); const buttonRef = React.useRef(null); // 버튼 참조 const [popupPosition, setPopupPosition] = useState<{ top: number; left: number }>({ top: 0, left: 0 }); // 팝업 위치 @@ -21,29 +22,34 @@ const InfilChart = ({ isModalOpen, setIsModalOpen, closeModal }: ModalOpenProp) } setPopupOpen(true); // 팝업 열기 }; + console.log("btnTxt", btnTxt); const closePopup = () => {setPopupOpen(false);}; // 팝업 닫기 const chartForm = CHART_FORM.LINE; - const chartData = [ - { label: "1", val: 20 }, - { label: "3", val: 40 }, - { label: "5", val: 60 }, - { label: "7", val: 80 }, - { label: "9", val: 100 }, - { label: "11", val: 120 }, - { label: "13", val: 140 }, - { label: "15", val: 120 }, - { label: "17", val: 100 }, - { label: "19", val: 80 }, - { label: "21", val: 60 }, - { label: "23", val: 40 }, - ]; - const chartConfig = chartData.reduce((config, element) => { - config[element.label] = { - label: element.label, - color: "hsl(var(--chart-1))", - }; - return config; - }, {} as Record) satisfies ChartConfig; + const chartData = { + chartData1: [ + { label: "1", val: 20 }, + { label: "3", val: 40 }, + { label: "5", val: 60 }, + ], + chartData2: [ + { label: "1", val: 15 }, + { label: "3", val: 35 }, + { label: "5", val: 55 }, + ], + } + const chartConfig = Object.values(chartData).flat().reduce((config, element) => { + config[element.label] = { + label: element.label, + color: "hsl(var(--chart-1))", + }; + return config; + }, {} as Record) satisfies ChartConfig; + const getCurrentDate = () => { + const today = new Date(); + const year = today.getFullYear(); + const month = String(today.getMonth() + 1).padStart(2, "0"); // 월은 0부터 시작하므로 +1 + return `${year}-${month}`; + }; return ( {/* 분석 입력현황 조회 */} @@ -64,12 +70,12 @@ const InfilChart = ({ isModalOpen, setIsModalOpen, closeModal }: ModalOpenProp) {/* 차트 */}
- +
{popupOpen && (
상수사용량 정보:
- +
오수 전환율:
@@ -106,6 +109,19 @@ const InfilChart = ({ isModalOpen, setIsModalOpen, closeModal }: ModalOpenProp)
+ {btnTxt === 'RDII' ? <>
강우 자료:
+
+ +
+
RTX 계수 출처:
+
+ +
+ : null}