Browse Source

비행이력현황 그룹 선택시 비행이력 현황 초기화

pull/2/head
kimjh(김장현) 2 years ago
parent
commit
27da351ca5
  1. 148
      src/containers/analysis/history/AnalysisHistoryContainer.js
  2. 7
      src/modules/analysis/history/actions/analysisHistoryAction.ts
  3. 6
      src/modules/analysis/history/reducers/analysisHitoryReducer.ts

148
src/containers/analysis/history/AnalysisHistoryContainer.js

@ -8,12 +8,19 @@ import { CustomMainLayout } from '../../../components/layout/CustomMainLayout';
import * as Actions from '../../../modules/analysis/history/actions/analysisHistoryAction'; import * as Actions from '../../../modules/analysis/history/actions/analysisHistoryAction';
import FlightPlanGroupGrid from '../../../components/basis/flight/plan/FlightPlanGroupGrid'; import FlightPlanGroupGrid from '../../../components/basis/flight/plan/FlightPlanGroupGrid';
import { JOIN_LIST } from '../../../modules/basis/group/actions/basisGroupAction'; import { JOIN_LIST } from '../../../modules/basis/group/actions/basisGroupAction';
import { Col, Row, Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap'; import {
Col,
Row,
Button,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from 'reactstrap';
import * as FlightAction from '../../../modules/basis/flight/actions/basisFlightAction'; import * as FlightAction from '../../../modules/basis/flight/actions/basisFlightAction';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { MessageErrorModal } from '../../../components/message/MessageErrorModal'; import { MessageErrorModal } from '../../../components/message/MessageErrorModal';
export const AnalysisHistoryContainer = props => { export const AnalysisHistoryContainer = props => {
const { data, count, searchParams } = useSelector( const { data, count, searchParams } = useSelector(
state => state.analysisHistoryState state => state.analysisHistoryState
@ -23,12 +30,15 @@ export const AnalysisHistoryContainer = props => {
endDate: moment().subtract(0, 'day').format('YYYY-MM-DD'), endDate: moment().subtract(0, 'day').format('YYYY-MM-DD'),
// stDate: moment().set({ 'date': 1, 'h': 0, 'm': 0, 's': 0 }).format('YYYY-MM-DD HH:mm:ss'), // stDate: moment().set({ 'date': 1, 'h': 0, 'm': 0, 's': 0 }).format('YYYY-MM-DD HH:mm:ss'),
// endDate: moment().set({ 'h': 23, 'm': 59, 's': 59 }).format('YYYY-MM-DD HH:mm:ss'), // endDate: moment().set({ 'h': 23, 'm': 59, 's': 59 }).format('YYYY-MM-DD HH:mm:ss'),
groupId: '', groupId: ''
}; };
const [searchData, setSearchData] = useState(initSearchData); const [searchData, setSearchData] = useState(initSearchData);
const { list: aprvList, aprvProc, selectGroup } = useSelector(state => state.flightState); const {
list: aprvList,
aprvProc,
selectGroup
} = useSelector(state => state.flightState);
const { joinList, joinListCount } = useSelector(state => state.groupState); const { joinList, joinListCount } = useSelector(state => state.groupState);
const { user } = useSelector(state => state.authState, shallowEqual); const { user } = useSelector(state => state.authState, shallowEqual);
@ -42,6 +52,42 @@ export const AnalysisHistoryContainer = props => {
color: '' color: ''
}); });
useEffect(() => {
if (aprvProc && aprvProc.result > 0) {
handleSearch(searchData);
}
}, [aprvProc]);
useEffect(() => {
if (user?.cstmrSno) {
dispatch(
JOIN_LIST.request({
cstmrSno: user?.cstmrSno
})
);
}
}, [user]);
useEffect(() => {
setParams({
...params,
stDate: '',
endDate: '',
search1: '',
groupId: searchData.groupId
});
}, [searchData.groupId]);
useEffect(() => {
handlerGroupCancel();
}, []);
const onKeyPress = e => {
if (e.key == 'Enter') {
handlerSearch();
}
};
const handleGroupSelect = ({ groupId }) => { const handleGroupSelect = ({ groupId }) => {
// 권한 상관 없이 모두 조회 가능 // 권한 상관 없이 모두 조회 가능
const param = searchData; const param = searchData;
@ -54,47 +100,33 @@ export const AnalysisHistoryContainer = props => {
sessionStorage.setItem('groupId', groupId); sessionStorage.setItem('groupId', groupId);
sessionStorage.setItem('cstmrSno', user.cstmrSno); sessionStorage.setItem('cstmrSno', user.cstmrSno);
setIsClick(0) setIsClick(0);
setSearchData(prevState => { setSearchData(prevState => {
return { return {
...prevState, ...prevState,
// cstmrSno: user.cstmrSno, // cstmrSno: user.cstmrSno,
groupId: groupId groupId: groupId
} };
}); });
//dispatch(Actions.list.request({ searchParams: param })); dispatch(Actions.LIST_INITAL());
} };
const handlerGroupCancel = () => { const handlerGroupCancel = () => {
dispatch(FlightAction.FLIGHT_PLAN_GROUP_SELECT({ cstmrSno: 0, groupId: '', groupNm: '', endDate: '', stDate: '' })); dispatch(
setIsClick(0) FlightAction.FLIGHT_PLAN_GROUP_SELECT({
cstmrSno: 0,
} groupId: '',
groupNm: '',
endDate: '',
stDate: ''
useEffect(() => { })
if (aprvProc && aprvProc.result > 0) { );
handleSearch(searchData); setIsClick(0);
} };
}, [aprvProc])
useEffect(() => {
if (user?.cstmrSno) {
dispatch(
JOIN_LIST.request({
cstmrSno: user?.cstmrSno
})
);
}
}, [user])
const dispatch = useDispatch(); const dispatch = useDispatch();
const titleName = '비행이력 현황'; const titleName = '비행이력 현황';
const excelHeaders = [ const excelHeaders = [
{ label: '일자', key: 'cntrlStDt' }, { label: '일자', key: 'cntrlStDt' },
{ label: '식별번호', key: 'idntfNum' }, { label: '식별번호', key: 'idntfNum' },
@ -207,30 +239,7 @@ export const AnalysisHistoryContainer = props => {
endDate: moment().subtract(-1, 'day').format('YYYY-MM-DD'), endDate: moment().subtract(-1, 'day').format('YYYY-MM-DD'),
search1: '', search1: '',
groupId: searchData.groupId groupId: searchData.groupId
}); });
console.log(searchData.groupId);
useEffect(() => {
setParams({
...params,
stDate: '',
endDate: '',
search1: '',
groupId: searchData.groupId
});
}, [searchData.groupId]);
useEffect(() => {
if (data) return;
}, [searchParams]);
const onKeyPress = e => {
if (e.key == 'Enter') {
handlerSearch();
}
};
// useEffect(() => { }, [params]); // useEffect(() => { }, [params]);
@ -241,18 +250,15 @@ export const AnalysisHistoryContainer = props => {
title: '필수값 입력 오류', title: '필수값 입력 오류',
desc: '올바른 일자를 입력해 주세요.', desc: '올바른 일자를 입력해 주세요.',
color: 'modal-danger' color: 'modal-danger'
}) });
} } else if (!params.groupId) {
else if (!params.groupId) {
setModal({ setModal({
isOpen: true, isOpen: true,
title: '필수값 입력 오류', title: '필수값 입력 오류',
desc: '그룹 선택 해주세요.', desc: '그룹 선택 해주세요.',
color: 'modal-danger' color: 'modal-danger'
}) });
} } else dispatch(Actions.list.request({ searchParams: params }));
else
dispatch(Actions.list.request({ searchParams: params }));
}; };
const handlerInput = (type, val) => { const handlerInput = (type, val) => {
@ -264,9 +270,9 @@ export const AnalysisHistoryContainer = props => {
setParams({ setParams({
...params, ...params,
stDate: moment(val[0]).format('YYYY-MM-DD'), stDate: moment(val[0]).format('YYYY-MM-DD'),
endDate: moment(val[1]).format('YYYY-MM-DD'), endDate: moment(val[1]).format('YYYY-MM-DD')
}); });
setIsClick(-1) setIsClick(-1);
} }
} }
}; };
@ -275,7 +281,6 @@ export const AnalysisHistoryContainer = props => {
setIsClick(val); setIsClick(val);
}; };
return ( return (
<CustomMainLayout title={titleName}> <CustomMainLayout title={titleName}>
<div className='pal-card-box'> <div className='pal-card-box'>
<Row> <Row>
@ -303,13 +308,11 @@ export const AnalysisHistoryContainer = props => {
searchData={searchData} searchData={searchData}
/> />
</> </>
) : ( ) : (
<div className='no-dataTable'> <div className='no-dataTable'>
나의 그룹 목록에서 상세보기를 클릭하세요. 나의 그룹 목록에서 상세보기를 클릭하세요.
</div> </div>
)} )}
</Col> </Col>
<Col sm='12'> <Col sm='12'>
{selectGroup.cstmrSno !== 0 ? ( {selectGroup.cstmrSno !== 0 ? (
@ -321,15 +324,11 @@ export const AnalysisHistoryContainer = props => {
excelHeaders={excelHeaders} excelHeaders={excelHeaders}
count={count} count={count}
pagination={true} pagination={true}
/> />
</> </>
) : ( ) : (
<div className='no-dataTable'> <div className='no-dataTable'></div>
</div>
)} )}
</Col> </Col>
</Row> </Row>
</div> </div>
@ -358,6 +357,5 @@ export const AnalysisHistoryContainer = props => {
</div> </div>
<MessageErrorModal /> <MessageErrorModal />
</CustomMainLayout> </CustomMainLayout>
); );
}; };

7
src/modules/analysis/history/actions/analysisHistoryAction.ts

@ -20,6 +20,8 @@ const DETAIL_FAILURE = 'anls/hstry/DETAIL_FAILURE';
const DISPATCH_SEARCH = 'amls/hstry/DISPATCH_SEARCH'; const DISPATCH_SEARCH = 'amls/hstry/DISPATCH_SEARCH';
const LIST_INIT = 'anls/hstry/LIST_INIT';
export const dispatchSearch = export const dispatchSearch =
createAction(DISPATCH_SEARCH)<{ searchParams: string }>(); createAction(DISPATCH_SEARCH)<{ searchParams: string }>();
@ -41,11 +43,14 @@ export const detail = createAsyncAction(
DETAIL_FAILURE DETAIL_FAILURE
)<string, { detail: AnalysisHistoryData }, AxiosError>(); )<string, { detail: AnalysisHistoryData }, AxiosError>();
export const LIST_INITAL = createAction(LIST_INIT)();
const actions = { const actions = {
list, list,
detail, detail,
log, log,
dispatchSearch dispatchSearch,
LIST_INITAL
}; };
export type AnalysisHistoryAction = ActionType<typeof actions>; export type AnalysisHistoryAction = ActionType<typeof actions>;

6
src/modules/analysis/history/reducers/analysisHitoryReducer.ts

@ -44,4 +44,10 @@ export const analysisHistoryReducer = createReducer<
draft.log = log; draft.log = log;
}) })
)
.handleAction(Actions.LIST_INITAL, (state, action) =>
produce(state, draft => {
draft.data = initResponseAnalysisHistoryData.data;
draft.count = initResponseAnalysisHistoryData.count;
})
); );

Loading…
Cancel
Save