From c704207d2f04dba2ae3bcc3347efe665ef059ec9 Mon Sep 17 00:00:00 2001 From: yjnoh Date: Mon, 24 Mar 2025 09:35:21 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83=EC=84=A4?= =?UTF-8?q?=EC=B9=98=20validation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/module/useModuleBasicSetting.js | 28 +++++++++++++++++++++++ src/locales/ja.json | 3 ++- src/locales/ko.json | 3 ++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js index c49764c6..29a1237c 100644 --- a/src/hooks/module/useModuleBasicSetting.js +++ b/src/hooks/module/useModuleBasicSetting.js @@ -1249,6 +1249,34 @@ export function useModuleBasicSetting(tabNum) { addCanvasMouseEventListener('mouse:up', (e) => { if (!inside) return + //입력받은 값의 합 + let sumRowCount = layoutSetupRef.reduce((acc, cur) => acc + cur.row, 0) + let sumColCount = layoutSetupRef.reduce((acc, cur) => acc + cur.col, 0) + let maxRow = 0 + let maxCol = trestlePolygon.trestleDetail.moduleMaxCols + + if (checkedModule.length > 1) { + //모듈이 여러개일때 + maxRow = trestlePolygon.trestleDetail.moduleMaxRows + + if (sumRowCount > maxRow || sumColCount > maxCol) { + swalFire({ text: getMessage('module.layout.setup.max.count', [maxRow, maxCol]) }) + return + } + } else { + //모듈이 하나일때는 module에 list를 조회 + const checkModuleId = checkedModule[0].itemId + const targetModuleRows = trestlePolygon.trestleDetail.module.find((item) => item.itemId === checkModuleId).modulemaxRows + const refOption = layoutSetupRef.find((item) => item.moduleId === checkModuleId) + + sumRowCount = refOption.row + + if (sumRowCount > targetModuleRows || sumColCount > maxCol) { + swalFire({ text: getMessage('module.layout.setup.max.count', [targetModuleRows, maxCol]) }) + return + } + } + if (tempModule) { let startX, startY let installedLastHeightCoord = 0 //마지막으로 설치된 모듈의 좌표 diff --git a/src/locales/ja.json b/src/locales/ja.json index 1ae3eadb..618f26c4 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1041,5 +1041,6 @@ "modal.placement.initial.setting.plan.drawing.only.number": "(※数字は[半角]入力のみ可能です。)", "wall.line.not.found": "外壁がありません", "roof.line.not.found": "屋根形状がありません", - "roof.material.can.not.delete": "割り当てられた配置面があります。" + "roof.material.can.not.delete": "割り当てられた配置面があります。", + "module.layout.setup.max.count": "모듈의 최대 단수는 {0}, 최대 열수는 {1} 입니다. (JA)" } diff --git a/src/locales/ko.json b/src/locales/ko.json index cea4d87e..4e2a5589 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -1041,5 +1041,6 @@ "modal.placement.initial.setting.plan.drawing.only.number": "(※ 숫자는 [반각]입력만 가능합니다.)", "wall.line.not.found": "외벽선이 없습니다.", "roof.line.not.found": "지붕형상이 없습니다.", - "roof.material.can.not.delete": "할당된 배치면이 있습니다." + "roof.material.can.not.delete": "할당된 배치면이 있습니다.", + "module.layout.setup.max.count": "모듈의 최대 단수는 {0}, 최대 열수는 {1} 입니다." }