Merge branch 'dev' into dev-yj

This commit is contained in:
yjnoh 2025-03-06 11:09:46 +09:00
commit c2dc189739
3 changed files with 17 additions and 6 deletions

View File

@ -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)
}

View File

@ -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)
})

View File

@ -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)
})