+ >
)
}
diff --git a/src/components/estimate/Estimate.jsx b/src/components/estimate/Estimate.jsx
index b5d8bce0..18fd2343 100644
--- a/src/components/estimate/Estimate.jsx
+++ b/src/components/estimate/Estimate.jsx
@@ -1188,7 +1188,7 @@ export default function Estimate({}) {
@@ -1206,7 +1206,7 @@ export default function Estimate({}) {
@@ -1297,13 +1297,13 @@ export default function Estimate({}) {
//사양시공
let constructSpecificationMulti = estimateContextState?.constructSpecificationMulti?.split('、')
return (
-
+
@@ -1316,7 +1316,6 @@ export default function Estimate({}) {
{getMessage('estimate.detail.remarks')} |
- {/* */}
+ onClick={(e) => {
+ //삭제 아이콘 눌렀는데 handleCurrentPlan실행되서 추가
+ e.stopPropagation()
swalFire({
text: `Plan ${plan.planNo} ` + getMessage('plan.message.confirm.delete'),
type: 'confirm',
@@ -50,7 +52,7 @@ export default function CanvasLayout({ children }) {
handleDeletePlan(e, plan)
},
})
- }
+ }}
>
)}
diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx
index 44c22d4b..ed2249b0 100644
--- a/src/components/floor-plan/CanvasMenu.jsx
+++ b/src/components/floor-plan/CanvasMenu.jsx
@@ -112,7 +112,7 @@ export default function CanvasMenu(props) {
const params = {
objectNo: objectNo,
- planNo: pid,
+ planNo: selectedPlan.planNo,
schDownload: donwloadType,
schDrawingFlg: drawingFlg,
pwrGnrSimType: pwrGnrSimTypeRecoil.type,
@@ -156,6 +156,7 @@ export default function CanvasMenu(props) {
text: getMessage('stuff.detail.move.confirmMsg'),
type: 'confirm',
confirmFn: () => {
+ setIsGlobalLoading(true)
router.push(`/management/stuff/detail?objectNo=${objectNo}`, { scroll: false })
},
})
@@ -172,38 +173,51 @@ export default function CanvasMenu(props) {
setType('surface')
break
case 4:
- if (!checkMenuAndCanvasState()) {
- swalFire({ text: getMessage('menu.validation.canvas.roof') })
- return
+ console.log('🚀 ~ onClickNav ~ menu:', menu)
+ console.log('🚀 ~ onClickNav ~ menuNumber:', menuNumber)
+ if (menuNumber < menu.index) {
+ if (!checkMenuAndCanvasState()) {
+ swalFire({ text: getMessage('menu.validation.canvas.roof') })
+ return
+ } else {
+ setType('module')
+ }
} else {
- setType('module')
+ router.push(`/floor-plan?pid=${pid}&objectNo=${objectNo}`)
}
+
break
case 5:
- // let pid = urlParams.get('pid')
+ setIsGlobalLoading(true)
+ //로딩바해제는 견적서 상세조회쪽(useEstimateController.js)에서 setIsGlobalLoading(false)
promiseGet({ url: `/api/estimate/${objectNo}/${selectedPlan.planNo}/detail` }).then((res) => {
if (res.status === 200) {
const estimateDetail = res.data
- if (estimateDetail.tempFlg === '0' && estimateDetail.estimateDate !== null) {
+ // if (estimateDetail.tempFlg === '0' && estimateDetail.estimateDate !== null) {
+ if (estimateDetail.estimateDate !== null) {
setMenuNumber(menu.index)
setCurrentMenu(menu.title)
setFloorPlanObjectNo({ floorPlanObjectNo: objectNo })
router.push(`/floor-plan/estimate/${menu.index}?pid=${selectedPlan.planNo}&objectNo=${objectNo}`)
} else {
+ setIsGlobalLoading(false)
swalFire({ text: getMessage('estimate.menu.move.valid1') })
}
}
})
break
case 6:
+ setIsGlobalLoading(true)
+ //로딩바해제는 발전시뮬레이션 조회쪽에서(Simulator.jsx) setIsGlobalLoading(false)
promiseGet({ url: `/api/estimate/${objectNo}/${selectedPlan.planNo}/detail` }).then((res) => {
if (res.status === 200) {
const estimateDetail = res.data
- if (estimateDetail.tempFlg === '0') {
+ if (estimateDetail.estimateDate !== null) {
setMenuNumber(menu.index)
setCurrentMenu(menu.title)
router.push(`/floor-plan/simulator/${menu.index}?pid=${selectedPlan.planNo}&objectNo=${objectNo}`)
} else {
+ setIsGlobalLoading(false)
swalFire({ text: getMessage('simulator.menu.move.valid1') })
}
}
@@ -215,9 +229,10 @@ export default function CanvasMenu(props) {
setMenuNumber(menu.index)
setCurrentMenu(menu.title)
}
-
if (pathname !== '/floor-plan') {
- if (menu.index !== 0) {
+ // if (menu.index !== 0 ) {
+ //견적서 or 발전시뮬레이션 탭에서 같은 탭 클릭시 화면 이동했다 돌아오지않도록..
+ if (menu.index !== 0 && menu.index !== 5 && menu.index !== 6) {
router.push(`/floor-plan?pid=${pid}&objectNo=${objectNo}`)
}
}
@@ -257,7 +272,7 @@ export default function CanvasMenu(props) {
// 저장버튼(btn08) 클릭 시 호출되는 함수
const handleSaveCanvas = async () => {
- await saveCanvas()
+ await saveCanvas(true)
}
// 나가기 버튼 클릭
@@ -312,15 +327,15 @@ export default function CanvasMenu(props) {
confirmFn: async () => {
setIsGlobalLoading(true)
const params = {
- objectNo: objectNo,
- planNo: pid,
+ objectNo: estimateRecoilState.objectNo,
+ planNo: estimateRecoilState.planNo,
userId: sessionState.userId,
}
try {
await promisePost({ url: '/api/estimate/reset-estimate', data: params }).then((res) => {
if (res.status === 201) {
swalFire({ text: getMessage('estimate.detail.reset.alertMsg'), type: 'alert' })
- fetchSetting(objectNo, pid, 'R')
+ fetchSetting(estimateRecoilState.objectNo, estimateRecoilState.planNo, 'R')
}
})
} catch (error) {
@@ -359,9 +374,14 @@ export default function CanvasMenu(props) {
}, [basicSetting])*/
const checkMenuState = (menu) => {
- return (['2', '3'].includes(canvasSetting?.roofSizeSet) && menu.index === 2) || (menuNumber === 4 && menu.index === 2)
+ return (['2', '3'].includes(canvasSetting?.roofSizeSet) && menu.index === 2) || (menuNumber === 4 && [1, 2].includes(menu.index))
}
+ /**
+ * 모듈, 회로 구성 이전 메뉴에서 메뉴 클릭으로 넘어올때
+ * 지붕면 할당이 끝난 지붕이 하나라도 있는지 체크
+ * @returns {boolean}
+ */
const checkMenuAndCanvasState = () => {
const roofs = canvas?.getObjects().filter((obj) => obj.name === POLYGON_TYPE.ROOF)
// 지붕면 할당이 끝난 지붕이 하나라도 있는지 체크
@@ -372,40 +392,109 @@ export default function CanvasMenu(props) {
useEffect(() => {
if (isObjectNotEmpty(estimateRecoilState)) {
- if (estimateRecoilState?.createUser === 'T01') {
- if (sessionState.userId !== 'T01') {
- setButtonStyle1('none')
- setButtonStyle2('none')
- setButtonStyle3('none')
- setButtonStyle4('none')
- setButtonStyle5('none')
- }
- } else {
- if (estimateRecoilState?.tempFlg === '1') {
- setButtonStyle1('none')
- setButtonStyle2('')
- setButtonStyle3('none')
- setButtonStyle4('none')
- setButtonStyle5('none')
- } else {
- if (estimateRecoilState?.tempFlg === '0' && estimateRecoilState?.lockFlg === '0') {
- setButtonStyle1('')
- setButtonStyle2('')
- setButtonStyle3('')
- setButtonStyle4('')
- setButtonStyle5('')
+ const { createUser, tempFlg, lockFlg } = estimateRecoilState
+
+ if (createUser && tempFlg && lockFlg) {
+ if (createUser === 'T01') {
+ if (sessionState.storeId !== 'T01') {
+ setAllButtonStyles('none')
} else {
- setButtonStyle1('')
- setButtonStyle2('none')
- setButtonStyle3('none')
- setButtonStyle4('')
- setButtonStyle5('')
+ handleButtonStyles(tempFlg, lockFlg)
}
+ } else {
+ handleButtonStyles(tempFlg, lockFlg)
}
}
}
}, [estimateRecoilState])
+ const setAllButtonStyles = (style) => {
+ setButtonStyle1(style)
+ setButtonStyle2(style)
+ setButtonStyle3(style)
+ setButtonStyle4(style)
+ setButtonStyle5(style)
+ }
+
+ const handleButtonStyles = (tempFlg, lockFlg) => {
+ if (tempFlg === '1') {
+ setAllButtonStyles('none')
+ setButtonStyle2('')
+ } else if (tempFlg === '0' && lockFlg === '0') {
+ setAllButtonStyles('')
+ } else {
+ setButtonStyle1('')
+ setButtonStyle2('none')
+ setButtonStyle3('none')
+ setButtonStyle4('')
+ setButtonStyle5('')
+ }
+ }
+
+ // useEffect(() => {
+ // if (isObjectNotEmpty(estimateRecoilState)) {
+ // if (estimateRecoilState?.createUser && estimateRecoilState?.tempFlg && estimateRecoilState.lockFlg) {
+ // if (estimateRecoilState?.createUser === 'T01') {
+ // if (sessionState.storeId !== 'T01') {
+ // setButtonStyle1('none')
+ // setButtonStyle2('none')
+ // setButtonStyle3('none')
+ // setButtonStyle4('none')
+ // setButtonStyle5('none')
+ // } else {
+ // if (estimateRecoilState?.tempFlg === '1') {
+ // setButtonStyle1('none')
+ // setButtonStyle2('')
+ // setButtonStyle3('none')
+ // setButtonStyle4('none')
+ // setButtonStyle5('none')
+ // } else {
+ // if (estimateRecoilState?.tempFlg === '0' && estimateRecoilState?.lockFlg === '0') {
+ // setButtonStyle1('')
+ // setButtonStyle2('')
+ // setButtonStyle3('')
+ // setButtonStyle4('')
+ // setButtonStyle5('')
+ // } else {
+ // setButtonStyle1('')
+ // setButtonStyle2('none')
+ // setButtonStyle3('none')
+ // setButtonStyle4('')
+ // setButtonStyle5('')
+ // }
+ // }
+ // }
+ // } else {
+ // if (isObjectNotEmpty(estimateRecoilState)) {
+ // if (estimateRecoilState?.tempFlg && estimateRecoilState.lockFlg) {
+ // if (estimateRecoilState?.tempFlg === '1') {
+ // setButtonStyle1('none')
+ // setButtonStyle2('')
+ // setButtonStyle3('none')
+ // setButtonStyle4('none')
+ // setButtonStyle5('none')
+ // } else {
+ // if (estimateRecoilState?.tempFlg === '0' && estimateRecoilState?.lockFlg === '0') {
+ // setButtonStyle1('')
+ // setButtonStyle2('')
+ // setButtonStyle3('')
+ // setButtonStyle4('')
+ // setButtonStyle5('')
+ // } else {
+ // setButtonStyle1('')
+ // setButtonStyle2('none')
+ // setButtonStyle3('none')
+ // setButtonStyle4('')
+ // setButtonStyle5('')
+ // }
+ // }
+ // }
+ // }
+ // }
+ // }
+ // }
+ // }, [estimateRecoilState])
+
/**
* 견적서 잠금 / 해제
* lockFlg : 0 잠금해제상태 / 1 잠금상태
@@ -415,7 +504,6 @@ export default function CanvasMenu(props) {
*/
const handleEstimateLockController = (estimateRecoilState) => {
swalFire({
- // text: estimateRecoilState.lockFlg === '0' ? getMessage('estimate.detail.lock.alertMsg') : getMessage('estimate.detail.unlock.alertMsg'),
html: estimateRecoilState.lockFlg === '0' ? getMessage('estimate.detail.lock.alertMsg') : getMessage('estimate.detail.unlock.alertMsg'),
confirmButtonText: estimateRecoilState.lockFlg === '1' ? getMessage('estimate.detail.unlock.confirmBtnName') : '',
type: 'confirm',
@@ -431,37 +519,49 @@ export default function CanvasMenu(props) {
await promisePost({ url: '/api/estimate/save-estimate-lock', data: params }).then((res) => {
if (res.status === 201) {
estimateRecoilState.lockFlg = estimateRecoilState.lockFlg === '0' ? '1' : '0'
- if (estimateRecoilState?.createUser === 'T01') {
- if (sessionState.userId !== 'T01') {
- setButtonStyle1('none')
- setButtonStyle2('none')
- setButtonStyle3('none')
- setButtonStyle4('none')
- setButtonStyle5('none')
- }
- } else {
- if (estimateRecoilState?.tempFlg === '1') {
- setButtonStyle1('none')
- setButtonStyle2('')
- setButtonStyle3('none')
- setButtonStyle4('none')
- setButtonStyle5('none')
- } else {
- if (estimateRecoilState?.tempFlg === '0' && estimateRecoilState?.lockFlg === '0') {
- setButtonStyle1('')
- setButtonStyle2('')
- setButtonStyle3('')
- setButtonStyle4('')
- setButtonStyle5('')
+ const { createUser, tempFlg, lockFlg } = estimateRecoilState
+ if (createUser && tempFlg && lockFlg) {
+ if (createUser === 'T01') {
+ if (sessionState.storeId !== 'T01') {
+ setAllButtonStyles('none')
} else {
- setButtonStyle1('')
- setButtonStyle2('none')
- setButtonStyle3('none')
- setButtonStyle4('')
- setButtonStyle5('')
+ handleButtonStyles(tempFlg, lockFlg)
}
+ } else {
+ handleButtonStyles(tempFlg, lockFlg)
}
}
+ // if (estimateRecoilState?.createUser === 'T01') {
+ // if (sessionState.storeId !== 'T01') {
+ // setButtonStyle1('none')
+ // setButtonStyle2('none')
+ // setButtonStyle3('none')
+ // setButtonStyle4('none')
+ // setButtonStyle5('none')
+ // }
+ // } else {
+ // if (estimateRecoilState?.tempFlg === '1') {
+ // setButtonStyle1('none')
+ // setButtonStyle2('')
+ // setButtonStyle3('none')
+ // setButtonStyle4('none')
+ // setButtonStyle5('none')
+ // } else {
+ // if (estimateRecoilState?.tempFlg === '0' && estimateRecoilState?.lockFlg === '0') {
+ // setButtonStyle1('')
+ // setButtonStyle2('')
+ // setButtonStyle3('')
+ // setButtonStyle4('')
+ // setButtonStyle5('')
+ // } else {
+ // setButtonStyle1('')
+ // setButtonStyle2('none')
+ // setButtonStyle3('none')
+ // setButtonStyle4('')
+ // setButtonStyle5('')
+ // }
+ // }
+ // }
}
setIsGlobalLoading(false)
})
@@ -493,7 +593,7 @@ export default function CanvasMenu(props) {
className={`canvas-menu-item ${menuNumber === menu.index ? 'active' : ''}`}
onClick={() => {
if (['2', '3'].includes(canvasSetting?.roofSizeSet) && menu.index === 2) return
- if (menuNumber === 4 && menu.index === 2) return
+ if (menuNumber === 4 && [1, 2].includes(menu.index)) return
onClickNav(menu)
}}
>
@@ -572,20 +672,17 @@ export default function CanvasMenu(props) {
{menuNumber === 5 && (
<>
- {/* |