From 471745419d92ae2d9cc583133f12e2abdfada4e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EC=8B=9D?= <43837214+Minsiki@users.noreply.github.com> Date: Mon, 20 Jan 2025 16:17:04 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EC=88=98=EB=8F=99,=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=20=EB=B0=B0=EC=B9=98=EC=8B=9C=20=EC=A7=91?= =?UTF-8?q?=EA=B3=84=ED=91=9C=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/type/PassivityCircuitAllocation.jsx | 9 +++++---- .../modal/panelBatch/PanelBatchStatistics.jsx | 18 +++++++++--------- src/hooks/module/useModuleBasicSetting.js | 9 ++++++--- src/store/circuitTrestleAtom.js | 5 +---- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx b/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx index e9da38b3..61869db0 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx @@ -2,7 +2,7 @@ import { GlobalDataContext } from '@/app/GlobalDataProvider' import { POLYGON_TYPE } from '@/common/common' import { useMessage } from '@/hooks/useMessage' import { canvasState } from '@/store/canvasAtom' -import { modelState } from '@/store/circuitTrestleAtom' +import { modelState, moduleStatisticsState } from '@/store/circuitTrestleAtom' import { selectedModuleState } from '@/store/selectedModuleOptions' import { useContext, useEffect, useState } from 'react' import { useRecoilValue } from 'recoil' @@ -19,15 +19,16 @@ export default function PassivityCircuitAllocation() { const canvas = useRecoilValue(canvasState) const selectedModules = useRecoilValue(selectedModuleState) const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext) + const { header, rows, footer } = useRecoilValue(moduleStatisticsState) const [moduleData, setModuleData] = useState({ - header: [], - rows: [], + header: header, + rows: rows, + footer: footer, }) const model = useRecoilValue(modelState) const [selectedModels, setSelectedModels] = useState(model.selectedModels) const [selectedPcs, setSelectedPcs] = useState(selectedModels[0]) const [totalWpout, setTotalWpout] = useState(0) - useEffect(() => { setSurfaceInfo() if (!managementState) { diff --git a/src/components/floor-plan/modal/panelBatch/PanelBatchStatistics.jsx b/src/components/floor-plan/modal/panelBatch/PanelBatchStatistics.jsx index fa4f82f6..aff0926b 100644 --- a/src/components/floor-plan/modal/panelBatch/PanelBatchStatistics.jsx +++ b/src/components/floor-plan/modal/panelBatch/PanelBatchStatistics.jsx @@ -4,7 +4,7 @@ import { useState } from 'react' import { useMessage } from '@/hooks/useMessage' import WithDraggable from '@/components/common/draggable/WithDraggable' import { moduleStatisticsState } from '@/store/circuitTrestleAtom' -import { useRecoilValue } from 'recoil' +import { useRecoilValue, useResetRecoilState } from 'recoil' export default function PanelBatchStatistics() { const { getMessage } = useMessage() @@ -24,23 +24,23 @@ export default function PanelBatchStatistics() { - {header.map((item) => ( - + {header.map((item, index) => ( + ))} - {rows.map((row) => ( - - {header.map((item) => ( + {rows.map((row, index) => ( + + {header.map((item, i) => ( // - + ))} ))} - {footer.map((item) => ( - + {footer.map((item, index) => ( + // ))} diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js index 08a06320..9935b450 100644 --- a/src/hooks/module/useModuleBasicSetting.js +++ b/src/hooks/module/useModuleBasicSetting.js @@ -1,4 +1,4 @@ -import { useRecoilState, useRecoilValue } from 'recoil' +import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil' import { canvasState, checkedModuleState, isManualModuleSetupState, selectedModuleState } from '@/store/canvasAtom' import { rectToPolygon, polygonToTurfPolygon, calculateVisibleModuleHeight, getDegreeByChon } from '@/util/canvas-util' import { basicSettingState, roofDisplaySelector } from '@/store/settingAtom' @@ -32,7 +32,7 @@ export function useModuleBasicSetting() { const [basicSetting, setBasicSettings] = useRecoilState(basicSettingState) const checkedModule = useRecoilValue(checkedModuleState) const [isManualModuleSetup, setIsManualModuleSetup] = useRecoilState(isManualModuleSetupState) - const [moduleStatistics, setModuleStatistics] = useRecoilState(moduleStatisticsState) + const setModuleStatistics = useSetRecoilState(moduleStatisticsState) useEffect(() => { // console.log('basicSetting', basicSetting) @@ -485,6 +485,7 @@ export function useModuleBasicSetting() { let manualModule = new QPolygon(tempModule.points, { ...moduleOptions, moduleInfo: checkedModule[0] }) canvas?.add(manualModule) manualDrawModules.push(manualModule) + getModuleStatistics() } else { swalFire({ text: getMessage('module.place.overlab') }) } @@ -1843,6 +1844,8 @@ export function useModuleBasicSetting() { } }) } + + getModuleStatistics() } const autoFlatroofModuleSetup = (placementFlatRef) => { @@ -2233,7 +2236,7 @@ export function useModuleBasicSetting() { }) moduleSetupSurface.set({ modules: setupedModules }) - + getModuleStatistics() // console.log('moduleSetupSurface', moduleSetupSurface) // console.log('setupedModules', setupedModules) diff --git a/src/store/circuitTrestleAtom.js b/src/store/circuitTrestleAtom.js index 86836b48..fe9c6e35 100644 --- a/src/store/circuitTrestleAtom.js +++ b/src/store/circuitTrestleAtom.js @@ -30,9 +30,6 @@ export const moduleStatisticsState = atom({ { name: `발전량(kW)`, prop: 'amount' }, ], rows: [], - footer: [ - { name: '합계', prop: 'name' }, - { name: `발전량(kW)`, prop: 'amount' }, - ], + footer: ['합계', '0'], }, })
{item.name}{item.name}
{item.prop === 'name' ? item.name : item.prop === 'powerGeneration' ? item.powerGeneration : item.amount}{row[item.prop]}{row[item.prop]}
{item}{typeof item === 'number' ? item.toLocaleString('ko-KR', { maximumFractionDigits: 4 }) : item}{item.amount}