From 8bac0a76ed2754bd4e7ba939ec167cc19730ee9a Mon Sep 17 00:00:00 2001 From: lelalela Date: Mon, 13 Jan 2025 22:43:13 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B0=80=EB=8C=80=20=EC=83=81=EC=84=B8=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../floor-plan/modal/basic/step/Module.jsx | 6 +-- .../modal/basic/step/ModuleTabContents.jsx | 5 +- .../floor-plan/modal/basic/step/Placement.jsx | 12 +++-- src/hooks/common/useMasterController.js | 8 ++- src/hooks/module/useModulePlace.js | 52 ++++++++++++++++--- 5 files changed, 60 insertions(+), 23 deletions(-) diff --git a/src/components/floor-plan/modal/basic/step/Module.jsx b/src/components/floor-plan/modal/basic/step/Module.jsx index 14ad4f69..c9ce3090 100644 --- a/src/components/floor-plan/modal/basic/step/Module.jsx +++ b/src/components/floor-plan/modal/basic/step/Module.jsx @@ -9,7 +9,7 @@ import ModuleTabContents from './ModuleTabContents' import { useDebounceCallback, useDebounceValue } from 'usehooks-ts' import { moduleSelectionDataState } from '@/store/selectedModuleOptions' -export default function Module() { +export default function Module({ setTabNum }) { const { getMessage } = useMessage() const addedRoofs = useRecoilValue(addedRoofsState) //지붕재 선택 const [roofTab, setRoofTab] = useState(0) //지붕재 탭 @@ -114,9 +114,9 @@ export default function Module() { {selectedModules.itemList && - selectedModules.itemList.map((row) => ( + selectedModules.itemList.map((row, index) => ( <> - +
diff --git a/src/components/floor-plan/modal/basic/step/ModuleTabContents.jsx b/src/components/floor-plan/modal/basic/step/ModuleTabContents.jsx index b753cbc5..63cd870d 100644 --- a/src/components/floor-plan/modal/basic/step/ModuleTabContents.jsx +++ b/src/components/floor-plan/modal/basic/step/ModuleTabContents.jsx @@ -271,7 +271,6 @@ export default function ModuleTabContents({ useEffect(() => { if (isObjectNotEmpty(tempModuleSelectionData)) { - console.log('tempModuleSelectionData', tempModuleSelectionData) setModuleSelectionData(tempModuleSelectionData) } }, [tempModuleSelectionData]) @@ -450,7 +449,7 @@ export default function ModuleTabContents({ type="checkbox" id={`ch01_${roofTab}`} disabled={cvrYn === 'N' ? true : false} - checked={cvrChecked} + defaultChecked={cvrChecked} onChange={handleCvrChecked} /> @@ -460,7 +459,7 @@ export default function ModuleTabContents({ type="checkbox" id={`ch02_${roofTab}`} disabled={snowGdPossYn === 'N' ? true : false} - checked={snowGdChecked} + defaultChecked={snowGdChecked} onChange={handleSnowGdChecked} /> diff --git a/src/components/floor-plan/modal/basic/step/Placement.jsx b/src/components/floor-plan/modal/basic/step/Placement.jsx index 72f4eab2..8e48a42c 100644 --- a/src/components/floor-plan/modal/basic/step/Placement.jsx +++ b/src/components/floor-plan/modal/basic/step/Placement.jsx @@ -4,17 +4,19 @@ import { useModuleBasicSetting } from '@/hooks/module/useModuleBasicSetting' import { checkedModuleState } from '@/store/canvasAtom' import { useRecoilValue, useRecoilState, useSetRecoilState } from 'recoil' import { selectedModuleState, moduleSelectionDataState } from '@/store/selectedModuleOptions' +import { useModulePlace } from '@/hooks/module/useModulePlace' const Placement = forwardRef((props, refs) => { const { getMessage } = useMessage() - const selectedModules = useRecoilValue(selectedModuleState) const [isChidori, setIsChidori] = useState('false') const [setupLocation, setSetupLocation] = useState('center') const [isMaxSetup, setIsMaxSetup] = useState('false') - const { makeModuleInstArea } = useModuleBasicSetting() const [selectedItems, setSelectedItems] = useState({}) - const setCheckedModules = useSetRecoilState(checkedModuleState) + const { makeModuleInstArea } = useModuleBasicSetting() + const { selectedModules } = useModulePlace() + + const setCheckedModules = useSetRecoilState(checkedModuleState) const moduleSelectionData = useRecoilValue(moduleSelectionDataState) //모듈 배치면 생성 @@ -92,9 +94,9 @@ const Placement = forwardRef((props, refs) => { {selectedModules.itemList && - selectedModules.itemList.map((item) => ( + selectedModules.itemList.map((item, index) => ( <> - +
diff --git a/src/hooks/common/useMasterController.js b/src/hooks/common/useMasterController.js index d9362c34..d74a8ea2 100644 --- a/src/hooks/common/useMasterController.js +++ b/src/hooks/common/useMasterController.js @@ -9,7 +9,7 @@ import { trestleRequest, constructionRequest, trestleDetailRequest } from '@/mod * @returns */ export function useMasterController() { - const { get } = useAxios() + const { get, post } = useAxios() const { getMessage } = useMessage() const { swalFire } = useSwal() @@ -104,10 +104,8 @@ export function useMasterController() { * @returns */ const getTrestleDetailList = async (params) => { - const paramString = getQueryString(params) - console.log('🚀🚀 ~ getTrestleDetailList ~ paramString:', paramString) - return await get({ url: '/api/v1/master/getTrestleDetailList' + paramString }).then((res) => { - console.log('🚀🚀 ~ getTrestleDetailList ~ res:', res) + // const paramString = getQueryString(params) + return await post({ url: '/api/v1/master/getTrestleDetailList', data: params }).then((res) => { return res }) } diff --git a/src/hooks/module/useModulePlace.js b/src/hooks/module/useModulePlace.js index 02bf71be..16b69bb0 100644 --- a/src/hooks/module/useModulePlace.js +++ b/src/hooks/module/useModulePlace.js @@ -1,12 +1,50 @@ +import { useEffect, useState } from 'react' import { useRecoilState, useRecoilValue } from 'recoil' -import { useContext, useEffect, useState } from 'react' -import { GlobalDataContext } from '@/app/GlobalDataProvider' +import { moduleSelectionDataState, selectedModuleState } from '@/store/selectedModuleOptions' import { useMasterController } from '@/hooks/common/useMasterController' -import { useCommonCode } from '@/hooks/common/useCommonCode' -import { selectedModuleState, moduleSelectionInitParamsState } from '@/store/selectedModuleOptions' -import { pitchSelector } from '@/store/canvasAtom' +export function useModulePlace() { + const moduleSelectionData = useRecoilValue(moduleSelectionDataState) //다음으로 넘어가는 최종 데이터 + const [trestleDetailParams, setTrestleDetailParams] = useState([]) + const [trestleDetailList, setTrestleDetailList] = useState([]) + const selectedModules = useRecoilValue(selectedModuleState) + const { getTrestleDetailList } = useMasterController() -export function useModuleSelection(props) { - return {} + useEffect(() => { + const common = moduleSelectionData.common + const roofConstructions = moduleSelectionData.roofConstructions + + const listParams = roofConstructions.map((item) => { + return { + ...common, + moduleTpCd: selectedModules.itemTp, + roofMatlCd: item.trestle.roofMatlCd, + trestleMkrCd: item.trestle.trestleMkrCd, + constMthdCd: item.trestle.constMthdCd, + roofBaseCd: item.trestle.roofBaseCd, + constTp: item.construction.constTp, + mixMatlNo: selectedModules.mixMatlNo, + roofPitch: selectedModules.roofPchBase ? selectedModules.roofPchBase : null, + inclCd: String(item.addRoof.pitch), + roofIndex: item.addRoof.roofIndex, + } + }) + + setTrestleDetailParams(listParams) + }, [moduleSelectionData]) + + useEffect(() => { + if (trestleDetailParams.length > 0) { + const trestleDetailList = getTrestleDetailList(trestleDetailParams) + setTrestleDetailList(trestleDetailList) + } + }, [trestleDetailParams]) + + useEffect(() => { + //todo 결과값을 가지고 roofs를 돌아서 + }, [trestleDetailList]) + + return { + selectedModules, + } }