From 517eb7266ea8928b8930c25044da5179c82eea52 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: Mon, 3 Feb 2025 19:25:23 +0900 Subject: [PATCH] =?UTF-8?q?=ED=95=A0=EB=8B=B9=20=ED=85=8C=EC=9D=B4?= =?UTF-8?q?=EB=B8=94=20=EC=88=98=EC=A0=95,=20=EC=84=A0=ED=83=9D=EC=8B=9C?= =?UTF-8?q?=20=ED=9A=8C=EB=A1=9C=20=EB=B2=88=ED=98=B8=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 | 200 +++++++++++------- 1 file changed, 122 insertions(+), 78 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index 71dd3e30..d5b19b77 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -9,6 +9,7 @@ import { useRecoilState, useRecoilValue } from 'recoil' import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController' import { canvasPopupStatusStore } from '@/store/canvasPopupStatusAtom' import { useMasterController } from '@/hooks/common/useMasterController' +import { v4 as uuidv4 } from 'uuid' export default function StepUp(props) { const { getMessage } = useMessage() @@ -97,7 +98,7 @@ export default function StepUp(props) { pcsItemList: formatPcsItemList(stepUps.pcsItemList), selectedPcsItem: formatPcsItemList(stepUps.pcsItemList), })) - + console.log('π ~ formatStepUpListData ~ formattedData:', formattedData) // μ΄κΈ° μΆμ² κ°λ€μ selectedValuesμ μ μ₯ const initialSelectedValues = {} formattedData.forEach((stepUp) => { @@ -173,11 +174,13 @@ export default function StepUp(props) { // PCS μλ¦¬μ¦ ν¬λ§· const formatSerQtyList = (serQtyList = []) => { return serQtyList?.map((qty) => ({ + code: uuidv4(), serQty: qty.serQty ? qty.serQty : 0, paralQty: qty.paralQty ? qty.paralQty : 0, rmdYn: qty.rmdYn ? qty.rmdYn : 'N', usePossYn: qty.usePossYn ? qty.usePossYn : 'Y', roofSurfaceList: formatRoofSurfaceList(qty.roofSurfaceList), + selected: qty.rmdYn === 'Y', })) } @@ -209,75 +212,123 @@ export default function StepUp(props) { } // ν μ ν νΈλ€λ¬ ν¨μ μΆκ° - const handleRowClick = (goodsNo, pcsIdx, serQtyIdx, serQty, paralQty) => { - const rowKey = `${goodsNo}_${pcsIdx}_${serQtyIdx}` - const pcsKey = `${goodsNo}_${pcsIdx}` - - console.log('goodsNo >> ', goodsNo, serQty, paralQty) - - // νμ¬ μ νλ PCS μμ΄ν μ 보 κ°μ Έμ€κΈ° - const pcsItem = stepUpListData.find((stepUp) => stepUp.pcsItemList.find((item) => item.goodsNo === goodsNo))?.pcsItemList[pcsIdx] - - if (!pcsItem) { - console.error('PCS item not found:', { goodsNo, pcsIdx }) - return - } - - // μ νλ κ°λ€ μ λ°μ΄νΈ - λ μμΈν μ 보 ν¬ν¨ - const selectionData = { - goodsNo: goodsNo, - pcsInfo: { - itemId: pcsItem?.itemId, - goodsNo: pcsItem?.goodsNo, - pcsMkrCd: pcsItem?.pcsMkrCd, - pcsSerCd: pcsItem?.pcsSerCd, - }, - allocation: { - serQty: serQty, - paralQty: paralQty, - }, - } - - // μ νλ κ°λ€ μ λ°μ΄νΈ - setSelectedValues((prev) => ({ - ...prev, - [goodsNo]: { - ...prev[goodsNo], - [pcsKey]: selectionData, - }, - })) - - // λΆλͺ¨ μ»΄ν¬λνΈμ μ νλ κ°λ€ μ λ¬ - if (props.onValuesSelected) { - props.onValuesSelected(selectionData) - } - - setSelectedRows((prev) => { - // νμ¬ stepUpIdμ λν μ ν μνκ° μμΌλ©΄ λΉ κ°μ²΄λ‘ μ΄κΈ°ν - const currentStepUpSelections = prev[goodsNo] || {} - - // μ΄λ―Έ μ νλ νμ λ€μ ν΄λ¦νλ κ²½μ°, μ νμ ν΄μ νμ§ μμ - if (currentStepUpSelections[pcsKey] === rowKey) { - return prev + // const handleRowClick = (goodsNo, pcsIdx, serQtyIdx, serQty, paralQty) => { + const handleRowClick = (mainIdx, subIdx) => { + // const rowKey = `${goodsNo}_${pcsIdx}_${serQtyIdx}` + // const pcsKey = `${goodsNo}_${pcsIdx}` + // setSelectedRow(rowKey) + // item.selected = !item.selected\ + let tempStepUpListData = [...stepUpListData] + let selectedData = {} + tempStepUpListData[0].pcsItemList[mainIdx].serQtyList.forEach((item, index) => { + if (index === subIdx) { + selectedData = item } + item.selected = index === subIdx + }) + setStepUpListData(tempStepUpListData) + console.log('π ~ handleRowClick ~ tempStepUpListData:', tempStepUpListData) + console.log('π ~ handleRowClick ~ selectedData:', selectedData) - return { - ...prev, - [goodsNo]: { - ...currentStepUpSelections, - [pcsKey]: rowKey, - }, - } + selectedData.roofSurfaceList.forEach((roofSurface) => { + const targetSurface = canvas.getObjects().filter((obj) => obj.id === roofSurface.roofSurfaceId)[0] + const moduleIds = targetSurface.modules.map((module) => { + return module.id + }) + console.log(moduleIds) + canvas + .getObjects() + .filter((obj) => moduleIds.includes(obj.parentId)) + .map((text) => { + console.log('π ~ handleRowClick ~ text:', text) + canvas.remove(text) + }) + + canvas.renderAll() + roofSurface.moduleList.forEach((module) => { + console.log('π ~ handleRowClick ~ module:', module.uniqueId) + + 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, + }) + targetModule.circuit = moduleCircuitText + targetModule.circuitNumber = module.circuit + canvas.add(moduleCircuitText) + }) }) - // μλ μ ν μνλ₯Ό μ λ°μ΄νΈνλ, κΈ°μ‘΄ μΆμ² μ νμ μ μ§ - setIsManualSelection((prev) => ({ - ...prev, - [goodsNo]: { - ...prev[goodsNo], - [pcsKey]: true, - }, - })) + canvas.renderAll() + // console.log('goodsNo >> ', goodsNo, serQty, paralQty) + // νμ¬ μ νλ PCS μμ΄ν μ 보 κ°μ Έμ€κΈ° + // const pcsItem = stepUpListData.find((stepUp) => stepUp.pcsItemList.find((item) => item.goodsNo === goodsNo))?.pcsItemList[pcsIdx] + + // μ νλ κ°λ€ μ λ°μ΄νΈ - λ μμΈν μ 보 ν¬ν¨ + // const selectionData = { + // goodsNo: tempStepUpListData[mainIdx].pcsItemList[subIdx].goodsNo, + // pcsInfo: { + // itemId: tempStepUpListData[mainIdx].pcsItemList[subIdx].itemId, + // goodsNo: tempStepUpListData[mainIdx].pcsItemList[subIdx].goodsNo, + // pcsMkrCd: tempStepUpListData[mainIdx].pcsItemList[subIdx].pcsMkrCd, + // pcsSerCd: tempStepUpListData[mainIdx].pcsItemList[subIdx].pcsSerCd, + // }, + // allocation: { + // serQty: tempStepUpListData[mainIdx].pcsItemList[subIdx].serQtyList[subIdx].serQty, + // paralQty: tempStepUpListData[mainIdx].pcsItemList[subIdx].serQtyList[subIdx]. paralQty, + // }, + // } + + // // μ νλ κ°λ€ μ λ°μ΄νΈ + // setSelectedValues((prev) => ({ + // ...prev, + // [tempStepUpListData[mainIdx].pcsItemList[subIdx].goodsNo]: { + // ...prev[tempStepUpListData[mainIdx].pcsItemList[subIdx].goodsNo], + // [pcsKey]: selectionData, + // }, + // })) + + // // λΆλͺ¨ μ»΄ν¬λνΈμ μ νλ κ°λ€ μ λ¬ + // if (props.onValuesSelected) { + // props.onValuesSelected(selectionData) + // } + + // setSelectedRows((prev) => { + // // νμ¬ stepUpIdμ λν μ ν μνκ° μμΌλ©΄ λΉ κ°μ²΄λ‘ μ΄κΈ°ν + // const currentStepUpSelections = prev[goodsNo] || {} + + // // μ΄λ―Έ μ νλ νμ λ€μ ν΄λ¦νλ κ²½μ°, μ νμ ν΄μ νμ§ μμ + // if (currentStepUpSelections[pcsKey] === rowKey) { + // return prev + // } + + // return { + // ...prev, + // [goodsNo]: { + // ...currentStepUpSelections, + // [pcsKey]: rowKey, + // }, + // } + // }) + + // // μλ μ ν μνλ₯Ό μ λ°μ΄νΈνλ, κΈ°μ‘΄ μΆμ² μ νμ μ μ§ + // setIsManualSelection((prev) => ({ + // ...prev, + // [goodsNo]: { + // ...prev[goodsNo], + // [pcsKey]: true, + // }, + // })) } // νμ¬ μ νλ κ°λ€μ κ°μ Έμ€λ ν¨μ μΆκ° @@ -310,7 +361,7 @@ export default function StepUp(props) { {/* 3κ°μΌλ className = by-max */} {stepUpListData.map((stepUp, index) => (