diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index 1d6ac400..2881ec2c 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -66,14 +66,6 @@ export default function CircuitTrestleSetting({ id }) { selectedModels, setSelectedModels, } - const stepUpProps = { - tabNum, - setTabNum, - models, - setModels, - circuitAllocationType, - setCircuitAllocationType, - } useEffect(() => { if (!managementState) { @@ -89,7 +81,58 @@ export default function CircuitTrestleSetting({ id }) { }) return } - const roofSurfaceList = canvas + + console.log('πŸš€ ~ onAutoRecommend ~ selectedModules:', selectedModules) + + const params = { + ...getApiProps(), + useModuleItemList: getSelectedModuleList(), + roofSurfaceList: getRoofSurfaceList(), + pcsItemList: getModelList(), + } + + getPcsAutoRecommendList(params).then((res) => { + if (res.data?.pcsItemList) { + setModels(res.data.pcsItemList) + setTabNum(2) + } else { + swalFire({ + title: 'νŒŒμ›Œμ»¨λ””μ…”λ„ˆλ₯Ό μΆ”κ°€ν•΄ μ£Όμ„Έμš”.', + type: 'alert', + }) + } + }) + } + + const getApiProps = () => { + return { + maxConnYn: pcsCheck.max ? 'Y' : 'N', + smpCirYn: pcsCheck.division ? 'Y' : 'N', + coldZoneYn: managementState?.coldRegionFlg === '1' ? 'Y' : 'N', + } + } + + const getModelList = () => { + return models.map((model) => { + return { + itemId: model.itemId, + pcsMkrCd: model.pcsMkrCd, + pcsSerCd: model.pcsSerCd, + } + }) + } + + const getSelectedModuleList = () => { + return selectedModules.itemList.map((m) => { + return { + itemId: m.itemId, + mixMatlNo: m.mixMatlNo, + } + }) + } + + const getRoofSurfaceList = () => { + return canvas .getObjects() .filter((obj) => obj.name === POLYGON_TYPE.MODULE_SETUP_SURFACE) .map((obj) => { @@ -107,37 +150,6 @@ export default function CircuitTrestleSetting({ id }) { }), } }) - - const params = { - maxConnYn: pcsCheck.max ? 'Y' : 'N', - smpCirYn: pcsCheck.division ? 'Y' : 'N', - coldZoneYn: managementState?.coldRegionFlg === '1' ? 'Y' : 'N', - useModuleItemList: selectedModules.itemList.map((m) => { - return { - itemId: m.itemId, - mixMatlNo: m.mixMatlNo, - } - }), - roofSurfaceList: roofSurfaceList, - pcsItemList: models.map((model) => { - return { - itemId: model.itemId, - pcsMkrCd: model.pcsMkrCd, - pcsSerCd: model.pcsSerCd, - } - }), - } - getPcsAutoRecommendList(params).then((res) => { - if (res.data?.pcsItemList) { - setModels(res.data.pcsItemList) - setTabNum(2) - } else { - swalFire({ - title: 'νŒŒμ›Œμ»¨λ””μ…”λ„ˆλ₯Ό μΆ”κ°€ν•΄ μ£Όμ„Έμš”.', - type: 'alert', - }) - } - }) } const onAutoAllocation = () => { @@ -200,6 +212,19 @@ export default function CircuitTrestleSetting({ id }) { setAllocationType(ALLOCATION_TYPE.PASSIVITY) } + const stepUpProps = { + tabNum, + setTabNum, + models, + setModels, + circuitAllocationType, + setCircuitAllocationType, + getApiProps, + getSelectedModuleList, + getRoofSurfaceList, + getModelList, + } + return (
diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index 19a701dc..721e6dff 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -24,9 +24,16 @@ 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) + } + useEffect(() => { + console.log('πŸš€ ~ useEffect ~ >>>>>>>>>>>> props:', props) + if (!managementState) { - console.log('πŸš€ ~ useEffect ~ managementState:', managementState) setManagementState(managementStateLoaded) } @@ -73,48 +80,86 @@ export default function StepUp(props) { } //getPcsVoltageStepUpList(null) - getPcsVoltageStepUpList().then((res) => { + // PCS μŠΉμ••μ„€μ • 정보 쑰회 + fetchStepUpData() + }, []) + + const fetchStepUpData = async () => { + try { + const res = await getPcsVoltageStepUpList() if (res?.result.code === 200 && res?.data) { const dataArray = Array.isArray(res.data) ? res.data : [res.data] - const stepUpListData = dataArray.map((stepUps) => ({ - ...stepUps, - optionList: (stepUps.optionList || []).map((option) => ({ - pcsOptCd: option.pcsOptCd, - pcsOptNm: option.pcsOptNm, - pcsOptNmJp: option.pcsOptNmJp, - })), - pcsItemList: (stepUps.pcsItemList || []).map((item) => ({ - goodsNo: item.goodsNo, - itemId: item.itemId, - itemNm: item.itemNm, - pcsMkrCd: item.pcsMkrCd, - pcsSerCd: item.pcsSerCd, - connList: (item.connList || []).map((conn) => ({ - connAllowCur: conn.connAllowCur, - connMaxParalCnt: conn.connMaxParalCnt, - goodsNo: conn.goodsNo, - itemId: conn.itemId, - itemNm: conn.itemNm, - vstuParalCnt: conn.vstuParalCnt, - })), - serQtyList: (item.serQtyList || []).map((qty) => ({ - serQty: qty.serQty, - paralQty: qty.paralQty, - })), - })), - })) + const stepUpListData = formatStepUpListData(dataArray) console.log('πŸš€ ~ useEffect ~ getPcsVoltageStepUpList ~ stepUpListData:', stepUpListData) setStepUpListData(stepUpListData) - setOptCodes(res.data.optionList.map((opt) => ({ ...opt, code: opt.pcsOptCd, name: opt.pcsOptNm, nameJp: opt.pcsOptNmJp }))) + // PCS μ˜΅μ…˜ 쑰회 + const formattedOptCodes = formatOptionCodes(res.data.optionList) + setOptCodes(formattedOptCodes) } - }) - }, []) + } catch (error) { + console.error('Error fetching step up data:', error) + } + } - useCanvasPopupStatusController(6) - const canvasPopupStatusState = useRecoilValue(canvasPopupStatusStore) - if (Object.keys(canvasPopupStatusState[6]).length !== 0) { - console.log('πŸš€ ~ useEffect ~ canvasPopupStatusState :', canvasPopupStatusState) + // PCS μ˜΅μ…˜ 쑰회 + const formatOptionCodes = (optionList = []) => { + return optionList.map((opt) => ({ + code: opt.pcsOptCd, + name: opt.pcsOptNm, + nameJp: opt.pcsOptNmJp, + })) + } + + // PCS μŠΉμ••μ„€μ • 정보 포맷 + const formatStepUpListData = (dataArray = []) => { + return dataArray.map((stepUps) => ({ + ...stepUps, + optionList: formatOptionList(stepUps.optionList), + pcsItemList: formatPcsItemList(stepUps.pcsItemList), + })) + } + + // PCS μ˜΅μ…˜ 포맷 + const formatOptionList = (optionList = []) => { + return optionList.map((option) => ({ + pcsOptCd: option.pcsOptCd, + pcsOptNm: option.pcsOptNm, + pcsOptNmJp: option.pcsOptNmJp, + })) + } + + // PCS μ•„μ΄ν…œ 포맷 + const formatPcsItemList = (pcsItemList = []) => { + return pcsItemList.map((item) => ({ + goodsNo: item.goodsNo, + itemId: item.itemId, + itemNm: item.itemNm, + pcsMkrCd: item.pcsMkrCd, + pcsSerCd: item.pcsSerCd, + connList: formatConnList(item.connList), + serQtyList: formatSerQtyList(item.serQtyList), + })) + } + + // PCS μ—°κ²° 포맷 + const formatConnList = (connList = []) => { + return connList.map((conn) => ({ + connAllowCur: conn.connAllowCur, + connMaxParalCnt: conn.connMaxParalCnt, + goodsNo: conn.goodsNo, + itemId: conn.itemId, + itemNm: conn.itemNm, + vstuParalCnt: conn.vstuParalCnt, + })) + } + + // PCS μ‹œλ¦¬μ¦ˆ 포맷 + const formatSerQtyList = (serQtyList = []) => { + return serQtyList.map((qty) => ({ + serQty: qty.serQty, + paralQty: qty.paralQty, + })) } // 각 λͺ¨λ“ˆμ˜ 탭을 λ³€κ²½ν•˜λŠ” ν•¨μˆ˜