Merge remote-tracking branch 'origin/qcast-pub' into dev

This commit is contained in:
김민식 2025-01-13 21:44:39 +09:00
commit aab9e654ed
4 changed files with 87 additions and 55 deletions

View File

@ -296,15 +296,16 @@ export default function CanvasMenu(props) {
}, [type, globalLocale])
useEffect(() => {
if ([2, 3].some((num) => num === canvasSetting?.roofSizeSet)) {
setMenuNumber(3)
setType('surface')
setCurrentMenu(MENU.BATCH_CANVAS.BATCH_DRAWING)
} else {
setMenuNumber(2)
setType('outline')
setCurrentMenu(MENU.ROOF_COVERING.EXTERIOR_WALL_LINE)
}
setMenuNumber(1)
// if ([2, 3].some((num) => num === canvasSetting?.roofSizeSet)) {
// setMenuNumber(3)
// setType('surface')
// setCurrentMenu(MENU.BATCH_CANVAS.BATCH_DRAWING)
// } else {
// setMenuNumber(2)
// setType('outline')
// setCurrentMenu(MENU.ROOF_COVERING.EXTERIOR_WALL_LINE)
// }
}, [canvasSetting])
const checkMenuState = (menu) => {

View File

@ -58,9 +58,9 @@ export default function useMenu() {
if (type === 'surface') {
switch (currentMenu) {
case MENU.BATCH_CANVAS.SLOPE_SETTING:
addPopup(popupId, 1, <Slope id={popupId} />)
break
// case MENU.BATCH_CANVAS.SLOPE_SETTING:
// addPopup(popupId, 1, <Slope id={popupId} />)
// break
case MENU.BATCH_CANVAS.BATCH_DRAWING:
addPopup(popupId, 1, <PlacementShapeDrawing id={popupId} />)
break

View File

@ -7,6 +7,7 @@ import {
planSizeSettingState,
dotLineGridSettingState,
canvasSettingState,
currentMenuState,
} from '@/store/canvasAtom'
import { globalLocaleStore } from '@/store/localeAtom'
import { useMessage } from '@/hooks/useMessage'
@ -23,13 +24,15 @@ import {
selectedRoofMaterialSelector,
addedRoofsState,
} from '@/store/settingAtom'
import { POLYGON_TYPE } from '@/common/common'
import { MENU, POLYGON_TYPE } from '@/common/common'
import { globalFontAtom } from '@/store/fontAtom'
import { dimensionLineSettingsState } from '@/store/commonUtilsAtom'
import { gridColorState } from '@/store/gridAtom'
import { useColor } from 'react-color-palette'
import { useMasterController } from '@/hooks/common/useMasterController'
import { ROOF_MATERIAL_LAYOUT } from '@/components/floor-plan/modal/placementShape/PlacementShapeSetting'
import { useCanvasMenu } from '../common/useCanvasMenu'
import { menuTypeState } from '@/store/menuAtom'
const defaultDotLineGridSetting = {
INTERVAL: {
@ -43,7 +46,7 @@ const defaultDotLineGridSetting = {
LINE: false,
}
let previousRoofMaterialsYn = 'N'; // 지붕재 select 정보 비교 후 변경된 것이 없으면 1회만 실행
let previousRoofMaterialsYn = 'N' // 지붕재 select 정보 비교 후 변경된 것이 없으면 1회만 실행
export function useCanvasSetting() {
const canvas = useRecoilValue(canvasState)
@ -73,7 +76,7 @@ export function useCanvasSetting() {
)
const [gridColor, setGridColor] = useRecoilState(gridColorState)
const [color, setColor] = useColor(gridColor ?? '#FF0000')
const { menuNumber, setMenuNumber } = useCanvasMenu()
const [settingsData, setSettingsData] = useState({
...settingModalFirstOptions,
...settingModalSecondOptions,
@ -99,7 +102,8 @@ export function useCanvasSetting() {
const { getRoofMaterialList, getModuleTypeItemList } = useMasterController()
const [roofMaterials, setRoofMaterials] = useRecoilState(roofMaterialsAtom)
const [addedRoofs, setAddedRoofs] = useRecoilState(addedRoofsState)
const [type, setType] = useRecoilState(menuTypeState)
const setCurrentMenu = useSetRecoilState(currentMenuState)
const SelectOptions = [
{ id: 1, name: getMessage('modal.canvas.setting.grid.dot.line.setting.line.origin'), value: 1 },
{ id: 2, name: '1/2', value: 1 / 2 },
@ -113,7 +117,7 @@ export function useCanvasSetting() {
if (roofMaterials.length !== 0) {
return
}
addRoofMaterials()
addRoofMaterials()
}, [])
//지붕재 초기세팅
@ -149,21 +153,21 @@ export function useCanvasSetting() {
setBasicSettings({ ...basicSetting, selectedRoofMaterial: selectedRoofMaterial })
}
const previousRoofMaterialsRef = useRef(null);
const previousRoofMaterialsRef = useRef(null)
useEffect(() => {
// 지붕재 select 정보가 존재해야 배치면초기설정 DB 정보 비교 후 지붕재 정보를 가져올 수 있음
if (roofMaterials.length !== 0 && JSON.stringify(previousRoofMaterialsRef.current) !== JSON.stringify(roofMaterials)) {
// 지붕재 select 정보 비교 후 변경된 것이 없으면 1회만 실행
if (roofMaterials && previousRoofMaterialsYn === 'N') {
fetchBasicSettings();
previousRoofMaterialsYn = 'Y';
fetchBasicSettings()
previousRoofMaterialsYn = 'Y'
}
// 이전 값을 업데이트
previousRoofMaterialsRef.current = roofMaterials;
previousRoofMaterialsRef.current = roofMaterials
}
}, [roofMaterials]);
}, [roofMaterials])
useEffect(() => {
if (!canvas) {
@ -275,7 +279,6 @@ export function useCanvasSetting() {
const fetchBasicSettings = async () => {
try {
await get({ url: `/api/canvas-management/canvas-basic-settings/by-object/${correntObjectNo}` }).then((res) => {
let roofsRow = {}
let roofsArray = {}
@ -327,25 +330,30 @@ export function useCanvasSetting() {
const addRoofs = []
roofMaterials?.map((material) => {
if (material.roofMatlCd === roofsArray[0].roofMatlCd) {
addRoofs.push({ ...material, selected: true
, index: 0
, width: roofsArray[0].roofWidth
, length: roofsArray[0].roofHeight
, hajebichi: roofsArray[0].roofHajebichi
, raft: roofsArray[0].roofGap
, layout: roofsArray[0].roofLayout
, roofSizeSet: roofsRow[0].roofSizeSet
, roofAngleSet: roofsRow[0].roofAngleSet
, pitch: roofsArray[0].roofPitch
, angle: roofsArray[0].roofAngle
})
addRoofs.push({
...material,
selected: true,
index: 0,
width: roofsArray[0].roofWidth,
length: roofsArray[0].roofHeight,
hajebichi: roofsArray[0].roofHajebichi,
raft: roofsArray[0].roofGap,
layout: roofsArray[0].roofLayout,
roofSizeSet: roofsRow[0].roofSizeSet,
roofAngleSet: roofsRow[0].roofAngleSet,
pitch: roofsArray[0].roofPitch,
angle: roofsArray[0].roofAngle,
})
setAddedRoofs(addRoofs)
setBasicSettings({ ...basicSetting, roofMaterials: addRoofs[0]
, roofSizeSet: roofsRow[0].roofSizeSet
, roofAngleSet: roofsRow[0].roofAngleSet
, roofsData: roofsArray
, selectedRoofMaterial: addRoofs[0] })
setBasicSettings({
...basicSetting,
roofMaterials: addRoofs[0],
roofSizeSet: roofsRow[0].roofSizeSet,
roofAngleSet: roofsRow[0].roofAngleSet,
roofsData: roofsArray,
selectedRoofMaterial: addRoofs[0],
})
}
})
})
@ -370,14 +378,26 @@ export function useCanvasSetting() {
{
roofApply: true,
roofSeq: 0,
roofMatlCd: basicSetting.roofsData.roofMatlCd === null || basicSetting.roofsData.roofMatlCd === undefined ? 'ROOF_ID_WA_53A' : basicSetting.roofsData.roofMatlCd,
roofWidth: basicSetting.roofsData.roofWidth === null || basicSetting.roofsData.roofWidth === undefined ? 0 : basicSetting.roofsData.roofWidth,
roofHeight: basicSetting.roofsData.roofHeight === null || basicSetting.roofsData.roofHeight === undefined ? 0 : basicSetting.roofsData.roofHeight,
roofHajebichi: basicSetting.roofsData.roofHajebichi === null || basicSetting.roofsData.roofHajebichi === undefined ? 0 : basicSetting.roofsData.roofHajebichi,
roofGap: basicSetting.roofsData.roofGap === null || basicSetting.roofsData.roofGap === undefined ? 'HEI_455' : basicSetting.roofsData.roofGap,
roofLayout: basicSetting.roofsData.roofLayout === null || basicSetting.roofsData.roofLayout === undefined ? 'P' : basicSetting.roofsData.roofLayout,
roofPitch: basicSetting.roofsData.roofPitch === null || basicSetting.roofsData.roofPitch === undefined ? 0 : basicSetting.roofsData.roofPitch,
roofAngle: basicSetting.roofsData.roofAngle === null || basicSetting.roofsData.roofAngle === undefined ? 0 : basicSetting.roofsData.roofAngle,
roofMatlCd:
basicSetting.roofsData.roofMatlCd === null || basicSetting.roofsData.roofMatlCd === undefined
? 'ROOF_ID_WA_53A'
: basicSetting.roofsData.roofMatlCd,
roofWidth:
basicSetting.roofsData.roofWidth === null || basicSetting.roofsData.roofWidth === undefined ? 0 : basicSetting.roofsData.roofWidth,
roofHeight:
basicSetting.roofsData.roofHeight === null || basicSetting.roofsData.roofHeight === undefined ? 0 : basicSetting.roofsData.roofHeight,
roofHajebichi:
basicSetting.roofsData.roofHajebichi === null || basicSetting.roofsData.roofHajebichi === undefined
? 0
: basicSetting.roofsData.roofHajebichi,
roofGap:
basicSetting.roofsData.roofGap === null || basicSetting.roofsData.roofGap === undefined ? 'HEI_455' : basicSetting.roofsData.roofGap,
roofLayout:
basicSetting.roofsData.roofLayout === null || basicSetting.roofsData.roofLayout === undefined ? 'P' : basicSetting.roofsData.roofLayout,
roofPitch:
basicSetting.roofsData.roofPitch === null || basicSetting.roofsData.roofPitch === undefined ? 0 : basicSetting.roofsData.roofPitch,
roofAngle:
basicSetting.roofsData.roofAngle === null || basicSetting.roofsData.roofAngle === undefined ? 0 : basicSetting.roofsData.roofAngle,
},
],
}
@ -390,7 +410,18 @@ export function useCanvasSetting() {
})
//Recoil 설정
//setCanvasSetting({ ...basicSetting })
//setCanvasSetting({ ...basicSetting })\
console.log(basicSetting)
if (['2', '3'].includes(basicSetting?.roofSizeSet)) {
setMenuNumber(3)
setType('surface')
setCurrentMenu(MENU.BATCH_CANVAS.BATCH_DRAWING)
} else {
setMenuNumber(2)
setType('outline')
setCurrentMenu(MENU.ROOF_COVERING.EXTERIOR_WALL_LINE)
}
fetchBasicSettings()
} catch (error) {
swalFire({ text: error.message, icon: 'error' })

View File

@ -49,11 +49,11 @@ export const subMenusState = atom({
],
surface: [
// 배치면
{ id: 0, name: 'plan.menu.placement.surface.slope.setting', menu: MENU.BATCH_CANVAS.SLOPE_SETTING },
{ id: 1, name: 'plan.menu.placement.surface.drawing', menu: MENU.BATCH_CANVAS.BATCH_DRAWING },
{ id: 2, name: 'plan.menu.placement.surface.arrangement', menu: MENU.BATCH_CANVAS.SURFACE_SHAPE_BATCH },
{ id: 3, name: 'plan.menu.placement.surface.object', menu: MENU.BATCH_CANVAS.OBJECT_BATCH },
{ id: 4, name: 'plan.menu.placement.surface.all.remove', menu: MENU.BATCH_CANVAS.ALL_REMOVE },
// { id: 0, name: 'plan.menu.placement.surface.slope.setting', menu: MENU.BATCH_CANVAS.SLOPE_SETTING },
{ id: 0, name: 'plan.menu.placement.surface.drawing', menu: MENU.BATCH_CANVAS.BATCH_DRAWING },
{ id: 1, name: 'plan.menu.placement.surface.arrangement', menu: MENU.BATCH_CANVAS.SURFACE_SHAPE_BATCH },
{ id: 2, name: 'plan.menu.placement.surface.object', menu: MENU.BATCH_CANVAS.OBJECT_BATCH },
{ id: 3, name: 'plan.menu.placement.surface.all.remove', menu: MENU.BATCH_CANVAS.ALL_REMOVE },
],
module: [
// 모듈, 회로 구성