diff --git a/src/modules/basis/flight/models/basisFlightModel.ts b/src/modules/basis/flight/models/basisFlightModel.ts index dbc1810..09d2e1d 100644 --- a/src/modules/basis/flight/models/basisFlightModel.ts +++ b/src/modules/basis/flight/models/basisFlightModel.ts @@ -490,13 +490,14 @@ export const initFlightBas = { cstmrSno: 0, memberName: '', email: '', + commercial: '', hpno: '', clncd: '+82', addr: '', addrDtlCn: '', zip: '', - schFltStDt: moment().format('YYYY-MM-DD HH:mm:ss'), - schFltEndDt: moment().format('YYYY-MM-DD HH:mm:ss'), + schFltStDt: moment().add(5, 'minute').format('YYYY-MM-DD HH:mm:ss'), + schFltEndDt: moment().add(2, 'hours').format('YYYY-MM-DD HH:mm:ss'), fltPurpose: '', aprvlYn: '', delYn: '', diff --git a/src/views/laanc/LaacnStep3.js b/src/views/laanc/LaacnStep3.js index 5e92758..50c761d 100644 --- a/src/views/laanc/LaacnStep3.js +++ b/src/views/laanc/LaacnStep3.js @@ -1,4 +1,5 @@ import React, { useEffect, useState } from 'react'; +import { useDispatch, useSelector, shallowEqual } from 'react-redux'; import moment from 'moment'; import { Row, @@ -20,8 +21,10 @@ import { AlertCircle } from 'react-feather'; export default function LaacnStep3({ handlerStep, disabledAnimation, + data, setDisabledAnimation }) { + const { user } = useSelector(state => state.authState); return ( <> @@ -47,10 +50,12 @@ export default function LaacnStep3({ @@ -61,10 +66,12 @@ export default function LaacnStep3({ @@ -75,8 +82,10 @@ export default function LaacnStep3({ @@ -89,8 +98,10 @@ export default function LaacnStep3({ @@ -103,7 +114,9 @@ export default function LaacnStep3({ diff --git a/src/views/laanc/LeftMenu.js b/src/views/laanc/LeftMenu.js deleted file mode 100644 index fc4327f..0000000 --- a/src/views/laanc/LeftMenu.js +++ /dev/null @@ -1,277 +0,0 @@ -import logo from '../../assets/images/pal_logo.png'; -import tp_logo from '../../assets/images/tplogo_wh.png'; -import kac_logo from '../../assets/images/kac_logo_wh.png'; -import FlightPlan from './LaancStep1'; -import Apply from './LaancStep2'; -import { useEffect, useState } from 'react'; -import { AiOutlinePoweroff, AiOutlineExclamation } from 'react-icons/ai'; -import WebsocketClient from '../../components/websocket/WebsocketClient'; -import UserDropdown from '../../@core/layouts/components/navbar/UserDropdown'; -import { ErrorModal } from '../../components/modal/ErrorModal'; -import { - initFlight, - initFlightBas -} from '../../modules/basis/flight/models/basisFlightModel'; -import { WeatherContainer } from '../../containers/basis/flight/plan/WeatherContainer'; -import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap'; -import moment from 'moment'; -function LeftMenu() { - const [step, setStep] = useState(1); - const [detailData, setDetailData] = useState(initFlightBas.initDetail); - const [formModal, setFormModal] = useState(false); - const [modal2, setModal2] = useState({ - isOpen: false, - title: '', - desc: '' - }); - - //날씨 임시 데이터 - const [wheather, setWheather] = useState([ - { - coordList: [ - { - lat: 37.40284040287055, - lon: 126.68639226254697 - } - ] - } - ]); - - // step 핸들러 - const handlerStep = step => { - setStep(step); - }; - - const handlerLogout = () => { - dispatch(Actions.logout.request()); - }; - - useEffect(() => {}, [detailData]); - - // 날씨 핸들러 - const handlerWeather = () => { - setFormModal(!formModal); - }; - - // 비행계획서 작성 핸들러 - const handleChange = ({ name, value, type, index, pIndex }) => { - const arrName = `${type}List`; - - switch (type) { - case 'area': - case 'pilot': - case 'arcrft': - if (name === 'fltElev' || name === 'bufferZone' || name === 'hpno') { - const newValue = value.replace(/[^0-9]/g, ''); - setDetailData(prevState => { - const arr = [...prevState[arrName]]; - const updateData = { - ...prevState[arrName][0], - [name]: newValue - }; - arr[0] = updateData; - return { - ...prevState, - [arrName]: arr - }; - }); - } else { - setDetailData(prevState => { - const arr = [...prevState[arrName]]; - const updateData = { - ...prevState[arrName][0], - [name]: value - }; - arr[0] = updateData; - return { - ...prevState, - [arrName]: arr - }; - }); - } - break; - case 'plan': - default: - setDetailData(prevState => ({ - ...prevState, - [name]: value - })); - break; - } - }; - - console.log('>>>>', detailData); - // 스텝 1 다음 버튼 이벤트 - const handlerNext = () => { - const reg_email = - /^([0-9a-zA-Z_\.-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/; - const check_num = /[0-9]/; - const check_kor = - /^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/; - // 시작일자 - const schFltStDt = moment(detailData.schFltStDt, 'YYYY-MM-DD HH:mm:ss'); - // 종료일자 - const schFltEndDt = moment(detailData.schFltEndDt, 'YYYY-MM-DD HH:mm:ss'); - - const currentDate = moment(); // 현재 날짜와 시간을 가져옵니다. - - if (!detailData.pilotList[0].memberName) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '이름을 입력해 주세요.' - }); - return false; - } else if (!check_num.test(detailData.pilotList[0].hpno)) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '연락처를 확인해 주세요.' - }); - return false; - } else if (!reg_email.test(detailData.pilotList[0].email)) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '이메일을 확인해 주세요.' - }); - - return false; - } else if ( - !schFltStDt.isAfter(currentDate) || - !schFltEndDt.isAfter(currentDate) - ) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '비행 일자가 이미 지난 일자입니다.' - }); - return false; - } else if (schFltStDt.isAfter(schFltEndDt)) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '비행일자를 확인해주세요.' - }); - return false; - } else if (!detailData.fltPurpose) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '비행목적을 선택해 주세요.' - }); - - return false; - } else if (!detailData.areaList[0].fltElev) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '고도를 입력해 주세요.' - }); - - return false; - } else if (!detailData.areaList[0].bufferZone) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '반경을 입력해 주세요.' - }); - - return false; - } else if (!detailData.areaList[0].fltMethod) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '비행방식를 입력해 주세요.' - }); - - return false; - } else if (!detailData.arcrftList[0].groupNm) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '기체 신고 번호를 입력해 주세요.' - }); - - return false; - } else if (!detailData.arcrftList[0].arcrftTypeCd) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '기체 종류를 입력해 주세요.' - }); - - return false; - } else if (!detailData.arcrftList[0].ownerNm) { - setModal2({ - isOpen: true, - title: '필수값 입력 오류', - desc: '소유자명(법인명)를 입력해 주세요.' - }); - - return false; - } else { - //api 호출 부분 - - setStep(2); - } - }; - - return ( - <> -
-

- - PAL -

- - -
-
- -
- {step === 1 && ( - - )} - - {step === 2 && } -
- - - 날씨 정보 - - - - - - - -
- - ); -} - -export default LeftMenu; diff --git a/src/views/laanc/index.js b/src/views/laanc/index.js deleted file mode 100644 index 1044480..0000000 --- a/src/views/laanc/index.js +++ /dev/null @@ -1,16 +0,0 @@ -import { MapControl } from '../../components/map/MapControl'; -import LeftMenu from './LeftMenu'; - -const LaancView = () => { - return ( -
-
- -
- - -
- ); -}; - -export default LaancView;