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',
+ )}{' '}