배치면초기설정 수정

This commit is contained in:
changkyu choi 2024-12-23 18:12:34 +09:00
parent 371f1eb202
commit 477459d571
2 changed files with 99 additions and 57 deletions

View File

@ -42,11 +42,31 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, set
//
useEffect(() => {
// fetchBasicSettings()
fetchBasicSettings()
const raftCodeList = findCommonCode('203800')
setRaftCodes(raftCodeList)
}, [])
useEffect(() => {
console.log('currentRoofMaterial', currentRoofMaterial)
console.log('basicSetting', basicSetting)
setBasicSettings({
...basicSetting,
roofsData: {
roofApply: true,
roofSeq: 1,
roofMatlCd: currentRoofMaterial.roofMatlCd === null ? 'ROOF_ID_WA_53A' : currentRoofMaterial.roofMatlCd,
roofWidth: currentRoofMaterial.width === null ? 0 : currentRoofMaterial.width,
roofHeight: currentRoofMaterial.length === null ? 0 : currentRoofMaterial.length,
roofHajebichi: currentRoofMaterial.hajebichi === null ? 0 : currentRoofMaterial.hajebichi,
roofGap: currentRoofMaterial.raftBaseCd === null ? 'HEI_455' : currentRoofMaterial.raftBaseCd,
roofLayout: roofLayout,
},
})
}, [currentRoofMaterial, roofLayout, basicSetting.roofSizeSet, basicSetting.roofAngleSet ])
// Function to update the roofType and corresponding values
const handleRoofTypeChange = (value) => {
const selectedRoofMaterial = roofMaterials.find((roof) => roof.roofMatlCd === value)
@ -76,6 +96,16 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, set
roofInfo,
},
roofs: addedRoofs,
roofsData: {
roofApply: true,
roofSeq: 1,
roofMatlCd: currentRoofMaterial.roofMatlCd === null ? 'ROOF_ID_WA_53A' : currentRoofMaterial.roofMatlCd,
roofWidth: currentRoofMaterial.width === null ? 0 : currentRoofMaterial.width,
roofHeight: currentRoofMaterial.length === null ? 0 : currentRoofMaterial.length,
roofHajebichi: currentRoofMaterial.hajebichi === null ? 0 : currentRoofMaterial.hajebichi,
roofGap: currentRoofMaterial.raftBaseCd === null ? 'HEI_455' : currentRoofMaterial.raftBaseCd,
roofLayout: roofLayout,
},
})
basicSettingSave()
}
@ -197,7 +227,7 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, set
/> */}
<select
className="select-light dark"
name="roofType"
name="roofMatlCd"
ref={roofRef.roofCd}
value={currentRoofMaterial.roofMatlCd}
onChange={(e) => {
@ -281,7 +311,7 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, set
type="text"
className="input-origin block"
ref={roofRef.hajebichi}
value={parseInt(currentRoofMaterial.hajebichi)}
defaultValue={parseInt(currentRoofMaterial.hajebichi)}
readOnly={currentRoofMaterial.roofPchAuth === 'R'}
/>
</div>

View File

@ -120,7 +120,8 @@ export function useCanvasSetting() {
}
const { id } = selectedRoofMaterial
console.log(getModuleTypeItemList(id))
//console.log('id', id)
if (id !== undefined) console.log(getModuleTypeItemList(id))
}, [selectedRoofMaterial])
//지붕재 초기세팅
@ -179,15 +180,6 @@ export function useCanvasSetting() {
canvas?.renderAll()
}, [corridorDimension])
// 배치면 초기설정 변경 시
useEffect(() => {
//console.log('useCanvasSetting canvasSetting 실행', canvasSetting)
if (canvasSetting.flag) {
basicSettingSave()
}
}, [canvasSetting])
useEffect(() => {
console.log('🚀 ~ useEffect ~ settingsDataSave:', settingsDataSave)
if (settingsDataSave !== undefined) onClickOption2()
@ -269,57 +261,66 @@ export function useCanvasSetting() {
try {
await get({ url: `/api/canvas-management/canvas-basic-settings/by-object/${correntObjectNo}` }).then((res) => {
console.log('fetchBasicSettings res ', res)
if (res.length == 0) return
//if (res.length == 0) return
// 'roofs' 배열을 생성하여 각 항목을 추가
const roofsRow = res.map((item) => {
let roofsRow = {}
let roofsArray = {}
if (res) {
roofsRow = res.map((item) => {
return {
roofSizeSet: item.roofSizeSet,
roofAngleSet: item.roofAngleSet,
}
})
const roofsArray = res.some((item) => !item.roofSeq)
? //최초 지붕재 추가 정보의 경우 roofsArray를 초기화 설정
res.map(() => ({
flag: false,
roofApply: true,
roofSeq: 1,
roofType: 1,
roofWidth: 265,
roofHeight: 235,
roofHajebichi: 0,
roofGap: 455,
// roofType: 1,
// roofWidth: 200,
// roofHeight: 200,
// roofHajebichi: 200,
// roofGap: 0,
roofLayout: 'parallel',
}))
: res.map((item) => ({
flag: false,
roofApply: item.roofApply === '' || item.roofApply === false ? false : true,
roofSeq: item.roofSeq,
roofType: item.roofType,
roofWidth: item.roofWidth,
roofHeight: item.roofHeight,
roofHajebichi: item.roofHajebichi,
roofGap: item.roofGap,
roofLayout: item.roofLayout,
}))
console.log('roofsArray ', roofsArray)
// 나머지 데이터와 함께 'roofs' 배열을 patternData에 넣음
const patternData = {
roofSizeSet: roofsRow[0].roofSizeSet, // 첫 번째 항목의 값을 사용
roofAngleSet: roofsRow[0].roofAngleSet, // 첫 번째 항목의 값을 사용
roofs: roofsArray, // 만들어진 roofs 배열
roofsArray = res.map((item) => {
return {
roofApply: item.roofApply === '' || item.roofApply === false ? false : true,
roofSeq: item.roofSeq,
roofMatlCd: item.roofMatlCd,
roofWidth: item.roofWidth,
roofHeight: item.roofHeight,
roofHajebichi: item.roofHajebichi,
roofGap: item.roofGap,
roofLayout: item.roofLayout,
}
})
} else {
roofsRow = {
roofSizeSet: 1,
roofAngleSet: 'slope',
}
//console.error('patternData', patternData)
roofsArray = {
roofApply: true,
roofSeq: 1,
roofMatlCd: 'ROOF_ID_WA_53A',
roofWidth: 265,
roofHeight: 235,
roofHajebichi: 0,
roofGap: 'HEI_455',
roofLayout: 'P',
}
}
console.log('roofsRow ', roofsRow)
console.log('roofsArray ', roofsArray)
// 나머지 데이터와 함께 'roofs' 배열을 patternData에 넣음
const patternData = {
roofSizeSet: roofsRow[0].roofSizeSet,
roofAngleSet: roofsRow[0].roofAngleSet,
roofs: roofsArray, // 만들어진 roofs 배열
}
console.log('patternData', patternData)
// 데이터 설정
setBasicSettings({ ...basicSetting, roofSizeSet: roofsRow[0].roofSizeSet, roofAngleSet: roofsRow[0].roofAngleSet, roofsData: roofsArray})
// 데이터 설정
setBasicSettings({ ...patternData })
})
} catch (error) {
console.error('Data fetching error:', error)
@ -338,15 +339,26 @@ export function useCanvasSetting() {
objectNo: correntObjectNo,
roofSizeSet: basicSetting.roofSizeSet,
roofAngleSet: basicSetting.roofAngleSet,
roofMaterialsAddList: basicSetting.roofs, // TODO : 선택된 roof로 변경해야함
roofMaterialsAddList: [{
roofApply: true,
roofSeq: 1,
roofMatlCd: basicSetting.roofsData.roofMatlCd === null ? 'ROOF_ID_WA_53A' : basicSetting.roofsData.roofMatlCd,
roofWidth: basicSetting.roofsData.roofWidth === null ? 0 : basicSetting.roofsData.roofWidth,
roofHeight: basicSetting.roofsData.roofHeight === null ? 0 : basicSetting.roofsData.roofHeight,
roofHajebichi: basicSetting.roofsData.roofHajebichi === null ? 0 : basicSetting.roofsData.roofHajebichi,
roofGap: basicSetting.roofsData.roofGap === null ? 'HEI_455' : basicSetting.roofsData.roofGap,
roofLayout: basicSetting.roofsData.roofLayout,
}],
}
console.log('patternData 55', patternData)
await post({ url: `/api/canvas-management/canvas-basic-settings`, data: patternData }).then((res) => {
swalFire({ text: getMessage(res.returnMessage) })
swalFire({ text: getMessage(res.returnMessage) })
})
//Recoil 설정
setCanvasSetting({ ...basicSetting, flag: false })
setCanvasSetting({ ...basicSetting })
} catch (error) {
swalFire({ text: getMessage(res.returnMessage), icon: 'error' })
}