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 1/5] =?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 2/5] =?UTF-8?q?=ED=9A=8C=EB=A1=9C=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=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 3/5] =?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 4/5] =?UTF-8?q?=EA=B0=80=EB=B0=B0=20=EC=84=A4=EC=B9=98=20?= =?UTF-8?q?=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 5/5] =?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', + )}{' '}