From e9bee48e2869e1b9d5f011e170398e76186d6f0a 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 Feb 2025 17:01:58 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EC=88=98=EB=8F=99=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EB=B6=80=EB=B6=84=20=EB=8B=A4=EA=B5=AD=EC=96=B4=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/locales/ja.json | 2 ++ src/locales/ko.json | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/locales/ja.json b/src/locales/ja.json index 0514e960..225b8b34 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -153,7 +153,9 @@ "modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num": "設定する回路番号(1~)", "modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.info": "標準回路{0}章~{1}章", "modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset": "選択したパワーコンディショナーの回路番号の初期化", + "modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset.info": "선택된 파워 컨디셔너의 회로할당을 초기화합니다.(JA)", "modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset": "すべての回路番号の初期化", + "modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset.info": "회로 할당의 설정을 초기화합니다.(JA)", "modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num.fix": "番号確定", "modal.circuit.trestle.setting.step.up.allocation": "昇圧設定", "modal.circuit.trestle.setting.step.up.allocation.serial.amount": "シリアル枚数", diff --git a/src/locales/ko.json b/src/locales/ko.json index e6d5290a..b74bcd0f 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -153,7 +153,9 @@ "modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num": "설정할 회로번호(1~)", "modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.info": "표준회로{0}장~{1}장", "modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset": "선택된 파워컨디셔너의 회로번호 초기화", + "modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset.info": "선택된 파워 컨디셔너의 회로할당을 초기화합니다.", "modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset": "모든 회로번호 초기화", + "modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset.info": "회로 할당의 설정을 초기화합니다.", "modal.circuit.trestle.setting.circuit.allocation.passivity.circuit.num.fix": "번호 확정", "modal.circuit.trestle.setting.step.up.allocation": "승압 설정", "modal.circuit.trestle.setting.step.up.allocation.serial.amount": "직렬매수", From 88db95406b27c989909fc7414318a6f662ac055d 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 Feb 2025 17:02:48 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EB=AA=A8=EB=93=88=20=EB=B0=B0=EC=B9=98=20?= =?UTF-8?q?=ED=9B=84=20'=EB=AA=A8=EB=93=88/=EA=B0=80=EB=8C=80=EC=84=A4?= =?UTF-8?q?=EC=A0=95'=20=EC=A7=84=EC=9E=85=EC=8B=9C=20'=EB=AA=A8=EB=93=88?= =?UTF-8?q?=20=EB=B0=B0=EC=B9=98'=20=ED=83=AD=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../floor-plan/modal/basic/BasicSetting.jsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/floor-plan/modal/basic/BasicSetting.jsx b/src/components/floor-plan/modal/basic/BasicSetting.jsx index 51620935..a34fe3f8 100644 --- a/src/components/floor-plan/modal/basic/BasicSetting.jsx +++ b/src/components/floor-plan/modal/basic/BasicSetting.jsx @@ -6,7 +6,7 @@ import PitchModule from '@/components/floor-plan/modal/basic/step/pitch/PitchMod import PitchPlacement from '@/components/floor-plan/modal/basic/step/pitch/PitchPlacement' import Placement from '@/components/floor-plan/modal/basic/step/Placement' import { useRecoilValue, useRecoilState } from 'recoil' -import { canvasSettingState, isManualModuleSetupState } from '@/store/canvasAtom' +import { canvasSettingState, canvasState, isManualModuleSetupState } from '@/store/canvasAtom' import { usePopup } from '@/hooks/usePopup' import { Orientation } from '@/components/floor-plan/modal/basic/step/Orientation' import { useModuleBasicSetting } from '@/hooks/module/useModuleBasicSetting' @@ -19,6 +19,7 @@ import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupSta import { useMasterController } from '@/hooks/common/useMasterController' import { loginUserStore } from '@/store/commonAtom' import { currentCanvasPlanState } from '@/store/canvasAtom' +import { POLYGON_TYPE } from '@/common/common' export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) { const { getMessage } = useMessage() @@ -32,6 +33,7 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) { const addedRoofs = useRecoilValue(addedRoofsState) const loginUserState = useRecoilValue(loginUserStore) const currentCanvasPlan = useRecoilValue(currentCanvasPlanState) + const canvas = useRecoilValue(canvasState) // const { initEvent } = useContext(EventContext) const { manualModuleSetup, autoModuleSetup, manualFlatroofModuleSetup, autoFlatroofModuleSetup } = useModuleBasicSetting(1) @@ -88,6 +90,17 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) { const res = await updateObjectDate(params) } + useEffect(() => { + let hasModules = canvas + .getObjects() + .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) + .some((obj) => obj.modules?.length > 0) + + if (hasModules) { + setTabNum(3) + } + }, []) + return (
From 8f1710e3dc9e30a254e420c28f83f9af9a32fe04 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 Feb 2025 17:53:58 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EB=A9=80=ED=8B=B0=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=A7=91=EA=B3=84=ED=91=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../circuitTrestle/CircuitTrestleSetting.jsx | 1 + .../step/PowerConditionalSelect.jsx | 9 +- .../modal/circuitTrestle/step/StepUp.jsx | 7 ++ .../step/type/PassivityCircuitAllocation.jsx | 106 +----------------- src/hooks/module/useModule.js | 10 +- 5 files changed, 25 insertions(+), 108 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index 31f3aaa4..427631c0 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -500,6 +500,7 @@ export default function CircuitTrestleSetting({ id }) { selectedModels, setSelectedModels, managementState, + getUseModuleItemList, } // 수동할당 컴포넌트 속성 diff --git a/src/components/floor-plan/modal/circuitTrestle/step/PowerConditionalSelect.jsx b/src/components/floor-plan/modal/circuitTrestle/step/PowerConditionalSelect.jsx index 6b049002..715d3884 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/PowerConditionalSelect.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/PowerConditionalSelect.jsx @@ -27,6 +27,7 @@ export default function PowerConditionalSelect(props) { selectedModels, setSelectedModels, managementState, + getUseModuleItemList, } = props const [pcsCheck, setPcsCheck] = useRecoilState(pcsCheckState) @@ -159,8 +160,14 @@ export default function PowerConditionalSelect(props) { setModels([]) setSelectedModels([]) setSelectedMaker(option) + console.log('option', option) + getUseModuleItemList + const param = { + pcsMkrCd: option.pcsMkrCd, + mixMatlNo: getUseModuleItemList()[0].mixMatlNo, + } - getPcsMakerList(option).then((res) => { + getPcsMakerList(param).then((res) => { setSeries( res.data.map((series) => { return { ...series, selected: false } diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index a7e8932e..ec5f554f 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -350,6 +350,12 @@ export default function StepUp(props) { return module.id }) + targetSurface.modules.map((module) => { + module.circuit = null + module.circuitNumber = null + module.pcsItemId = null + }) + // 모듈 목록 삭제 canvas .getObjects() @@ -363,6 +369,7 @@ export default function StepUp(props) { roofSurface.moduleList.forEach((module) => { const targetModule = canvas.getObjects().filter((obj) => obj.id === module.uniqueId)[0] + if (module.circuit === '') return const moduleCircuitText = new fabric.Text(module.circuit, { left: targetModule.left + targetModule.width / 2, top: targetModule.top + targetModule.height / 2, 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 1c5595a6..c20c995b 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/type/PassivityCircuitAllocation.jsx @@ -33,9 +33,6 @@ export default function PassivityCircuitAllocation(props) { const isDisplayCircuitNumber = useRecoilValue(circuitNumDisplaySelector) useEffect(() => { - console.log('header, rows', header, rows) - console.log('selectedModels', selectedModels) - // setSurfaceInfo() setModuleStatisticsData() if (!managementState) { setManagementState(managementStateLoaded) @@ -78,80 +75,6 @@ export default function PassivityCircuitAllocation(props) { canvas.renderAll() } - const setSurfaceInfo = () => { - const surfaces = canvas.getObjects().filter((obj) => POLYGON_TYPE.MODULE_SETUP_SURFACE === obj.name) - // setHeaders([header[0], { name: '회로', prop: 'circuit' }, ...header.slice(1)]) - // setRows( - // rows.map((row) => { - // return { - // ...row, - // circuit: '', - // } - // }), - // ) - // let totals = {} - - // rows.forEach((row) => { - // if (header.length === 4) { - // if (!totals[header[2].prop]) totals[header[2].prop] = 0 - // totals[header[2].prop] += +row[header[2].prop] - // } else if (header.length === 5) { - // if (!totals[header[2].prop]) totals[header[2].prop] = 0 - // totals[header[2].prop] += +row[header[2].prop] - // if (!totals[header[3].prop]) totals[header[3].prop] = 0 - // totals[header[3]] += +row[header[3]] - // } - // }) - // setFooter([ - // ...['합계', ''], - // ...Object.keys(totals).map((key) => { - // return totals[key] - // }), - // Object.keys(totals).reduce((acc, key) => { - // return acc + totals[key] - // }, 0), - // ]) - // let totalWpout = 0 - // const rows = surfaces.map((surface) => { - // let wpOut = 0 - // let moduleInfo = {} - // surface.modules.forEach((module) => { - // wpOut += +module.moduleInfo.wpOut - // if (!moduleInfo[module.moduleInfo.itemId]) moduleInfo[module.moduleInfo.itemId] = 0 - // moduleInfo[module.moduleInfo.itemId]++ - // }) - // totalWpout += wpOut - // console.log('🚀 ~ moduleData.rows=surfaces.map ~ module:', module) - // return { - // roofShape: DIRECTION[surface.direction], - // powerGeneration: wpOut.toLocaleString('ko-KR', { maximumFractionDigits: 4 }), - // ...moduleInfo, - // } - // }) - - // setTotalWpout(totalWpout) - // 지붕면 리스트 -> 지붕면에 있는 모듈 리스트 -> 발전량 총합 계산 - // wpOut - - // setModuleData({ - // header: [ - // { name: getMessage('modal.panel.batch.statistic.roof.shape'), prop: 'roofShape' }, - // { name: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.circuit'), prop: 'circuit' }, - // ...selectedModules.itemList.map((module) => { - // return { - // name: module.itemNm, - // prop: module.itemId, - // } - // }), - // { - // name: `${getMessage('modal.panel.batch.statistic.power.generation.amount')}(kW)`, - // prop: 'powerGeneration', - // }, - // ], - // rows: rows, - // }) - } - const handleCircuitNumberFix = () => { let uniqueCircuitNumbers = [ ...new Set( @@ -177,6 +100,7 @@ export default function PassivityCircuitAllocation(props) { return } else if (selectedModels.length > 1) { let result = false + uniqueCircuitNumbers.forEach((number) => { if ( number.split('-')[1] === circuitNumber + ')' && @@ -229,20 +153,14 @@ export default function PassivityCircuitAllocation(props) { setSelectedPcs(tempSelectedPcs) canvas.add(moduleCircuitText) }) - console.log('🚀 ~ handleCircuitNumberFix ~ selectedModels:', selectedModels) - // let pcsList = [...selectedModels.map((model) => ({ ...model }))] - let pcsList = JSON.parse(JSON.stringify(selectedModels)) - pcsList = pcsList.map((model) => { - console.log('🚀 ~ handleCircuitNumberFix ~ pcsList:', pcsList) + let pcsList = JSON.parse(JSON.stringify(selectedModels)).map((model) => { if (model.id === selectedPcs.id) { model.isUsed = true } return model }) - console.log('🚀 ~ handleCircuitNumberFix ~ pcsList:', pcsList) - const roofSurfaceList = canvas .getObjects() .filter((obj) => POLYGON_TYPE.MODULE_SETUP_SURFACE === obj.name && obj?.modules.length > 0) @@ -261,7 +179,6 @@ export default function PassivityCircuitAllocation(props) { } }) - console.log('uniqueCircuitNumbers', uniqueCircuitNumbers) const usedPcses = pcsList.filter((model) => model.isUsed) const pcsItemList = usedPcses.map((model, index) => { return { @@ -289,7 +206,6 @@ export default function PassivityCircuitAllocation(props) { } getPcsManualConfChk(params).then((res) => { - console.log('targetModules', targetModules) if (res.resultCode === 'E') { swalFire({ text: res.resultMsg, @@ -321,8 +237,6 @@ export default function PassivityCircuitAllocation(props) { setModuleStatisticsData() }) } - console.log('🚀 ~ handleCircuitNumberFix ~ selectedModels:', selectedModels) - console.log('🚀 ~ handleCircuitNumberFix ~ selectedModels:', selectedModels) const getCircuitNumber = () => { if (selectedModels.length === 1) { @@ -334,7 +248,7 @@ export default function PassivityCircuitAllocation(props) { const initSelectedPcsCircuitNumber = () => { swalFire({ - title: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.init.info'), + title: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.selected.power.conditional.reset.info'), type: 'confirm', icon: 'warning', confirmFn: () => { @@ -355,7 +269,7 @@ export default function PassivityCircuitAllocation(props) { const initAllPcsCircuitNumber = () => { canvas.discardActiveObject() swalFire({ - title: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.init.setting.info'), + title: getMessage('modal.circuit.trestle.setting.circuit.allocation.passivity.all.power.conditional.reset.info'), type: 'confirm', icon: 'warning', confirmFn: () => { @@ -444,18 +358,6 @@ export default function PassivityCircuitAllocation(props) {
))} - {/*
- - -
-
- - -
-
- - -
*/} diff --git a/src/hooks/module/useModule.js b/src/hooks/module/useModule.js index e468b6c7..2018d0fc 100644 --- a/src/hooks/module/useModule.js +++ b/src/hooks/module/useModule.js @@ -1010,10 +1010,10 @@ export function useModule() { wpOut: 0, circuits: { wpOut: 0 }, } + } - if (!surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId]) { - surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId] = 0 - } + if (!surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId]) { + surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId] = 0 } surfaceObjects[surface.id].circuits[module.circuitNumber].circuits[module.moduleInfo.itemId]++ surfaceObjects[surface.id].circuits[module.circuitNumber].circuits.wpOut += +module.moduleInfo.wpOut @@ -1027,7 +1027,7 @@ export function useModule() { let tempRow = { name: surfaceObjects[key].roofSurface, circuit: surfaceObjects[key].circuit, - wpOut: parseInt((surfaceObjects[key].wpOut / 1000).toFixed(3)), + wpOut: parseFloat(surfaceObjects[key].wpOut / 1000), } selectedModules.itemList.forEach((module) => { tempRow[module.itemId] = surfaceObjects[key][module.itemId] @@ -1038,7 +1038,7 @@ export function useModule() { let row = { name: surfaceObjects[key].roofSurface, circuit: surfaceObjects[key].circuits[circuit].circuit, - wpOut: parseInt((surfaceObjects[key].circuits[circuit].circuits.wpOut / 1000).toFixed(3)), + wpOut: parseFloat(surfaceObjects[key].circuits[circuit].circuits.wpOut / 1000), } selectedModules.itemList.forEach((module) => { row[module.itemId] = surfaceObjects[key].circuits[circuit].circuits[module.itemId]