|
|
@ -1,42 +1,22 @@ |
|
|
|
import { useEffect, useState } from 'react'; |
|
|
|
import { useEffect, useState } from 'react'; |
|
|
|
import { useLocation } from 'react-router-dom'; |
|
|
|
import { useLocation } from 'react-router-dom'; |
|
|
|
import { Button, Badge } from 'reactstrap'; |
|
|
|
import { Button, Badge } from 'reactstrap'; |
|
|
|
import moment from 'moment'; |
|
|
|
import { useDispatch } from 'react-redux'; |
|
|
|
import { useDispatch, useSelector, shallowEqual } from 'react-redux'; |
|
|
|
|
|
|
|
import { CustomMainLayout } from '../../components/layout/CustomMainLayout'; |
|
|
|
import { CustomMainLayout } from '../../components/layout/CustomMainLayout'; |
|
|
|
import * as LaancAction from '../../modules/laanc/actions/laancActions'; |
|
|
|
import * as LaancAction from '../../modules/laanc/actions/laancActions'; |
|
|
|
import * as AreaAction from '../../modules/basis/flight/actions/basisFlightAction'; |
|
|
|
import * as AreaAction from '../../modules/basis/flight/actions/basisFlightAction'; |
|
|
|
import { drawTypeChangeAction } from '../../modules/control/map/actions/controlMapActions'; |
|
|
|
import { drawTypeChangeAction } from '../../modules/control/map/actions/controlMapActions'; |
|
|
|
import { |
|
|
|
|
|
|
|
JOIN_LIST, |
|
|
|
|
|
|
|
GROUP_LIST |
|
|
|
|
|
|
|
} from '../../modules/basis/group/actions/basisGroupAction'; |
|
|
|
|
|
|
|
import LaancPlanContainer from './LaancPlanContainer'; |
|
|
|
import LaancPlanContainer from './LaancPlanContainer'; |
|
|
|
import LaancSearch from '../../components/laanc/list/LaancSearch'; |
|
|
|
import LaancSearch from '../../components/laanc/list/LaancSearch'; |
|
|
|
import LaancGrid from '../../components/laanc/list/LaancGrid'; |
|
|
|
import LaancGrid from '../../components/laanc/list/LaancGrid'; |
|
|
|
|
|
|
|
|
|
|
|
const initSearchData = { |
|
|
|
|
|
|
|
schFltStDt: moment() |
|
|
|
|
|
|
|
.set({ date: 1, h: 0, m: 0, s: 0 }) |
|
|
|
|
|
|
|
.format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
|
|
|
|
schFltEndDt: moment() |
|
|
|
|
|
|
|
.set({ h: 23, m: 59, s: 59 }) |
|
|
|
|
|
|
|
.format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
|
|
|
|
aprvlYn: 'A', |
|
|
|
|
|
|
|
groupId: '', |
|
|
|
|
|
|
|
cstmrSno: 0 |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
// const columns = [{}];
|
|
|
|
|
|
|
|
export default function LaancContainer() { |
|
|
|
export default function LaancContainer() { |
|
|
|
const dispatch = useDispatch(); |
|
|
|
const dispatch = useDispatch(); |
|
|
|
const location = useLocation(); |
|
|
|
const location = useLocation(); |
|
|
|
|
|
|
|
|
|
|
|
const [currentParm, setCurrentParm] = useState(false); |
|
|
|
const [currentParm, setCurrentParm] = useState(false); |
|
|
|
const [disabledAnimation, setDisabledAnimation] = useState(false); |
|
|
|
const [disabledAnimation, setDisabledAnimation] = useState(false); |
|
|
|
const [searchData, setSerchData] = useState(initSearchData); |
|
|
|
|
|
|
|
//비행계획서 신청 버튼 활성/비활성 제어
|
|
|
|
|
|
|
|
const [isMyGroup, setIsMyGroup] = useState(); |
|
|
|
|
|
|
|
const { user } = useSelector(state => state.authState, shallowEqual); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const queryParams = new URLSearchParams(location.search); |
|
|
|
const queryParams = new URLSearchParams(location.search); |
|
|
|
const mapParam = queryParams.get('map'); |
|
|
|
const mapParam = queryParams.get('map'); |
|
|
@ -49,49 +29,6 @@ export default function LaancContainer() { |
|
|
|
setDisabledAnimation(mapParam != 'true' ? false : true); |
|
|
|
setDisabledAnimation(mapParam != 'true' ? false : true); |
|
|
|
}, [location]); |
|
|
|
}, [location]); |
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
|
|
|
if (user?.cstmrSno) { |
|
|
|
|
|
|
|
if (user.authId === 'SUPER' || user.authId === 'ADMIN') { |
|
|
|
|
|
|
|
dispatch(GROUP_LIST.request({ cstmrSno: user?.cstmrSno })); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
dispatch( |
|
|
|
|
|
|
|
JOIN_LIST.request({ |
|
|
|
|
|
|
|
cstmrSno: user?.cstmrSno |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, [user]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
|
|
|
if (searchData?.groupId) { |
|
|
|
|
|
|
|
handleSearch(searchData); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//admin -> myGroupAuthCd
|
|
|
|
|
|
|
|
const group = groupList?.find( |
|
|
|
|
|
|
|
prev => prev.groupId === listSelect.groupId |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const join = joinList?.find(prev => prev.groupId === listSelect.groupId); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const obj = { |
|
|
|
|
|
|
|
groupAuthCd: join?.groupAuthCd, |
|
|
|
|
|
|
|
myGroupAuthCd: group?.myGroupAuthCd |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//비행계획서 신청 버튼 활성/비활성 제어
|
|
|
|
|
|
|
|
let my = false; |
|
|
|
|
|
|
|
if (user.authId === 'SUPER') { |
|
|
|
|
|
|
|
my = true; |
|
|
|
|
|
|
|
} else if (user.authId === 'ADMIN') { |
|
|
|
|
|
|
|
my = obj?.myGroupAuthCd && true; |
|
|
|
|
|
|
|
} else if (user.authId === 'USER') { |
|
|
|
|
|
|
|
my = obj?.groupAuthCd && true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
setIsMyGroup(my); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, [searchData]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleApply = () => { |
|
|
|
const handleApply = () => { |
|
|
|
dispatch(drawTypeChangeAction('')); |
|
|
|
dispatch(drawTypeChangeAction('')); |
|
|
|
dispatch(LaancAction.LAANC_APPROVAL_INIT()); |
|
|
|
dispatch(LaancAction.LAANC_APPROVAL_INIT()); |
|
|
@ -104,7 +41,7 @@ export default function LaancContainer() { |
|
|
|
<CustomMainLayout title={'LAANC 신청 목록'}> |
|
|
|
<CustomMainLayout title={'LAANC 신청 목록'}> |
|
|
|
<div className='sub-text'> |
|
|
|
<div className='sub-text'> |
|
|
|
사업용 또는 비 사업용이며, 기체최대이륙중량이 2kg 초과 시 기체등록은 |
|
|
|
사업용 또는 비 사업용이며, 기체최대이륙중량이 2kg 초과 시 기체등록은 |
|
|
|
필수입니다.{' '} |
|
|
|
필수입니다. |
|
|
|
<a href='/laanc/report'> |
|
|
|
<a href='/laanc/report'> |
|
|
|
<Badge color='light-primary'>기체신고대상 및 기준 자세히보기</Badge> |
|
|
|
<Badge color='light-primary'>기체신고대상 및 기준 자세히보기</Badge> |
|
|
|
</a> |
|
|
|
</a> |
|
|
|