From 3e003a794b1e8e2acc9968c5ad585e4d21654d93 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Mon, 20 Jan 2025 17:03:55 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EA=B8=80=EC=9E=90=20=ED=91=9C=EC=8B=9C=20?= =?UTF-8?q?=EC=97=86=EC=95=A4=20=ED=9B=84=20=EB=8B=A4=EC=8B=9C=20=EA=B7=B8?= =?UTF-8?q?=EB=A6=AC=EA=B8=B0=EB=A1=9C=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 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 11d5d207..cad8c57a 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -194,6 +194,9 @@ export function useCanvasSetting() { } const { column } = corridorDimension const lengthTexts = canvas.getObjects().filter((obj) => obj.name === 'lengthText') + lengthTexts.forEach((obj) => { + obj.set({ text: '' }) + }) switch (column) { case 'corridorDimension': lengthTexts.forEach((obj) => { From e14f1458d949bea8fa01a8a7cab26f94f43a97fa Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Mon, 20 Jan 2025 18:19:20 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=F0=9F=98=8Efix:=20=ED=8C=9D=EC=97=85=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EA=B0=92=20=EC=A4=91=EC=97=90=20=EB=B0=A9?= =?UTF-8?q?=EC=9C=84=EC=84=A4=EC=A0=95=20=EA=B0=92=EC=9D=80=20=EA=B7=B8?= =?UTF-8?q?=EB=8C=80=EB=A1=9C=20=EC=A0=80=EC=9E=A5=EB=90=98=EA=B2=8C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/common/useCanvasPopupStatusController.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hooks/common/useCanvasPopupStatusController.js b/src/hooks/common/useCanvasPopupStatusController.js index 4138c239..8db71567 100644 --- a/src/hooks/common/useCanvasPopupStatusController.js +++ b/src/hooks/common/useCanvasPopupStatusController.js @@ -11,7 +11,7 @@ import { compasDegAtom } from '@/store/orientationAtom' import { currentCanvasPlanState } from '@/store/canvasAtom' export function useCanvasPopupStatusController(param = 1) { - const popupType = param + const popupType = parseInt(param) const [compasDeg, setCompasDeg] = useRecoilState(compasDegAtom) const [moduleSelectionDataStore, setModuleSelectionDataStore] = useRecoilState(moduleSelectionDataState) @@ -67,7 +67,7 @@ export function useCanvasPopupStatusController(param = 1) { objectNo: currentCanvasPlan.objectNo, planNo: parseInt(currentCanvasPlan.planNo), popupType: popupType.toString(), - popupStatus: JSON.stringify(arg).replace(/"/g, '\"'), + popupStatus: popupType === 1 ? arg : JSON.stringify(arg).replace(/"/g, '\"'), } postFetcher(`/api/v1/canvas-popup-status`, params) }, From 2226cfd5090b2c4120d27b79d43573a5586e559d Mon Sep 17 00:00:00 2001 From: yoosangwook Date: Mon, 20 Jan 2025 19:34:46 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=98=8Efix:=20=EC=B9=98=EC=88=98=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=EB=B0=A9=EB=B2=95=EC=97=90=20=EC=9D=98?= =?UTF-8?q?=ED=95=B4=EC=84=9C=20=EB=A9=94=EB=89=B4=20validation=20check=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasMenu.jsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 0f32da9b..bdb612a8 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -41,7 +41,7 @@ import { isObjectNotEmpty } from '@/util/common-utils' import KO from '@/locales/ko.json' import JA from '@/locales/ja.json' -import { MENU } from '@/common/common' +import { MENU, POLYGON_TYPE } from '@/common/common' import { QcastContext } from '@/app/QcastProvider' @@ -167,7 +167,12 @@ export default function CanvasMenu(props) { setType('surface') break case 4: - setType('module') + if (!checkMenuAndCanvasState()) { + swalFire({ text: getMessage('estimate.menu.move.valid1') }) + return + } else { + setType('module') + } break case 5: // let pid = urlParams.get('pid') @@ -328,6 +333,14 @@ export default function CanvasMenu(props) { return (['2', '3'].includes(canvasSetting?.roofSizeSet) && menu.index === 2) || (menuNumber === 4 && menu.index === 2) } + const checkMenuAndCanvasState = () => { + const roofs = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF) + // 지붕면 할당이 끝난 지붕이 하나라도 있는지 체크 + const isExist = roofs?.some((roof) => roof.roofMaterial) + console.log('🚀 ~ checkMenuAndCanvasState ~ isExist:', isExist) + return isExist + } + useEffect(() => { if (isObjectNotEmpty(estimateRecoilState)) { if (estimateRecoilState?.createUser === 'T01') {