From 2e115887c280c55849b5e180b7930aa1f6900109 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Thu, 6 Mar 2025 10:51:09 +0900 Subject: [PATCH 01/19] =?UTF-8?q?=EA=B2=AC=EC=A0=81=EC=84=9C=20=EC=88=9C?= =?UTF-8?q?=EC=84=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/circuitTrestle/CircuitTrestleSetting.jsx | 5 +---- src/hooks/useEstimate.js | 11 ++++++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index cf238166..92bc7f3c 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -54,7 +54,7 @@ export default function CircuitTrestleSetting({ id }) { const [seletedOption, setSeletedOption] = useState(null) const { setModuleStatisticsData } = useCircuitTrestle() const { handleCanvasToPng } = useImgLoader() - const { saveCanvas } = usePlan() + const passivityCircuitAllocationRef = useRef() const { setIsGlobalLoading } = useContext(QcastContext) @@ -361,11 +361,8 @@ export default function CircuitTrestleSetting({ id }) { if (result) { handleCanvasToPng(2) - // 캔버스 저장 - await saveCanvas(false) // 견적서 저장 await saveEstimate(result) - setAllModuleSurfaceIsComplete(true) } else { setIsGlobalLoading(false) } diff --git a/src/hooks/useEstimate.js b/src/hooks/useEstimate.js index a535de49..ac1f5c07 100644 --- a/src/hooks/useEstimate.js +++ b/src/hooks/useEstimate.js @@ -9,6 +9,8 @@ import { GlobalDataContext } from '@/app/GlobalDataProvider' import { QcastContext } from '@/app/QcastProvider' import { currentCanvasPlanState } from '@/store/canvasAtom' import { loginUserStore } from '@/store/commonAtom' +import { useTrestle } from '@/hooks/module/useTrestle' +import { usePlan } from '@/hooks/usePlan' export function useEstimate() { const { managementStateLoaded } = useContext(GlobalDataContext) @@ -20,13 +22,15 @@ export function useEstimate() { const { promisePost } = useAxios() const { swalFire } = useSwal() + const { setAllModuleSurfaceIsComplete } = useTrestle() + const { saveCanvas } = usePlan() + /** * 도면 견적서 저장 * * @param {Object} estimateParam - 견적서 저장 데이터 */ const saveEstimate = async (estimateParam) => { - const userId = loginUserState.userId const saleStoreId = managementStateLoaded.saleStoreId const objectNo = currentCanvasPlan.objectNo @@ -56,6 +60,11 @@ export function useEstimate() { await promisePost({ url: '/api/estimate/save-estimate', data: saveEstimateData }) .then(async () => { + setAllModuleSurfaceIsComplete(true) + + // 캔버스 저장 + await saveCanvas(false) + /* 견적서 저장이 완료되면 견적서 페이지로 이동 */ moveEstimate(planNo, objectNo) }) From 724d6d508805d71a9698ce951ac8ed71dd37559a Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Thu, 6 Mar 2025 11:05:13 +0900 Subject: [PATCH 02/19] =?UTF-8?q?=EB=B0=B0=EC=B9=98=EB=A9=B4=20=EC=B4=88?= =?UTF-8?q?=EA=B8=B0=EC=84=A4=EC=A0=95=20=EC=8B=9C=20=ED=8C=A8=ED=84=B4=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/placementShape/PlacementShapeSetting.jsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx index d836147c..127e7742 100644 --- a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx +++ b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx @@ -9,7 +9,7 @@ import WithDraggable from '@/components/common/draggable/WithDraggable' import { useCanvasSetting } from '@/hooks/option/useCanvasSetting' import { useRecoilState, useRecoilValue } from 'recoil' -import { addedRoofsState, roofMaterialsAtom } from '@/store/settingAtom' +import { addedRoofsState, roofDisplaySelector, roofMaterialsAtom } from '@/store/settingAtom' import { useCommonCode } from '@/hooks/common/useCommonCode' import QSelectBox from '@/components/common/select/QSelectBox' import { globalLocaleStore } from '@/store/localeAtom' @@ -18,6 +18,7 @@ import { onlyNumberInputChange } from '@/util/input-utils' import { getChonByDegree, getDegreeByChon } from '@/util/canvas-util' import { usePolygon } from '@/hooks/usePolygon' import { canvasState } from '@/store/canvasAtom' +import { useRoofFn } from '@/hooks/common/useRoofFn' /** * 지붕 레이아웃 @@ -41,7 +42,9 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla const [currentRoof, setCurrentRoof] = useState(null) /** 현재 선택된 지붕재 정보 */ const { closePopup } = usePopup() /** usePopup에서 closePopup 함수 가져오기 */ const { drawDirectionArrow } = usePolygon() + const { setSurfaceShapePattern } = useRoofFn() const canvas = useRecoilValue(canvasState) + const roofDisplay = useRecoilValue(roofDisplaySelector) const roofRef = { roofCd: useRef(null), @@ -243,6 +246,8 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla const roofs = canvas.getObjects().filter((obj) => obj.roofMaterial?.index === 0) roofs.forEach((roof) => { + /** 모양 패턴 설정 */ + setSurfaceShapePattern(roof, roofDisplay.column, false, { ...roofInfo }) roof.roofMaterial = { ...roofInfo } drawDirectionArrow(roof) }) From 7dca1aaf4ad499cb2870cee882a136a6f9332686 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: Thu, 6 Mar 2025 11:05:26 +0900 Subject: [PATCH 03/19] =?UTF-8?q?=EC=9D=BC=EB=B3=B8=EC=96=B4=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/locales/ja.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/locales/ja.json b/src/locales/ja.json index 64b2f0f4..e65051ee 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -293,10 +293,10 @@ "modal.object.setting.height": "縦長", "modal.object.setting.area.cross": "エリア交差", "modal.object.setting.size.setting": "サイズ設定", - "modal.object.setting.agreement.depth": "棟の長さ・深さ", - "modal.object.setting.offset.depth": "出幅(深さ)", + "modal.object.setting.agreement.depth": "棟の長さ", + "modal.object.setting.offset.depth": "棟の出幅", "modal.object.setting.size.width": "幅", - "modal.object.setting.offset.width": "出幅(幅)", + "modal.object.setting.offset.width": "幅の出幅", "modal.object.setting.offset.slope": "勾配", "modal.object.setting.direction.select": "方向の選択", "modal.placement.surface.setting.info": "ⓘ①の長さ入力後、対角線長を入力すると②の長さを自動計算します。", From 2c25c68bab9ba2921e9f0e33b29b7616feebfc0f Mon Sep 17 00:00:00 2001 From: yjnoh Date: Thu, 6 Mar 2025 11:09:33 +0900 Subject: [PATCH 04/19] =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EB=A7=88=EC=A7=84?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/module/useModuleBasicSetting.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js index 37d8dc1d..44a0d02e 100644 --- a/src/hooks/module/useModuleBasicSetting.js +++ b/src/hooks/module/useModuleBasicSetting.js @@ -943,13 +943,13 @@ export function useModuleBasicSetting(tabNum) { const moduleArray = [] let calcAreaWidth = Math.abs(flowLines.right.x1 - flowLines.left.x1) //오른쪽 x에서 왼쪽 x를 뺀 가운데를 찾는 로직 - let calcModuleWidthCount = calcAreaWidth / (width + intvHor) //뺀 공간에서 모듈을 몇개를 넣을수 있는지 확인하는 로직 + let calcModuleWidthCount = calcAreaWidth / (width + intvHor + 1) //뺀 공간에서 모듈을 몇개를 넣을수 있는지 확인하는 로직 let calcMaxModuleWidthCount = calcModuleWidthCount > moduleMaxCols ? moduleMaxCols : calcModuleWidthCount //최대 모듈 단수가 있기 때문에 최대 단수보다 카운트가 크면 최대 단수로 씀씀 let totalModuleWidthCount = Math.floor(calcMaxModuleWidthCount) //치조배치일경우는 한개 더 넣는다 let calcAreaHeight = flowLines.bottom.y1 - flowLines.top.y1 - let calcModuleHeightCount = calcAreaHeight / (height + intvVer) + let calcModuleHeightCount = calcAreaHeight / (height + intvVer + 1) let calcStartPoint = flowLines.right.type === 'flat' ? (calcAreaWidth - totalModuleWidthCount * width) / 2 : 0 //반씩 나눠서 중앙에 맞춤 bottom 기준으로 양변이 직선일때만 가운데 정렬 let startPointX = flowLines.left.x1 + calcStartPoint //시작점을 만든다 @@ -1085,13 +1085,13 @@ export function useModuleBasicSetting(tabNum) { const moduleArray = [] let calcAreaWidth = flowLines.right.x1 - flowLines.left.x1 //오른쪽 x에서 왼쪽 x를 뺀 가운데를 찾는 로직 - let calcModuleWidthCount = calcAreaWidth / (width + intvHor) //뺀 공간에서 모듈을 몇개를 넣을수 있는지 확인하는 로직 + let calcModuleWidthCount = calcAreaWidth / (width + intvHor + 1) //뺀 공간에서 모듈을 몇개를 넣을수 있는지 확인하는 로직 let calcMaxModuleWidthCount = calcModuleWidthCount > moduleMaxCols ? moduleMaxCols : calcModuleWidthCount //최대 모듈 단수가 있기 때문에 최대 단수보다 카운트가 크면 최대 단수로 씀씀 // let totalModuleWidthCount = isChidori ? Math.abs(calcMaxModuleWidthCount) : Math.floor(calcMaxModuleWidthCount) //치조배치일경우는 한개 더 넣는다 //??어쩔때는 붙고 어쩔때는 안붙고 멋대로??? let totalModuleWidthCount = Math.floor(calcMaxModuleWidthCount) //치조배치일경우는 한개 더 넣는다 let calcAreaHeight = flowLines.bottom.y1 - flowLines.top.y1 - let calcModuleHeightCount = calcAreaHeight / (height + intvVer) + let calcModuleHeightCount = calcAreaHeight / (height + intvVer + 1) let calcStartPoint = flowLines.left.type === 'flat' ? (calcAreaWidth - totalModuleWidthCount * width) / 2 : 0 //반씩 나눠서 중앙에 맞춤 bottom 기준으로 양변이 직선일때만 가운데 정렬 let startPointX = flowLines.right.x1 - calcStartPoint //시작점을 만든다 @@ -1222,13 +1222,13 @@ export function useModuleBasicSetting(tabNum) { const moduleArray = [] let calcAreaWidth = flowLines.bottom.y1 - flowLines.top.y1 //아래에서 y에서 위를 y를 뺀 가운데를 찾는 로직 - let calcModuleWidthCount = calcAreaWidth / (height + intvHor) //뺀 공간에서 모듈을 몇개를 넣을수 있는지 확인하는 로직 + let calcModuleWidthCount = calcAreaWidth / (height + intvHor + 1) //뺀 공간에서 모듈을 몇개를 넣을수 있는지 확인하는 로직 let calcMaxModuleWidthCount = calcModuleWidthCount > moduleMaxCols ? moduleMaxCols : calcModuleWidthCount //최대 모듈 단수가 있기 때문에 최대 단수보다 카운트가 크면 최대 단수로 씀씀 // let totalModuleWidthCount = isChidori ? Math.abs(calcMaxModuleWidthCount) : Math.floor(calcMaxModuleWidthCount) //치조배치일경우는 한개 더 넣는다 let totalModuleWidthCount = Math.floor(calcMaxModuleWidthCount) //치조배치일경우는 한개 더 넣는다 let calcAreaHeight = flowLines.right.x1 - flowLines.left.x1 - let calcModuleHeightCount = calcAreaHeight / (width + intvVer) + let calcModuleHeightCount = calcAreaHeight / (width + intvVer + 1) let calcStartPoint = flowLines.bottom.type === 'flat' ? (calcAreaWidth - totalModuleWidthCount * height) / 2 : 0 //반씩 나눠서 중앙에 맞춤 left 높이 기준으로 양변이 직선일때만 가운데 정렬 let startPointX = flowLines.top.y1 + calcStartPoint //시작점을 만든다 @@ -1358,13 +1358,13 @@ export function useModuleBasicSetting(tabNum) { const moduleArray = [] let calcAreaWidth = flowLines.bottom.y1 - flowLines.top.y1 //아래에서 y에서 위를 y를 뺀 가운데를 찾는 로직 - let calcModuleWidthCount = calcAreaWidth / (height + intvHor) //뺀 공간에서 모듈을 몇개를 넣을수 있는지 확인하는 로직 + let calcModuleWidthCount = calcAreaWidth / (height + intvHor + 1) //뺀 공간에서 모듈을 몇개를 넣을수 있는지 확인하는 로직 let calcMaxModuleWidthCount = calcModuleWidthCount > moduleMaxCols ? moduleMaxCols : calcModuleWidthCount //최대 모듈 단수가 있기 때문에 최대 단수보다 카운트가 크면 최대 단수로 씀씀 // let totalModuleWidthCount = isChidori ? Math.abs(calcMaxModuleWidthCount) : Math.floor(calcMaxModuleWidthCount) //치조배치일경우는 한개 더 넣는다 let totalModuleWidthCount = Math.floor(calcMaxModuleWidthCount) //치조배치일경우는 한개 더 넣는다 let calcAreaHeight = flowLines.right.x1 - flowLines.left.x1 - let calcModuleHeightCount = calcAreaHeight / (width + intvVer) + let calcModuleHeightCount = calcAreaHeight / (width + intvVer + 1) let calcStartPoint = flowLines.top.type === 'flat' ? (calcAreaWidth - totalModuleWidthCount * height) / 2 : 0 //반씩 나눠서 중앙에 맞춤 left 높이 기준으로 양변이 직선일때만 가운데 정렬 let startPointX = flowLines.bottom.y2 - calcStartPoint //시작점을 만든다 From 4bab88e272a664a3ff2705a975c22c80e9f2ce64 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: Thu, 6 Mar 2025 11:11:37 +0900 Subject: [PATCH 05/19] =?UTF-8?q?=EA=B2=AC=EC=A0=81=EC=84=9C=EC=97=90?= =?UTF-8?q?=EC=84=9C=20floor-plan=20=EB=93=A4=EC=96=B4=EC=99=94=EC=9D=84?= =?UTF-8?q?=EB=95=8C=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=B4=88=EA=B8=B0?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/CanvasFrame.jsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/floor-plan/CanvasFrame.jsx b/src/components/floor-plan/CanvasFrame.jsx index 7144a920..de3674db 100644 --- a/src/components/floor-plan/CanvasFrame.jsx +++ b/src/components/floor-plan/CanvasFrame.jsx @@ -28,6 +28,7 @@ import { import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController' import { useCanvasSetting } from '@/hooks/option/useCanvasSetting' import { useCanvasMenu } from '@/hooks/common/useCanvasMenu' +import { useEvent } from '@/hooks/useEvent' export default function CanvasFrame() { const canvasRef = useRef(null) @@ -49,6 +50,7 @@ export default function CanvasFrame() { const { handleModuleSelectionTotal } = useCanvasPopupStatusController() const { fetchBasicSettings } = useCanvasSetting() const { setSelectedMenu } = useCanvasMenu() + const { initEvent } = useEvent() const loadCanvas = () => { if (!canvas) return @@ -64,6 +66,7 @@ export default function CanvasFrame() { if (canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE).length > 0) { setSelectedMenu('module') } + initEvent() }) } } From 037fff7c4a55bdba20c34b19356e236daf52e086 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: Thu, 6 Mar 2025 11:12:16 +0900 Subject: [PATCH 06/19] =?UTF-8?q?=EA=B0=80=EB=8C=80=20=EC=97=86=EC=9D=B4?= =?UTF-8?q?=20=ED=9A=8C=EB=A1=9C=EB=A7=8C=20=ED=95=A0=EB=8B=B9=20=ED=9B=84?= =?UTF-8?q?=20modal=20=EB=8B=AB=EC=9D=84=EB=95=8C=20=ED=9A=8C=EB=A1=9C=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../circuitTrestle/CircuitTrestleSetting.jsx | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index 92bc7f3c..f9f97833 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -503,19 +503,25 @@ export default function CircuitTrestleSetting({ id }) { // 닫기 버튼 클릭 시 처리하는 함수 추가 const handleClose = () => { // // 회로 번호 텍스트 제거 - // const circuitTexts = canvas.getObjects().filter((obj) => obj.name === 'circuitNumber') - // canvas.remove(...circuitTexts) - // // 모듈의 회로 정보 초기화 - // canvas - // .getObjects() - // .filter((obj) => obj.name === POLYGON_TYPE.MODULE) - // .forEach((obj) => { - // obj.circuit = null - // obj.pcsItemId = null - // obj.circuitNumber = null - // }) + if ( + canvas + .getObjects() + .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) + .some((surface) => !surface.isComplete) + ) { + canvas.remove(...canvas.getObjects().filter((obj) => obj.name === 'circuitNumber')) + canvas + .getObjects() + .filter((obj) => obj.name === POLYGON_TYPE.MODULE) + .forEach((obj) => { + obj.circuit = null + obj.pcsItemId = null + obj.circuitNumber = null + }) + + canvas.renderAll() + } - // canvas.renderAll() closePopup(id) } From 927b6265bc3b6d9c86bf28ed7c5c467463fdbfa7 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: Thu, 6 Mar 2025 11:13:04 +0900 Subject: [PATCH 07/19] =?UTF-8?q?useCanvasSetting=EC=97=90=20executeEffect?= =?UTF-8?q?=20=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/FloorPlan.jsx | 2 +- src/hooks/useContextMenu.js | 2 +- src/hooks/usePlan.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/floor-plan/FloorPlan.jsx b/src/components/floor-plan/FloorPlan.jsx index 18f3ea0d..775d7678 100644 --- a/src/components/floor-plan/FloorPlan.jsx +++ b/src/components/floor-plan/FloorPlan.jsx @@ -18,7 +18,7 @@ export default function FloorPlan({ children }) { const { closeAll } = usePopup() const { selectedMenu, setSelectedMenu } = useCanvasMenu() - const { fetchSettings } = useCanvasSetting() + const { fetchSettings } = useCanvasSetting(false) const resetCurrentMenu = useResetRecoilState(currentMenuState) useEffect(() => { return () => { diff --git a/src/hooks/useContextMenu.js b/src/hooks/useContextMenu.js index 144272f8..df291c51 100644 --- a/src/hooks/useContextMenu.js +++ b/src/hooks/useContextMenu.js @@ -68,7 +68,7 @@ export function useContextMenu() { const { removeGrid } = useGrid() const { removeAdsorptionPoint } = useAdsorptionPoint() const commonTextFont = useRecoilValue(fontSelector('commonText')) - const { settingsData, setSettingsDataSave } = useCanvasSetting() + const { settingsData, setSettingsDataSave } = useCanvasSetting(false) const { swalFire } = useSwal() const { alignModule, modulesRemove, moduleRoofRemove } = useModule() const { removeRoofMaterial, removeAllRoofMaterial, moveRoofMaterial, removeOuterLines } = useRoofFn() diff --git a/src/hooks/usePlan.js b/src/hooks/usePlan.js index f7fa7508..ee3f0aa8 100644 --- a/src/hooks/usePlan.js +++ b/src/hooks/usePlan.js @@ -49,7 +49,7 @@ export function usePlan(params = {}) { const resetOuterLinePoints = useResetRecoilState(outerLinePointsState) const resetPlacementShapeDrawingPoints = useResetRecoilState(placementShapeDrawingPointsState) - const { fetchBasicSettings, basicSettingCopySave } = useCanvasSetting() + const { fetchBasicSettings, basicSettingCopySave } = useCanvasSetting(false) const [canvasSetting, setCanvasSetting] = useRecoilState(canvasSettingState) /** From 044f3024619fdd2d3493f9fa7c8933dc1f1bcc2b 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: Thu, 6 Mar 2025 11:13:20 +0900 Subject: [PATCH 08/19] =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EB=B3=B5=EC=82=AC?= =?UTF-8?q?=20=EB=B2=84=EA=B7=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/module/useModule.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js index e4e783e9..c21dab89 100644 --- a/src/hooks/module/useModule.js +++ b/src/hooks/module/useModule.js @@ -226,7 +226,7 @@ export function useModule() { } modules.forEach((module) => { - const { top, left } = getPosotion(module, direction, Number(length) + Number(moduleLength), false) + const { top, left } = getPosotion(module, direction, Number(length) + Number(moduleLength), true) module.clone((obj) => { obj.set({ parentId: module.parentId, @@ -677,6 +677,7 @@ export function useModule() { } let width = -1 let isWarning = false + const { moduleIntvlHor, moduleIntvlVer } = moduleSetupSurface.trestleDetail if (targetModules.length === 0) { swalFire({ title: '마지막 모듈입니다.', @@ -706,7 +707,7 @@ export function useModule() { canvas.renderAll() otherModules = getOtherModules(columnModules) columnModules.forEach((module) => { - const { top, left } = getPosotion(module, type, module.width, true) + const { top, left } = getPosotion(module, type, module.width + moduleIntvlHor, true) let copyModule = null module.clone((obj) => { obj.set({ @@ -803,11 +804,12 @@ export function useModule() { } let height = -1 let isWarning = false + const { moduleIntvlHor, moduleIntvlVer } = moduleSetupSurface.trestleDetail canvas.discardActiveObject() targetModules.forEach((module) => { if (height === -1) height = type === MODULE_INSERT_TYPE.TOP ? Number(activeModule.top) - Number(module.top) : Number(module.top) - Number(activeModule.top) - const { top, left } = getPosotion(module, type, activeModule.height, true) + const { top, left } = getPosotion(module, type, activeModule.height + moduleIntvlVer, true) module.originPos = { left: module.left, top: module.top, @@ -823,7 +825,7 @@ export function useModule() { canvas.renderAll() otherModules = getOtherModules(rowModules) rowModules.forEach((module) => { - const { top, left } = getPosotion(module, type, activeModule.height, true) + const { top, left } = getPosotion(module, type, activeModule.height + moduleIntvlVer, true) let copyModule = null module.clone((obj) => { obj.set({ From 125eb3213b04e20b53534b673274a40e5fa0e0d2 Mon Sep 17 00:00:00 2001 From: basssy Date: Thu, 6 Mar 2025 13:50:47 +0900 Subject: [PATCH 09/19] =?UTF-8?q?=EB=AC=BC=EA=B1=B4=EC=83=81=EC=84=B8=202?= =?UTF-8?q?=EC=B0=A8=EC=A0=90=20=EC=A6=90=EA=B2=A8=EC=B0=BE=EA=B8=B0=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/management/StuffDetail.jsx | 11 +++++------ src/components/management/StuffSubHeader.jsx | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index 266f1779..6ececba1 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -528,12 +528,12 @@ export default function StuffDetail() { } get({ url: url }).then((res) => { if (!isEmptyArray(res)) { + //즐겨찾기 구분 추가 + res.map((row) => { + row.value = row.saleStoreId + row.label = row.saleStoreName + }) if (session?.storeId === 'T01') { - //즐겨찾기 구분 추가 - res.map((row) => { - row.value = row.saleStoreId - row.label = row.saleStoreName - }) firstList = res.filter((row) => row.saleStoreLevel === '1') firstList.sort((a, b) => (a.saleStoreId !== 'T01') - (b.saleStoreId !== 'T01') || a.saleStoreId - b.saleStoreId) favList = firstList.filter((row) => row.saleStoreId === 'T01' || row.priority !== 'B') @@ -553,7 +553,6 @@ export default function StuffDetail() { let data = managementState?.firstAgentId ? managementState.firstAgentId : managementState.saleStoreId url = `/api/object/saleStore/${data}/list?firstFlg=0&userId=${session?.userId}` - get({ url: url }).then((res) => { if (!isEmptyArray(res)) { res.map((row) => { diff --git a/src/components/management/StuffSubHeader.jsx b/src/components/management/StuffSubHeader.jsx index f35c6c53..fccafbdc 100644 --- a/src/components/management/StuffSubHeader.jsx +++ b/src/components/management/StuffSubHeader.jsx @@ -23,7 +23,7 @@ export default function StuffSubHeader({ type }) { const setFloorPlanObjectNo = useSetRecoilState(floorPlanObjectState) - const { managementState, setManagementState } = useContext(GlobalDataContext) + const { managementState } = useContext(GlobalDataContext) const [buttonStyle, setButtonStyle] = useState('') @@ -31,11 +31,11 @@ export default function StuffSubHeader({ type }) { useEffect(() => { window.scrollTo(0, 0) - setManagementState({}) }, []) useEffect(() => { if (type === 'detail') { + setButtonStyle('') if (isObjectNotEmpty(managementState)) { if (managementState?.createSaleStoreId === 'T01') { if (session?.storeId !== 'T01') { From fb877470fef2bbca52d45e132e5c7ed4a53d7753 Mon Sep 17 00:00:00 2001 From: basssy Date: Thu, 6 Mar 2025 15:42:21 +0900 Subject: [PATCH 10/19] =?UTF-8?q?QPagination=20=EB=8D=B0=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=20=EC=97=86=EC=9D=84=EB=95=8C=20disabled?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/pagination/QPagination.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/common/pagination/QPagination.jsx b/src/components/common/pagination/QPagination.jsx index 8c6032b7..1d5aa7d3 100644 --- a/src/components/common/pagination/QPagination.jsx +++ b/src/components/common/pagination/QPagination.jsx @@ -42,7 +42,7 @@ export default function QPagination(props) { >
  • - +
  • ) From 01134ccf3528f51d2fbdbca552f274923c776a98 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: Thu, 6 Mar 2025 15:45:32 +0900 Subject: [PATCH 11/19] =?UTF-8?q?=EB=B6=88=ED=95=84=EC=9A=94=20=EC=A3=BC?= =?UTF-8?q?=EC=84=9D=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/floor-plan/modal/module/column/ColumnRemove.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/floor-plan/modal/module/column/ColumnRemove.jsx b/src/components/floor-plan/modal/module/column/ColumnRemove.jsx index a7ad2044..66351d35 100644 --- a/src/components/floor-plan/modal/module/column/ColumnRemove.jsx +++ b/src/components/floor-plan/modal/module/column/ColumnRemove.jsx @@ -21,7 +21,6 @@ export default function ColumnRemove(props) { { name: getMessage('modal.panel.column.remove.type.none'), value: MODULE_REMOVE_TYPE.NONE }, ] const handleApply = () => { - // if (apply) apply() moduleColumnRemove(selectedType) closePopup(id) } From 72f73cff2a0e2690ad9a14e8217ae58520882796 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: Thu, 6 Mar 2025 15:45:59 +0900 Subject: [PATCH 12/19] =?UTF-8?q?=ED=9A=8C=EB=A1=9C=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=20=EC=B4=88=EA=B8=B0=ED=99=94=20=ED=95=A8=EC=88=98=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 --- src/hooks/useCirCuitTrestle.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/hooks/useCirCuitTrestle.js b/src/hooks/useCirCuitTrestle.js index 8e73d59d..1d3a1b2e 100644 --- a/src/hooks/useCirCuitTrestle.js +++ b/src/hooks/useCirCuitTrestle.js @@ -288,6 +288,22 @@ export function useCircuitTrestle() { setModuleStatistics({ header: tempHeader, rows: tempRows.filter((row) => row.wpOut !== 0), footer: tempFooter }) } + const resetCircuits = () => { + const surfaces = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) + const circuitTexts = canvas.getObjects().filter((obj) => obj.name === 'circuitNumber') + + surfaces.forEach((surface) => { + surface.modules.forEach((module) => { + module.circuit = null + module.pcsItemId = null + module.circuitNumber = null + }) + surface.isComplete = false + }) + if (circuitTexts.length > 0) canvas.remove(...circuitTexts) + canvas.renderAll() + } + return { makers, setMakers, @@ -309,5 +325,6 @@ export function useCircuitTrestle() { getModuleList, removeNotAllocationModules, setModuleStatisticsData, + resetCircuits, } } From 187bdbcbac58b7d702ac2be2034ed88d14f0dd1e 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: Thu, 6 Mar 2025 15:46:16 +0900 Subject: [PATCH 13/19] =?UTF-8?q?=EB=8F=84=EB=A8=B8=20=EC=A7=80=EB=B6=95?= =?UTF-8?q?=EC=9E=AC=20=EB=B3=80=EA=B2=BD=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useContextMenu.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/hooks/useContextMenu.js b/src/hooks/useContextMenu.js index df291c51..8845d3b7 100644 --- a/src/hooks/useContextMenu.js +++ b/src/hooks/useContextMenu.js @@ -151,11 +151,6 @@ export function useContextMenu() { name: `${getMessage('contextmenu.copy')}(C)`, fn: () => copyObject(), }, - { - id: 'roofMaterialEdit', - name: getMessage('contextmenu.roof.material.edit'), - component: , - }, { id: 'dormerOffset', name: getMessage('contextmenu.dormer.offset'), From 4cb865ba32d0ea83431209314aa0d94dfb112c5f 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: Thu, 6 Mar 2025 15:46:52 +0900 Subject: [PATCH 14/19] =?UTF-8?q?=EA=B0=80=EB=B0=B0=20=EC=84=A4=EC=B9=98?= =?UTF-8?q?=20=ED=9B=84=20=EB=AA=A8=EB=93=88=20=EC=9D=B4=EB=8F=99,=20?= =?UTF-8?q?=EB=B3=B5=EC=82=AC=EC=8B=9C=20=ED=9A=8C=EB=A1=9C=20=EC=B4=88?= =?UTF-8?q?=EA=B8=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/module/useModule.js | 111 +++++++++++++++------------------ src/hooks/module/useTrestle.js | 2 + 2 files changed, 54 insertions(+), 59 deletions(-) diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js index c21dab89..24cd9ae8 100644 --- a/src/hooks/module/useModule.js +++ b/src/hooks/module/useModule.js @@ -1,4 +1,4 @@ -import { BATCH_TYPE, POLYGON_TYPE } from '@/common/common' +import { BATCH_TYPE, POLYGON_TYPE, TRESTLE_MATERIAL } from '@/common/common' import { canvasState } from '@/store/canvasAtom' import { isOverlap, polygonToTurfPolygon, rectToPolygon } from '@/util/canvas-util' import { useRecoilValue, useSetRecoilState } from 'recoil' @@ -10,6 +10,7 @@ import { useMessage } from '../useMessage' import { selectedModuleState } from '@/store/selectedModuleOptions' import { moduleStatisticsState } from '@/store/circuitTrestleAtom' import { useCircuitTrestle } from '../useCirCuitTrestle' +import { useTrestle } from './useTrestle' export const MODULE_REMOVE_TYPE = { LEFT: 'left', @@ -39,7 +40,8 @@ export function useModule() { const { getMessage } = useMessage() const { checkModuleDisjointObjects } = useModuleBasicSetting() const selectedModules = useRecoilValue(selectedModuleState) - const { setModuleStatisticsData } = useCircuitTrestle() + const { setModuleStatisticsData, resetCircuits } = useCircuitTrestle() + const { clear: removeTrestleMaterials } = useTrestle() const moduleMove = (length, direction) => { const selectedObj = canvas.getActiveObjects() //선택된 객체들을 가져옴 @@ -56,9 +58,7 @@ export function useModule() { const isSetupModules = getOtherModules(selectedObj) const selectedModules = canvas.getObjects().filter((obj) => selectedIds.includes(obj.id) && obj.name === 'module') //선택했던 객체들만 가져옴 - const setupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === selectedModules[0].surfaceId)[0] + const setupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === selectedModules[0].surfaceId) let isWarning = false const objects = getObjects() @@ -107,7 +107,7 @@ export function useModule() { canvas.discardActiveObject() return } - const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] + const activeModule = canvas.getObjects().find((obj) => canvas.getActiveObjects()[0].id === obj.id) if (activeModule.circuit) { swalFire({ title: getMessage('can.not.move.module'), @@ -119,9 +119,7 @@ export function useModule() { const modules = type === 'row' ? getRowModules(activeModule) : getColumnModules(activeModule) const otherModules = getOtherModules(modules) const objects = getObjects() - const moduleSetupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)[0] + const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId) let isWarning = false modules.forEach((module) => { @@ -275,9 +273,7 @@ export function useModule() { const modules = canvas.getObjects().filter((obj) => activeModuleIds.includes(obj.id)) const objects = getObjects() const otherModules = canvas.getObjects().filter((obj) => obj.surfaceId === modules[0].surfaceId && obj.name === POLYGON_TYPE.MODULE) - const moduleSetupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === modules[0].surfaceId)[0] + const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === modules[0].surfaceId) let isWarning = false let copyModules = [] let copyModule = null @@ -344,15 +340,21 @@ export function useModule() { canvas.discardActiveObject() return } - const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] + const activeModule = canvas.getObjects().find((obj) => canvas.getActiveObjects()[0].id === obj.id) + if (activeModule.circuit) { + swalFire({ + title: getMessage('can.not.copy.module'), + icon: 'error', + type: 'alert', + }) + return + } const modules = type === 'row' ? getRowModules(activeModule) : getColumnModules(activeModule) const otherModules = canvas.getObjects().filter((obj) => obj.surfaceId === modules[0].surfaceId && obj.name === POLYGON_TYPE.MODULE) const objects = getObjects() const copyModules = [] let copyModule = null - const moduleSetupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === modules[0].surfaceId)[0] + const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === modules[0].surfaceId) let isWarning = false let moduleLength = 0 if (['up', 'down'].includes(direction)) { @@ -415,15 +417,7 @@ export function useModule() { if (isFixedModule()) { return } - const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] - if (activeModule.circuit) { - swalFire({ - title: getMessage('can.not.move.module'), - icon: 'error', - type: 'alert', - }) - return - } + const activeModule = canvas.getObjects().find((obj) => canvas.getActiveObjects()[0].id === obj.id) const columnModules = getColumnModules(activeModule) const otherModules = getOtherModules(columnModules) const objects = getObjects() @@ -431,10 +425,11 @@ export function useModule() { const rightModules = otherModules.filter((module) => activeModule.left < module.left).sort((a, b) => a.left - b.left) const leftModules = otherModules.filter((module) => activeModule.left > module.left).sort((a, b) => b.left - a.left) let width = -1 - const moduleSetupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)[0] + const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId) let isWarning = false + if (moduleSetupSurface.isComplete) { + resetSurface() + } canvas.discardActiveObject() moduleSetupSurface.set({ modules: otherModules }) canvas.remove(...columnModules) @@ -538,10 +533,10 @@ export function useModule() { } const moduleRowRemove = (type) => { - if (isFixedModule()) { - return - } - const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] + // if (isFixedModule()) { + // return + // } + const activeModule = canvas.getObjects().find((obj) => canvas.getActiveObjects()[0].id === obj.id) const rowModules = getRowModules(activeModule) const otherModules = getOtherModules(rowModules) const objects = getObjects() @@ -549,11 +544,11 @@ export function useModule() { const topModules = otherModules.filter((module) => activeModule.top > module.top).sort((a, b) => b.top - a.top) const bottomModules = otherModules.filter((module) => activeModule.top < module.top).sort((a, b) => a.top - b.top) let height = -1 - const moduleSetupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)[0] + const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId) let isWarning = false - + if (moduleSetupSurface.isComplete) { + resetSurface() + } canvas.discardActiveObject() moduleSetupSurface.set({ modules: otherModules }) canvas.remove(...rowModules) @@ -660,7 +655,7 @@ export function useModule() { if (isFixedModule()) { return } - const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] + const activeModule = canvas.getObjects().find((obj) => canvas.getActiveObjects()[0].id === obj.id) const columnModules = getColumnModules(activeModule) let otherModules = getOtherModules(columnModules) const targetModules = @@ -669,11 +664,9 @@ export function useModule() { : otherModules.filter((module) => module.left > activeModule.left).sort((a, b) => a.left - b.left) const objects = getObjects() const copyModules = [] - const moduleSetupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)[0] - if (moduleSetupSurface.modules.filter((module) => module.circuit).length > 0) { - return + const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId) + if (moduleSetupSurface.isComplete) { + resetSurface() } let width = -1 let isWarning = false @@ -779,7 +772,7 @@ export function useModule() { if (isFixedModule()) { return } - const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] + const activeModule = canvas.getObjects().find((obj) => canvas.getActiveObjects()[0].id === obj.id) const rowModules = getRowModules(activeModule) let otherModules = getOtherModules(rowModules) const targetModules = @@ -796,15 +789,14 @@ export function useModule() { } const objects = getObjects() const copyModules = [] - const moduleSetupSurface = canvas - .getObjects() - .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId)[0] - if (moduleSetupSurface.modules.filter((module) => module.circuit).length > 0) { - return - } + const moduleSetupSurface = canvas.getObjects().find((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE && obj.id === activeModule.surfaceId) let height = -1 let isWarning = false const { moduleIntvlHor, moduleIntvlVer } = moduleSetupSurface.trestleDetail + + if (surface.isComplete) { + resetSurface() + } canvas.discardActiveObject() targetModules.forEach((module) => { if (height === -1) @@ -940,19 +932,15 @@ export function useModule() { } const modulesRemove = () => { - const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] - if (activeModule.circuit) { - swalFire({ - title: getMessage('can.not.move.module'), - icon: 'error', - type: 'alert', - }) - return - } + const activeModule = canvas.getObjects().find((obj) => canvas.getActiveObjects()[0].id === obj.id) const modules = canvas .getObjects() .filter((obj) => obj.surfaceId === activeModule.surfaceId && obj.name === POLYGON_TYPE.MODULE && activeModule.id !== obj.id) - const surface = canvas.getObjects().filter((obj) => obj.id === activeModule.surfaceId && obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE)[0] + const surface = canvas.getObjects().find((obj) => obj.id === activeModule.surfaceId && obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) + if (surface.isComplete) { + resetSurface() + } + surface.set({ modules: modules }) canvas.remove(activeModule) canvas.renderAll() @@ -1042,6 +1030,11 @@ export function useModule() { .filter((obj) => [BATCH_TYPE.OPENING, BATCH_TYPE.TRIANGLE_DORMER, BATCH_TYPE.PENTAGON_DORMER, BATCH_TYPE.SHADOW].includes(obj.name)) } + const resetSurface = () => { + resetCircuits() + removeTrestleMaterials() + } + return { moduleMove, moduleMultiMove, diff --git a/src/hooks/module/useTrestle.js b/src/hooks/module/useTrestle.js index 0240f519..d507ab9c 100644 --- a/src/hooks/module/useTrestle.js +++ b/src/hooks/module/useTrestle.js @@ -25,6 +25,7 @@ export const useTrestle = () => { const { setIsGlobalLoading } = useContext(QcastContext) const { getSelectedPcsItemList } = useCircuitTrestle() + const { resetCircuits } = useCircuitTrestle() const apply = () => { const notAllocationModules = canvas.getObjects().filter((obj) => obj.name === POLYGON_TYPE.MODULE && !obj.circuit) @@ -2777,6 +2778,7 @@ export const useTrestle = () => { canvas.remove(obj) } }) + resetCircuits() } // 전모듈 의 회로번호 visible false 처리 From d140c1298ca716a4f30e0f23aabac6100d14b924 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: Thu, 6 Mar 2025 15:55:50 +0900 Subject: [PATCH 15/19] =?UTF-8?q?=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EB=B0=8F=20=EB=AA=A8=EB=93=88=20=EC=9D=B4=EB=8F=99?= =?UTF-8?q?=20=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=98=A4=EB=A5=98=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/modal/module/PanelEdit.jsx | 12 ++++++++++-- src/locales/ja.json | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/components/floor-plan/modal/module/PanelEdit.jsx b/src/components/floor-plan/modal/module/PanelEdit.jsx index 4d3c5a22..eafe159a 100644 --- a/src/components/floor-plan/modal/module/PanelEdit.jsx +++ b/src/components/floor-plan/modal/module/PanelEdit.jsx @@ -97,7 +97,11 @@ export default function PanelEdit(props) {

    - {getMessage([PANEL_EDIT_TYPE.MOVE, PANEL_EDIT_TYPE.COLUMN_MOVE].includes(type) ? 'modal.move.setting' : 'modal.copy.setting')}{' '} + {getMessage( + [PANEL_EDIT_TYPE.MOVE, PANEL_EDIT_TYPE.MOVE_ALL, PANEL_EDIT_TYPE.COLUMN_MOVE].includes(type) + ? 'modal.move.setting' + : 'modal.copy.setting', + )}{' '}