From 9042a94c056abca19f0502460016795c2ceb11d3 Mon Sep 17 00:00:00 2001 From: LEEYONGJAE Date: Mon, 3 Feb 2025 16:27:25 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=84=B8?= =?UTF-8?q?=EC=85=98=20=EA=B0=92=20=EC=B2=B4=ED=81=AC=20=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=20#534?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/layout.js | 4 ---- src/components/auth/Login.jsx | 10 +++++++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/app/layout.js b/src/app/layout.js index 1118b0d9..8c78f6c7 100644 --- a/src/app/layout.js +++ b/src/app/layout.js @@ -55,10 +55,6 @@ export default async function RootLayout({ children }) { redirect('/login') } - if (headerPathname === '/login' && session.isLoggedIn) { - redirect('/') - } - return ( diff --git a/src/components/auth/Login.jsx b/src/components/auth/Login.jsx index 55711929..eca80361 100644 --- a/src/components/auth/Login.jsx +++ b/src/components/auth/Login.jsx @@ -5,7 +5,7 @@ import Image from 'next/image' import Link from 'next/link' import { useRecoilState } from 'recoil' import { useAxios } from '@/hooks/useAxios' -import { setSession, login } from '@/lib/authActions' +import { setSession, login, checkSession } from '@/lib/authActions' import { useMessage } from '@/hooks/useMessage' import { globalLocaleStore } from '@/store/localeAtom' import { sessionStore } from '@/store/commonAtom' @@ -21,11 +21,19 @@ export default function Login() { // 자동 로그인 const initParams = useSearchParams() const autoLoginParam = initParams.get('autoLoginParam1') + useEffect(() => { if (autoLoginParam) { autoLoginProcess(autoLoginParam) } + + checkSession().then((res) => { + if (res) { + login() + } + }) }, []) + const autoLoginProcess = async (autoLoginParam) => { await promisePost({ url: '/api/login/v1.0/user/login/autoLoginDecryptData', data: { loginId: autoLoginParam } }) .then((res) => { From 67b80de1cac074a3a3e98b67110ccad2436c4f7a Mon Sep 17 00:00:00 2001 From: changkyu choi Date: Mon, 3 Feb 2025 16:58:09 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EC=8A=B9=EC=95=95=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=ED=8F=AC=EB=A7=B7=20=EC=88=98=EC=A0=95=20uniqueId=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../circuitTrestle/CircuitTrestleSetting.jsx | 1 + .../modal/circuitTrestle/step/StepUp.jsx | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index b4d13d20..1e22171b 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -176,6 +176,7 @@ export default function CircuitTrestleSetting({ id }) { itemId: module.moduleInfo.itemId, circuit: module.circuitNumber ? module.circuitNumber : null, pcsItemId: module.circuit ? module.circuit?.pcsItemId : null, + uniqueId: module.id ? module.id : null, } }), } diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index b098f409..71dd3e30 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -177,6 +177,26 @@ export default function StepUp(props) { paralQty: qty.paralQty ? qty.paralQty : 0, rmdYn: qty.rmdYn ? qty.rmdYn : 'N', usePossYn: qty.usePossYn ? qty.usePossYn : 'Y', + roofSurfaceList: formatRoofSurfaceList(qty.roofSurfaceList), + })) + } + + // PCS RoofSurface 포맷 + const formatRoofSurfaceList = (roofSurfaceList = []) => { + return roofSurfaceList?.map((rsf) => ({ + moduleList: formatModuleList(rsf.moduleList), + roofSurface: rsf.roofSurface ? rsf.roofSurface : '', + roofSurfaceId: rsf.roofSurfaceId ? rsf.roofSurfaceId : '', + roofSurfaceIncl: rsf.roofSurfaceIncl ? rsf.roofSurfaceIncl : '', + })) + } + // PCS MatModule 포맷 + const formatModuleList = (moduleList = []) => { + return moduleList?.map((module) => ({ + circuit: module.circuit ? module.circuit : '', + itemId: module.itemId ? module.itemId : '', + pcsItemId: module.pcsItemId ? module.pcsItemId : '', + uniqueId: module.uniqueId ? module.uniqueId : '', })) } From 0dd4ebeb34ecb5262e033bd5d400df7eaa78c510 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, 3 Feb 2025 17:03:10 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=A7=91=EA=B3=84=ED=91=9C=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 --- src/components/floor-plan/CanvasFrame.jsx | 7 +++-- .../circuitTrestle/CircuitTrestleSetting.jsx | 7 +++-- .../step/type/PassivityCircuitAllocation.jsx | 30 +++++++++++-------- .../modal/panelBatch/PanelBatchStatistics.jsx | 15 ++++++---- src/locales/ja.json | 2 ++ src/locales/ko.json | 2 ++ 6 files changed, 41 insertions(+), 22 deletions(-) diff --git a/src/components/floor-plan/CanvasFrame.jsx b/src/components/floor-plan/CanvasFrame.jsx index eb8e7bea..31698b1a 100644 --- a/src/components/floor-plan/CanvasFrame.jsx +++ b/src/components/floor-plan/CanvasFrame.jsx @@ -2,7 +2,7 @@ import { useContext, useEffect, useRef } from 'react' -import { useRecoilValue } from 'recoil' +import { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil' import QContextMenu from '@/components/common/context-menu/QContextMenu' import PanelBatchStatistics from '@/components/floor-plan/modal/panelBatch/PanelBatchStatistics' @@ -16,6 +16,7 @@ import { totalDisplaySelector } from '@/store/settingAtom' import { MENU } from '@/common/common' import { FloorPlanContext } from '@/app/floor-plan/FloorPlanProvider' import { QcastContext } from '@/app/QcastProvider' +import { moduleStatisticsState } from '@/store/circuitTrestleAtom' export default function CanvasFrame() { const canvasRef = useRef(null) @@ -27,7 +28,8 @@ export default function CanvasFrame() { const { currentCanvasPlan } = usePlan() const totalDisplay = useRecoilValue(totalDisplaySelector) // 집계표 표시 여부 const { setIsGlobalLoading } = useContext(QcastContext) - + const [moduleStatistics, setModuleStatistics] = useRecoilState(moduleStatisticsState) + const reset = useResetRecoilState(moduleStatisticsState) const loadCanvas = () => { if (canvas) { canvas?.clear() // 캔버스를 초기화합니다. @@ -43,6 +45,7 @@ export default function CanvasFrame() { useEffect(() => { loadCanvas() + reset() }, [currentCanvasPlan, canvas]) useEffect(() => { diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index b4d13d20..96ed2d6a 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -163,7 +163,6 @@ export default function CircuitTrestleSetting({ id }) { .getObjects() .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) .map((obj) => { - getModuleList(obj) return { roofSurfaceId: obj.id, roofSurface: canvas @@ -172,10 +171,12 @@ export default function CircuitTrestleSetting({ id }) { .directionText.replace(/[0-9]/g, ''), roofSurfaceIncl: canvas.getObjects().filter((o) => o.id === obj.parentId)[0].roofMaterial.pitch, moduleList: getModuleList(obj).map((module) => { + console.log('module >>> ', module) return { itemId: module.moduleInfo.itemId, circuit: module.circuitNumber ? module.circuitNumber : null, pcsItemId: module.circuit ? module.circuit?.pcsItemId : null, + uniqueId: module.id, } }), } @@ -429,6 +430,8 @@ export default function CircuitTrestleSetting({ id }) { obj.circuit = null obj.pcsItemId = null }) + setAllocationType(ALLOCATION_TYPE.AUTO) + canvas.renderAll() }, }) } @@ -506,7 +509,7 @@ export default function CircuitTrestleSetting({ id }) { )} {tabNum === 1 && allocationType === ALLOCATION_TYPE.PASSIVITY && (
-