From 2e115887c280c55849b5e180b7930aa1f6900109 Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Thu, 6 Mar 2025 10:51:09 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EA=B2=AC=EC=A0=81=EC=84=9C=20=EC=88=9C?= =?UTF-8?q?=EC=84=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/circuitTrestle/CircuitTrestleSetting.jsx | 5 +---- src/hooks/useEstimate.js | 11 ++++++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx index cf238166..92bc7f3c 100644 --- a/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/CircuitTrestleSetting.jsx @@ -54,7 +54,7 @@ export default function CircuitTrestleSetting({ id }) { const [seletedOption, setSeletedOption] = useState(null) const { setModuleStatisticsData } = useCircuitTrestle() const { handleCanvasToPng } = useImgLoader() - const { saveCanvas } = usePlan() + const passivityCircuitAllocationRef = useRef() const { setIsGlobalLoading } = useContext(QcastContext) @@ -361,11 +361,8 @@ export default function CircuitTrestleSetting({ id }) { if (result) { handleCanvasToPng(2) - // 캔버스 저장 - await saveCanvas(false) // 견적서 저장 await saveEstimate(result) - setAllModuleSurfaceIsComplete(true) } else { setIsGlobalLoading(false) } diff --git a/src/hooks/useEstimate.js b/src/hooks/useEstimate.js index a535de49..ac1f5c07 100644 --- a/src/hooks/useEstimate.js +++ b/src/hooks/useEstimate.js @@ -9,6 +9,8 @@ import { GlobalDataContext } from '@/app/GlobalDataProvider' import { QcastContext } from '@/app/QcastProvider' import { currentCanvasPlanState } from '@/store/canvasAtom' import { loginUserStore } from '@/store/commonAtom' +import { useTrestle } from '@/hooks/module/useTrestle' +import { usePlan } from '@/hooks/usePlan' export function useEstimate() { const { managementStateLoaded } = useContext(GlobalDataContext) @@ -20,13 +22,15 @@ export function useEstimate() { const { promisePost } = useAxios() const { swalFire } = useSwal() + const { setAllModuleSurfaceIsComplete } = useTrestle() + const { saveCanvas } = usePlan() + /** * 도면 견적서 저장 * * @param {Object} estimateParam - 견적서 저장 데이터 */ const saveEstimate = async (estimateParam) => { - const userId = loginUserState.userId const saleStoreId = managementStateLoaded.saleStoreId const objectNo = currentCanvasPlan.objectNo @@ -56,6 +60,11 @@ export function useEstimate() { await promisePost({ url: '/api/estimate/save-estimate', data: saveEstimateData }) .then(async () => { + setAllModuleSurfaceIsComplete(true) + + // 캔버스 저장 + await saveCanvas(false) + /* 견적서 저장이 완료되면 견적서 페이지로 이동 */ moveEstimate(planNo, objectNo) }) From 724d6d508805d71a9698ce951ac8ed71dd37559a Mon Sep 17 00:00:00 2001 From: "hyojun.choi" Date: Thu, 6 Mar 2025 11:05:13 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EB=B0=B0=EC=B9=98=EB=A9=B4=20=EC=B4=88?= =?UTF-8?q?=EA=B8=B0=EC=84=A4=EC=A0=95=20=EC=8B=9C=20=ED=8C=A8=ED=84=B4=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modal/placementShape/PlacementShapeSetting.jsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx index d836147c..127e7742 100644 --- a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx +++ b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx @@ -9,7 +9,7 @@ import WithDraggable from '@/components/common/draggable/WithDraggable' import { useCanvasSetting } from '@/hooks/option/useCanvasSetting' import { useRecoilState, useRecoilValue } from 'recoil' -import { addedRoofsState, roofMaterialsAtom } from '@/store/settingAtom' +import { addedRoofsState, roofDisplaySelector, roofMaterialsAtom } from '@/store/settingAtom' import { useCommonCode } from '@/hooks/common/useCommonCode' import QSelectBox from '@/components/common/select/QSelectBox' import { globalLocaleStore } from '@/store/localeAtom' @@ -18,6 +18,7 @@ import { onlyNumberInputChange } from '@/util/input-utils' import { getChonByDegree, getDegreeByChon } from '@/util/canvas-util' import { usePolygon } from '@/hooks/usePolygon' import { canvasState } from '@/store/canvasAtom' +import { useRoofFn } from '@/hooks/common/useRoofFn' /** * 지붕 레이아웃 @@ -41,7 +42,9 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla const [currentRoof, setCurrentRoof] = useState(null) /** 현재 선택된 지붕재 정보 */ const { closePopup } = usePopup() /** usePopup에서 closePopup 함수 가져오기 */ const { drawDirectionArrow } = usePolygon() + const { setSurfaceShapePattern } = useRoofFn() const canvas = useRecoilValue(canvasState) + const roofDisplay = useRecoilValue(roofDisplaySelector) const roofRef = { roofCd: useRef(null), @@ -243,6 +246,8 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, pla const roofs = canvas.getObjects().filter((obj) => obj.roofMaterial?.index === 0) roofs.forEach((roof) => { + /** 모양 패턴 설정 */ + setSurfaceShapePattern(roof, roofDisplay.column, false, { ...roofInfo }) roof.roofMaterial = { ...roofInfo } drawDirectionArrow(roof) })