From a6c37cbb9458d12d12a7c73048d18c8389109000 Mon Sep 17 00:00:00 2001 From: changkyu choi Date: Thu, 6 Feb 2025 18:13:01 +0900 Subject: [PATCH] =?UTF-8?q?swalFire=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=ED=9A=8C=EB=A1=9C=ED=95=A0=EB=8B=B9=20?= =?UTF-8?q?=EC=8B=9C=20=ED=9A=8C=EB=A1=9C=EB=B2=88=ED=98=B8=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=20=ED=91=9C=EC=8B=9C=20=EC=84=A4=EC=A0=95=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/circuitTrestle/step/StepUp.jsx | 95 +++++++++++++------ 1 file changed, 67 insertions(+), 28 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index ec5f554f..804a2770 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -12,6 +12,7 @@ import { useMasterController } from '@/hooks/common/useMasterController' import { v4 as uuidv4 } from 'uuid' import { globalLocaleStore } from '@/store/localeAtom' import { POLYGON_TYPE } from '@/common/common' +import { useSwal } from '@/hooks/useSwal' import { circuitNumDisplaySelector } from '@/store/settingAtom' export default function StepUp(props) { @@ -28,6 +29,7 @@ export default function StepUp(props) { getModuleList, } = props const { getMessage } = useMessage() + const { swalFire } = useSwal() const globalLocale = useRecoilValue(globalLocaleStore) const [moduleTab, setModuleTab] = useState(1) const [moduleTabs, setModuleTabs] = useState({}) @@ -70,35 +72,73 @@ export default function StepUp(props) { ...props.getOptYn(), // 옵션 Y/N useModuleItemList: props.getUseModuleItemList(), // 사용된 모듈아이템 List roofSurfaceList: props.getRoofSurfaceList(), // 지붕면 목록 - pcsItemList: selectedModels.length === 0 ? props.getPcsItemList() : getSelectedPcsItemList(), // PCS 아이템 목록 + pcsItemList: props.getSelectedPcsItemList(), // PCS 아이템 목록 } - // 회로 구성 가능 여부 체크 - getPcsVoltageChk({ ...params, pcsItemList: getSelectedPcsItemList() }).then((res) => { - if (res.resultCode === 'S') { - // 회로 구성 가능 여부 체크 통과 시 승압설정 정보 조회 - getPcsVoltageStepUpList(params).then((res) => { - if (res?.result.code === 200 && res?.data) { - if (selectedModels.length === 0) { - setSelectedModels(res.data.pcsItemList) + // 회로 구성 가능 여부 체크 통과 시 승압설정 정보 조회 + getPcsVoltageStepUpList(params).then((res) => { + if (res.result.resultCode === 'S') { + if (res?.result.code === 200 && res?.data) { + const dataArray = Array.isArray(res.data) ? res.data : [res.data] + const stepUpListData = formatStepUpListData(dataArray) + + // PCS 승압설정 정보 SET + setStepUpListData(stepUpListData) + + // PCS 옵션 조회 + const formattedOptCodes = formatOptionCodes(res.data.optionList) + setOptCodes(formattedOptCodes) + setSeletedOption(formattedOptCodes[0]) + + // 캔버스에 회로 정보 적용 + //stepUpListData[0].pcsItemList.forEach((pcsItem) => { + stepUpListData[0].pcsItemList.forEach((pcsItem) => { + const selectedSerQty = pcsItem.serQtyList.find((serQty) => serQty.selected) + if (selectedSerQty) { + selectedSerQty.roofSurfaceList.forEach((roofSurface) => { + const targetSurface = canvas.getObjects().filter((obj) => obj.id === roofSurface.roofSurfaceId)[0] + const moduleIds = targetSurface.modules.map((module) => module.id) + + // 기존 모듈 텍스트 삭제 + canvas + .getObjects() + .filter((obj) => moduleIds.includes(obj.parentId)) + .forEach((text) => canvas.remove(text)) + + // 새로운 모듈 회로 정보 추가 + roofSurface.moduleList.forEach((module) => { + const targetModule = canvas.getObjects().filter((obj) => obj.id === module.uniqueId)[0] + const moduleCircuitText = new fabric.Text(module.circuit, { + left: targetModule.left + targetModule.width / 2, + top: targetModule.top + targetModule.height / 2, + fill: 'black', + fontSize: 20, + width: targetModule.width, + height: targetModule.height, + textAlign: 'center', + originX: 'center', + originY: 'center', + name: 'circuitNumber', + parentId: targetModule.id, + circuitInfo: module.pcsItemId, + visible: isDisplayCircuitNumber, + }) + targetModule.circuit = moduleCircuitText + targetModule.pcsItemId = module.pcsItemId + targetModule.circuitNumber = module.circuit + canvas.add(moduleCircuitText) + }) + }) } - const dataArray = Array.isArray(res.data) ? res.data : [res.data] - const stepUpListData = formatStepUpListData(dataArray) + }) - // PCS 승압설정 정보 SET - setStepUpListData(stepUpListData) - - // PCS 옵션 조회 - const formattedOptCodes = formatOptionCodes(res.data.optionList) - setOptCodes(formattedOptCodes) - setSeletedOption(formattedOptCodes[0]) - } - }) - } else { - swalFire({ - title: res.resultMsg, - type: 'alert', - }) + canvas.renderAll() + } else { + swalFire({ + title: res.result.resultMsg, + type: 'alert', + }) + } } }) } catch (error) { @@ -170,7 +210,6 @@ export default function StepUp(props) { // Update res.data with modified pcsItemList res.data.pcsItemList = pcsItemListWithSerQty - setSelectedModels(pcsItemListWithSerQty) const dataArray = Array.isArray(res.data) ? res.data : [res.data] const stepUpListData = formatStepUpListData(dataArray) @@ -303,8 +342,8 @@ export default function StepUp(props) { // 선택된 행 정보 저장 setStepUpListData(tempStepUpListData) - console.log('🚀 ~ handleRowClick ~ tempStepUpListData:', tempStepUpListData) - console.log('🚀 ~ handleRowClick ~ selectedData:', selectedData) + // console.log('🚀 ~ handleRowClick ~ tempStepUpListData:', tempStepUpListData) + // console.log('🚀 ~ handleRowClick ~ selectedData:', selectedData) // 파워컨디셔너 옵션 조회 요청 파라미터 const params = {