diff --git a/src/app/GlobalDataProvider.js b/src/app/GlobalDataProvider.js index 42c55fd8..1eb6f201 100644 --- a/src/app/GlobalDataProvider.js +++ b/src/app/GlobalDataProvider.js @@ -1,21 +1,13 @@ 'use client' -import { createContext, useEffect, useState } from 'react' -import { useLocalStorage } from 'usehooks-ts' +import { createContext, useState } from 'react' export const GlobalDataContext = createContext(null) const GlobalDataProvider = ({ children }) => { const [managementState, setManagementState] = useState(null) - const [managementStateLoaded, setManagementStateLoaded] = useLocalStorage('managementStateLoaded', null) - useEffect(() => { - if (managementState !== null) { - setManagementStateLoaded(managementState) - } - }, [managementState]) - - return {children} + return {children} } export default GlobalDataProvider diff --git a/src/components/floor-plan/FloorPlan.jsx b/src/components/floor-plan/FloorPlan.jsx index 18f3ea0d..a7f57077 100644 --- a/src/components/floor-plan/FloorPlan.jsx +++ b/src/components/floor-plan/FloorPlan.jsx @@ -1,15 +1,18 @@ 'use client' -import { useEffect } from 'react' +import { useContext, useEffect } from 'react' import CanvasMenu from '@/components/floor-plan/CanvasMenu' import { useCanvasMenu } from '@/hooks/common/useCanvasMenu' import { useCanvasSetting } from '@/hooks/option/useCanvasSetting' import { usePopup } from '@/hooks/usePopup' import '@/styles/contents.scss' import { notFound, useSearchParams } from 'next/navigation' -import { useRecoilState, useResetRecoilState } from 'recoil' +import { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil' import { correntObjectNoState } from '@/store/settingAtom' import { currentMenuState } from '@/store/canvasAtom' +import { globalLocaleStore } from '@/store/localeAtom' +import { useAxios } from '@/hooks/useAxios' +import { GlobalDataContext } from '@/app/GlobalDataProvider' export default function FloorPlan({ children }) { const [correntObjectNo, setCurrentObjectNo] = useRecoilState(correntObjectNoState) @@ -20,12 +23,39 @@ export default function FloorPlan({ children }) { const { selectedMenu, setSelectedMenu } = useCanvasMenu() const { fetchSettings } = useCanvasSetting() const resetCurrentMenu = useResetRecoilState(currentMenuState) + const globalLocaleState = useRecoilValue(globalLocaleStore) + const { promiseGet } = useAxios(globalLocaleState) + const { setManagementState } = useContext(GlobalDataContext) + useEffect(() => { + getStuffDetailInfo() + return () => { resetCurrentMenu() } }, []) + const getStuffDetailInfo = () => { + promiseGet({ url: `/api/object/${objectNo}/detail` }).then((res) => { + if (res.status === 200) { + const { data } = res + console.log(data) + + let surfaceTypeValue + if (res.data.surfaceType === 'Ⅲ・Ⅳ') { + surfaceTypeValue = '3' + } else if (res.data.surfaceType === 'Ⅱ') { + surfaceTypeValue = '2' + } + //설치높이 0이면 빈값으로로 셋팅 + if (res.data.installHeight === '0') { + res.data.installHeight = '' + } + setManagementState({ ...res.data, surfaceTypeValue: surfaceTypeValue }) + } + }) + } + /** * URL 파라미터에서 objectNo 설정 */ diff --git a/src/components/floor-plan/modal/basic/BasicSetting.jsx b/src/components/floor-plan/modal/basic/BasicSetting.jsx index 72f8e595..9a09aa1e 100644 --- a/src/components/floor-plan/modal/basic/BasicSetting.jsx +++ b/src/components/floor-plan/modal/basic/BasicSetting.jsx @@ -48,7 +48,6 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) { const [manualSetupMode, setManualSetupMode] = useRecoilState(toggleManualSetupModeState) const [layoutSetup, setLayoutSetup] = useState([{}]) const { - moduleSelectionInitParams, selectedModules, roughnessCodes, windSpeedCodes, @@ -241,7 +240,6 @@ export default function BasicSetting({ id, pos = { x: 50, y: 230 } }) { setTabNum, compasDeg, // 방위각 setCompasDeg, - moduleSelectionInitParams, selectedModules, moduleSelectionData, setModuleSelectionData, diff --git a/src/components/floor-plan/modal/basic/step/Orientation.jsx b/src/components/floor-plan/modal/basic/step/Orientation.jsx index a2625233..17cd2e88 100644 --- a/src/components/floor-plan/modal/basic/step/Orientation.jsx +++ b/src/components/floor-plan/modal/basic/step/Orientation.jsx @@ -23,7 +23,6 @@ export const Orientation = forwardRef((props, ref) => { setTabNum, compasDeg, setCompasDeg, - moduleSelectionInitParams, selectedModules, roughnessCodes, windSpeedCodes, diff --git a/src/hooks/module/useModuleSelection.js b/src/hooks/module/useModuleSelection.js index c78ffff1..5e66960b 100644 --- a/src/hooks/module/useModuleSelection.js +++ b/src/hooks/module/useModuleSelection.js @@ -3,7 +3,7 @@ import { useContext, useEffect, useState } from 'react' import { GlobalDataContext } from '@/app/GlobalDataProvider' import { useMasterController } from '@/hooks/common/useMasterController' import { useCommonCode } from '@/hooks/common/useCommonCode' -import { selectedModuleState, moduleSelectionInitParamsState, moduleSelectionDataState } from '@/store/selectedModuleOptions' +import { selectedModuleState, moduleSelectionDataState } from '@/store/selectedModuleOptions' import { isObjectNotEmpty } from '@/util/common-utils' import { canvasState } from '@/store/canvasAtom' import { POLYGON_TYPE } from '@/common/common' @@ -12,7 +12,7 @@ import { useModuleBasicSetting } from '@/hooks/module/useModuleBasicSetting' export function useModuleSelection(props) { const canvas = useRecoilValue(canvasState) - const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext) + const { managementState, setManagementState } = useContext(GlobalDataContext) const [roughnessCodes, setRoughnessCodes] = useState([]) //면조도 목록 const [windSpeedCodes, setWindSpeedCodes] = useState([]) //기준풍속 목록 const [moduleList, setModuleList] = useState([{}]) //모듈 목록 @@ -21,8 +21,8 @@ export function useModuleSelection(props) { const [standardWindSpeed, setStandardWindSpeed] = useState() //기준풍속 const [verticalSnowCover, setVerticalSnowCover] = useState(managementState?.verticalSnowCover) //수직적설량 const [selectedModules, setSelectedModules] = useRecoilState(selectedModuleState) //선택된 모듈 - const [margin, setMargin] = useState(100) - const [moduleSelectionInitParams, setModuleSelectionInitParams] = useRecoilState(moduleSelectionInitParamsState) //모듈 기본 데이터 ex) 면조도, 높이등등 + + // const [moduleSelectionInitParams, setModuleSelectionInitParams] = useRecoilState(moduleSelectionInitParamsState) //모듈 기본 데이터 ex) 면조도, 높이등등 const { getModuleTypeItemList } = useMasterController() const { findCommonCode } = useCommonCode() const resetStatisticsData = useResetRecoilState(moduleStatisticsState) @@ -40,21 +40,21 @@ export function useModuleSelection(props) { //탭별 파라메터 초기화 useEffect(() => { bindInitData() - const initParams = { - illuminationTp: managementState?.surfaceTypeValue, //면조도 - illuminationTpNm: managementState?.surfaceType, //면조도명 - instHt: managementState?.installHeight, //설치높이 - stdWindSpeed: managementState?.standardWindSpeedId, //기준풍속 - stdSnowLd: managementState?.verticalSnowCover, //기준적설량 - saleStoreNorthFlg: managementState?.saleStoreNorthFlg, //북쪽 설치 여부 - } + // const initParams = { + // illuminationTp: managementState?.surfaceTypeValue, //면조도 + // illuminationTpNm: managementState?.surfaceType, //면조도명 + // instHt: managementState?.installHeight, //설치높이 + // stdWindSpeed: managementState?.standardWindSpeedId, //기준풍속 + // stdSnowLd: managementState?.verticalSnowCover, //기준적설량 + // saleStoreNorthFlg: managementState?.saleStoreNorthFlg, //북쪽 설치 여부 + // } - if (selectedModules) { - initParams.moduleTpCd = selectedModules.itemTp - initParams.moduleItemId = selectedModules.itemId - } + // if (selectedModules) { + // initParams.moduleTpCd = selectedModules.itemTp + // initParams.moduleItemId = selectedModules.itemId + // } - setModuleSelectionInitParams(initParams) + // setModuleSelectionInitParams(initParams) }, [managementState]) useEffect(() => { @@ -122,19 +122,19 @@ export function useModuleSelection(props) { setSelectedModules(option) //선택값 저장 //init 데이터에 선택된 모듈 추가 - setModuleSelectionInitParams({ - ...moduleSelectionInitParams, - moduleTpCd: option.itemTp, - moduleItemId: option.itemId, - }) + // setModuleSelectionInitParams({ + // ...moduleSelectionInitParams, + // moduleTpCd: option.itemTp, + // moduleItemId: option.itemId, + // }) } const handleChangeSurfaceType = (option) => { - setModuleSelectionInitParams({ - ...moduleSelectionInitParams, - illuminationTp: option.clCode, - illuminationTpNm: option.clCodeNm, - }) + // setModuleSelectionInitParams({ + // ...moduleSelectionInitParams, + // illuminationTp: option.clCode, + // illuminationTpNm: option.clCodeNm, + // }) setManagementState({ ...managementState, @@ -144,10 +144,10 @@ export function useModuleSelection(props) { } const handleChangeWindSpeed = (option) => { - setModuleSelectionInitParams({ - ...moduleSelectionInitParams, - stdWindSpeed: option.clCode, - }) + // setModuleSelectionInitParams({ + // ...moduleSelectionInitParams, + // stdWindSpeed: option.clCode, + // }) setManagementState({ ...managementState, @@ -157,10 +157,10 @@ export function useModuleSelection(props) { const handleChangeInstallHeight = (option) => { setInstallHeight(option) - setModuleSelectionInitParams({ - ...moduleSelectionInitParams, - instHt: option, - }) + // setModuleSelectionInitParams({ + // ...moduleSelectionInitParams, + // instHt: option, + // }) setManagementState({ ...managementState, @@ -170,10 +170,10 @@ export function useModuleSelection(props) { const handleChangeVerticalSnowCover = (option) => { setVerticalSnowCover(option) - setModuleSelectionInitParams({ - ...moduleSelectionInitParams, - stdSnowLd: option, - }) + // setModuleSelectionInitParams({ + // ...moduleSelectionInitParams, + // stdSnowLd: option, + // }) setManagementState({ ...managementState, @@ -181,36 +181,8 @@ export function useModuleSelection(props) { }) } - //TODO: 설치높이, 기준적설량 debounce 적용해서 추가해야됨 - - // useEffect(() => { - // getConstructionListData(constructionListParams) - // }, [constructionListParams]) - - // const getConstructionListData = async (params) => { - // if (params.trestleMkrCd && params.constMthdCd && params.roofBaseCd) { - // const optionsList = await getConstructionList(params) - // console.log('optionsList', optionsList) - // setConstructionList(optionsList.data) - // } - // } - - //state 배열에 데이터 추가 함수 - // const addRoofTabParams = (key, value, excludeArray = []) => { - // const index = roofTabParams.findIndex((obj) => obj.roofTab === roofTab) - // if (index !== -1) { - // roofTabParams[index][key] = value - // if (excludeArray.length > 0) { - // excludeArray.forEach((exclude) => { - // roofTabParams[index][exclude] = '' - // }) - // } - // setRoofTabParams((prev) => [...prev.slice(0, index), roofTabParams[index], ...prev.slice(index + 1)]) - // } - // } - return { - moduleSelectionInitParams, + // moduleSelectionInitParams, selectedModules, roughnessCodes, windSpeedCodes,