Browse Source

Laanc 승인 인청 목록 상세보기 api 연결

pull/2/head
박상현 11 months ago
parent
commit
d0e8bbaef1
  1. 22
      src/components/laanc/LaancGrid.js
  2. 18
      src/modules/laanc/actions/laancActions.ts
  3. 5
      src/modules/laanc/apis/laancApi.ts
  4. 88
      src/modules/laanc/models/laancModels.ts
  5. 6
      src/modules/laanc/reducers/laancReducers.ts
  6. 20
      src/modules/laanc/sagas/laancSagas.ts

22
src/components/laanc/LaancGrid.js

@ -1,6 +1,8 @@
import { useSelector, useDispatch } from 'react-redux';
import { useHistory } from 'react-router-dom';
import { GridDatabase } from '@src/components/crud/grid/GridDatatable';
import { Row, Col, Card, Button, Spinner } from 'reactstrap';
import { useSelector } from 'react-redux';
import * as LaancAction from '../../modules/laanc/actions/laancActions';
import moment from 'moment';
const data = [
@ -31,6 +33,9 @@ const data = [
];
function LaancGrid() {
const dispatch = useDispatch();
const history = useHistory();
const { scheduleList } = useSelector(state => state.flightState);
const { laancSearchData } = useSelector(state => state.laancState);
const { loading } = useSelector(state => state.loadingReducer);
@ -41,6 +46,13 @@ function LaancGrid() {
: new Array(width - str.length + 1).join('0') + str; //남는 길이만큼 0으로 채움
};
//상세보기
const handleDetail = planSno => {
dispatch(LaancAction.LAANC_DETAIL.request(planSno));
// history.push('/basis/flight/plan/create');
// to={`/basis/flight/plan/detail/${row.planSno}?type=plan`}
};
const columns = [
{
name: '비행계획서 일련 번호',
@ -129,7 +141,13 @@ function LaancGrid() {
sortable: true,
cell: row => {
return (
<Button.Ripple color='primary' size='sm' onClick={() => {}}>
<Button.Ripple
color='primary'
size='sm'
onClick={() => {
handleDetail(row.planSno);
}}
>
상세보기
</Button.Ripple>
);

18
src/modules/laanc/actions/laancActions.ts

@ -9,7 +9,8 @@ import {
LaancSunData,
LaancSunRq,
LaancAprvRq,
LaancAprvData
LaancAprvData,
LaancDetailData
} from '../models/laancModels';
// laanc 비행계획서 승인
@ -32,6 +33,11 @@ const LAANC_APRV_LIST_REQUEST = 'laanc/aprv/list/REQUEST';
const LAANC_APRV_LIST_SUCCESS = 'laanc/aprv/list/SUCCESS';
const LAANC_APRV_LIST_FAILURE = 'laanc/aprv/list/FAILURE';
//Laanc 신청서 상세보기
const LAANC_DETAIL_REQUEST = 'laanc/detail/REQUEST';
const LAANC_DETAIL_SUCCESS = 'laanc/detail/SUCCESS';
const LAANC_DETAIL_FAILURE = 'laanc/detail/FAILURE';
// laanc 초기화
const INIT_LAANC = 'laanc/init';
@ -65,11 +71,19 @@ export const LAANC_APRV_LIST = createAsyncAction(
LAANC_APRV_LIST_FAILURE
)<LaancAprvRq, LaancAprvData[], AxiosError>();
//laanc 신청서 상세보기
export const LAANC_DETAIL = createAsyncAction(
LAANC_DETAIL_REQUEST,
LAANC_DETAIL_SUCCESS,
LAANC_DETAIL_FAILURE
)<string, LaancDetailData, AxiosError>();
const actions = {
LAANC_FLIGHT_Approval,
LAANC_FLIGHT_CREATE,
LAANC_APPROVAL_INIT,
LAANC_SUN_DATA,
LAANC_APRV_LIST
LAANC_APRV_LIST,
LAANC_DETAIL
};
export type LaancAction = ActionType<typeof actions>;

5
src/modules/laanc/apis/laancApi.ts

@ -31,5 +31,10 @@ export const laancApi = {
params: data
});
return res.data;
},
// 신청서 상세보기
getDetail: async (data: string) => {
const res = await axios.get(`api/bas/laanc/aprv/detail/${data}`);
return res.data;
}
};

88
src/modules/laanc/models/laancModels.ts

@ -6,6 +6,7 @@ export interface laancState {
laancPdf: LaancPdf | undefined;
laancSun: LaancSunData[] | undefined;
laancSearchData: LaancAprvData[] | undefined;
laancDetail: LaancDetailData | undefined;
}
// laanc계획서 초기값
@ -364,6 +365,7 @@ export const laancControlData = {
laancApply: undefined,
laancSun: undefined,
laancSearchData: undefined,
laancDetail: undefined,
detail: {
planSno: 0,
groupId: '',
@ -658,3 +660,89 @@ export interface LaancAprvData {
];
};
}
// laanc 신청서 상세보기 rs
export interface LaancDetailData {
planSno: number;
groupId: string;
cstmrSno: number;
memberName: string;
email: string;
hpno: string;
clncd: string;
schFltStDt: string;
schFltEndDt: string;
fltPurpose: string;
aprvlYn: string;
createUserId: string;
createDt: string;
updateUserId: string;
updateDt: string;
serviceType: string;
areaList: [
{
planAreaSno: number;
planSno: number;
areaType: string;
fltAreaAddr: string;
bufferZone: number;
fltElev: string;
createUserId: string;
createDt: string;
updateUserId: string;
updateDt: string;
docState: string;
coordList: [
{
planAreaCoordSno: number;
planAreaSno: number;
lat: number;
lon: number;
createUserId: string;
createDt: string;
docState: string;
}
];
}
];
arcrftList: [
{
planArcrftSno: number;
planSno: number;
arcrftSno: number;
idntfNum: string;
arcrftTypeCd: string;
arcrftLngth: number;
arcrftWdth: number;
arcrftHght: number;
arcrftWght: number;
takeoffWght: number;
createUserId: string;
createDt: string;
updateUserId: string;
updateDt: string;
docState: string;
acrftInsuranceYn: string;
arcrftWghtCd: string;
}
];
pilotList: [
{
planPilotSno: number;
planSno: number;
cstmrSno: number;
groupNm: string;
memberName: string;
email: string;
hpno: string;
clncd: string;
createUserId: string;
createDt: string;
updateUserId: string;
updateDt: string;
docState: string;
}
];
elev: string;
arcrftWght: string;
}

6
src/modules/laanc/reducers/laancReducers.ts

@ -44,6 +44,12 @@ export const laancReducer = createReducer<laancState, Actions.LaancAction>(
const data = action.payload;
draft.laancSearchData = data;
})
)
.handleAction(Actions.LAANC_DETAIL.success, (state, action) =>
produce(state, draft => {
const data = action.payload;
draft.laancDetail = data;
})
);
export default laancReducer;

20
src/modules/laanc/sagas/laancSagas.ts

@ -112,9 +112,29 @@ function* getAprvListSaga(
}
}
//laanc 신청서 상세보기
function* getDetailSaga(
action: ActionType<typeof Actions.LAANC_DETAIL.request>
) {
try {
const deail = action.payload;
const res = yield call(Apis.laancApi.getDetail, deail);
yield put(Actions.LAANC_DETAIL.success(res));
} catch (error) {
yield put(
MessageActions.IS_ERROR({
errorCode: ERROR_MESSAGE.code,
errorMessage: ERROR_MESSAGE.message,
isHistoryBack: false,
isRefresh: false
})
);
}
}
export function* laancSaga() {
yield takeEvery(Actions.LAANC_FLIGHT_Approval.request, postApprovalsata);
yield takeEvery(Actions.LAANC_FLIGHT_CREATE.request, postCreatesata);
yield takeEvery(Actions.LAANC_SUN_DATA.request, getSunDataSaga);
yield takeEvery(Actions.LAANC_APRV_LIST.request, getAprvListSaga);
yield takeEvery(Actions.LAANC_DETAIL.request, getDetailSaga);
}

Loading…
Cancel
Save