|
|
@ -44,34 +44,92 @@ const FlightPlanAprvContainer = () => { |
|
|
|
color: '' |
|
|
|
color: '' |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const columns = [ |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// id: 'groupNm',
|
|
|
|
|
|
|
|
name: '그룹 명', |
|
|
|
|
|
|
|
selector: 'groupNm', |
|
|
|
|
|
|
|
minWidth: '102px', |
|
|
|
|
|
|
|
sortable: true, |
|
|
|
|
|
|
|
cell: row => <div>{row.groupNm}</div> |
|
|
|
|
|
|
|
// cell: row => {
|
|
|
|
|
|
|
|
// return row?.groupNm;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// id: 'groupId',
|
|
|
|
|
|
|
|
name: '그룹 코드', |
|
|
|
|
|
|
|
selector: 'groupId', |
|
|
|
|
|
|
|
minWidth: '102px', |
|
|
|
|
|
|
|
sortable: true, |
|
|
|
|
|
|
|
cell: row => <div>{row.groupId}</div> |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
name: '', |
|
|
|
|
|
|
|
sortable: true, |
|
|
|
|
|
|
|
cell: row => { |
|
|
|
|
|
|
|
return selectGroup?.groupId === row?.groupId ? ( |
|
|
|
|
|
|
|
<Button.Ripple |
|
|
|
|
|
|
|
color='danger' |
|
|
|
|
|
|
|
className='badge badge-danger' |
|
|
|
|
|
|
|
onClick={() => handlerGroupCancel()} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
선택취소 |
|
|
|
|
|
|
|
</Button.Ripple> |
|
|
|
|
|
|
|
) : ( |
|
|
|
|
|
|
|
<Button.Ripple |
|
|
|
|
|
|
|
color='primary' |
|
|
|
|
|
|
|
className='badge badge-primary' |
|
|
|
|
|
|
|
onClick={() => { |
|
|
|
|
|
|
|
handleGroupSelect({ |
|
|
|
|
|
|
|
groupId: row?.groupId, |
|
|
|
|
|
|
|
groupNm: row?.groupNm, |
|
|
|
|
|
|
|
groupAuthCd: row?.groupAuthCd |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
}} |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
상세보기 |
|
|
|
|
|
|
|
</Button.Ripple> |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
const handleGroupSelect = ({ groupId, groupNm, groupAuthCd }) => { |
|
|
|
const handleGroupSelect = ({ groupId, groupNm, groupAuthCd }) => { |
|
|
|
// 권한 상관 없이 모두 조회 가능
|
|
|
|
|
|
|
|
const param = searchData; |
|
|
|
const param = searchData; |
|
|
|
|
|
|
|
|
|
|
|
param.cstmrSno = user.cstmrSno; |
|
|
|
param.cstmrSno = user.cstmrSno; |
|
|
|
param.groupId = groupId; |
|
|
|
param.groupId = groupId; |
|
|
|
|
|
|
|
if (groupAuthCd === 'CREATER' || groupAuthCd === 'ADMIN') { |
|
|
|
|
|
|
|
dispatch( |
|
|
|
|
|
|
|
FlightAction.FLIGHT_PLAN_GROUP_SELECT({ |
|
|
|
|
|
|
|
cstmrSno: user.cstmrSno, |
|
|
|
|
|
|
|
groupId: groupId, |
|
|
|
|
|
|
|
groupNm: groupNm |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
dispatch( |
|
|
|
// groupId sessionStorage에 보관 (1 브라우저 1 tab에만 유효)
|
|
|
|
FlightAction.FLIGHT_PLAN_GROUP_SELECT({ |
|
|
|
sessionStorage.setItem('groupId', groupId); |
|
|
|
cstmrSno: user.cstmrSno, |
|
|
|
sessionStorage.setItem('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)); |
|
|
|
setSearchData(prevState => { |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
...prevState, |
|
|
|
|
|
|
|
cstmrSno: user.cstmrSno, |
|
|
|
|
|
|
|
groupId: groupId |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
dispatch(FlightAction.FLIGHT_PLAN_LIST.request(param)); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
setModal({ |
|
|
|
|
|
|
|
isOpen: true, |
|
|
|
|
|
|
|
title: '권한 확인', |
|
|
|
|
|
|
|
desc: '승인정보 확인을 위해서는 운영자 권한이 필요합니다. 운영자에게 권한을 부여받고 다시 시도해 주세요.', |
|
|
|
|
|
|
|
color: 'info' |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
const handlerGroupCancel = () => { |
|
|
|
const handlerGroupCancel = () => { |
|
|
@ -88,50 +146,6 @@ const FlightPlanAprvContainer = () => { |
|
|
|
history.push(`/basis/flight/plan/detail/${id}`); |
|
|
|
history.push(`/basis/flight/plan/detail/${id}`); |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// const columns = [
|
|
|
|
|
|
|
|
// { id: 'planSno', name: '번호', cell: (row, i) => <div>{i + 1}</div> },
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// id: 'fltPurpose',
|
|
|
|
|
|
|
|
// name: '비행목적',
|
|
|
|
|
|
|
|
// cell: row => <div>{row.fltPurpose}</div>
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// id: 'fltMethod',
|
|
|
|
|
|
|
|
// name: '비행방식',
|
|
|
|
|
|
|
|
// cell: row => {
|
|
|
|
|
|
|
|
// const displayName =
|
|
|
|
|
|
|
|
// (row.areaList &&
|
|
|
|
|
|
|
|
// row.areaList.length > 0 &&
|
|
|
|
|
|
|
|
// row.areaList[0].fltMethod) ||
|
|
|
|
|
|
|
|
// '-';
|
|
|
|
|
|
|
|
// return <div>{displayName}</div>;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// id: 'schFltStDt',
|
|
|
|
|
|
|
|
// name: '출발일',
|
|
|
|
|
|
|
|
// cell: row => <div>{row.schFltStDt}</div>
|
|
|
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
// { id: 'aprvlYn', name: '승인여부', cell: row => <div>{row.aprvlYn}</div> },
|
|
|
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
// id: 'moveDetail',
|
|
|
|
|
|
|
|
// name: '상세보기',
|
|
|
|
|
|
|
|
// cell: row => {
|
|
|
|
|
|
|
|
// return (
|
|
|
|
|
|
|
|
// <Button.Ripple
|
|
|
|
|
|
|
|
// color='primary'
|
|
|
|
|
|
|
|
// size='sm'
|
|
|
|
|
|
|
|
// onClick={() => {
|
|
|
|
|
|
|
|
// handleMoveDetail(row.planSno);
|
|
|
|
|
|
|
|
// }}
|
|
|
|
|
|
|
|
// >
|
|
|
|
|
|
|
|
// 상세
|
|
|
|
|
|
|
|
// </Button.Ripple>
|
|
|
|
|
|
|
|
// );
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// ];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 최초 비행계획서 목록 조회
|
|
|
|
// 최초 비행계획서 목록 조회
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
handlerGroupCancel(); |
|
|
|
handlerGroupCancel(); |
|
|
@ -174,7 +188,7 @@ const FlightPlanAprvContainer = () => { |
|
|
|
isOpen: true, |
|
|
|
isOpen: true, |
|
|
|
title: '비행 계획 승인', |
|
|
|
title: '비행 계획 승인', |
|
|
|
desc: '비행계획서를 선택해 주세요.', |
|
|
|
desc: '비행계획서를 선택해 주세요.', |
|
|
|
color: 'modal-danger' |
|
|
|
color: 'danger' |
|
|
|
}); |
|
|
|
}); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
@ -190,32 +204,30 @@ const FlightPlanAprvContainer = () => { |
|
|
|
<div className='pal-card-box'> |
|
|
|
<div className='pal-card-box'> |
|
|
|
<Row> |
|
|
|
<Row> |
|
|
|
{/* <Col sm='12'> |
|
|
|
{/* <Col sm='12'> |
|
|
|
<FlightPlanAprvSearch |
|
|
|
<FlightPlanAprvSearch |
|
|
|
searchData={searchData} |
|
|
|
searchData={searchData} |
|
|
|
handleChangeSearchData={handleChangeSearchData} |
|
|
|
handleChangeSearchData={handleChangeSearchData} |
|
|
|
handleSearch={handleSearch} |
|
|
|
handleSearch={handleSearch} |
|
|
|
/> |
|
|
|
/> |
|
|
|
<FlightPlanAprvGrid |
|
|
|
<FlightPlanAprvGrid |
|
|
|
data={aprvList} |
|
|
|
data={aprvList} |
|
|
|
columns={columns} |
|
|
|
columns={columns} |
|
|
|
handleChangeSelected={handleChangeSelected} |
|
|
|
handleChangeSelected={handleChangeSelected} |
|
|
|
handleClickAprv={handleClickAprv} |
|
|
|
handleClickAprv={handleClickAprv} |
|
|
|
/> |
|
|
|
/> |
|
|
|
|
|
|
|
|
|
|
|
<FlightPlanGrid |
|
|
|
<FlightPlanGrid |
|
|
|
planListData={aprvList} |
|
|
|
planListData={aprvList} |
|
|
|
handleMoveDetail={handleMoveDetail} |
|
|
|
handleMoveDetail={handleMoveDetail} |
|
|
|
handleChangeSelected={handleChangeSelected} |
|
|
|
handleChangeSelected={handleChangeSelected} |
|
|
|
handleClickAprv={handleClickAprv} |
|
|
|
handleClickAprv={handleClickAprv} |
|
|
|
/> |
|
|
|
/> |
|
|
|
</Col> */} |
|
|
|
</Col> */} |
|
|
|
<Col sm='4'> |
|
|
|
<Col sm='4'> |
|
|
|
<FlightPlanAprvGroupGrid |
|
|
|
<FlightPlanAprvGroupGrid |
|
|
|
data={joinList} |
|
|
|
data={joinList} |
|
|
|
count={joinListCount} |
|
|
|
count={joinListCount} |
|
|
|
selectGroup={selectGroup} |
|
|
|
columns={columns} |
|
|
|
handleGroupSelect={handleGroupSelect} |
|
|
|
|
|
|
|
handlerGroupCancel={handlerGroupCancel} |
|
|
|
|
|
|
|
/> |
|
|
|
/> |
|
|
|
</Col> |
|
|
|
</Col> |
|
|
|
<Col sm='8'> |
|
|
|
<Col sm='8'> |
|
|
@ -249,7 +261,7 @@ const FlightPlanAprvContainer = () => { |
|
|
|
<Modal |
|
|
|
<Modal |
|
|
|
isOpen={modal.isOpen} |
|
|
|
isOpen={modal.isOpen} |
|
|
|
toggle={() => setModal({ ...modal, isOpen: !modal.isOpen })} |
|
|
|
toggle={() => setModal({ ...modal, isOpen: !modal.isOpen })} |
|
|
|
modalClassName={modal.color} |
|
|
|
modalClassName={'modal-' + `${modal.color}`} |
|
|
|
className='modal-dialog-centered' |
|
|
|
className='modal-dialog-centered' |
|
|
|
> |
|
|
|
> |
|
|
|
<ModalHeader |
|
|
|
<ModalHeader |
|
|
@ -260,7 +272,7 @@ const FlightPlanAprvContainer = () => { |
|
|
|
<ModalBody>{modal.desc}</ModalBody> |
|
|
|
<ModalBody>{modal.desc}</ModalBody> |
|
|
|
<ModalFooter> |
|
|
|
<ModalFooter> |
|
|
|
<Button |
|
|
|
<Button |
|
|
|
color='danger' |
|
|
|
color={modal.color} |
|
|
|
onClick={() => setModal({ ...modal, isOpen: !modal.isOpen })} |
|
|
|
onClick={() => setModal({ ...modal, isOpen: !modal.isOpen })} |
|
|
|
> |
|
|
|
> |
|
|
|
확인 |
|
|
|
확인 |
|
|
|