diff --git a/src/components/floor-plan/modal/module/PanelEdit.jsx b/src/components/floor-plan/modal/module/PanelEdit.jsx
index 8e1f9fac..c324fab8 100644
--- a/src/components/floor-plan/modal/module/PanelEdit.jsx
+++ b/src/components/floor-plan/modal/module/PanelEdit.jsx
@@ -57,13 +57,13 @@ export default function PanelEdit(props) {
moduleMove(length, direction)
break
case PANEL_EDIT_TYPE.MOVE_ALL:
- moduleMoveAll(length, direction)
+ moduleMoveAll(length, direction, props.arrayData)
break
case PANEL_EDIT_TYPE.COPY:
moduleCopy(length, direction)
break
case PANEL_EDIT_TYPE.COPY_ALL:
- moduleCopyAll(length, direction)
+ moduleCopyAll(length, direction, props.arrayData)
break
case PANEL_EDIT_TYPE.COLUMN_MOVE:
moduleMultiMove('column', length, direction)
diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js
index 7f7c981c..53d3b897 100644
--- a/src/hooks/module/useModule.js
+++ b/src/hooks/module/useModule.js
@@ -145,104 +145,113 @@ export function useModule() {
}
}
- const moduleMoveAll = (length, direction) => {
- const moduleSetupSurface = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0]
- const modules = canvas.getObjects().filter((obj) => obj.surfaceId === moduleSetupSurface.id && obj.name === POLYGON_TYPE.MODULE)
- const objects = getObjects()
+ const moduleMoveAll = (length, direction, surfaceArray) => {
+ surfaceArray.forEach((surface) => {
+ const modules = canvas
+ .getObjects()
+ .filter((module) => module.name === POLYGON_TYPE.MODULE)
+ .filter((module) => module.surfaceId === surface.id)
+ const objects = getObjects()
- let isWarning = false
+ let isWarning = false
- modules.forEach((module) => {
- const { top, left } = getPosotion(module, direction, length, false)
- module.originPos = {
- top: module.top,
- left: module.left,
- fill: module.fill,
- }
+ modules.forEach((module) => {
+ const { top, left } = getPosotion(module, direction, length, false)
+ module.originPos = {
+ top: module.top,
+ left: module.left,
+ fill: module.fill,
+ }
+
+ module.set({ top, left })
+ module.setCoords()
+ canvas.renderAll()
+
+ if (isOverlapObjects(module, objects) || isOutsideSurface(module, surface)) {
+ isWarning = true
+ module.set({ fill: 'red' })
+ }
+ })
- module.set({ top, left })
- module.setCoords()
canvas.renderAll()
-
- if (isOverlapObjects(module, objects) || isOutsideSurface(module, moduleSetupSurface)) {
- isWarning = true
- module.set({ fill: 'red' })
+ if (isWarning) {
+ swalFire({
+ title: getMessage('can.not.move.module'),
+ icon: 'error',
+ type: 'alert',
+ confirmFn: () => {
+ modules.forEach((module) => {
+ module.set({ top: module.originPos.top, left: module.originPos.left, fill: module.originPos.fill })
+ module.setCoords()
+ })
+ canvas.renderAll()
+ },
+ })
}
})
-
- canvas.renderAll()
- if (isWarning) {
- swalFire({
- title: getMessage('can.not.move.module'),
- icon: 'error',
- type: 'alert',
- confirmFn: () => {
- modules.forEach((module) => {
- module.set({ top: module.originPos.top, left: module.originPos.left, fill: module.originPos.fill })
- module.setCoords()
- })
- canvas.renderAll()
- },
- })
- }
}
- const moduleCopyAll = (length, direction) => {
- const moduleSetupSurface = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0]
- const modules = canvas.getObjects().filter((obj) => obj.surfaceId === moduleSetupSurface.id && obj.name === POLYGON_TYPE.MODULE)
- const objects = getObjects()
- const copyModules = []
- let copyModule = null
- let isWarning = false
- let moduleLength = 0
- if (['up', 'down'].includes(direction)) {
- modules.sort((a, b) => a.top - b.top)
- moduleLength = Number(modules[modules.length - 1].top) + Number(modules[modules.length - 1].height) - Number(modules[0].top)
- } else if (['left', 'right'].includes(direction)) {
- modules.sort((a, b) => a.left - b.left)
- moduleLength = Number(modules[modules.length - 1].left) + Number(modules[modules.length - 1].width) - Number(modules[0].left)
- }
+ const moduleCopyAll = (length, direction, surfaceArray) => {
+ surfaceArray.forEach((surface) => {
+ const modules = canvas
+ .getObjects()
+ .filter((module) => module.name === POLYGON_TYPE.MODULE)
+ .filter((module) => module.surfaceId === surface.id)
+ const objects = getObjects()
+ const copyModules = []
- modules.forEach((module) => {
- const { top, left } = getPosotion(module, direction, Number(length) + Number(moduleLength), false)
- module.clone((obj) => {
- obj.set({
- parentId: module.parentId,
- initOptions: module.initOptions,
- direction: module.direction,
- arrow: module.arrow,
- name: module.name,
- type: module.type,
- length: module.length,
- points: module.points,
- surfaceId: module.surfaceId,
- left,
- top,
- id: uuidv4(),
- })
- copyModule = obj
- canvas.add(obj)
- copyModules.push(obj)
- obj.setCoords()
- })
- if (isOverlapObjects(copyModule, objects) || isOutsideSurface(copyModule, moduleSetupSurface)) {
- isWarning = true
- copyModule.set({ fill: 'red' })
+ let copyModule = null
+ let isWarning = false
+ let moduleLength = 0
+ if (['up', 'down'].includes(direction)) {
+ modules.sort((a, b) => a.top - b.top)
+ moduleLength = Number(modules[modules.length - 1].top) + Number(modules[modules.length - 1].height) - Number(modules[0].top)
+ } else if (['left', 'right'].includes(direction)) {
+ modules.sort((a, b) => a.left - b.left)
+ moduleLength = Number(modules[modules.length - 1].left) + Number(modules[modules.length - 1].width) - Number(modules[0].left)
}
- canvas.renderAll()
- })
- if (isWarning) {
- swalFire({
- title: getMessage('can.not.copy.module'),
- icon: 'error',
- type: 'alert',
- confirmFn: () => {
- canvas.remove(...copyModules)
- canvas.renderAll()
- },
+ modules.forEach((module) => {
+ const { top, left } = getPosotion(module, direction, Number(length) + Number(moduleLength), false)
+ module.clone((obj) => {
+ obj.set({
+ parentId: module.parentId,
+ initOptions: module.initOptions,
+ direction: module.direction,
+ arrow: module.arrow,
+ name: module.name,
+ type: module.type,
+ length: module.length,
+ points: module.points,
+ surfaceId: module.surfaceId,
+ left,
+ top,
+ id: uuidv4(),
+ })
+ copyModule = obj
+ canvas.add(obj)
+ copyModules.push(obj)
+ obj.setCoords()
+ })
+ if (isOverlapObjects(copyModule, objects) || isOutsideSurface(copyModule, surface)) {
+ isWarning = true
+ copyModule.set({ fill: 'red' })
+ }
+ canvas.renderAll()
})
- }
+
+ if (isWarning) {
+ swalFire({
+ title: getMessage('can.not.copy.module'),
+ icon: 'error',
+ type: 'alert',
+ confirmFn: () => {
+ canvas.remove(...copyModules)
+ canvas.renderAll()
+ },
+ })
+ }
+ })
}
const moduleCopy = (length, direction) => {
diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js
index 29f7f308..b6e0dad3 100644
--- a/src/hooks/module/useModuleBasicSetting.js
+++ b/src/hooks/module/useModuleBasicSetting.js
@@ -123,7 +123,7 @@ export function useModuleBasicSetting(tabNum) {
makeModuleInstArea(roof, detail.data)
//surface에 상세 데이터 추가
} else {
- console.log('가대 데이터가 없네요...')
+ swalFire({ text: getMessage('module.roof.not.exist'), icon: 'warning' })
}
}
})
diff --git a/src/hooks/useContextMenu.js b/src/hooks/useContextMenu.js
index 4235d8db..9892788a 100644
--- a/src/hooks/useContextMenu.js
+++ b/src/hooks/useContextMenu.js
@@ -747,18 +747,18 @@ export function useContextMenu() {
{
id: 'moduleMove',
name: getMessage('contextmenu.module.move'),
- component: ,
+ component: ,
},
{
id: 'moduleCopy',
name: getMessage('contextmenu.module.copy'),
- component: ,
- },
- {
- id: 'moduleCircuitNumberEdit',
- name: getMessage('contextmenu.module.circuit.number.edit'),
- component: ,
+ component: ,
},
+ // {
+ // id: 'moduleCircuitNumberEdit',
+ // name: getMessage('contextmenu.module.circuit.number.edit'),
+ // component: ,
+ // },
],
])
break
diff --git a/src/locales/ko.json b/src/locales/ko.json
index 507f5415..e6d5290a 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -998,5 +998,6 @@
"menu.validation.canvas.roof": "패널을 배치하려면 지붕면을 입력해야 합니다.",
"batch.object.outside.roof": "오브젝트는 지붕내에 설치해야 합니다.",
"batch.object.notinstall.cross": "오브젝트는 겹쳐서 설치 할 수 없습니다.",
- "module.not.batch.north": "북쪽에는 모듈을 배치할 수 없습니다."
+ "module.not.batch.north": "북쪽에는 모듈을 배치할 수 없습니다.",
+ "module.trestleDetail.not.exist": "가대 상세 정보가 없습니다."
}