diff --git a/src/components/floor-plan/CanvasMenu.jsx b/src/components/floor-plan/CanvasMenu.jsx index 46fe5810..95360234 100644 --- a/src/components/floor-plan/CanvasMenu.jsx +++ b/src/components/floor-plan/CanvasMenu.jsx @@ -68,7 +68,7 @@ export default function CanvasMenu(props) { const { handleZoomClear, handleZoom } = useCanvasEvent() const { handleMenu } = useMenu() // const urlParams = useSearchParams() - const { handleEstimateSubmit, fetchSetting } = useEstimateController() + const { handleEstimateSubmit, fetchSetting, estimateContextState, setEstimateContextState } = useEstimateController() const estimateRecoilState = useRecoilValue(estimateState) const [estimatePopupOpen, setEstimatePopupOpen] = useState(false) const [estimateCopyPopupOpen, setEstimateCopyPopupOpen] = useState(false) @@ -424,8 +424,8 @@ export default function CanvasMenu(props) { } useEffect(() => { - if (isObjectNotEmpty(estimateRecoilState)) { - const { createUser, tempFlg, lockFlg } = estimateRecoilState + if (isObjectNotEmpty(estimateContextState)) { + const { createUser, tempFlg, lockFlg } = estimateContextState if (createUser && tempFlg && lockFlg) { if (createUser === 'T01') { @@ -439,7 +439,7 @@ export default function CanvasMenu(props) { } } } - }, [estimateRecoilState]) + }, [estimateContextState?.createUser, estimateContextState?.tempFlg, estimateContextState?.lockFlg]) const setAllButtonStyles = (style) => { setButtonStyle1(style) @@ -464,70 +464,6 @@ export default function CanvasMenu(props) { } } - // 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 잠금상태 @@ -558,43 +494,14 @@ export default function CanvasMenu(props) { if (sessionState.storeId !== 'T01') { setAllButtonStyles('none') } else { - handleButtonStyles(tempFlg, lockFlg) + setEstimateContextState({ tempFlg: estimateRecoilState.tempFlg, lockFlg: estimateRecoilState.lockFlg }) + handleButtonStyles(estimateRecoilState.tempFlg, estimateRecoilState.lockFlg) } } else { - handleButtonStyles(tempFlg, lockFlg) + setEstimateContextState({ tempFlg: estimateRecoilState.tempFlg, lockFlg: estimateRecoilState.lockFlg }) + handleButtonStyles(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('') - // } - // } - // } } setIsGlobalLoading(false) }) diff --git a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx index bb2ec998..723d63bf 100644 --- a/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx +++ b/src/components/floor-plan/modal/circuitTrestle/step/StepUp.jsx @@ -79,72 +79,71 @@ export default function StepUp(props) { // 회로 구성 가능 여부 체크 통과 시 승압설정 정보 조회 getPcsVoltageStepUpList(params).then((res) => { - if (res.result.resultCode === 'S') { - if (res?.result.code === 200 && res?.data) { - const dataArray = Array.isArray(res.data) ? res.data : [res.data] - const stepUpListData = formatStepUpListData(dataArray) + if (res?.result.resultCode === 'S' && res?.data) { + const dataArray = Array.isArray(res.data) ? res.data : [res.data] + const stepUpListData = formatStepUpListData(dataArray) - // PCS 승압설정 정보 SET - setStepUpListData(stepUpListData) + // PCS 승압설정 정보 SET + setStepUpListData(stepUpListData) - // PCS 옵션 조회 - const formattedOptCodes = formatOptionCodes(res.data.optionList) - setOptCodes(formattedOptCodes) - setSeletedOption(formattedOptCodes[0]) + // PCS 옵션 조회 + const formattedOptCodes = formatOptionCodes(res.data.optionList) + setOptCodes(formattedOptCodes) + setSeletedOption(formattedOptCodes[0]) - // 캔버스에 회로 정보 적용 - //stepUpListData[0].pcsItemList.forEach((pcsItem) => { - stepUpListData[0].pcsItemList.forEach((pcsItem) => { - const selectedSerQty = pcsItem.serQtyList.find((serQty) => serQty.selected) - if (selectedSerQty) { - selectedSerQty.roofSurfaceList.forEach((roofSurface) => { - const targetSurface = canvas.getObjects().filter((obj) => obj.id === roofSurface.roofSurfaceId)[0] - const moduleIds = targetSurface.modules.map((module) => module.id) + // 캔버스에 회로 정보 적용 + //stepUpListData[0].pcsItemList.forEach((pcsItem) => { + stepUpListData[0].pcsItemList.forEach((pcsItem) => { + const selectedSerQty = pcsItem.serQtyList.find((serQty) => serQty.selected) + if (selectedSerQty) { + selectedSerQty.roofSurfaceList.forEach((roofSurface) => { + const targetSurface = canvas.getObjects().filter((obj) => obj.id === roofSurface.roofSurfaceId)[0] + const moduleIds = targetSurface.modules.map((module) => module.id) - // 기존 모듈 텍스트 삭제 - canvas - .getObjects() - .filter((obj) => moduleIds.includes(obj.parentId)) - .forEach((text) => canvas.remove(text)) + // 기존 모듈 텍스트 삭제 + canvas + .getObjects() + .filter((obj) => moduleIds.includes(obj.parentId)) + .forEach((text) => canvas.remove(text)) - // 새로운 모듈 회로 정보 추가 - roofSurface.moduleList.forEach((module) => { - const targetModule = canvas.getObjects().filter((obj) => obj.id === module.uniqueId)[0] - const moduleCircuitText = new fabric.Text(module.circuit, { - left: targetModule.left + targetModule.width / 2, - top: targetModule.top + targetModule.height / 2, - fontFamily: circuitNumberText.fontFamily.value, - fontWeight: circuitNumberText.fontWeight.value.toLowerCase().includes('bold') ? 'bold' : 'normal', - fontStyle: circuitNumberText.fontWeight.value.toLowerCase().includes('italic') ? 'italic' : 'normal', - fontSize: circuitNumberText.fontSize.value, - fill: circuitNumberText.fontColor.value, - width: targetModule.width, - height: targetModule.height, - textAlign: 'center', - originX: 'center', - originY: 'center', - name: 'circuitNumber', - parentId: targetModule.id, - circuitInfo: module.pcsItemId, - selectable: false, - visible: isDisplayCircuitNumber, - }) - targetModule.circuit = moduleCircuitText - targetModule.pcsItemId = module.pcsItemId - targetModule.circuitNumber = module.circuit - canvas.add(moduleCircuitText) + // 새로운 모듈 회로 정보 추가 + roofSurface.moduleList.forEach((module) => { + const targetModule = canvas.getObjects().filter((obj) => obj.id === module.uniqueId)[0] + const moduleCircuitText = new fabric.Text(module.circuit, { + left: targetModule.left + targetModule.width / 2, + top: targetModule.top + targetModule.height / 2, + fontFamily: circuitNumberText.fontFamily.value, + fontWeight: circuitNumberText.fontWeight.value.toLowerCase().includes('bold') ? 'bold' : 'normal', + fontStyle: circuitNumberText.fontWeight.value.toLowerCase().includes('italic') ? 'italic' : 'normal', + fontSize: circuitNumberText.fontSize.value, + fill: circuitNumberText.fontColor.value, + width: targetModule.width, + height: targetModule.height, + textAlign: 'center', + originX: 'center', + originY: 'center', + name: 'circuitNumber', + parentId: targetModule.id, + circuitInfo: module.pcsItemId, + selectable: false, + visible: isDisplayCircuitNumber, }) + targetModule.circuit = moduleCircuitText + targetModule.pcsItemId = module.pcsItemId + targetModule.circuitNumber = module.circuit + canvas.add(moduleCircuitText) }) - } - }) + }) + } + }) - canvas.renderAll() - } else { - swalFire({ - title: res.result.resultMsg, - type: 'alert', - }) - } + canvas.renderAll() + } else { + swalFire({ text: getMessage('common.message.send.error') }) + // swalFire({ + // title: res.result.resultMsg, + // type: 'alert', + // }) } }) } catch (error) { @@ -381,7 +380,7 @@ export default function StepUp(props) { //const res = await getPcsVoltageStepUpList(params) //getPcsManualConfChk(params).then((res) => { getPcsVoltageStepUpList(params).then((res) => { - if (res?.result.code === 200 && res?.data) { + if (res?.result.resultCode === 'S' && res?.data) { const dataArray = Array.isArray(res.data) ? res.data : [res.data] const stepUpListData = formatStepUpListData(dataArray) @@ -392,6 +391,12 @@ export default function StepUp(props) { const formattedOptCodes = formatOptionCodes(res.data.optionList) setOptCodes(formattedOptCodes) setSeletedOption(formattedOptCodes[0]) + } else { + swalFire({ text: getMessage('common.message.send.error') }) + // swalFire({ + // title: res.result.resultMsg, + // type: 'alert', + // }) } }) } diff --git a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx index 5439b303..c07701ac 100644 --- a/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx +++ b/src/components/floor-plan/modal/placementShape/PlacementShapeSetting.jsx @@ -55,31 +55,53 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, set { id: 'ra05', name: 'roofAngleSet', value: 'flat', message: 'modal.placement.initial.setting.roof.angle' }, ] - // 데이터를 최초 한 번만 조회 - // useEffect(() => { - // if (!basicSetting || !currentRoof || Object.keys(currentRoof).length === 0 || Object.keys(basicSetting).length === 0) return - // const raftCodeList = findCommonCode('203800') - // setRaftCodes(raftCodeList) - // console.log('🚀 ~ useEffect ~ >>>>>>>>>>>>> raftCodeList 11 :', raftCodeList) - - // if (addedRoofs[0].roofAngleSet && addedRoofs[0].roofAngleSet?.length > 0) { - // setCurrentRoof({ ...currentRoof, roofSizeSet: String(addedRoofs[0].roofSizeSet), roofAngleSet: addedRoofs[0].roofAngleSet }) - // } else if (basicSetting.roofAngleSet && basicSetting.roofAngleSet?.length > 0) { - // setCurrentRoof({ ...currentRoof, roofSizeSet: String(basicSetting.roofSizeSet), roofAngleSet: basicSetting.roofAngleSet }) - // } - // }, []) + const defaultRoofSettings = { + roofSizeSet: '1', // 기본 치수 입력 방법 + roofAngleSet: 'slope', // 기본 지붕 각도 설정 + angle: 21.8, + hajebichi: '', + id: 'ROOF_ID_WA_53A', + index: 0, + layout: ROOF_MATERIAL_LAYOUT.PARALLEL, + lenAuth: 'R', + lenBase: '235.000', + length: '235', + name: '일본기와 A', + nameJp: '和瓦A', + pitch: 4, + raft: '', + raftAuth: 'C', + raftBaseCd: 'HEI_455', + roofAngleSet: 'slope', + roofCd: '', + roofMatlCd: 'ROOF_ID_WA_53A', + roofMatlNm: '일본기와 A', + roofMatlNmJp: '和瓦A', + roofPchAuth: null, + roofPchBase: null, + roofSizeSet: '1', + selected: true, + widAuth: 'R', + widBase: '265.000', + width: '265', + } useEffect(() => { if (addedRoofs.length > 0) { const raftCodeList = findCommonCode('203800') setRaftCodes(raftCodeList) - setCurrentRoof({ ...addedRoofs[0] }) + // 데이터 설정 확인 후 데이터가 없으면 기본 데이터 설정 + if (addedRoofs.length > 0) { + setCurrentRoof({ ...addedRoofs[0] }) + } else { + setCurrentRoof(defaultRoofSettings) + } } }, [addedRoofs]) useEffect(() => { - console.log('🚀 ~ fetchBasicSettings ~ currentRoof :', currentRoof) + //console.log('🚀 ~ fetchBasicSettings ~ currentRoof :', currentRoof) if (!currentRoof) return setBasicSettings({ ...basicSetting, @@ -152,30 +174,14 @@ export default function PlacementShapeSetting({ id, pos = { x: 50, y: 180 }, set }, }) - setBasicSettings({ + // 배치면초기설정 저장 + basicSettingSave({ ...basicSetting, selectedRoofMaterial: { // 선택된 지붕재 정보 - ...roofInfo, + roofInfo, }, - //roofs: addedRoofs, - // roofsData: { - // roofApply: true, - // roofSeq: 0, - // roofMatlCd: currentRoof.roofMatlCd, - // roofWidth: currentRoof.width, - // roofHeight: currentRoof.length, - // roofHajebichi: currentRoof.hajebichi, - // roofGap: currentRoof.raft, - // roofLayout: currentRoof.layout, - // roofSizeSet: currentRoof.roofSizeSet, - // roofAngleSet: currentRoof.roofAngleSet, - // roofPitch: currentRoof.pitch, - // roofAngle: currentRoof.angle, - // }, }) - - basicSettingSave() } return ( diff --git a/src/components/management/StuffDetail.jsx b/src/components/management/StuffDetail.jsx index e200da48..880b5a4d 100644 --- a/src/components/management/StuffDetail.jsx +++ b/src/components/management/StuffDetail.jsx @@ -1685,11 +1685,6 @@ export default function StuffDetail() { {getMessage('stuff.detail.btn.save')} )} - {/* - - */} - */} - */} - */} - */} - */}