Browse Source

사용자 등록 기체 state 저장소 위치 변경

pull/2/head
김장현 2 years ago
parent
commit
2127aaa316
  1. 18
      src/components/map/naver/dron/DronMarker.js
  2. 14
      src/modules/control/gp/actions/controlGpAction.ts
  3. 7
      src/modules/control/gp/models/controlGpModel.ts
  4. 29
      src/modules/control/gp/reducers/controlGpReducer.ts
  5. 69
      src/modules/control/gp/sagas/controlGpSaga.ts
  6. 4
      src/redux/reducers/rootReducer.ts

18
src/components/map/naver/dron/DronMarker.js

@ -20,13 +20,15 @@ import { controlGroupAuthAction } from '../../../../modules/control/gp';
export const DronMarker = props => {
const dispatch = useDispatch();
const { controlGpList } = useSelector(state => state.controlGpState);
const { controlGpList, controlGroupAuthInfo } = useSelector(
state => state.controlGpState
);
const { objectId, isClickObject } = useSelector(
state => state.controlMapReducer
);
const { controlGroupAuthInfo } = useSelector(
state => state.controlGroupAuthState
);
// const { controlGroupAuthInfo } = useSelector(
// state => state.controlGroupAuthState
// );
const { controlGpArcrftWarnList } = useSelector(
state => state.controlGpLogState
);
@ -77,9 +79,9 @@ export const DronMarker = props => {
infoWindow.open(props.map, data.coord);
};
useLayoutEffect(() => {
dispatch(controlGroupAuthAction.request());
}, [controlGpList]);
// useLayoutEffect(() => {
// dispatch(controlGroupAuthAction.request());
// }, [controlGpList]);
useEffect(() => {
markerInit();
@ -119,8 +121,6 @@ export const DronMarker = props => {
//마커를 그린다.
const addMarkers = (position, id, controlId, gps) => {
const markerOption = {};
console.log(controlGroupAuthInfo);
console.log(gps.objectId);
if (id.substring(0, 2) === 'PA') {
const pal = controlGroupAuthInfo?.find(
prev => prev.idntfNum === gps.objectId

14
src/modules/control/gp/actions/controlGpAction.ts

@ -12,7 +12,7 @@ import {
ControlGpHisState,
ControlGpPlanContainsRQ,
ControlGpPlanContainsRS,
ControlGroupAuthState,
// ControlGroupAuthState,
ControlGpArcrftWarnList,
ControlGpWarnLogList,
ControlweatherData,
@ -102,11 +102,11 @@ export const controlGpRtDtlAction = createAsyncAction(
CONTROL_GP_RTDTL_FAILURE
)<ControlGpData, ControlGpDtlState, AxiosError>();
export const controlGroupAuthAction = createAsyncAction(
CONTROL_GROUP_AUTH_REQUEST,
CONTROL_GROUP_AUTH_SUCCESS,
CONTROL_GROUP_AUTH_FAILURE
)<string, ControlGroupAuthState, AxiosError>();
// export const controlGroupAuthAction = createAsyncAction(
// CONTROL_GROUP_AUTH_REQUEST,
// CONTROL_GROUP_AUTH_SUCCESS,
// CONTROL_GROUP_AUTH_FAILURE
// )<string, ControlGroupAuthState, AxiosError>();
export const controlGpFlightPlanAction = createAsyncAction(
CONTROL_FLIGHT_PLAN_REQUEST,
@ -148,7 +148,7 @@ const actions = {
controlGpLogAction,
controlGpDtlAction,
controlGpRtDtlAction,
controlGroupAuthAction,
// controlGroupAuthAction,
controlGpFlightPlanAction,
controlGpFlightPlanWarnAction,
controlGpArcrftWarnAction,

7
src/modules/control/gp/models/controlGpModel.ts

@ -2,6 +2,7 @@ import { FlightPlanData } from '../../../basis/flight/models/basisFlightModel';
export interface ControlGpState {
controlGpList: ControlGpData[] | undefined;
controlGroupAuthInfo: ControlGroupAuthData[] | undefined;
}
export interface ControlGpWeatherState {
@ -27,9 +28,9 @@ export interface ControlGpDtlState {
controlDetail: ControlDetailData | undefined;
}
export interface ControlGroupAuthState {
controlGroupAuthInfo: ControlGroupAuthData[] | undefined;
}
// export interface ControlGroupAuthState {
// controlGroupAuthInfo: ControlGroupAuthData[] | undefined;
// }
export interface ControlGpHistoryData {
objectId: String;

29
src/modules/control/gp/reducers/controlGpReducer.ts

@ -10,7 +10,7 @@ import {
controlGpLogAction,
controlGpHisAction,
controlGpRtDtlAction,
controlGroupAuthAction,
// controlGroupAuthAction,
controlGpArcrftWarnAction,
controlweatherAction
} from '../actions/controlGpAction';
@ -22,7 +22,7 @@ import {
ControlGpLogState,
ControlGpHisState,
ControlGpState,
ControlGroupAuthState,
// ControlGroupAuthState,
initiaResponseControlGpData,
ControlGpWeatherState
} from '../models/controlGpModel';
@ -31,8 +31,9 @@ export const controlGpReducer = createReducer<ControlGpState, ControlGpAction>(
initiaResponseControlGpData
).handleAction(controlGpAction.success, (state, action) =>
produce(state, draft => {
const { controlGpList } = action.payload;
const { controlGpList, controlGroupAuthInfo } = action.payload;
draft.controlGpList = controlGpList;
draft.controlGroupAuthInfo = controlGroupAuthInfo;
})
);
export const controlGpweatherReducer = createReducer<
@ -116,15 +117,15 @@ export const controlGpDtlReducer = createReducer<
})
);
export const controlGroupAuthReducer = createReducer<
ControlGroupAuthState,
ControlGpAction
>(initiaResponseControlGpData).handleAction(
controlGroupAuthAction.success,
(state, action) =>
produce(state, draft => {
const { controlGroupAuthInfo } = action.payload;
// export const controlGroupAuthReducer = createReducer<
// ControlGroupAuthState,
// ControlGpAction
// >(initiaResponseControlGpData).handleAction(
// controlGroupAuthAction.success,
// (state, action) =>
// produce(state, draft => {
// const { controlGroupAuthInfo } = action.payload;
draft.controlGroupAuthInfo = controlGroupAuthInfo;
})
);
// draft.controlGroupAuthInfo = controlGroupAuthInfo;
// })
// );

69
src/modules/control/gp/sagas/controlGpSaga.ts

@ -12,32 +12,43 @@ import { ControlGpData } from '../models/controlGpModel';
import { detail } from '../../../analysis/history/actions/analysisHistoryAction';
import { useSelector } from 'react-redux';
const token = cookieStorage.getCookie(COOKIE_ACCESS_TOKEN);
function* getControlGpSaga(
action: ActionType<typeof Actions.controlGpAction.request>
) {
try {
const data = action.payload;
const state = yield select();
const { objectId, isClickObject } = state.controlMapReducer;
// 그룹 별 기체 필터링
const { controlGroupAuthInfo } = state.controlGroupAuthState;
const { controlGroupAuthInfo } = state.controlGpState;
const { controlGpHistory } = state.controlGpHisState;
let gpsData: ControlGpData[] = [];
// let gpsData: ControlGpData[] = [];
//사용자가 등록한 기체(식별장치 포함)만 관제에서 볼 수 있게 필터처리
if (controlGroupAuthInfo?.length > 0) {
controlGroupAuthInfo.forEach(auth => {
if (gpsData.length > 0) return false;
// if (controlGroupAuthInfo?.length > 0) {
// controlGroupAuthInfo.forEach(auth => {
// if (gpsData.length > 0) return false;
// gpsData = data.filter(gps => auth.idntfNum === gps.objectId);
});
// // gpsData = data.filter(gps => auth.idntfNum === gps.objectId);
// });
// }
let res;
if (token && data.length > 0) {
const user = decode<LoginData>(token);
res = yield call(controlGpApi.getGroupAuth, user.cstmrSno);
}
yield put(
Actions.controlGpAction.success({
// controlGpList: gpsData
controlGpList: data
controlGpList: data,
controlGroupAuthInfo: res || []
})
);
@ -144,26 +155,26 @@ function* controlDtlSaga(
}
}
function* controlGroupAuthSaga(
action: ActionType<typeof Actions.controlGroupAuthAction.request>
) {
const token = cookieStorage.getCookie(COOKIE_ACCESS_TOKEN);
try {
if (token) {
const user = decode<LoginData>(token);
const data = yield call(controlGpApi.getGroupAuth, user.cstmrSno);
yield put(
Actions.controlGroupAuthAction.success({
controlGroupAuthInfo: data
})
);
}
} catch (error) {
yield put(Actions.controlGroupAuthAction.failure(error));
}
}
// function* controlGroupAuthSaga(
// action: ActionType<typeof Actions.controlGroupAuthAction.request>
// ) {
// const token = cookieStorage.getCookie(COOKIE_ACCESS_TOKEN);
// try {
// if (token) {
// const user = decode<LoginData>(token);
// const data = yield call(controlGpApi.getGroupAuth, user.cstmrSno);
// yield put(
// Actions.controlGroupAuthAction.success({
// controlGroupAuthInfo: data
// })
// );
// }
// } catch (error) {
// yield put(Actions.controlGroupAuthAction.failure(error));
// }
// }
function* controlGpFlightPlanSaga(
action: ActionType<typeof Actions.controlGpFlightPlanAction.request>
@ -235,7 +246,7 @@ export function* controlGpSaga() {
yield takeEvery(Actions.controlGpLogAction.request, getControlGpWarnLogSaga);
yield takeEvery(Actions.controlGpRtDtlAction.request, controlGpRtDtlSaga);
yield takeEvery(Actions.controlGpDtlAction.request, controlDtlSaga);
yield takeEvery(Actions.controlGroupAuthAction.request, controlGroupAuthSaga);
// yield takeEvery(Actions.controlGroupAuthAction.request, controlGroupAuthSaga);
yield takeEvery(Actions.controlweatherAction.request, ControlWeatherSaga);
yield takeEvery(

4
src/redux/reducers/rootReducer.ts

@ -25,7 +25,7 @@ import {
controlGpDtlReducer,
controlGpHisReducer,
controlGpReducer,
controlGroupAuthReducer,
// controlGroupAuthReducer,
controlGpFltPlanReducer,
controlGpSaga,
ControlGpState,
@ -79,7 +79,7 @@ const rootReducer = combineReducers({
controlGpHisState: controlGpHisReducer,
controlGpLogState: controlGpLogReducer,
controlGpDtlState: controlGpDtlReducer,
controlGroupAuthState: controlGroupAuthReducer,
// controlGroupAuthState: controlGroupAuthReducer,
controlGpFltPlanState: controlGpFltPlanReducer,
menuState: menuReducer,
analysisHistoryState: analysisHistoryReducer,

Loading…
Cancel
Save