diff --git a/src/components/floor-plan/modal/basic/step/Module.jsx b/src/components/floor-plan/modal/basic/step/Module.jsx
index 78189124..06bf2b8f 100644
--- a/src/components/floor-plan/modal/basic/step/Module.jsx
+++ b/src/components/floor-plan/modal/basic/step/Module.jsx
@@ -1,13 +1,13 @@
import { useEffect, useState, useReducer } from 'react'
import { useRecoilValue, useRecoilState } from 'recoil'
import { addedRoofsState } from '@/store/settingAtom'
-import { canvasSettingState, pitchSelector } from '@/store/canvasAtom'
+import { canvasSettingState, currentCanvasPlanState, pitchSelector } from '@/store/canvasAtom'
import { useMessage } from '@/hooks/useMessage'
import QSelectBox from '@/components/common/select/QSelectBox'
import { useModuleSelection } from '@/hooks/module/useModuleSelection'
import ModuleTabContents from './ModuleTabContents'
import { useDebounceCallback, useDebounceValue } from 'usehooks-ts'
-import { moduleSelectionDataState } from '@/store/selectedModuleOptions'
+import { moduleSelectionDataPlanListState, moduleSelectionDataState } from '@/store/selectedModuleOptions'
export default function Module({ setTabNum }) {
const { getMessage } = useMessage()
@@ -38,6 +38,9 @@ export default function Module({ setTabNum }) {
const [debouncedVerticalSnowCover] = useDebounceValue(inputVerticalSnowCover, 500)
const [moduleSelectionData, setModuleSelectionData] = useRecoilState(moduleSelectionDataState) //다음으로 넘어가는 최종 데이터
+ const [moduleSelectionDataPlanList, setModuleSelectionDataPlanList] = useRecoilState(moduleSelectionDataPlanListState)
+
+ const [currentCanvasPlan, setCurrentCanvasPlan] = useRecoilState(currentCanvasPlanState)
const [tempModuleSelectionData, setTempModuleSelectionData] = useReducer((prevState, nextState) => {
return { ...prevState, ...nextState }
@@ -69,11 +72,15 @@ export default function Module({ setTabNum }) {
rows: [],
}
+ useEffect(() => {
+ console.log('currentCanvasPlan', currentCanvasPlan)
+ }, [])
+
useEffect(() => {}, [roofTab])
useEffect(() => {
- console.log('moduleSelectionData', moduleSelectionData)
- }, [])
+ setModuleSelectionDataPlanList({ ...moduleSelectionDataPlanList, [currentCanvasPlan.id]: moduleSelectionData })
+ }, [moduleSelectionData])
const handleRoofTab = (tab) => {
setRoofTab(tab)
@@ -239,6 +246,7 @@ export default function Module({ setTabNum }) {
setModuleSelectionData={setModuleSelectionData}
tempModuleSelectionData={tempModuleSelectionData}
setTempModuleSelectionData={setTempModuleSelectionData}
+ selectedModule={selectedModules}
/>
))}
diff --git a/src/components/floor-plan/modal/basic/step/ModuleTabContents.jsx b/src/components/floor-plan/modal/basic/step/ModuleTabContents.jsx
index 7fcbc0bb..3fee925e 100644
--- a/src/components/floor-plan/modal/basic/step/ModuleTabContents.jsx
+++ b/src/components/floor-plan/modal/basic/step/ModuleTabContents.jsx
@@ -15,6 +15,7 @@ export default function ModuleTabContents({
setModuleSelectionData,
tempModuleSelectionData,
setTempModuleSelectionData,
+ selectedModule,
}) {
const { getMessage } = useMessage()
const [roofMaterial, setRoofMaterial] = useState(addRoof) //지붕재`
@@ -242,6 +243,7 @@ export default function ModuleTabContents({
setConstructionList([])
if (isObjectNotEmpty(moduleConstructionSelectionData)) {
+ //기존에 데이터가 있으면
setConstructionParams({ ...moduleConstructionSelectionData.trestle, constMthdCd: '', roofBaseCd: '' })
setRoofBaseParams({ ...moduleConstructionSelectionData.trestle, roofBaseCd: '' })
setCvrChecked(moduleConstructionSelectionData.construction.setupCover)
@@ -251,7 +253,7 @@ export default function ModuleTabContents({
}
}
- setTempModuleSelectionData({ common: moduleSelectionInitParams })
+ setTempModuleSelectionData({ common: moduleSelectionInitParams, module: selectedModule })
}, [moduleSelectionInitParams])
useEffect(() => {
diff --git a/src/components/floor-plan/modal/basic/step/Placement.jsx b/src/components/floor-plan/modal/basic/step/Placement.jsx
index 8e48a42c..d400881a 100644
--- a/src/components/floor-plan/modal/basic/step/Placement.jsx
+++ b/src/components/floor-plan/modal/basic/step/Placement.jsx
@@ -8,7 +8,9 @@ import { useModulePlace } from '@/hooks/module/useModulePlace'
const Placement = forwardRef((props, refs) => {
const { getMessage } = useMessage()
- const [isChidori, setIsChidori] = useState('false')
+ const [isChidori, setIsChidori] = useState(false)
+ const [isChidoriNotAble, setIsChidoriNotAble] = useState(false)
+
const [setupLocation, setSetupLocation] = useState('center')
const [isMaxSetup, setIsMaxSetup] = useState('false')
const [selectedItems, setSelectedItems] = useState({})
@@ -21,9 +23,13 @@ const Placement = forwardRef((props, refs) => {
//모듈 배치면 생성
useEffect(() => {
- console.log('🚀 ~ Placement ~ moduleSelectionData:', moduleSelectionData)
- console.log('🚀 ~ Placement ~ selectedModules:', selectedModules)
makeModuleInstArea()
+
+ //1개라도 치도리 불가가 있으면 치도리 불가
+ const isChidroriValue = moduleSelectionData.roofConstructions.some((item) => item.construction.plvrYn === 'N')
+ if (isChidroriValue) {
+ setIsChidoriNotAble(true)
+ }
}, [])
//체크된 모듈 데이터
@@ -127,19 +133,19 @@ const Placement = forwardRef((props, refs) => {
diff --git a/src/hooks/module/useModuleBasicSetting.js b/src/hooks/module/useModuleBasicSetting.js
index eff37226..965a1045 100644
--- a/src/hooks/module/useModuleBasicSetting.js
+++ b/src/hooks/module/useModuleBasicSetting.js
@@ -479,7 +479,8 @@ export function useModuleBasicSetting() {
//안겹치면 넣는다
// tempModule.setCoords()
moduleOptions.surfaceId = trestlePolygon.id
- let manualModule = new QPolygon(tempModule.points, { ...moduleOptions })
+
+ let manualModule = new QPolygon(tempModule.points, { ...moduleOptions, moduleInfo: checkedModule[0] })
canvas?.add(manualModule)
manualDrawModules.push(manualModule)
} else {
@@ -747,7 +748,7 @@ export function useModuleBasicSetting() {
leftMargin = i === 0 ? 0 : intvHor * i
chidoriLength = 0
if (isChidori) {
- chidoriLength = j % 2 === 0 ? 0 : width / 2
+ chidoriLength = j % 2 === 0 ? 0 : width / 2 - intvHor
}
square = [
@@ -762,7 +763,7 @@ export function useModuleBasicSetting() {
let turfCoordnates = squarePolygon.geometry.coordinates[0].slice(0, -1)
let points = turfCoordnates.map((coord) => ({ x: coord[0], y: coord[1] }))
- moduleOptions = { ...moduleOptions, fill: module.color, surfaceId: moduleSetupSurface.id }
+ moduleOptions = { ...moduleOptions, fill: module.color, surfaceId: moduleSetupSurface.id, moduleInfo: module }
let tempModule = new QPolygon(points, { ...moduleOptions, turfPoints: squarePolygon })
let disjointFromTrestle = checkModuleDisjointSurface(squarePolygon, polygonToTurfPolygon(moduleSetupSurface, true))
@@ -848,7 +849,7 @@ export function useModuleBasicSetting() {
leftMargin = j === 0 ? 0 : intvVer * j
chidoriLength = 0
if (isChidori) {
- chidoriLength = i % 2 === 0 ? 0 : height / 2
+ chidoriLength = i % 2 === 0 ? 0 : height / 2 - intvHor
}
square = [
@@ -864,7 +865,7 @@ export function useModuleBasicSetting() {
let points = turfCoordnates.map((coord) => ({ x: coord[0], y: coord[1] }))
// if (disjointFromTrestle && isDisjoint) {
- moduleOptions = { ...moduleOptions, fill: module.color, surfaceId: moduleSetupSurface.id }
+ moduleOptions = { ...moduleOptions, fill: module.color, surfaceId: moduleSetupSurface.id, moduleInfo: module }
let tempModule = new QPolygon(points, { ...moduleOptions, turfPoints: squarePolygon })
let disjointFromTrestle = checkModuleDisjointSurface(squarePolygon, polygonToTurfPolygon(moduleSetupSurface, true))
let isDisjoint = checkModuleDisjointObjects(squarePolygon, containsBatchObjects)
@@ -959,7 +960,7 @@ export function useModuleBasicSetting() {
leftMargin = i === 0 ? 0 : intvHor * i
chidoriLength = 0
if (isChidori) {
- chidoriLength = j % 2 === 0 ? 0 : width / 2
+ chidoriLength = j % 2 === 0 ? 0 : width / 2 - intvHor
}
square = [
@@ -975,7 +976,7 @@ export function useModuleBasicSetting() {
let points = turfCoordnates.map((coord) => ({ x: coord[0], y: coord[1] }))
// if (disjointFromTrestle && isDisjoint) {
- moduleOptions = { ...moduleOptions, fill: module.color, surfaceId: moduleSetupSurface.id }
+ moduleOptions = { ...moduleOptions, fill: module.color, surfaceId: moduleSetupSurface.id, moduleInfo: module }
let tempModule = new QPolygon(points, { ...moduleOptions, turfPoints: squarePolygon })
let disjointFromTrestle = checkModuleDisjointSurface(squarePolygon, polygonToTurfPolygon(moduleSetupSurface, true))
@@ -1059,7 +1060,7 @@ export function useModuleBasicSetting() {
chidoriLength = 0
if (isChidori) {
- chidoriLength = i % 2 === 0 ? 0 : height / 2
+ chidoriLength = i % 2 === 0 ? 0 : height / 2 - intvHor
}
square = [
@@ -1075,7 +1076,7 @@ export function useModuleBasicSetting() {
let points = turfCoordnates.map((coord) => ({ x: coord[0], y: coord[1] }))
// if (disjointFromTrestle && isDisjoint) {
- moduleOptions = { ...moduleOptions, fill: module.color, surfaceId: moduleSetupSurface.id }
+ moduleOptions = { ...moduleOptions, fill: module.color, surfaceId: moduleSetupSurface.id, moduleInfo: module }
let tempModule = new QPolygon(points, { ...moduleOptions, turfPoints: squarePolygon })
let disjointFromTrestle = checkModuleDisjointSurface(squarePolygon, polygonToTurfPolygon(moduleSetupSurface, true))
let isDisjoint = checkModuleDisjointObjects(squarePolygon, containsBatchObjects)
diff --git a/src/hooks/module/useModulePlace.js b/src/hooks/module/useModulePlace.js
index 856c7abb..d46f789f 100644
--- a/src/hooks/module/useModulePlace.js
+++ b/src/hooks/module/useModulePlace.js
@@ -12,10 +12,6 @@ export function useModulePlace() {
const selectedModules = useRecoilValue(selectedModuleState)
const { getTrestleDetailList } = useMasterController()
- useEffect(() => {
- console.log('🚀 ~ useModulePlace ~ moduleSelectionData:', moduleSelectionData)
- }, [])
-
useEffect(() => {
const common = moduleSelectionData.common
const roofConstructions = moduleSelectionData.roofConstructions
diff --git a/src/store/selectedModuleOptions.js b/src/store/selectedModuleOptions.js
index faa979fd..b09c9294 100644
--- a/src/store/selectedModuleOptions.js
+++ b/src/store/selectedModuleOptions.js
@@ -85,3 +85,9 @@ export const moduleSelectionDataState = atom({
},
dangerouslyAllowMutability: true,
})
+
+export const moduleSelectionDataPlanListState = atom({
+ key: 'moduleSelectionDataPlanListState',
+ default: {},
+ dangerouslyAllowMutability: true,
+})