Browse Source

비행계획승인 권한별 제어 수정

pull/2/head
junh_eee(이준희) 2 years ago
parent
commit
f568021390
  1. 59
      src/components/basis/flight/aprv/FlightPlanAprvGroupGrid.js
  2. 118
      src/containers/basis/flight/aprv/FlightPlanAprvContainer.js

59
src/components/basis/flight/aprv/FlightPlanAprvGroupGrid.js

@ -2,64 +2,7 @@ import React from 'react';
import { GridDatabase } from '../../../crud/grid/GridDatatable'; import { GridDatabase } from '../../../crud/grid/GridDatatable';
import { Card, Button } from 'reactstrap'; import { Card, Button } from 'reactstrap';
const FlightPlanAprvGroupGrid = ({ const FlightPlanAprvGroupGrid = ({ data, count, columns }) => {
data,
count,
selectGroup,
handlerGroupCancel,
handleGroupSelect
}) => {
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>
);
}
}
];
return ( return (
<> <>
<div className='cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> <div className='cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'>

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

@ -44,13 +44,63 @@ 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( dispatch(
FlightAction.FLIGHT_PLAN_GROUP_SELECT({ FlightAction.FLIGHT_PLAN_GROUP_SELECT({
cstmrSno: user.cstmrSno, cstmrSno: user.cstmrSno,
@ -70,8 +120,16 @@ const FlightPlanAprvContainer = () => {
groupId: groupId groupId: groupId
}; };
}); });
dispatch(FlightAction.FLIGHT_PLAN_LIST.request(param)); 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;
} }
@ -213,9 +227,7 @@ const FlightPlanAprvContainer = () => {
<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 })}
> >
확인 확인

Loading…
Cancel
Save