|
|
|
@ -33,160 +33,10 @@ import {
|
|
|
|
|
sensorClickAction |
|
|
|
|
} from '../../modules/control/map/actions/controlMapActions'; |
|
|
|
|
import { useHistory } from 'react-router-dom'; |
|
|
|
|
const FlightPlan = props => { |
|
|
|
|
const [detailData, setDetailData] = useState(initFlightBas.initDetail); |
|
|
|
|
const FlightPlan = ({ handleChange, handlerNext, data }) => { |
|
|
|
|
const user = useSelector(state => state.authState); |
|
|
|
|
const [modal2, setModal2] = useState({ |
|
|
|
|
isOpen: false, |
|
|
|
|
title: '', |
|
|
|
|
desc: '' |
|
|
|
|
}); |
|
|
|
|
const history = useHistory(); |
|
|
|
|
|
|
|
|
|
const handleChange = ({ name, value, type, index, pIndex }) => { |
|
|
|
|
// 입력 값에서 숫자 이외의 문자를 제거
|
|
|
|
|
|
|
|
|
|
const arrName = `${type}List`; |
|
|
|
|
|
|
|
|
|
switch (type) { |
|
|
|
|
case 'area': |
|
|
|
|
case 'pilot': |
|
|
|
|
case 'arcrft': |
|
|
|
|
if (name === 'fltElev' || name === 'bufferZone') { |
|
|
|
|
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; |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
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]*$/; |
|
|
|
|
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; |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
} else if (!reg_email.test(detailData.pilotList[0].email)) { |
|
|
|
|
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 호출 부분
|
|
|
|
|
|
|
|
|
|
handleClick(2); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const handleClick = value => { |
|
|
|
|
props.handlerStep(value); |
|
|
|
|
}; |
|
|
|
|
const history = useHistory(); |
|
|
|
|
|
|
|
|
|
const handlerLaanc = () => { |
|
|
|
|
history.replace('/control'); |
|
|
|
@ -227,7 +77,7 @@ const FlightPlan = props => {
|
|
|
|
|
className='mr-1' |
|
|
|
|
color='primary' |
|
|
|
|
onClick={e => handlerDrawType('LINE')} |
|
|
|
|
disabled={props.isDisabled || props.isDone} |
|
|
|
|
// disabled={isDisabled || isDone}
|
|
|
|
|
> |
|
|
|
|
WayPoint |
|
|
|
|
</Button.Ripple> |
|
|
|
@ -235,7 +85,7 @@ const FlightPlan = props => {
|
|
|
|
|
className='mr-1' |
|
|
|
|
color='primary' |
|
|
|
|
onClick={e => handlerDrawType('CIRCLE')} |
|
|
|
|
disabled={props.isDisabled || props.isDone} |
|
|
|
|
// disabled={isDisabled || isDone}
|
|
|
|
|
> |
|
|
|
|
Circle |
|
|
|
|
</Button.Ripple> |
|
|
|
@ -243,7 +93,7 @@ const FlightPlan = props => {
|
|
|
|
|
className='mr-1' |
|
|
|
|
color='primary' |
|
|
|
|
onClick={e => handlerDrawType('POLYGON')} |
|
|
|
|
disabled={props.isDisabled || props.isDone} |
|
|
|
|
// disabled={isDisabled || isDone}
|
|
|
|
|
> |
|
|
|
|
Polygon |
|
|
|
|
</Button.Ripple> |
|
|
|
@ -265,7 +115,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='memberName' |
|
|
|
|
name='memberName' |
|
|
|
|
// defaultValue={data.memberName}
|
|
|
|
|
value={detailData.pilotList[0].memberName || ''} |
|
|
|
|
value={data.pilotList[0].memberName || ''} |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
|
handleChange({ |
|
|
|
@ -310,7 +160,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='hpno' |
|
|
|
|
name='hpno' |
|
|
|
|
// defaultValue={data.hpno}
|
|
|
|
|
value={detailData.pilotList[0].hpno || ''} |
|
|
|
|
value={data.pilotList[0].hpno || ''} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -335,7 +185,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='email' |
|
|
|
|
name='email' |
|
|
|
|
// defaultValue={data.email || ''}
|
|
|
|
|
value={detailData.pilotList[0].email} |
|
|
|
|
value={data.pilotList[0].email} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -345,7 +195,7 @@ const FlightPlan = props => {
|
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
// innerRef={props.data}
|
|
|
|
|
// innerRef={data}
|
|
|
|
|
placeholder='' |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
@ -369,8 +219,8 @@ const FlightPlan = props => {
|
|
|
|
|
id='schFltStDt' |
|
|
|
|
name='schFltStDt' |
|
|
|
|
data-enable-time |
|
|
|
|
defaultValue={detailData.schFltStDt} |
|
|
|
|
value={detailData.schFltStDt} |
|
|
|
|
defaultValue={data.schFltStDt} |
|
|
|
|
value={data.schFltStDt} |
|
|
|
|
onChange={date => { |
|
|
|
|
const value = |
|
|
|
|
moment(date[0]).format('YYYY-MM-DD HH:mm:ss') || |
|
|
|
@ -396,8 +246,8 @@ const FlightPlan = props => {
|
|
|
|
|
id='schFltEndDt' |
|
|
|
|
name='schFltEndDt' |
|
|
|
|
data-enable-time |
|
|
|
|
defaultValue={detailData.schFltEndDt} |
|
|
|
|
value={detailData.schFltEndDt} |
|
|
|
|
defaultValue={data.schFltEndDt} |
|
|
|
|
value={data.schFltEndDt} |
|
|
|
|
onChange={date => { |
|
|
|
|
const value = |
|
|
|
|
moment(date[0]).format('YYYY-MM-DD HH:mm:ss') || |
|
|
|
@ -421,7 +271,7 @@ const FlightPlan = props => {
|
|
|
|
|
type='select' |
|
|
|
|
id='fltPurpose' |
|
|
|
|
name='fltPurpose' |
|
|
|
|
value={detailData.fltPurpose} |
|
|
|
|
value={data.fltPurpose} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -431,9 +281,9 @@ const FlightPlan = props => {
|
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
// innerRef={props.data}
|
|
|
|
|
// innerRef={data}
|
|
|
|
|
// className={classnames({
|
|
|
|
|
// 'is-invalid': props.errors.arcrftTypeCd
|
|
|
|
|
// 'is-invalid': errors.arcrftTypeCd
|
|
|
|
|
// })}
|
|
|
|
|
> |
|
|
|
|
{/* TODO CDNOT 코드연동 필요 */} |
|
|
|
@ -469,7 +319,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='fltElev' |
|
|
|
|
name='fltElev' |
|
|
|
|
// defaultValue={data.email || ''}
|
|
|
|
|
value={detailData.areaList[0].fltElev} |
|
|
|
|
value={data.areaList[0].fltElev} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -479,7 +329,7 @@ const FlightPlan = props => {
|
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
// innerRef={props.data}
|
|
|
|
|
// innerRef={data}
|
|
|
|
|
placeholder='100m' |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
@ -494,7 +344,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='bufferZone' |
|
|
|
|
name='bufferZone' |
|
|
|
|
// defaultValue={data.email || ''}
|
|
|
|
|
value={detailData.areaList[0].bufferZone} |
|
|
|
|
value={data.areaList[0].bufferZone} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -504,7 +354,7 @@ const FlightPlan = props => {
|
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
// innerRef={props.data}
|
|
|
|
|
// innerRef={data}
|
|
|
|
|
placeholder='100m' |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
@ -519,7 +369,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='fltMethod' |
|
|
|
|
name='fltMethod' |
|
|
|
|
// defaultValue={data.email || ''}
|
|
|
|
|
value={detailData.areaList[0].fltMethod} |
|
|
|
|
value={data.areaList[0].fltMethod} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -529,7 +379,7 @@ const FlightPlan = props => {
|
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
// innerRef={props.data}
|
|
|
|
|
// innerRef={data}
|
|
|
|
|
placeholder='' |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
@ -551,7 +401,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='groupNm' |
|
|
|
|
name='groupNm' |
|
|
|
|
// defaultValue={data.email || ''}
|
|
|
|
|
// value={data.email}
|
|
|
|
|
value={data.arcrftList[0].groupNm} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -561,7 +411,7 @@ const FlightPlan = props => {
|
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
// innerRef={props.data}
|
|
|
|
|
// innerRef={data}
|
|
|
|
|
placeholder='' |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
@ -576,7 +426,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='arcrftTypeCd' |
|
|
|
|
name='arcrftTypeCd' |
|
|
|
|
// defaultValue={data.email || ''}
|
|
|
|
|
// value={data.email}
|
|
|
|
|
value={data.arcrftList[0].arcrftTypeCd} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -586,7 +436,7 @@ const FlightPlan = props => {
|
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
// innerRef={props.data}
|
|
|
|
|
// innerRef={data}
|
|
|
|
|
placeholder='100m' |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
@ -601,7 +451,7 @@ const FlightPlan = props => {
|
|
|
|
|
id='ownerNm' |
|
|
|
|
name='ownerNm' |
|
|
|
|
// defaultValue={data.email || ''}
|
|
|
|
|
// value={data.email}
|
|
|
|
|
value={data.arcrftList[0].ownerNm} |
|
|
|
|
bsSize='sm' |
|
|
|
|
onChange={e => { |
|
|
|
|
const { name, value } = e.target; |
|
|
|
@ -611,7 +461,7 @@ const FlightPlan = props => {
|
|
|
|
|
value |
|
|
|
|
}); |
|
|
|
|
}} |
|
|
|
|
// innerRef={props.data}
|
|
|
|
|
// innerRef={data}
|
|
|
|
|
placeholder='' |
|
|
|
|
/> |
|
|
|
|
</FormGroup> |
|
|
|
@ -647,7 +497,6 @@ const FlightPlan = props => {
|
|
|
|
|
</Row> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|
<ErrorModal modal={modal2} setModal={setModal2} /> |
|
|
|
|
</div> |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|