Browse Source

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

feature/auth
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 { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux';
import { useDispatch, useSelector, shallowEqual } from 'react-redux';
import { Link } from 'react-router-dom';
import { AnalysisHistoryGrid } from '../../../components/analysis/history/AnalysisHistoryGrid';
import { AnalysisHistorySearch } from '../../../components/analysis/history/AnalysisHistorySearch';
import { CustomMainLayout } from '../../../components/layout/CustomMainLayout';
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 => {
const { data, count, searchParams } = useSelector(
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();
@ -149,7 +221,7 @@ export const AnalysisHistoryContainer = props => {
}
};
useEffect(() => {}, [params]);
useEffect(() => { }, [params]);
const handlerSearch = () => {
dispatch(Actions.list.request({ searchParams: params }));
@ -169,24 +241,59 @@ export const AnalysisHistoryContainer = props => {
}
}
};
return (
<CustomMainLayout title={titleName}>
<AnalysisHistorySearch
handlerInput={handlerInput}
handlerSearch={handlerSearch}
params={params}
onKeyPress={onKeyPress}
setParams={setParams}
/>
<AnalysisHistoryGrid
data={data}
title={titleName}
columns={columns}
excelHeaders={excelHeaders}
count={count}
pagination={true}
/>
<Row>
<Col sm='4'>
<FlightPlanGroupGrid
data={joinList}
count={joinListCount}
selectGroup={selectGroup}
handleGroupSelect={handleGroupSelect}
handlerGroupCancel={handlerGroupCancel}
/>
</Col>
<Col sm='8'>
{selectGroup.cstmrSno !== 0 ? (
<>
<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>
);
};

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

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

Loading…
Cancel
Save