Browse Source

비행이력 관리(그룹별 조회 추가)

pull/2/head
sanguu 2 years ago
parent
commit
5112ea5bf6
  1. 143
      src/containers/analysis/history/AnalysisHistoryContainer.js
  2. 1
      src/containers/basis/flight/aprv/FlightPlanAprvContainer.js

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

@ -1,16 +1,88 @@
import moment from 'moment'; import moment from 'moment';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector, shallowEqual } from 'react-redux';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { AnalysisHistoryGrid } from '../../../components/analysis/history/AnalysisHistoryGrid'; import { AnalysisHistoryGrid } from '../../../components/analysis/history/AnalysisHistoryGrid';
import { AnalysisHistorySearch } from '../../../components/analysis/history/AnalysisHistorySearch'; import { AnalysisHistorySearch } from '../../../components/analysis/history/AnalysisHistorySearch';
import { CustomMainLayout } from '../../../components/layout/CustomMainLayout'; 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 { JOIN_LIST } from '../../../modules/basis/group/actions/basisGroupAction';
import { Col, Row, Button } from 'reactstrap';
import * as FlightAction from '../../../modules/basis/flight/actions/basisFlightAction';
import FlightPlanAprvSearch from '../../../components/basis/flight/aprv/FlightPlanAprvSearch';
import FlightPlanAprvGrid from '../../../components/basis/flight/aprv/FlightPlanAprvGrid';
import {useHistory} from 'react-router-dom';
export const AnalysisHistoryContainer = props => { export const AnalysisHistoryContainer = props => {
const { data, count, searchParams } = useSelector( const { data, count, searchParams } = useSelector(
state => state.analysisHistoryState state => state.analysisHistoryState
); );
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: 'N',
groupId: '',
cstmrSno: 0,
};
const history = useHistory();
const [searchData, setSearchData] = useState(initSearchData);
const [selPlanSnoList, setSelPlanSnoList] = useState([]);
const {list: aprvList, aprvProc, selectGroup} = useSelector(state => state.flightState);
const { joinList, joinListCount } = useSelector(state => state.groupState);
const { user } = useSelector(state => state.authState, shallowEqual);
const handleGroupSelect = ({ groupId, groupNm, groupAuthCd }) => {
// 권한 상관 없이 모두 조회 가능
const param = searchData;
param.cstmrSno = user.cstmrSno;
param.groupId = groupId;
dispatch(FlightAction.FLIGHT_PLAN_GROUP_SELECT({ cstmrSno: user.cstmrSno, groupId: groupId, groupNm: groupNm }));
// groupId sessionStorage에 보관 (1 브라우저 1 tab에만 유효)
sessionStorage.setItem('groupId', groupId);
sessionStorage.setItem('cstmrSno', user.cstmrSno);
setSearchData(prevState => {
return {
...prevState,
cstmrSno: user.cstmrSno,
groupId: groupId
}
});
dispatch(FlightAction.FLIGHT_PLAN_LIST.request(param));
}
const handlerGroupCancel = () => {
dispatch(FlightAction.FLIGHT_PLAN_GROUP_SELECT({ cstmrSno: 0, groupId: '', groupNm: '' }));
}
const handleSearch = (data) => {
dispatch(FlightAction.FLIGHT_APRV_LIST.request(data));
}
const handleChangeSelected = ({ selectedRows }) => {
setSelPlanSnoList(selectedRows.map(item => item.planSno))
}
// 최초 비행계획서 목록 조회
useEffect(() => {
handleSearch(searchData);
}, [])
useEffect(() => {
if (user?.cstmrSno) {
dispatch(
JOIN_LIST.request({
cstmrSno: user?.cstmrSno
})
);
}
}, [user])
const dispatch = useDispatch(); const dispatch = useDispatch();
@ -149,7 +221,7 @@ export const AnalysisHistoryContainer = props => {
} }
}; };
useEffect(() => {}, [params]); useEffect(() => { }, [params]);
const handlerSearch = () => { const handlerSearch = () => {
dispatch(Actions.list.request({ searchParams: params })); dispatch(Actions.list.request({ searchParams: params }));
@ -169,24 +241,59 @@ export const AnalysisHistoryContainer = props => {
} }
} }
}; };
return ( return (
<CustomMainLayout title={titleName}> <CustomMainLayout title={titleName}>
<AnalysisHistorySearch <Row>
handlerInput={handlerInput} <Col sm='4'>
handlerSearch={handlerSearch} <FlightPlanGroupGrid
params={params} data={joinList}
onKeyPress={onKeyPress} count={joinListCount}
setParams={setParams} selectGroup={selectGroup}
/> handleGroupSelect={handleGroupSelect}
<AnalysisHistoryGrid handlerGroupCancel={handlerGroupCancel}
data={data} />
title={titleName} </Col>
columns={columns} <Col sm='8'>
excelHeaders={excelHeaders} {selectGroup.cstmrSno !== 0 ? (
count={count} <>
pagination={true} <AnalysisHistorySearch
/> handlerInput={handlerInput}
handlerSearch={handlerSearch}
params={params}
onKeyPress={onKeyPress}
setParams={setParams}
/>
</>
) : (
<div className='no-dataTable'>
나의 그룹 목록에서 상세보기를 클릭하세요.
</div>
)}
</Col>
<Col sm='12'>
{selectGroup.cstmrSno !== 0 ? (
<>
<AnalysisHistoryGrid
data={data}
title={titleName}
columns={columns}
excelHeaders={excelHeaders}
count={count}
pagination={true}
/>
</>
) : (
<div className='no-dataTable'>
나의 그룹 목록에서 상세보기를 클릭하세요.
</div>
)}
</Col>
</Row>
</CustomMainLayout> </CustomMainLayout>
); );
}; };

1
src/containers/basis/flight/aprv/FlightPlanAprvContainer.js

@ -187,7 +187,6 @@ const FlightPlanAprvContainer = () => {
<FlightPlanAprvGrid <FlightPlanAprvGrid
data={aprvList} data={aprvList}
columns={columns} columns={columns}
handleChangeSelected={handleChangeSelected}
handleClickAprv={handleClickAprv} handleClickAprv={handleClickAprv}
joinList={joinList} joinList={joinList}
selectGroup={selectGroup} selectGroup={selectGroup}

Loading…
Cancel
Save