|
|
|
@ -15,33 +15,47 @@ let playCount = 0;
|
|
|
|
|
let playCounts = 0; |
|
|
|
|
|
|
|
|
|
export const AnalysisSimulationContainer = props => { |
|
|
|
|
// 슬라이드 모든 데이터
|
|
|
|
|
const { list, count, detail, searchParams, log, stcsList, stcsCount, page } = |
|
|
|
|
useSelector(state => state.analysisSimulatorState); |
|
|
|
|
|
|
|
|
|
// 비행 시물레이션 데이터
|
|
|
|
|
const [oepnReportList, setOpenReportList] = useState(false); |
|
|
|
|
|
|
|
|
|
// 지도 객체
|
|
|
|
|
const [mapObject, setMapObject] = useState(null); |
|
|
|
|
|
|
|
|
|
// 비행 시물레이션 데이터 상세보기
|
|
|
|
|
const [openDetail, setOpenDetail] = useState(false); |
|
|
|
|
|
|
|
|
|
// 선택 마커
|
|
|
|
|
const [selMarker, setSelMarker] = useState(null); |
|
|
|
|
|
|
|
|
|
// 좌표 정보
|
|
|
|
|
const [selPolyline, setSelPolyline] = useState(null); |
|
|
|
|
|
|
|
|
|
// 슬라이드 재생 여부
|
|
|
|
|
const [isPlay, setIsPlay] = useState(false); |
|
|
|
|
|
|
|
|
|
// 드론 정보
|
|
|
|
|
const [info, setInfo] = useState(null); |
|
|
|
|
|
|
|
|
|
// 슬라이드 시간
|
|
|
|
|
const [timeCd, setTimeCd] = useState(null); |
|
|
|
|
|
|
|
|
|
// 슬라이드 카운터
|
|
|
|
|
const [sliderCount, setSliderCount] = useState(0); |
|
|
|
|
|
|
|
|
|
// 검색 텍스트
|
|
|
|
|
const [searchText, setSearchText] = useState(''); |
|
|
|
|
|
|
|
|
|
// 비행 pk 값
|
|
|
|
|
const [cntrlId, setCntrlId] = useState(''); |
|
|
|
|
|
|
|
|
|
// 드론 마커
|
|
|
|
|
const [marker, setMarker] = useState(null); |
|
|
|
|
|
|
|
|
|
// 카운터 초기값
|
|
|
|
|
const [sliderVal, setSliderVal] = useState({ |
|
|
|
|
maxVal: 0, |
|
|
|
|
minVal: 0 |
|
|
|
@ -49,6 +63,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
|
|
|
|
|
const dispatch = useDispatch(); |
|
|
|
|
|
|
|
|
|
// 드론 갯수
|
|
|
|
|
const [dronLength, setDronLength] = useState(0); |
|
|
|
|
|
|
|
|
|
const [countArray, setCountArray] = useState([]); |
|
|
|
@ -58,7 +73,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
search1: '' |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// 시뮬레이션 타이머
|
|
|
|
|
// 시뮬레이션 타이머 로직
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (isPlay) { |
|
|
|
|
const countCheck = log.map(item => |
|
|
|
@ -95,6 +110,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
} |
|
|
|
|
}, [isPlay, log]); |
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (isPlay) { |
|
|
|
|
setInfo({ ...log[playCount], playCount, playCounts }); |
|
|
|
@ -102,6 +118,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
} |
|
|
|
|
}, [stcsList]); |
|
|
|
|
|
|
|
|
|
// 검색 변경 헨들러
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (oepnReportList) { |
|
|
|
|
if (searchParams) { |
|
|
|
@ -113,6 +130,8 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, [oepnReportList]); |
|
|
|
|
|
|
|
|
|
// 슬라이드 카운터 로직
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (sliderCount && sliderCount > 0) { |
|
|
|
|
let benear = countArray[0]; |
|
|
|
@ -138,6 +157,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
} |
|
|
|
|
}, [sliderCount]); |
|
|
|
|
|
|
|
|
|
// 슬라이드 카운터 초기화
|
|
|
|
|
useEffect(() => { |
|
|
|
|
playCount = 0; |
|
|
|
|
playCounts = 0; |
|
|
|
@ -163,6 +183,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
// let maxDate;
|
|
|
|
|
}, [log]); |
|
|
|
|
|
|
|
|
|
// 검색 헨들러
|
|
|
|
|
const handlerSearch = search1 => { |
|
|
|
|
setParams({ ...params, search1 }); |
|
|
|
|
dispatch( |
|
|
|
@ -178,10 +199,12 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
dispatch(Actions.log.request(id)); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
const handlerStcsSearch = id => { |
|
|
|
|
dispatch(Actions.stcs.request(id)); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 검색
|
|
|
|
|
const handlerInput = (type, val) => { |
|
|
|
|
if (type === 'search1') { |
|
|
|
|
setParams({ ...params, search1: val }); |
|
|
|
@ -197,6 +220,7 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 상세보기
|
|
|
|
|
const handlerDetail = id => { |
|
|
|
|
// setOpenReportList(false);
|
|
|
|
|
handlerDetailSearch(id); |
|
|
|
@ -206,19 +230,25 @@ export const AnalysisSimulationContainer = props => {
|
|
|
|
|
|
|
|
|
|
setCntrlId(id); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 로그아웃
|
|
|
|
|
const handlerLogout = () => { |
|
|
|
|
dispatch(Action.logout.request()); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 비행 시물레이션 데이터 닫기
|
|
|
|
|
const handlerDetailClose = () => { |
|
|
|
|
setOpenDetail(false); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// 비행 시물레이션 데이터 호출
|
|
|
|
|
const handlerPageList = useCallback(() => { |
|
|
|
|
dispatch( |
|
|
|
|
Actions.list.request({ searchParams: { ...params }, page: page + 1 }) |
|
|
|
|
); |
|
|
|
|
}, [params, list, page]); |
|
|
|
|
|
|
|
|
|
// 비행 시물레이션 데이터 모달 헨들러
|
|
|
|
|
const handlerOpenReportList = useCallback( |
|
|
|
|
val => { |
|
|
|
|
setOpenReportList(val); |
|
|
|
|