From 15b713a93975e03b84c7fa689f16b9cb119f5053 Mon Sep 17 00:00:00 2001 From: changkyu choi Date: Fri, 24 Jan 2025 17:53:08 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=8C=EC=9B=8C=EC=BB=A8=EB=94=94=EC=85=98?= =?UTF-8?q?=EB=84=88=EC=84=A0=ED=83=9D=20=ED=99=94=EB=A9=B4=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=ED=9A=8C=EB=A1=9C=ED=95=A0=EB=8B=B9=20=EC=8B=9C=20?= =?UTF-8?q?=EB=A9=94=EC=8B=9C=EC=A7=80=EC=B2=98=EB=A6=AC=20=EB=B0=8F=20?= =?UTF-8?q?=EC=8A=B9=EC=95=95=EC=84=A4=EC=A0=95=20=ED=99=94=EB=A9=B4=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../circuitTrestle/CircuitTrestleSetting.jsx | 16 +++- .../modal/circuitTrestle/step/StepUp.jsx | 96 +++++++++++++++---- 2 files changed, 89 insertions(+), 23 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index 51ca0318..613441be 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -94,10 +94,18 @@ export default function CircuitTrestleSetting({ id }) { setModels(res.data.pcsItemList) setTabNum(2) } else { - swalFire({ - title: '파워컨디셔너를 추가해 주세요.', - type: 'alert', - }) + // 데이터가 없는 경우 오류 메시지 확인 필요 + if (res.result.resultCode === 'E') { + swalFire({ + title: res.result.resultMsg, + type: 'alert', + }) + } else { + swalFire({ + title: '파워컨디셔너를 추가해 주세요.', + type: 'alert', + }) + } } }) } diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index 1d436a13..bd722b8e 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -24,19 +24,21 @@ export default function StepUp(props) { const [stepUpListData, setStepUpListData] = useState([]) const [optCodes, setOptCodes] = useState([]) - useCanvasPopupStatusController(6) - const canvasPopupStatusState = useRecoilValue(canvasPopupStatusStore) - if (Object.keys(canvasPopupStatusState[6]).length !== 0) { - console.log('🚀 ~ useEffect ~ canvasPopupStatusState :', canvasPopupStatusState) - } + const [selectedRows, setSelectedRows] = useState({}) + const [isManualSelection, setIsManualSelection] = useState({}) + + // useCanvasPopupStatusController(6) + // const canvasPopupStatusState = useRecoilValue(canvasPopupStatusStore) + // if (Object.keys(canvasPopupStatusState[6]).length !== 0) { + // console.log('🚀 ~ useEffect ~ canvasPopupStatusState :', canvasPopupStatusState) + // } useEffect(() => { - console.log('🚀 ~ useEffect ~ >>>>>>>>>>>> props:', props) - // PCS 승압설정 정보 조회 fetchStepUpData() }, []) + // PCS 승압설정 정보 조회 const fetchStepUpData = async () => { try { const params = { @@ -46,14 +48,14 @@ export default function StepUp(props) { pcsItemList: props.getPcsItemList(), // PCS 아이템 목록 } - console.log('🚀 ~ fetchStepUpData ~ params:', params) - + // PCS 승압설정 정보 조회 const res = await getPcsVoltageStepUpList(params) - console.log('🚀 ~ fetchStepUpData ~ res:', res) + if (res?.result.code === 200 && res?.data) { const dataArray = Array.isArray(res.data) ? res.data : [res.data] const stepUpListData = formatStepUpListData(dataArray) - console.log('🚀 ~ useEffect ~ getPcsVoltageStepUpList ~ stepUpListData:', stepUpListData) + + // PCS 승압설정 정보 SET setStepUpListData(stepUpListData) // PCS 옵션 조회 @@ -80,6 +82,7 @@ export default function StepUp(props) { ...stepUps, optionList: formatOptionList(stepUps.optionList), pcsItemList: formatPcsItemList(stepUps.pcsItemList), + selectedPcsItem: formatPcsItemList(stepUps.pcsItemList), })) } @@ -107,6 +110,8 @@ export default function StepUp(props) { // PCS 연결 포맷 const formatConnList = (connList = []) => { + if (!connList) return [] // null인 경우 빈 배열 반환 + return connList?.map((conn) => ({ connAllowCur: conn.connAllowCur ? conn.connAllowCur : 0, connMaxParalCnt: conn.connMaxParalCnt ? conn.connMaxParalCnt : 0, @@ -122,6 +127,8 @@ export default function StepUp(props) { return serQtyList?.map((qty) => ({ serQty: qty.serQty ? qty.serQty : 0, paralQty: qty.paralQty ? qty.paralQty : 0, + rmdYn: qty.rmdYn ? qty.rmdYn : 'N', + usePossYn: qty.usePossYn ? qty.usePossYn : 'Y', })) } @@ -133,6 +140,39 @@ export default function StepUp(props) { })) } + // 행 선택 핸들러 함수 추가 + const handleRowClick = (stepUpId, pcsIdx, serQtyIdx) => { + const rowKey = `${stepUpId}_${pcsIdx}_${serQtyIdx}` + const pcsKey = `${stepUpId}_${pcsIdx}` + + setSelectedRows((prev) => { + // 현재 stepUpId에 대한 선택 상태가 없으면 빈 객체로 초기화 + const currentStepUpSelections = prev[stepUpId] || {} + + // 이미 선택된 행을 다시 클릭하는 경우, 선택을 해제하지 않음 + if (currentStepUpSelections[pcsKey] === rowKey) { + return prev + } + + return { + ...prev, + [stepUpId]: { + ...currentStepUpSelections, + [pcsKey]: rowKey, + }, + } + }) + + // 수동 선택 상태를 업데이트하되, 기존 추천 선택은 유지 + setIsManualSelection((prev) => ({ + ...prev, + [stepUpId]: { + ...prev[stepUpId], + [pcsKey]: true, + }, + })) + } + return ( <>
@@ -143,9 +183,7 @@ export default function StepUp(props) { {stepUp?.pcsItemList.map((_, idx) => (
-
- {stepUp.pcsItemList[idx].goodsNo} -
+
{stepUp.pcsItemList[idx].goodsNo}
@@ -155,9 +193,21 @@ export default function StepUp(props) { - {stepUp.pcsItemList[idx].serQtyList.map((item) => { + {stepUp.pcsItemList[idx].serQtyList.map((item, serQtyIdx) => { + const rowKey = `${stepUp.id}_${idx}_${serQtyIdx}` + const pcsKey = `${stepUp.id}_${idx}` return ( - + handleRowClick(stepUp.id, idx, serQtyIdx)} + style={{ cursor: 'pointer' }} + > @@ -195,9 +245,17 @@ export default function StepUp(props) { - - - + + +
{item.serQty} {item.paralQty}
{stepUp.pcsItemList[idx].connList?.goodsNo}{stepUp.pcsItemList[idx].connList?.connMaxParalCnt}{stepUp.pcsItemList[idx].connList?.vstuParalCnt} + {stepUp.pcsItemList[idx].connList?.[0]?.goodsNo ? stepUp.pcsItemList[idx].connList?.[0]?.goodsNo : '-'} + + {stepUp.pcsItemList[idx].connList?.[0]?.connMaxParalCnt + ? (stepUp.pcsItemList[idx].connList?.[0]?.connMaxParalCnt ?? '-') + : '-'} + + {stepUp.pcsItemList[idx].connList?.[0]?.vstuParalCnt ? stepUp.pcsItemList[idx].connList?.[0]?.vstuParalCnt : '-'} +