From b6fa46a37d510994f939abb61c0c770431e7e9c8 Mon Sep 17 00:00:00 2001 From: changkyu choi Date: Fri, 7 Feb 2025 10:01:12 +0900 Subject: [PATCH] =?UTF-8?q?=ED=9A=8C=EB=A1=9C=EC=84=A4=EC=A0=95=20handleRo?= =?UTF-8?q?wClick=20=EC=8B=A4=ED=96=89=20=EC=8B=9C=20=ED=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20uniqueIndex=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/circuitTrestle/step/StepUp.jsx | 75 ++++++++++--------- 1 file changed, 41 insertions(+), 34 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index 8726f012..f86a31f2 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -261,12 +261,13 @@ export default function StepUp(props) { // PCS 아이템 포맷 const formatPcsItemList = (pcsItemList = []) => { - return pcsItemList?.map((item) => ({ + return pcsItemList?.map((item, index) => ({ goodsNo: item.goodsNo ? item.goodsNo : '', itemId: item.itemId ? item.itemId : '', itemNm: item.itemNm ? item.itemNm : '', pcsMkrCd: item.pcsMkrCd ? item.pcsMkrCd : '', pcsSerCd: item.pcsSerCd ? item.pcsSerCd : '', + uniqueIndex: `${item.itemId}_${index}`, // 고유 식별자 추가(동일한 PCS를 구분) connList: formatConnList(item.connList), serQtyList: formatSerQtyList(item.serQtyList), })) @@ -346,43 +347,49 @@ export default function StepUp(props) { // console.log('🚀 ~ handleRowClick ~ tempStepUpListData:', tempStepUpListData) // console.log('🚀 ~ handleRowClick ~ selectedData:', selectedData) - // 파워컨디셔너 옵션 조회 요청 파라미터 - const params = { - ...props.getOptYn(), // 옵션 Y/N - useModuleItemList: props.getUseModuleItemList(), // 사용된 모듈아이템 List - roofSurfaceList: props.getRoofSurfaceList(), // 지붕면 목록 - pcsItemList: props.getSelectedPcsItemList().map((pcsItem) => { - // PCS 아이템 목록 - // tempStepUpListData에서 해당 PCS 아이템 찾기 - const matchingPcsItem = tempStepUpListData[0].pcsItemList.find((item) => item.pcsId === pcsItem.pcsId && item.itemId === pcsItem.itemId) + console.log('mainIdx, subIdx', mainIdx, subIdx) - // 선택된 serQty 찾기 - const selectedSerQty = matchingPcsItem?.serQtyList.find((serQty) => serQty.selected)?.serQty || 0 + // PCS 2개 이상 또는 첫번째 PCS 선택 시에만 실행 + if (stepUpListData[0].pcsItemList.length > 1 && mainIdx === 0) { + // 파워컨디셔너 옵션 조회 요청 파라미터 + const params = { + ...props.getOptYn(), // 옵션 Y/N + useModuleItemList: props.getUseModuleItemList(), // 사용된 모듈아이템 List + roofSurfaceList: props.getRoofSurfaceList(), // 지붕면 목록 + pcsItemList: props.getSelectedPcsItemList().map((pcsItem, index) => { + // PCS 아이템 목록 + // tempStepUpListData에서 해당 PCS 아이템 찾기 + // uniqueIndex를 사용하여 매칭 + const matchingPcsItem = tempStepUpListData[0].pcsItemList.find((item) => item.uniqueIndex === `${pcsItem.itemId}_${index}`) - return { - ...pcsItem, - applySerQty: selectedSerQty, - } - }), - } + // 선택된 serQty 찾기 + const selectedSerQty = matchingPcsItem?.serQtyList.find((serQty) => serQty.selected)?.serQty || 0 - // PCS 승압설정 정보 조회 - //const res = await getPcsVoltageStepUpList(params) - //getPcsManualConfChk(params).then((res) => { - getPcsVoltageStepUpList(params).then((res) => { - 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]) + return { + ...pcsItem, + applySerQty: selectedSerQty, + } + }), } - }) + + // PCS 승압설정 정보 조회 + //const res = await getPcsVoltageStepUpList(params) + //getPcsManualConfChk(params).then((res) => { + getPcsVoltageStepUpList(params).then((res) => { + 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]) + } + }) + } selectedData.roofSurfaceList.forEach((roofSurface) => { const targetSurface = canvas.getObjects().filter((obj) => obj.id === roofSurface.roofSurfaceId)[0]