Browse Source

feat/장애물 제한표면, 검토완료 수정불가, 전송상태추가

master
sanguu516 3 weeks ago
parent
commit
52334f0d47
  1. 153
      src/components/flight/ControlApprovalsTable.js
  2. 20
      src/components/flight/NewFlightApprovalsReport.js
  3. 3
      src/components/flight/OperationApprovalsTable.js
  4. 42
      src/containers/flight/ControlApprovalsContainer.js
  5. 43
      src/containers/flight/OperationApprovalsContainer.js

153
src/components/flight/ControlApprovalsTable.js

@ -41,7 +41,9 @@ export default function ControlApprovalsTable(props) {
const [modal, setModal] = useState({ const [modal, setModal] = useState({
isOpen: false, isOpen: false,
title: '', title: '',
desc: '' desc: '',
type: '',
row: {}
}); });
// 체크박스 선택 // 체크박스 선택
const [checkList, setCheckList] = useState([]); const [checkList, setCheckList] = useState([]);
@ -91,7 +93,13 @@ export default function ControlApprovalsTable(props) {
try { try {
const values = await form.validateFields(); const values = await form.validateFields();
handleSave({ ...record, ...values }); setModal({
isOpen: true,
title: '수정 확인',
desc: '데이터를 수정하시겠습니까?',
type: 'edit',
row: { ...record, ...values }
});
} catch (errInfo) {} } catch (errInfo) {}
}; };
@ -113,58 +121,6 @@ export default function ControlApprovalsTable(props) {
return <td {...restProps}>{childNode}</td>; return <td {...restProps}>{childNode}</td>;
}; };
// 검토 상태 변경
const handlerReviewed = (value, type) => {
let text = '';
if (type === 'operation') {
switch (value) {
case 'W':
text = '대기';
break;
case 'Q':
text = '검토요청';
break;
case 'R':
text = '재검토요청';
break;
case 'S':
text = '검토완료';
break;
case 'C':
text = '검토요청취소';
break;
case 'U':
text = '불필요';
break;
case 'P':
text = '검토완료';
break;
default:
text = '-';
}
return text;
} else if (type === 'control') {
switch (value) {
case 'R':
text = '재검토';
break;
case 'W':
text = '검토대기';
break;
case 'C':
text = '검토취소';
break;
case 'P':
text = '요청처리';
break;
default:
text = '-';
}
return text;
}
};
// 데이터 // 데이터
const columns = [ const columns = [
{ {
@ -493,7 +449,8 @@ export default function ControlApprovalsTable(props) {
setModal({ setModal({
isOpen: true, isOpen: true,
title: '관제통신과 검토', title: '관제통신과 검토',
desc: '검토완료 하시겠습니까?' desc: '검토완료 하시겠습니까?',
type: 'review'
}); });
e.stopPropagation(); e.stopPropagation();
}} }}
@ -503,59 +460,11 @@ export default function ControlApprovalsTable(props) {
) : ( ) : (
'검토완료' '검토완료'
)} )}
{/* <Select
type='select'
id='reviewedProcType'
style={{
width: 100
}}
value={reviewedProcType}
onClick={handleMouseDown}
onChange={e => updateReviewedType(e, record.planAreaSno)}
>
<option key={1} value={'W'}>
검토대기
</option>
<option key={3} value={'Q'}>
검토완료
</option>
<option key={4} value={'C'}>
검토취소
</option>
<option key={5} value={'P'}>
요청처리
</option>
<option key={6} value={'R'}>
재검토
</option>
<option key={7} value={'S'}>
완료
</option>
</Select> */}
</> </>
); );
} }
}, },
// {
// title: <>안전운항과</>,
// dataIndex: 'reviewedType',
// align: 'center',
// width: '130px',
// render: (reviewedType, record) => {
// return reviewedType !== 'R' ? (
// <>{handlerReviewed(reviewedType, 'operation')}</>
// ) : (
// <Button color='flat-dark' onClick={() => handleIsModal(record)}>
// <>
// 재검토
// <br />
// 사유보기
// </>
// </Button>
// );
// }
// },
{ {
title: ( title: (
<> <>
@ -564,11 +473,11 @@ export default function ControlApprovalsTable(props) {
상태 상태
</> </>
), ),
dataIndex: 'planAreaSno', dataIndex: 'reviewedProcType',
width: '100px', width: '100px',
align: 'center', align: 'center',
render: planAreaSno => { render: reviewedProcType => {
return '미전송'; return reviewedProcType === 'W' ? '미전송' : '전송';
} }
} }
]; ];
@ -625,7 +534,7 @@ export default function ControlApprovalsTable(props) {
...col, ...col,
onCell: record => ({ onCell: record => ({
record, record,
editable: col.editable, editable: col.editable && record.reviewedProcType === 'W',
dataIndex: col.dataIndex, dataIndex: col.dataIndex,
title: col.title, title: col.title,
handleSave handleSave
@ -988,7 +897,9 @@ export default function ControlApprovalsTable(props) {
modal={modal} modal={modal}
setModal={setModal} setModal={setModal}
handlerConfirm={() => handlerConfirm={() =>
updateReviewedType('P', currentPlanAreaSno) modal.type === 'review'
? updateReviewedType('P', currentPlanAreaSno)
: handleSave(modal.row)
} }
color='primary' color='primary'
/> />
@ -1008,27 +919,3 @@ export default function ControlApprovalsTable(props) {
</div> </div>
); );
} }
const EditableCell = ({
editing,
dataIndex,
title,
inputType,
record,
index,
children,
...restProps
}) => {
const inputNode = inputType === 'number' ? <Input /> : <Input />;
return (
<td {...restProps}>
{editing ? (
<Form.Item name={dataIndex} className='editable-input'>
{inputNode}
</Form.Item>
) : (
children
)}
</td>
);
};

20
src/components/flight/NewFlightApprovalsReport.js

@ -106,20 +106,19 @@ export default function NewFlightApprovalsReport(props) {
<div className='list-input'> <div className='list-input'>
<div className='layer-content'> <div className='layer-content'>
<FormGroup> <FormGroup>
<Label for='approvalCd'>검토결과</Label> <Label for='limitZoneNm'>장애물 제한표면</Label>
<CustomInput <CustomInput
type='select' type='select'
bsSize='sm' bsSize='sm'
id='approvalCd' id='limitzoneNm'
placeholder='확인결과를 입력해주세요.' placeholder='장애물 제한표면을 선택 해 주세요.'
onChange={props.handlerApprovalCd} onChange={e => props.setLimitZoneNm(e.target.value)}
onKeyPress={handleKeyDown} onKeyPress={handleKeyDown}
value={props.limitZoneNm}
> >
{props.approvalCd.map(item => ( <option value={'전체'}>전체</option>
<option key={item.name} value={item.value}> <option value={'C'}>원추</option>
{item.name} <option value={'H'}>수평</option>
</option>
))}
</CustomInput> </CustomInput>
</FormGroup> </FormGroup>
</div> </div>
@ -296,7 +295,8 @@ export default function NewFlightApprovalsReport(props) {
props.handlerSearch( props.handlerSearch(
props.filterId, props.filterId,
searchDate, searchDate,
props.filterArea props.filterArea,
props.limitZoneNm
); );
}} }}
size='sm' size='sm'

3
src/components/flight/OperationApprovalsTable.js

@ -15,7 +15,8 @@ import OperationCheckBoxModal from './OperationCheckBoxModal';
import { import {
CityCategories, CityCategories,
DistrictCategories, DistrictCategories,
FlightCategory FlightCategory,
limitZoneNmCategories
} from '@configs/constants'; } from '@configs/constants';
export default function OperationApprovalsTable(props) { export default function OperationApprovalsTable(props) {

42
src/containers/flight/ControlApprovalsContainer.js

@ -64,13 +64,7 @@ export default function ControlApprovalsContainer({ mode }) {
const [reviewedType, setReviewedType] = useState('전체'); const [reviewedType, setReviewedType] = useState('전체');
const [reviewedProcType, setReviewedProcType] = useState('전체'); const [reviewedProcType, setReviewedProcType] = useState('전체');
const [approvalCd, setApprovalCd] = useState([ const [limitZoneNm, setLimitZoneNm] = useState('');
{ name: '전체', value: '', select: false },
{ name: '승인', value: 'S', select: false },
{ name: '미 승인', value: 'F', select: false },
{ name: '비 대상', value: 'U', select: false },
{ name: '조건부 승인', value: 'C', select: false }
]);
// 지역 // 지역
const [filterArea, setFilterArea] = useState({ const [filterArea, setFilterArea] = useState({
@ -235,7 +229,7 @@ export default function ControlApprovalsContainer({ mode }) {
setPopup(popupRef.current); setPopup(popupRef.current);
}; };
const handlerSearch = (search, searchDate, filterArea) => { const handlerSearch = (search, searchDate, filterArea, limitZoneNm) => {
setStartDate(searchDate.startDate); setStartDate(searchDate.startDate);
setEndDate(searchDate.endDate); setEndDate(searchDate.endDate);
@ -246,13 +240,11 @@ export default function ControlApprovalsContainer({ mode }) {
ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn, ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn,
sig: filterArea.sig === '전체' ? '' : filterArea.sig, sig: filterArea.sig === '전체' ? '' : filterArea.sig,
address: filterArea.address, address: filterArea.address,
limitZoneCd: limitZoneNm === '전체' ? '' : limitZoneNm,
...(search !== '' ? { applyNo: search } : {}), ...(search !== '' ? { applyNo: search } : {}),
...(reviewedType !== '전체' ? { reviewedType: reviewedType } : {}), ...(reviewedType !== '전체' ? { reviewedType: reviewedType } : {}),
...(reviewedProcType !== '전체' ...(reviewedProcType !== '전체'
? { reviewedProcType: reviewedProcType } ? { reviewedProcType: reviewedProcType }
: {}),
...(approvalCd.filter(i => i.select).length > 0
? { approvalCd: approvalCd.filter(i => i.select)[0].value }
: {}) : {})
}) })
); );
@ -555,30 +547,6 @@ export default function ControlApprovalsContainer({ mode }) {
} }
}; };
const handlerApprovalCd = ({ target: { value } }) => {
setApprovalCd(
approvalCd.map(i => {
if (!value) {
return {
...i,
select: false
};
} else {
if (i.value === value) {
return {
...i,
select: true
};
}
return {
...i,
select: false
};
}
})
);
};
const handlerLogout = async () => { const handlerLogout = async () => {
const { payload } = await dispatch(setLogout()); const { payload } = await dispatch(setLogout());
@ -812,8 +780,8 @@ export default function ControlApprovalsContainer({ mode }) {
reviewedType={reviewedType} reviewedType={reviewedType}
reviewedProcType={reviewedProcType} reviewedProcType={reviewedProcType}
setReviewedProcType={setReviewedProcType} setReviewedProcType={setReviewedProcType}
approvalCd={approvalCd} limitZoneNm={limitZoneNm}
handlerApprovalCd={handlerApprovalCd} setLimitZoneNm={setLimitZoneNm}
pageName='control' pageName='control'
/> />
<ControlApprovalsTable <ControlApprovalsTable

43
src/containers/flight/OperationApprovalsContainer.js

@ -70,14 +70,7 @@ export default function OperationApprovalsContainer({ mode }) {
// 관제과 검토 상태값 // 관제과 검토 상태값
const [reviewedProcType, setReviewedProcType] = useState('전체'); const [reviewedProcType, setReviewedProcType] = useState('전체');
// laanc 검토 상태값 const [limitZoneNm, setLimitZoneNm] = useState('');
const [approvalCd, setApprovalCd] = useState([
{ name: '전체', value: '', select: false },
{ name: '승인', value: 'S', select: false },
{ name: '미 승인', value: 'F', select: false },
{ name: '비 대상', value: 'U', select: false },
{ name: '조건부 승인', value: 'C', select: false }
]);
// 지역 // 지역
const [filterArea, setFilterArea] = useState({ const [filterArea, setFilterArea] = useState({
@ -278,7 +271,7 @@ export default function OperationApprovalsContainer({ mode }) {
setPopup(popupRef.current); setPopup(popupRef.current);
}; };
const handlerSearch = (search, searchDate, filterArea) => { const handlerSearch = (search, searchDate, filterArea, limitZoneNm) => {
setStartDate(searchDate.startDate); setStartDate(searchDate.startDate);
setEndDate(searchDate.endDate); setEndDate(searchDate.endDate);
@ -289,13 +282,11 @@ export default function OperationApprovalsContainer({ mode }) {
ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn, ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn,
sig: filterArea.sig === '전체' ? '' : filterArea.sig, sig: filterArea.sig === '전체' ? '' : filterArea.sig,
address: filterArea.address, address: filterArea.address,
limitZoneCd: limitZoneNm === '전체' ? '' : limitZoneNm,
...(search !== '' ? { applyNo: search } : {}), ...(search !== '' ? { applyNo: search } : {}),
...(reviewedType !== '전체' ? { reviewedType: reviewedType } : {}), ...(reviewedType !== '전체' ? { reviewedType: reviewedType } : {}),
...(reviewedProcType !== '전체' ...(reviewedProcType !== '전체'
? { reviewedProcType: reviewedProcType } ? { reviewedProcType: reviewedProcType }
: {}),
...(approvalCd.filter(i => i.select).length > 0
? { approvalCd: approvalCd.filter(i => i.select)[0].value }
: {}) : {})
}) })
); );
@ -672,30 +663,6 @@ export default function OperationApprovalsContainer({ mode }) {
} }
}; };
const handlerApprovalCd = ({ target: { value } }) => {
setApprovalCd(
approvalCd.map(i => {
if (!value) {
return {
...i,
select: false
};
} else {
if (i.value === value) {
return {
...i,
select: true
};
}
return {
...i,
select: false
};
}
})
);
};
const handlerLogout = async () => { const handlerLogout = async () => {
const { payload } = await dispatch(setLogout()); const { payload } = await dispatch(setLogout());
@ -944,10 +911,10 @@ export default function OperationApprovalsContainer({ mode }) {
setFilterArea={setFilterArea} setFilterArea={setFilterArea}
setReviewedType={setReviewedType} setReviewedType={setReviewedType}
reviewedType={reviewedType} reviewedType={reviewedType}
approvalCd={approvalCd}
reviewedProcType={reviewedProcType} reviewedProcType={reviewedProcType}
setReviewedProcType={setReviewedProcType} setReviewedProcType={setReviewedProcType}
handlerApprovalCd={handlerApprovalCd} limitZoneNm={limitZoneNm}
setLimitZoneNm={setLimitZoneNm}
pageName='operation' pageName='operation'
/> />
<OperationApprovalsTable <OperationApprovalsTable

Loading…
Cancel
Save