도머 삭제시 다른애들도 같이 삭제

This commit is contained in:
yjnoh 2025-01-31 18:28:51 +09:00
parent f6a74f1879
commit 76947c5bfc
4 changed files with 72 additions and 22 deletions

View File

@ -8,7 +8,7 @@ import { useModulePlace } from '@/hooks/module/useModulePlace'
const Placement = forwardRef((props, refs) => { const Placement = forwardRef((props, refs) => {
const { getMessage } = useMessage() const { getMessage } = useMessage()
const [isChidori, setIsChidori] = useState('false') const [isChidori, setIsChidori] = useState(false)
const [isChidoriNotAble, setIsChidoriNotAble] = useState(false) const [isChidoriNotAble, setIsChidoriNotAble] = useState(false)
const currentCanvasPlan = useRecoilValue(currentCanvasPlanState) const currentCanvasPlan = useRecoilValue(currentCanvasPlanState)

View File

@ -523,10 +523,26 @@ export function useCommonUtils() {
if (object) { if (object) {
canvas?.remove(object) canvas?.remove(object)
// if (object.id) { if (object.id) {
// const group = canvas.getObjects().filter((obj) => obj.id === object.id) const group = canvas.getObjects().filter((obj) => obj.id === object.id)
// group.forEach((obj) => canvas?.remove(obj)) group.forEach((obj) => canvas?.remove(obj))
// } }
if (object.type === 'group') {
object._objects.forEach((obj) => {
if (obj.hasOwnProperty('texts')) {
obj.texts.forEach((text) => {
canvas?.remove(text)
})
}
})
} else {
if (object.hasOwnProperty('texts')) {
object.texts.forEach((text) => {
canvas?.remove(text)
})
}
}
} }
} }
@ -609,6 +625,21 @@ export function useCommonUtils() {
commonDeleteText(obj) commonDeleteText(obj)
}) })
} }
selectedObj.forEach((obj) => {
if (obj.type === 'group') {
obj._objects.forEach((lines) => {
if (lines.hasOwnProperty('arrow')) {
canvas
.getObjects()
.filter((obj1) => obj1.name === 'arrow' && lines.id === obj1.parentId)
.forEach((arrow) => {
canvas?.remove(arrow)
})
}
})
}
})
} }
const moveObject = () => { const moveObject = () => {

View File

@ -95,6 +95,8 @@ export function useModuleTabContents({ tabIndex, addRoof, setAddedRoofs, roofTab
obj.id = obj.clCode obj.id = obj.clCode
}) })
setRaftCodes(raftCodeList) setRaftCodes(raftCodeList)
console.log('moduleSelectionData', moduleSelectionData)
}, []) }, [])
//리코일에 데이터가 담기는 시점에 시작 //리코일에 데이터가 담기는 시점에 시작
@ -115,24 +117,24 @@ export function useModuleTabContents({ tabIndex, addRoof, setAddedRoofs, roofTab
}, [moduleConstructionSelectionData]) }, [moduleConstructionSelectionData])
//높이를 변경하면 addRoofs에 적용 //높이를 변경하면 addRoofs에 적용
useEffect(() => { // useEffect(() => {
const copyAddRoof = { ...addRoof } // const copyAddRoof = { ...addRoof }
copyAddRoof.length = Number(lengthBase) // copyAddRoof.length = Number(lengthBase)
copyAddRoof.lenBase = lengthBase // copyAddRoof.lenBase = lengthBase
const index = addRoof.index // const index = addRoof.index
const newArray = [...addRoofsArray.slice(0, index), copyAddRoof, ...addRoofsArray.slice(index + 1)] // const newArray = [...addRoofsArray.slice(0, index), copyAddRoof, ...addRoofsArray.slice(index + 1)]
setAddedRoofs(newArray) // setAddedRoofs(newArray)
}, [lengthBase]) // }, [lengthBase])
//망둥어 피치를 변경하면 addRoof 변경 // //망둥어 피치를 변경하면 addRoof 변경
useEffect(() => { // useEffect(() => {
const copyAddRoof = { ...addRoof } // const copyAddRoof = { ...addRoof }
copyAddRoof.hajebichi = Number(hajebichi) // copyAddRoof.hajebichi = Number(hajebichi)
copyAddRoof.roofPchBase = hajebichi // copyAddRoof.roofPchBase = hajebichi
const index = addRoof.index // const index = addRoof.index
const newArray = [...addRoofsArray.slice(0, index), copyAddRoof, ...addRoofsArray.slice(index + 1)] // const newArray = [...addRoofsArray.slice(0, index), copyAddRoof, ...addRoofsArray.slice(index + 1)]
setAddedRoofs(newArray) // setAddedRoofs(newArray)
}, [hajebichi]) // }, [hajebichi])
useEffect(() => { useEffect(() => {
if (isExistData) { if (isExistData) {

View File

@ -24,6 +24,8 @@ import { useRoofFn } from '@/hooks/common/useRoofFn'
import { ROOF_MATERIAL_LAYOUT } from '@/components/floor-plan/modal/placementShape/PlacementShapeSetting' import { ROOF_MATERIAL_LAYOUT } from '@/components/floor-plan/modal/placementShape/PlacementShapeSetting'
import { globalLocaleStore } from '@/store/localeAtom' import { globalLocaleStore } from '@/store/localeAtom'
import { getChonByDegree, getDegreeByChon } from '@/util/canvas-util' import { getChonByDegree, getDegreeByChon } from '@/util/canvas-util'
import { moduleSelectionDataState } from '@/store/selectedModuleOptions'
import { useCanvasPopupStatusController } from '@/hooks/common/useCanvasPopupStatusController'
// 지붕면 할당 // 지붕면 할당
export function useRoofAllocationSetting(id) { export function useRoofAllocationSetting(id) {
@ -52,6 +54,8 @@ export function useRoofAllocationSetting(id) {
const { setSurfaceShapePattern } = useRoofFn() const { setSurfaceShapePattern } = useRoofFn()
const [moduleSelectionData, setModuleSelectionData] = useRecoilState(moduleSelectionDataState)
useEffect(() => { useEffect(() => {
setCurrentRoofList(roofList) setCurrentRoofList(roofList)
}, []) }, [])
@ -270,6 +274,7 @@ export function useRoofAllocationSetting(id) {
setRoofList(newRoofList) setRoofList(newRoofList)
const selectedRoofMaterial = newRoofList.find((roof) => roof.selected) const selectedRoofMaterial = newRoofList.find((roof) => roof.selected)
setSurfaceShapePattern(currentObject, roofDisplay.column, false, selectedRoofMaterial) setSurfaceShapePattern(currentObject, roofDisplay.column, false, selectedRoofMaterial)
modifyModuleSelectionData()
closeAll() closeAll()
} }
@ -369,6 +374,8 @@ export function useRoofAllocationSetting(id) {
closeAll() closeAll()
setMenuNumber(3) setMenuNumber(3)
setMenuType('surface') setMenuType('surface')
modifyModuleSelectionData()
} }
const setLineSize = (id, size) => { const setLineSize = (id, size) => {
@ -500,6 +507,16 @@ export function useRoofAllocationSetting(id) {
setCurrentRoofList(newRoofList) setCurrentRoofList(newRoofList)
} }
// 모듈 선택에서 선택한 데이터 초기화
const modifyModuleSelectionData = () => {
if (moduleSelectionData.roofConstructions.length > 0) {
setModuleSelectionData({ ...moduleSelectionData, roofConstructions: [] })
moduleSelectedDataTrigger({ ...moduleSelectionData, roofConstructions: [] })
}
}
const { trigger: moduleSelectedDataTrigger } = useCanvasPopupStatusController(2)
return { return {
handleSave, handleSave,
onAddRoofMaterial, onAddRoofMaterial,