Compare commits

..

No commits in common. "860f724f3a5eace9e3b6bafd0f94eefcd609482f" and "8afff34ff0d8b44de84152eda39858bb957defa4" have entirely different histories.

3 changed files with 19 additions and 24 deletions

View File

@ -128,10 +128,10 @@ export default function CanvasFrame() {
if (currentCanvasPlan.planNo) { if (currentCanvasPlan.planNo) {
/* 약간의 지연을 줘서 roofMaterials가 로드될 시간을 확보 */ /* 약간의 지연을 줘서 roofMaterials가 로드될 시간을 확보 */
setTimeout(() => { setTimeout(() => {
// roofSizeSet fetch // canvasSetting
const isPlanChanged = canvasSetting?.planNo !== undefined && Number(canvasSetting.planNo) !== Number(currentCanvasPlan.planNo) // canvasSetting roofSizeSet API
if (!canvasSetting?.roofSizeSet || isPlanChanged) { if (!canvasSetting?.roofSizeSet) {
fetchBasicSettings(Number(currentCanvasPlan.planNo), null, currentCanvasPlan.objectNo) fetchBasicSettings(Number(currentCanvasPlan.planNo), null)
} }
}, 100) }, 100)
} }

View File

@ -316,10 +316,7 @@ export function useCanvasSetting(executeEffect = true) {
/** /**
* 기본설정(PlacementShapeSetting) 조회 초기화 * 기본설정(PlacementShapeSetting) 조회 초기화
*/ */
const fetchBasicSettings = async (planNo, openPoint, objectNo) => { const fetchBasicSettings = async (planNo, openPoint) => {
// objectNo가 전달되면 사용, 아니면 Recoil state의 correntObjectNo 사용
const targetObjectNo = objectNo || correntObjectNo
// 지붕재 데이터가 없으면 먼저 로드 // 지붕재 데이터가 없으면 먼저 로드
let materials = roofMaterials let materials = roofMaterials
if (!materials || materials.length === 0) { if (!materials || materials.length === 0) {
@ -329,9 +326,9 @@ export function useCanvasSetting(executeEffect = true) {
} }
try { try {
const apiUrl = `/api/canvas-management/canvas-basic-settings/by-object/${targetObjectNo}/${planNo}` const apiUrl = `/api/canvas-management/canvas-basic-settings/by-object/${correntObjectNo}/${planNo}`
logger.log('🔍 fetchBasicSettings API 호출:', apiUrl) logger.log('🔍 fetchBasicSettings API 호출:', apiUrl)
logger.log('🔍 targetObjectNo:', targetObjectNo, 'planNo:', planNo) logger.log('🔍 correntObjectNo:', correntObjectNo, 'planNo:', planNo)
await get({ await get({
url: apiUrl, url: apiUrl,
@ -457,9 +454,7 @@ export function useCanvasSetting(executeEffect = true) {
if (openPoint !== 'basicSettingSave') { if (openPoint !== 'basicSettingSave') {
// canvasSetting은 현재 값을 유지하고 basicSetting만 업데이트 // canvasSetting은 현재 값을 유지하고 basicSetting만 업데이트
// 새로고침 시 canvasSetting이 바뀌는 문제 방지 // 새로고침 시 canvasSetting이 바뀌는 문제 방지
// 단, 플랜이 변경된 경우에는 항상 업데이트 if (!canvasSetting?.roofSizeSet) {
const isPlanChanged = canvasSetting?.planNo !== undefined && Number(canvasSetting.planNo) !== Number(roofsRow[0].planNo)
if (!canvasSetting?.roofSizeSet || isPlanChanged) {
setCanvasSetting({ setCanvasSetting({
...basicSetting, ...basicSetting,
roofMaterials: addRoofs[0], roofMaterials: addRoofs[0],
@ -512,16 +507,16 @@ export function useCanvasSetting(executeEffect = true) {
roofMatlCd: roofMatlCd:
params.roofsData.roofMatlCd === null || params.roofsData.roofMatlCd === undefined ? 'ROOF_ID_WA_53A' : params.roofsData.roofMatlCd, params.roofsData.roofMatlCd === null || params.roofsData.roofMatlCd === undefined ? 'ROOF_ID_WA_53A' : params.roofsData.roofMatlCd,
roofWidth: roofWidth:
params.roofsData.roofWidth === null || params.roofsData.roofWidth === undefined params.selectedRoofMaterial.width === null || params.selectedRoofMaterial.width === undefined
? params.selectedRoofMaterial.widBase ? !params.selectedRoofMaterial.widBase
? Number(params.selectedRoofMaterial.widBase) ? 0
: 0 : Number(params.roofsData.widBase)
: Number(params.roofsData.roofWidth), : Number(params.selectedRoofMaterial.width),
roofHeight: roofHeight:
params.roofsData.roofHeight === null || params.roofsData.roofHeight === undefined params.selectedRoofMaterial.height === null || params.selectedRoofMaterial.height === undefined
? params.selectedRoofMaterial.lenBase ? !params.selectedRoofMaterial.lenBase
? Number(params.selectedRoofMaterial.lenBase) ? 0
: 0 : Number(params.selectedRoofMaterial.lenBase)
: Number(params.roofsData.roofHeight), : Number(params.roofsData.roofHeight),
roofHajebichi: roofHajebichi:
params.selectedRoofMaterial.hajebichi === null || params.selectedRoofMaterial.hajebichi === undefined params.selectedRoofMaterial.hajebichi === null || params.selectedRoofMaterial.hajebichi === undefined

View File

@ -254,7 +254,7 @@ export function usePlan(params = {}) {
setPlans([newPlan]) setPlans([newPlan])
/* 플랜 추가 시 배치면초기설정 정보 조회 */ /* 플랜 추가 시 배치면초기설정 정보 조회 */
fetchBasicSettings(newPlan.planNo, null, objectNo) fetchBasicSettings(newPlan.planNo, null)
} else { } else {
if (isCopy) { if (isCopy) {
const currentSelectedMenu = selectedMenu const currentSelectedMenu = selectedMenu
@ -579,7 +579,7 @@ export function usePlan(params = {}) {
setPlans((plans) => plans.map((plan) => ({ ...plan, isCurrent: plan.id === lastPlan.id }))) setPlans((plans) => plans.map((plan) => ({ ...plan, isCurrent: plan.id === lastPlan.id })))
/* 플랜 삭제 시 그 전 플랫의 배치면초기설정 정보 조회 */ /* 플랜 삭제 시 그 전 플랫의 배치면초기설정 정보 조회 */
fetchBasicSettings(lastPlan.planNo, null, lastPlan.objectNo) fetchBasicSettings(lastPlan.planNo, null)
} }
} }