From dc1c2311f96069da84f70c9125139d12aaf9c6a3 Mon Sep 17 00:00:00 2001 From: LEEYONGJAE Date: Tue, 25 Feb 2025 10:06:31 +0900 Subject: [PATCH 1/6] =?UTF-8?q?=EB=B0=9C=EC=A0=84=EC=8B=9C=EB=AC=BC?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=85=98=20=EC=BA=94=EB=B2=84=EC=8A=A4?= =?UTF-8?q?=EB=A9=94=EB=89=B4=20index=EC=97=90=EC=84=9C=20type=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasMenu.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 9bf081d6..d76d4519 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -257,7 +257,7 @@ export default function CanvasMenu(props) { } }) break - case 6: + case 'simulation': setIsGlobalLoading(true) promiseGet({ url: `/api/estimate/${objectNo}/${selectedPlan.planNo}/detail` }).then((res) => { if (res.status === 200) { @@ -265,7 +265,7 @@ export default function CanvasMenu(props) { if (estimateDetail.estimateDate !== null && estimateDetail.docNo) { setSelectedMenu(menu.type) setCurrentMenu(menu.title) - router.push(`/floor-plan/simulator/${menu.index}?pid=${selectedPlan.planNo}&objectNo=${objectNo}`) + router.push(`/floor-plan/simulator/6?pid=${selectedPlan.planNo}&objectNo=${objectNo}`) if (pathname === '/floor-plan/simulator/6') { setIsGlobalLoading(false) } From 4da4bd5959e5fba716cb208dc7db33ef2e3212b0 Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 25 Feb 2025 10:07:38 +0900 Subject: [PATCH 2/6] =?UTF-8?q?CanvasMenu=20case=EB=AC=B8=20=EB=AA=A8?= =?UTF-8?q?=EB=93=88,=ED=9A=8C=EB=A1=9C=EA=B5=AC=EC=84=B1/=EA=B2=AC?= =?UTF-8?q?=EC=A0=81=EC=84=9C/=EB=B0=9C=EC=A0=84=EC=8B=9C=EB=AE=AC?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=85=98=20=ED=83=AD=204,5,6=20->=20'module'?= =?UTF-8?q?,=20'estimate',=20'simulation'=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasMenu.jsx | 7 +++---- src/store/menuAtom.js | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 9bf081d6..356b461e 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -222,7 +222,7 @@ export default function CanvasMenu(props) { } await reloadCanvasStatus(objectNo, pid) break - case 4: + case 'module': if (selectedMenu < menu.index) { if (!checkMenuAndCanvasState()) { swalFire({ text: getMessage('menu.validation.canvas.roof') }) @@ -236,7 +236,7 @@ export default function CanvasMenu(props) { } await reloadCanvasStatus(objectNo, pid) break - case 5: + case 'estimate': setIsGlobalLoading(true) promiseGet({ url: `/api/estimate/${objectNo}/${selectedPlan.planNo}/detail` }).then((res) => { if (res.status === 200) { @@ -257,7 +257,7 @@ export default function CanvasMenu(props) { } }) break - case 6: + case 'simulation': setIsGlobalLoading(true) promiseGet({ url: `/api/estimate/${objectNo}/${selectedPlan.planNo}/detail` }).then((res) => { if (res.status === 200) { @@ -283,7 +283,6 @@ export default function CanvasMenu(props) { setCurrentMenu(menu.title) } if (pathname !== '/floor-plan') { - // if (menu.index !== 0 ) { //견적서 or 발전시뮬레이션 탭에서 같은 탭 클릭시 화면 이동했다 돌아오지않도록.. if (menu.type !== 'drawing' && menu.type !== 'estimate' && menu.type !== 'simulation') { router.push(`/floor-plan?pid=${pid}&objectNo=${objectNo}`) diff --git a/src/store/menuAtom.js b/src/store/menuAtom.js index 0254cbb9..6cfa656c 100644 --- a/src/store/menuAtom.js +++ b/src/store/menuAtom.js @@ -14,7 +14,7 @@ export const selectedMenuState = atom({ export const menusState = atom({ key: 'menusState', default: [ - { type: 'drawing', name: 'plan.menu.plan.drawing', icon: 'con00', title: MENU.PLAN_DRAWING }, //. 도면 작성 + { type: 'drawing', name: 'plan.menu.plan.drawing', icon: 'con00', title: MENU.PLAN_DRAWING }, //. 물건정보 { type: 'placement', // 배치면 초기설정 name: 'plan.menu.placement.surface.initial.setting', From 1f5ea792799656cd229d2434dbdd9a3cc4dda5eb Mon Sep 17 00:00:00 2001 From: basssy Date: Tue, 25 Feb 2025 10:12:17 +0900 Subject: [PATCH 3/6] =?UTF-8?q?CanvasMenu=20=EA=B2=AC=EC=A0=81=EC=84=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EB=A9=94=EB=89=B4=EB=B2=88=ED=98=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasMenu.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 80c48640..108ff52d 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -246,7 +246,7 @@ export default function CanvasMenu(props) { setCurrentMenu(menu.title) setFloorPlanObjectNo({ floorPlanObjectNo: objectNo }) setIsGlobalLoading(false) - router.push(`/floor-plan/estimate/${menu.type}?pid=${selectedPlan.planNo}&objectNo=${objectNo}`) + router.push(`/floor-plan/estimate/5?pid=${selectedPlan.planNo}&objectNo=${objectNo}`) if (pathname === '/floor-plan/estimate/5') { setIsGlobalLoading(false) } From a96b90dc3a68de45f7cf6856d28000b6c2ed5af7 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Tue, 25 Feb 2025 10:21:54 +0900 Subject: [PATCH 4/6] =?UTF-8?q?=EB=B0=B0=EC=B9=98=EB=A9=B4=20=EC=A0=84?= =?UTF-8?q?=EC=B2=B4=20=EC=82=AD=EC=A0=9C=20=EC=8B=9C=20=EA=B7=B8=EB=A6=AC?= =?UTF-8?q?=EB=93=9C=EB=8F=84=20=EC=82=AC=EB=9D=BC=EC=A7=80=EB=8A=94=20?= =?UTF-8?q?=ED=98=84=EC=83=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/option/useCanvasSetting.js | 19 ++++++++++++++++++- src/hooks/surface/useSurfaceShapeBatch.js | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 5ae28ba9..ab72fbc2 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -52,7 +52,9 @@ const defaultDotLineGridSetting = { LINE: false, } -export function useCanvasSetting() { +// hook 추가 시 executeEffect를 인자로 받고 false일 경우 useEffect를 실행하지 않는다. default true +// 아래 hook에 추가 된 함수만 사용하고 싶을 경우 false로 인자 전달 +export function useCanvasSetting(executeEffect = true) { const canvas = useRecoilValue(canvasState) /** canvas가 null이 아닐 때에만 getObjects 호출 */ const canvasObjects = canvas ? canvas.getObjects() : [] @@ -138,6 +140,9 @@ export function useCanvasSetting() { const { closePopup, closeAll } = usePopup() // 팝업 닫기 useEffect(() => { + if (!executeEffect) { + return + } const tempFetchRoofMaterials = !fetchRoofMaterials /** 초 1회만 실행하도록 처리 */ @@ -175,6 +180,9 @@ export function useCanvasSetting() { } useEffect(() => { + if (!executeEffect) { + return + } if (addedRoofs.length > 0 && addedRoofs[0].planNo === basicSetting.planNo) { const raftCodeList = findCommonCode('203800') setRaftCodes(raftCodeList) @@ -188,6 +196,9 @@ export function useCanvasSetting() { }, [addedRoofs]) useEffect(() => { + if (!executeEffect) { + return + } const selectedRoofMaterial = roofMaterials[0] if (addedRoofs.length === 0) { @@ -202,6 +213,9 @@ export function useCanvasSetting() { if (!canvas) { return } + if (!executeEffect) { + return + } const { column } = corridorDimension const lengthTexts = canvas.getObjects().filter((obj) => obj.name === 'lengthText') @@ -230,6 +244,9 @@ export function useCanvasSetting() { }, [corridorDimension]) useEffect(() => { + if (!executeEffect) { + return + } if (settingsDataSave !== undefined) onClickOption2() }, [settingsData]) diff --git a/src/hooks/surface/useSurfaceShapeBatch.js b/src/hooks/surface/useSurfaceShapeBatch.js index a90a1b97..439465a0 100644 --- a/src/hooks/surface/useSurfaceShapeBatch.js +++ b/src/hooks/surface/useSurfaceShapeBatch.js @@ -22,6 +22,7 @@ import { placementShapeDrawingPointsState } from '@/store/placementShapeDrawingA import { getBackGroundImage } from '@/lib/imageActions' import PlacementSurfaceLineProperty from '@/components/floor-plan/modal/placementShape/PlacementSurfaceLineProperty' import { v4 as uuidv4 } from 'uuid' +import { useCanvasSetting } from '@/hooks/option/useCanvasSetting' export function useSurfaceShapeBatch({ isHidden, setIsHidden }) { const { getMessage } = useMessage() @@ -40,6 +41,7 @@ export function useSurfaceShapeBatch({ isHidden, setIsHidden }) { const { addPopup, closePopup } = usePopup() const { setSurfaceShapePattern } = useRoofFn() const currentCanvasPlan = useRecoilValue(currentCanvasPlanState) + const { fetchSettings } = useCanvasSetting(false) const applySurfaceShape = (surfaceRefs, selectedType, id) => { let length1, length2, length3, length4, length5 @@ -762,6 +764,7 @@ export function useSurfaceShapeBatch({ isHidden, setIsHidden }) { resetOuterLinePoints() resetPlacementShapeDrawingPoints() + fetchSettings() swalFire({ text: getMessage('plan.message.delete') }) }, // denyFn: () => { From 758ae8cda57c32b91ca2a2184a0183ae170faa38 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: Tue, 25 Feb 2025 10:54:55 +0900 Subject: [PATCH 5/6] =?UTF-8?q?=EC=9C=A1=EC=A7=80=EB=B6=95=EC=9D=BC?= =?UTF-8?q?=EB=95=8C=20=EC=A7=80=EB=B6=95=EC=9E=AC=20=EB=B0=B0=EC=B9=98=20?= =?UTF-8?q?=EB=B0=A9=EC=8B=9D=20=EB=B2=84=ED=8A=BC=20=EB=B9=84=ED=99=9C?= =?UTF-8?q?=EC=84=B1=ED=99=94=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../floor-plan/modal/placementShape/PlacementShapeSetting.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx index ed400f95..e058b918 100644 --- a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx +++ b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx @@ -457,6 +457,7 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla