diff --git a/src/hooks/option/useCanvasSetting.js b/src/hooks/option/useCanvasSetting.js index 01d49937..fc80fe70 100644 --- a/src/hooks/option/useCanvasSetting.js +++ b/src/hooks/option/useCanvasSetting.js @@ -570,12 +570,44 @@ export function useCanvasSetting(executeEffect = true) { */ const basicSettingCopySave = async (params) => { try { - const patternData = { - objectNo: correntObjectNo, - planNo: Number(params.planNo), - roofSizeSet: Number(params.roofSizeSet), - roofAngleSet: params.roofAngleSet, - roofMaterialsAddList: params.roofsData.map((item) => ({ + // roofsData가 단일 항목인 경우, 모든 추가된 지붕재(addedRoofs)를 사용하여 다중 항목으로 확장 + let roofMaterialsList = [] + + if (params.roofsData && params.roofsData.length === 1) { + // 단일 항목인 경우 addedRoofs의 모든 항목을 사용 + if (addedRoofs && addedRoofs.length > 0) { + roofMaterialsList = addedRoofs.map((roof, index) => ({ + planNo: Number(params.planNo), + roofApply: roof.selected || index === 0, // 첫 번째 또는 선택된 항목 + roofSeq: index, + roofMatlCd: roof.roofMatlCd, + roofWidth: roof.width || roof.roofWidth, + roofHeight: roof.length || roof.roofHeight, + roofHajebichi: roof.hajebichi || 0, + roofGap: roof.raft || roof.roofGap, + roofLayout: roof.layout || 'P', + roofPitch: roof.pitch || 0, + roofAngle: roof.angle || 0, + })) + } else { + // addedRoofs가 비어있을 경우 원래 단일 항목 사용 + roofMaterialsList = params.roofsData.map((item) => ({ + planNo: Number(item.planNo), + roofApply: item.roofApply, + roofSeq: item.roofSeq, + roofMatlCd: item.roofMatlCd, + roofWidth: item.roofWidth, + roofHeight: item.roofHeight, + roofHajebichi: item.roofHajebichi, + roofGap: item.roofGap, + roofLayout: item.roofLayout, + roofPitch: item.roofPitch, + roofAngle: item.roofAngle, + })) + } + } else { + // 다중 항목인 경우 기존 방식 사용 + roofMaterialsList = params.roofsData.map((item) => ({ planNo: Number(item.planNo), roofApply: item.roofApply, roofSeq: item.roofSeq, @@ -587,7 +619,15 @@ export function useCanvasSetting(executeEffect = true) { roofLayout: item.roofLayout, roofPitch: item.roofPitch, roofAngle: item.roofAngle, - })), + })) + } + + const patternData = { + objectNo: correntObjectNo, + planNo: Number(params.planNo), + roofSizeSet: Number(params.roofSizeSet), + roofAngleSet: params.roofAngleSet, + roofMaterialsAddList: roofMaterialsList, } await post({ url: `/api/canvas-management/canvas-basic-settings`, data: patternData }).then((res) => {