Merge pull request 'dev' (#709) from dev into prd-deploy
Reviewed-on: #709
This commit is contained in:
commit
431b7216c5
@ -128,10 +128,10 @@ export default function CanvasFrame() {
|
||||
if (currentCanvasPlan.planNo) {
|
||||
/* 약간의 지연을 줘서 roofMaterials가 로드될 시간을 확보 */
|
||||
setTimeout(() => {
|
||||
// 메뉴 이동 시 canvasSetting이 덮어쓰이는 것을 방지
|
||||
// 이미 canvasSetting에 roofSizeSet이 있으면 API 호출 건너뛰기
|
||||
if (!canvasSetting?.roofSizeSet) {
|
||||
fetchBasicSettings(Number(currentCanvasPlan.planNo), null)
|
||||
// 플랜이 변경되었거나 아직 roofSizeSet이 없는 경우에만 fetch
|
||||
const isPlanChanged = canvasSetting?.planNo !== undefined && Number(canvasSetting.planNo) !== Number(currentCanvasPlan.planNo)
|
||||
if (!canvasSetting?.roofSizeSet || isPlanChanged) {
|
||||
fetchBasicSettings(Number(currentCanvasPlan.planNo), null, currentCanvasPlan.objectNo)
|
||||
}
|
||||
}, 100)
|
||||
}
|
||||
|
||||
@ -316,7 +316,10 @@ export function useCanvasSetting(executeEffect = true) {
|
||||
/**
|
||||
* 기본설정(PlacementShapeSetting) 조회 및 초기화
|
||||
*/
|
||||
const fetchBasicSettings = async (planNo, openPoint) => {
|
||||
const fetchBasicSettings = async (planNo, openPoint, objectNo) => {
|
||||
// objectNo가 전달되면 사용, 아니면 Recoil state의 correntObjectNo 사용
|
||||
const targetObjectNo = objectNo || correntObjectNo
|
||||
|
||||
// 지붕재 데이터가 없으면 먼저 로드
|
||||
let materials = roofMaterials
|
||||
if (!materials || materials.length === 0) {
|
||||
@ -326,9 +329,9 @@ export function useCanvasSetting(executeEffect = true) {
|
||||
}
|
||||
|
||||
try {
|
||||
const apiUrl = `/api/canvas-management/canvas-basic-settings/by-object/${correntObjectNo}/${planNo}`
|
||||
const apiUrl = `/api/canvas-management/canvas-basic-settings/by-object/${targetObjectNo}/${planNo}`
|
||||
logger.log('🔍 fetchBasicSettings API 호출:', apiUrl)
|
||||
logger.log('🔍 correntObjectNo:', correntObjectNo, 'planNo:', planNo)
|
||||
logger.log('🔍 targetObjectNo:', targetObjectNo, 'planNo:', planNo)
|
||||
|
||||
await get({
|
||||
url: apiUrl,
|
||||
@ -454,7 +457,9 @@ export function useCanvasSetting(executeEffect = true) {
|
||||
if (openPoint !== 'basicSettingSave') {
|
||||
// canvasSetting은 현재 값을 유지하고 basicSetting만 업데이트
|
||||
// 새로고침 시 canvasSetting이 바뀌는 문제 방지
|
||||
if (!canvasSetting?.roofSizeSet) {
|
||||
// 단, 플랜이 변경된 경우에는 항상 업데이트
|
||||
const isPlanChanged = canvasSetting?.planNo !== undefined && Number(canvasSetting.planNo) !== Number(roofsRow[0].planNo)
|
||||
if (!canvasSetting?.roofSizeSet || isPlanChanged) {
|
||||
setCanvasSetting({
|
||||
...basicSetting,
|
||||
roofMaterials: addRoofs[0],
|
||||
@ -507,16 +512,16 @@ export function useCanvasSetting(executeEffect = true) {
|
||||
roofMatlCd:
|
||||
params.roofsData.roofMatlCd === null || params.roofsData.roofMatlCd === undefined ? 'ROOF_ID_WA_53A' : params.roofsData.roofMatlCd,
|
||||
roofWidth:
|
||||
params.selectedRoofMaterial.width === null || params.selectedRoofMaterial.width === undefined
|
||||
? !params.selectedRoofMaterial.widBase
|
||||
? 0
|
||||
: Number(params.roofsData.widBase)
|
||||
: Number(params.selectedRoofMaterial.width),
|
||||
params.roofsData.roofWidth === null || params.roofsData.roofWidth === undefined
|
||||
? params.selectedRoofMaterial.widBase
|
||||
? Number(params.selectedRoofMaterial.widBase)
|
||||
: 0
|
||||
: Number(params.roofsData.roofWidth),
|
||||
roofHeight:
|
||||
params.selectedRoofMaterial.height === null || params.selectedRoofMaterial.height === undefined
|
||||
? !params.selectedRoofMaterial.lenBase
|
||||
? 0
|
||||
: Number(params.selectedRoofMaterial.lenBase)
|
||||
params.roofsData.roofHeight === null || params.roofsData.roofHeight === undefined
|
||||
? params.selectedRoofMaterial.lenBase
|
||||
? Number(params.selectedRoofMaterial.lenBase)
|
||||
: 0
|
||||
: Number(params.roofsData.roofHeight),
|
||||
roofHajebichi:
|
||||
params.selectedRoofMaterial.hajebichi === null || params.selectedRoofMaterial.hajebichi === undefined
|
||||
|
||||
@ -254,7 +254,7 @@ export function usePlan(params = {}) {
|
||||
setPlans([newPlan])
|
||||
|
||||
/* 플랜 추가 시 배치면초기설정 정보 조회 */
|
||||
fetchBasicSettings(newPlan.planNo, null)
|
||||
fetchBasicSettings(newPlan.planNo, null, objectNo)
|
||||
} else {
|
||||
if (isCopy) {
|
||||
const currentSelectedMenu = selectedMenu
|
||||
@ -579,7 +579,7 @@ export function usePlan(params = {}) {
|
||||
setPlans((plans) => plans.map((plan) => ({ ...plan, isCurrent: plan.id === lastPlan.id })))
|
||||
|
||||
/* 플랜 삭제 시 그 전 플랫의 배치면초기설정 정보 조회 */
|
||||
fetchBasicSettings(lastPlan.planNo, null)
|
||||
fetchBasicSettings(lastPlan.planNo, null, lastPlan.objectNo)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user