From 707a8daf02f7901fa25a819cc03d2da9d3b75692 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, 27 Feb 2025 13:54:36 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=F0=9F=9A=A8chore:=20Sync=20Sass?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/static/images/canvas/object_img01.svg | 14 ++++------ public/static/images/canvas/object_img02.svg | 19 +++++++------ .../canvas/shape/180deg/plane_tab01.svg | 26 +++++++++-------- .../canvas/shape/270deg/plane_tab01.svg | 26 +++++++++-------- .../images/canvas/shape/90deg/plane_tab01.svg | 26 +++++++++-------- .../canvas/shape/normal/plane_tab01.svg | 26 +++++++++-------- .../canvas/shape/re_180deg/plane_tab01.svg | 26 +++++++++-------- .../canvas/shape/re_270deg/plane_tab01.svg | 26 +++++++++-------- .../canvas/shape/re_90deg/plane_tab01.svg | 26 +++++++++-------- .../canvas/shape/re_normal/plane_tab01.svg | 28 ++++++++++--------- src/styles/_modal.scss | 19 ++++++++++++- 11 files changed, 154 insertions(+), 108 deletions(-) diff --git a/public/static/images/canvas/object_img01.svg b/public/static/images/canvas/object_img01.svg index 1d72f00b..0f5615a6 100644 --- a/public/static/images/canvas/object_img01.svg +++ b/public/static/images/canvas/object_img01.svg @@ -1,16 +1,14 @@ - - + + + + + - - - - - - + diff --git a/public/static/images/canvas/object_img02.svg b/public/static/images/canvas/object_img02.svg index ab1e8f43..85f47edf 100644 --- a/public/static/images/canvas/object_img02.svg +++ b/public/static/images/canvas/object_img02.svg @@ -1,21 +1,22 @@ - - + + + + + - + - - - - - + + + - + diff --git a/public/static/images/canvas/shape/180deg/plane_tab01.svg b/public/static/images/canvas/shape/180deg/plane_tab01.svg index 84c22986..7669a51b 100644 --- a/public/static/images/canvas/shape/180deg/plane_tab01.svg +++ b/public/static/images/canvas/shape/180deg/plane_tab01.svg @@ -1,12 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/public/static/images/canvas/shape/270deg/plane_tab01.svg b/public/static/images/canvas/shape/270deg/plane_tab01.svg index 22b32884..3fd9d7e7 100644 --- a/public/static/images/canvas/shape/270deg/plane_tab01.svg +++ b/public/static/images/canvas/shape/270deg/plane_tab01.svg @@ -1,12 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/public/static/images/canvas/shape/90deg/plane_tab01.svg b/public/static/images/canvas/shape/90deg/plane_tab01.svg index 46476194..c41f7dee 100644 --- a/public/static/images/canvas/shape/90deg/plane_tab01.svg +++ b/public/static/images/canvas/shape/90deg/plane_tab01.svg @@ -1,12 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/public/static/images/canvas/shape/normal/plane_tab01.svg b/public/static/images/canvas/shape/normal/plane_tab01.svg index 121b7025..1091f744 100644 --- a/public/static/images/canvas/shape/normal/plane_tab01.svg +++ b/public/static/images/canvas/shape/normal/plane_tab01.svg @@ -1,12 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/public/static/images/canvas/shape/re_180deg/plane_tab01.svg b/public/static/images/canvas/shape/re_180deg/plane_tab01.svg index aab78f30..60521209 100644 --- a/public/static/images/canvas/shape/re_180deg/plane_tab01.svg +++ b/public/static/images/canvas/shape/re_180deg/plane_tab01.svg @@ -1,12 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/public/static/images/canvas/shape/re_270deg/plane_tab01.svg b/public/static/images/canvas/shape/re_270deg/plane_tab01.svg index c225ea23..2b9f1f06 100644 --- a/public/static/images/canvas/shape/re_270deg/plane_tab01.svg +++ b/public/static/images/canvas/shape/re_270deg/plane_tab01.svg @@ -1,12 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/public/static/images/canvas/shape/re_90deg/plane_tab01.svg b/public/static/images/canvas/shape/re_90deg/plane_tab01.svg index 36c1d46b..b7cd5f4d 100644 --- a/public/static/images/canvas/shape/re_90deg/plane_tab01.svg +++ b/public/static/images/canvas/shape/re_90deg/plane_tab01.svg @@ -1,12 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/public/static/images/canvas/shape/re_normal/plane_tab01.svg b/public/static/images/canvas/shape/re_normal/plane_tab01.svg index 8fc73ac0..77db4276 100644 --- a/public/static/images/canvas/shape/re_normal/plane_tab01.svg +++ b/public/static/images/canvas/shape/re_normal/plane_tab01.svg @@ -1,14 +1,16 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + diff --git a/src/styles/_modal.scss b/src/styles/_modal.scss index fed29abe..9ec806ef 100644 --- a/src/styles/_modal.scss +++ b/src/styles/_modal.scss @@ -904,6 +904,8 @@ $alert-color: #101010; .allocation-edit{ display: flex; align-items: center; + justify-content: center; + width: 100%; height: 30px; padding: 0 10px; margin-left: 5px; @@ -912,6 +914,7 @@ $alert-color: #101010; font-weight: $pop-normal-weight; border: 1px solid #484848; background-color: #323234; + transition: background-color .13s ease-in-out; i{ display: block; width: 12px; @@ -920,6 +923,9 @@ $alert-color: #101010; background: url(../../public/static/images/canvas/allocation_edit.svg)no-repeat center; background-size: cover; } + &:hover{ + background-color: #464545; + } } } @@ -1232,7 +1238,6 @@ $alert-color: #101010; .object-size-wrap{ display: flex; min-height: 206px; - gap: 24px; margin-top: 14px; .object-size-img{ position: relative; @@ -1246,6 +1251,18 @@ $alert-color: #101010; transform: translate(-50%, -50%); } } + .object-size-input{ + margin-left: auto; + .eaves-keraba-th{ + position: relative; + .object-input-num{ + position: absolute; + top: 7px; + left: -20px; + font-size: 13px; + } + } + } } // 표시변경 From f3acae7a46bf87357f17f8b54288a18ef8a3a1aa 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, 27 Feb 2025 13:56:05 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=ED=9A=8C=EB=A1=9C=20=ED=95=A0=EB=8B=B9=20?= =?UTF-8?q?=ED=9B=84=20=EB=AA=A8=EB=93=88=20=EC=82=AD=EC=A0=9C,=20?= =?UTF-8?q?=EB=8B=A8/=EC=97=B4=20=EC=9D=B4=EB=8F=99=20=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/module/useModule.js | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js index 4d54a3ea..41592eda 100644 --- a/src/hooks/module/useModule.js +++ b/src/hooks/module/useModule.js @@ -44,7 +44,14 @@ export function useModule() { const moduleMove = (length, direction) => { const selectedObj = canvas.getActiveObjects() //선택된 객체들을 가져옴 const selectedIds = selectedObj.map((obj) => obj.id) // selectedObj의 ID 추출 - + if (selectedObj[0].circuit) { + swalFire({ + title: getMessage('can.not.move.module'), + icon: 'error', + type: 'alert', + }) + return + } canvas.discardActiveObject() //선택해제 const isSetupModules = getOtherModules(selectedObj) @@ -101,6 +108,14 @@ export function useModule() { 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 modules = type === 'row' ? getRowModules(activeModule) : getColumnModules(activeModule) const otherModules = getOtherModules(modules) const objects = getObjects() @@ -400,6 +415,14 @@ export function useModule() { const moduleColumnRemove = (type) => { 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 columnModules = getColumnModules(activeModule) const otherModules = getOtherModules(columnModules) const objects = getObjects() @@ -515,6 +538,14 @@ export function useModule() { const moduleRowRemove = (type) => { const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] + if (activeModule.circuit) { + swalFire({ + title: getMessage('can.not.remove.module'), + icon: 'error', + type: 'alert', + }) + return + } const rowModules = getRowModules(activeModule) const otherModules = getOtherModules(rowModules) const objects = getObjects() @@ -887,7 +918,7 @@ export function useModule() { const activeModule = canvas.getObjects().filter((obj) => canvas.getActiveObjects()[0].id === obj.id)[0] if (activeModule.circuit) { swalFire({ - title: getMessage('can.not.remove.module'), + title: getMessage('can.not.move.module'), icon: 'error', type: 'alert', }) From 7bd2ba637a759fd9a1f8d7d61c291559277cee93 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, 27 Feb 2025 13:56:38 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=ED=8D=BC=EB=B8=94=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20=EB=8B=A4=EA=B5=AD=EC=96=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../floor-plan/modal/object/type/PentagonDormer.jsx | 10 ++++++++-- .../floor-plan/modal/object/type/TriangleDormer.jsx | 5 ++++- src/locales/ja.json | 8 +++++--- src/locales/ko.json | 8 +++++--- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/components/floor-plan/modal/object/type/PentagonDormer.jsx b/src/components/floor-plan/modal/object/type/PentagonDormer.jsx index 0bca7527..87a92835 100644 --- a/src/components/floor-plan/modal/object/type/PentagonDormer.jsx +++ b/src/components/floor-plan/modal/object/type/PentagonDormer.jsx @@ -23,7 +23,10 @@ const PentagonDormer = forwardRef((props, refs) => {
-
{getMessage('modal.object.setting.agreement.depth')}
+
+ + {getMessage('modal.object.setting.agreement.depth')} +
@@ -45,7 +48,10 @@ const PentagonDormer = forwardRef((props, refs) => {
-
{getMessage('width')}
+
+ + {getMessage('modal.object.setting.size.width')} +
diff --git a/src/components/floor-plan/modal/object/type/TriangleDormer.jsx b/src/components/floor-plan/modal/object/type/TriangleDormer.jsx index 229043c8..62fd729d 100644 --- a/src/components/floor-plan/modal/object/type/TriangleDormer.jsx +++ b/src/components/floor-plan/modal/object/type/TriangleDormer.jsx @@ -23,7 +23,10 @@ const TriangleDormer = forwardRef((props, refs) => {
-
{getMessage('modal.object.setting.agreement.depth')}
+
+ + {getMessage('modal.object.setting.agreement.depth')} +
diff --git a/src/locales/ja.json b/src/locales/ja.json index ef70bb9b..dc87c49d 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -292,9 +292,11 @@ "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.offset.width": "出幅(幅)", + "modal.object.setting.agreement.depth": "棟の長さ", + "modal.object.setting.offset.depth": "棟の出幅", + "modal.object.setting.size.width": "幅", + "modal.object.setting.offset.width": "幅の出幅", + "modal.object.setting.offset.slope": "勾配", "modal.object.setting.direction.select": "方向の選択", "modal.placement.surface.setting.info": "ⓘ①の長さ入力後、対角線長を入力すると②の長さを自動計算します。", "modal.placement.surface.setting.diagonal.length": "斜めの長さ", diff --git a/src/locales/ko.json b/src/locales/ko.json index d60e226d..58d68115 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -292,9 +292,11 @@ "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.offset.width": "출폭(폭)", + "modal.object.setting.agreement.depth": "동의 길이", + "modal.object.setting.offset.depth": "동의 출폭", + "modal.object.setting.size.width": "너비", + "modal.object.setting.offset.width": "너비의 출폭", + "modal.object.setting.offset.slope": "경사", "modal.object.setting.direction.select": "방향 선택", "modal.placement.surface.setting.info": "ⓘ ①의 길이 입력 후 대각선 길이를 입력하면 ②의 길이를 자동 계산합니다.", "modal.placement.surface.setting.diagonal.length": "대각선 길이", From 6e1ae73cccfb1c109bff2a68143db5cd9e15a650 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, 27 Feb 2025 13:57:18 +0900 Subject: [PATCH 4/5] =?UTF-8?q?api=20=EB=8D=B0=EC=9D=B4=ED=85=A8=20?= =?UTF-8?q?=ED=98=95=ED=83=9C=20=EB=B3=80=EA=B2=BD=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EB=90=9C=20PCS=20->=20PCS=20=EC=A0=84=EC=B2=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../step/PowerConditionalSelect.jsx | 4 +- .../step/type/PassivityCircuitAllocation.jsx | 62 +++++-------------- 2 files changed, 19 insertions(+), 47 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/step/PowerConditionalSelect.jsx b/src/components/floor-plan/modal/circuitTrestle/step/PowerConditionalSelect.jsx index df6d15b1..f531f97f 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/PowerConditionalSelect.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/PowerConditionalSelect.jsx @@ -161,9 +161,9 @@ export default function PowerConditionalSelect(props) { return } if (selectedMaker.pcsMkrMultiType === PCS_MKR_MULTI_TYPE.MULTI) { - setSelectedModels([...selectedModels, { ...selectedRow, id: uuidv4(), isUsed: false }]) + setSelectedModels([...selectedModels, { ...selectedRow, id: uuidv4() }]) } else if (!selectedModels.find((m) => m.itemId === selectedRow.itemId)) { - setSelectedModels([...selectedModels, { ...selectedRow, id: uuidv4(), isUsed: false }]) + setSelectedModels([...selectedModels, { ...selectedRow, id: uuidv4() }]) } setSelectedRow(null) } diff --git a/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx b/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx index faf31eef..e009a864 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx @@ -157,18 +157,10 @@ export default function PassivityCircuitAllocation(props) { obj.pcsItemCode = selectedPcs.id obj.circuit = moduleCircuitText obj.circuitNumber = getCircuitNumber() - tempSelectedPcs.used = true setSelectedPcs(tempSelectedPcs) canvas.add(moduleCircuitText) }) - let pcsList = JSON.parse(JSON.stringify(selectedModels)).map((model) => { - if (model.id === selectedPcs.id) { - model.isUsed = true - } - return model - }) - const roofSurfaceList = canvas .getObjects() .filter((obj) => POLYGON_TYPE.MODULE_SETUP_SURFACE === obj.name && obj?.modules.length > 0) @@ -210,29 +202,24 @@ export default function PassivityCircuitAllocation(props) { result[firstPart].count += 1 } } - console.log('🚀 ~ handleCircuitNumberFix ~ result:', result) - const usedPcses = pcsList.filter((model) => model.isUsed) - const pcsItemList = usedPcses.map((model, index) => { - if (result[(index + 1).toString()]) { - return { - pcsMkrCd: model.pcsMkrCd, - pcsSerCd: model.pcsSerCd, - itemId: model.itemId, - itemNm: model.itemNm, - goodsNo: model.goodsNo, - serQtyList: [ - { - serQty: result[(index + 1).toString()].maxValue, - paralQty: result[(index + 1).toString()].count, - rmdYn: 'Y', - usePossYn: 'Y', - roofSurfaceList: roofSurfaceList, - }, - ], - } + const pcsItemList = selectedModels.map((model, index) => { + return { + pcsMkrCd: model.pcsMkrCd, + pcsSerCd: model.pcsSerCd, + itemId: model.itemId, + itemNm: model.itemNm, + goodsNo: model.goodsNo, + serQtyList: [ + { + serQty: result[(index + 1).toString()] ? result[(index + 1).toString()].maxValue : 0, + paralQty: result[(index + 1).toString()] ? result[(index + 1).toString()].count : 0, + rmdYn: 'Y', + usePossYn: 'Y', + roofSurfaceList: roofSurfaceList, + }, + ], } }) - const params = { ...getApiProps(), useModuleItemList: getSelectedModuleList(), @@ -259,13 +246,10 @@ export default function PassivityCircuitAllocation(props) { canvas.renderAll() }, }) - setSelectedPcs({ ...selectedPcs, used: false }) setTargetModules([]) return } - setSelectedModels(pcsList) - setTargetModules([]) setCircuitNumber(+circuitNumber + 1) setModuleStatisticsData() @@ -414,18 +398,10 @@ export default function PassivityCircuitAllocation(props) { obj.pcsItemCode = selectedPcs.id obj.circuit = moduleCircuitText obj.circuitNumber = getCircuitNumber() - tempSelectedPcs.used = true setSelectedPcs(tempSelectedPcs) canvas.add(moduleCircuitText) }) - let pcsList = JSON.parse(JSON.stringify(selectedModels)).map((model) => { - if (model.id === selectedPcs.id) { - model.isUsed = true - } - return model - }) - const roofSurfaceList = canvas .getObjects() .filter((obj) => POLYGON_TYPE.MODULE_SETUP_SURFACE === obj.name && obj?.modules.length > 0) @@ -443,8 +419,7 @@ export default function PassivityCircuitAllocation(props) { }), } }) - const usedPcses = pcsList.filter((model) => model.isUsed) - const pcsItemList = usedPcses.map((model, index) => { + const pcsItemList = selectedModels.map((model, index) => { return { pcsMkrCd: model.pcsMkrCd, pcsSerCd: model.pcsSerCd, @@ -489,13 +464,10 @@ export default function PassivityCircuitAllocation(props) { canvas.renderAll() }, }) - setSelectedPcs({ ...selectedPcs, used: false }) setTargetModules([]) return } - setSelectedModels(pcsList) - setTargetModules([]) setModuleStatisticsData() setTabNum(2) From d2996ee21733cf08e5001c521262859e26b152ba 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, 27 Feb 2025 14:08:13 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=B4=88=EA=B8=B0=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=9D=BC=EB=B3=B8=EC=96=B4=EB=A1=9C=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/store/circuitTrestleAtom.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/store/circuitTrestleAtom.js b/src/store/circuitTrestleAtom.js index d1477e13..b513a16c 100644 --- a/src/store/circuitTrestleAtom.js +++ b/src/store/circuitTrestleAtom.js @@ -36,8 +36,8 @@ export const moduleStatisticsState = atom({ key: 'moduleStatisticsState', default: { header: [ - { name: '지붕면', prop: 'name' }, - { name: `발전량(kW)`, prop: 'amount' }, + { name: '屋根面', prop: 'name' }, + { name: `合計(kW)`, prop: 'amount' }, ], rows: [], footer: [