Browse Source

검토 조회 기능 추가

master
sanguu516 2 months ago
parent
commit
0226f3e219
  1. 29
      src/components/flight/NewFlightApprovalsReport.js
  2. 19
      src/configs/constants.ts
  3. 25
      src/containers/flight/ControlApprovalsContainer.js
  4. 25
      src/containers/flight/OperationApprovalsContainer.js
  5. 50
      src/containers/flight/popup/ControlApprovalsPopupContainer.js
  6. 51
      src/containers/flight/popup/OperationApprovalsPopupContainer.js

29
src/components/flight/NewFlightApprovalsReport.js

@ -3,7 +3,11 @@ import Flatpickr from 'react-flatpickr';
import { Button, Input, CustomInput, Col, Row } from '@component/ui';
import { Search, Calendar } from 'react-feather';
import dayjs from 'dayjs';
import { CityCategories, DistrictCategories } from '@configs/constants';
import {
CityCategories,
DistrictCategories,
FlightCategory
} from '@configs/constants';
import { useLocation } from 'react-router-dom';
export default function NewFlightApprovalsReport(props) {
@ -47,7 +51,7 @@ export default function NewFlightApprovalsReport(props) {
<h4>비행승인 신청 검토결과 현황</h4>
</div>
<div className='layer-ti-sub'>
검색일자 또는 신청번호/검토결과를 입력해주세요.
검색일자 또는 신청번호/검토결과 또는 확인결과 입력해주세요.
</div>
<div className='input-n'>
<div className='list-input'>
@ -81,6 +85,27 @@ export default function NewFlightApprovalsReport(props) {
onKeyPress={handleKeyDown}
/>
</div>
<div className='list-input'>
<CustomInput
type='select'
bsSize='sm'
id='reviewedType'
placeholder='확인결과를 입력해주세요.'
value={props.reviewedType}
onChange={e => props.setReviewedType(e.target.value)}
onKeyPress={handleKeyDown}
>
{Object.values(
props.pageName === 'control'
? FlightCategory.Control
: FlightCategory.Operation
).map(item => (
<option key={item} value={item}>
{item}
</option>
))}
</CustomInput>
</div>
</div>
</div>
<div className='layer-content'>

19
src/configs/constants.ts

@ -233,3 +233,22 @@ export const DistrictCategories = {
export type DistrictCategory =
| typeof DistrictCategories['control'][CityCategory][number]
| typeof DistrictCategories['operation'][CityCategory][number];
// 비행 확인 상태
export const FlightCategory = {
Control: {
: '전체',
: '검토완료',
: '검토대기',
: '재검토'
},
Operation: {
: '전체',
: '검토완료',
: '검토대기',
: '재검토',
: '검토불필요'
}
};
export type FlightCategoryType = keyof typeof FlightCategory;

25
src/containers/flight/ControlApprovalsContainer.js

@ -57,6 +57,9 @@ export default function ControlApprovalsContainer({ mode }) {
// 식별번호
const [filterId, setFilterId] = useState('');
// 검토 상태값
const [reviewedType, setReviewedType] = useState('전체');
// 지역
const [filterArea, setFilterArea] = useState({
ctprvn: '전체',
@ -120,7 +123,6 @@ export default function ControlApprovalsContainer({ mode }) {
if (e.data.type) {
const { type } = e.data;
const { payload } = e.data;
console.log(payload);
switch (type) {
case 'search':
const { search, searchDate, filterArea } = payload;
@ -232,6 +234,14 @@ export default function ControlApprovalsContainer({ mode }) {
return 'C';
case '조건부 승인':
return 'C';
case '검토완료':
return 'R';
case '재검토':
return 'A';
case '검토대기':
return 'W';
case '검토불필요':
return 'U';
}
};
@ -257,6 +267,17 @@ export default function ControlApprovalsContainer({ mode }) {
approvalCd: checkSearch(search)
})
);
} else if (reviewedType !== '전체') {
dispatch(
getLaancAprvList({
searchStDt: searchDate.startDate,
searchEndDt: searchDate.endDate,
ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn,
sig: filterArea.sig === '전체' ? '' : filterArea.sig,
address: filterArea.address,
reviewedType: checkSearch(reviewedType)
})
);
} else if (search != '') {
dispatch(
getLaancAprvList({
@ -704,6 +725,8 @@ export default function ControlApprovalsContainer({ mode }) {
setFilterId={setFilterId}
filterArea={filterArea}
setFilterArea={setFilterArea}
setReviewedType={setReviewedType}
reviewedType={reviewedType}
pageName='control'
/>
<ControlApprovalsTable

25
src/containers/flight/OperationApprovalsContainer.js

@ -62,6 +62,9 @@ export default function OperationApprovalsContainer({ mode }) {
// 식별번호
const [filterId, setFilterId] = useState('');
// 검토 상태값
const [reviewedType, setReviewedType] = useState('전체');
// 지역
const [filterArea, setFilterArea] = useState({
ctprvn: '전체',
@ -277,9 +280,16 @@ export default function OperationApprovalsContainer({ mode }) {
return 'C';
case '조건부 승인':
return 'C';
case '검토완료':
return 'R';
case '재검토':
return 'A';
case '검토대기':
return 'W';
case '검토불필요':
return 'U';
}
};
const handlerSearch = (search, searchDate, filterArea) => {
setStartDate(searchDate.startDate);
setEndDate(searchDate.endDate);
@ -302,6 +312,17 @@ export default function OperationApprovalsContainer({ mode }) {
approvalCd: checkSearch(search)
})
);
} else if (reviewedType !== '전체') {
dispatch(
getLaancAprvList({
searchStDt: searchDate.startDate,
searchEndDt: searchDate.endDate,
ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn,
sig: filterArea.sig === '전체' ? '' : filterArea.sig,
address: filterArea.address,
reviewedType: checkSearch(reviewedType)
})
);
} else if (search != '') {
dispatch(
getLaancAprvList({
@ -809,6 +830,8 @@ export default function OperationApprovalsContainer({ mode }) {
setFilterId={setFilterId}
filterArea={filterArea}
setFilterArea={setFilterArea}
setReviewedType={setReviewedType}
reviewedType={reviewedType}
pageName='operation'
/>
<OperationApprovalsTable

50
src/containers/flight/popup/ControlApprovalsPopupContainer.js

@ -20,6 +20,9 @@ function ControlApprovalsPopupContainer() {
address: ''
});
// 검토 상태값
const [reviewedType, setReviewedType] = useState('전체');
const dispatch = useDispatch();
useEffect(() => {
@ -71,12 +74,35 @@ function ControlApprovalsPopupContainer() {
}
};
const checkSearch = text => {
switch (text) {
case '승인':
return 'S';
case '미승인':
return 'F';
case '비대상':
return 'U';
case '조건부승인':
return 'C';
case '조건부 승인':
return 'C';
case '검토완료':
return 'R';
case '재검토':
return 'A';
case '검토대기':
return 'W';
case '검토불필요':
return 'U';
}
};
const handlerSearch = (search, searchDate, filterArea) => {
setStartDate(searchDate.startDate);
setEndDate(searchDate.endDate);
setFilter(search);
if (
search !== '' &&
search != '' &&
(search === '승인' ||
search === '미승인' ||
search === '비대상' ||
@ -90,14 +116,18 @@ function ControlApprovalsPopupContainer() {
ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn,
sig: filterArea.sig === '전체' ? '' : filterArea.sig,
address: filterArea.address,
approvalCd:
search === '승인'
? 'S'
: search === '미승인'
? 'F'
: search === '조건부승인' || search === '조건부 승인'
? 'C'
: 'U'
approvalCd: checkSearch(search)
})
);
} else if (reviewedType !== '전체') {
dispatch(
getLaancAprvList({
searchStDt: searchDate.startDate,
searchEndDt: searchDate.endDate,
ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn,
sig: filterArea.sig === '전체' ? '' : filterArea.sig,
address: filterArea.address,
reviewedType: checkSearch(reviewedType)
})
);
} else if (search != '') {
@ -158,6 +188,8 @@ function ControlApprovalsPopupContainer() {
setFilterId={setFilterId}
filterArea={filterArea}
setFilterArea={setFilterArea}
reviewedType={reviewedType}
setReviewedType={setReviewedType}
pageName='control'
/>
<ControlApprovalsTable

51
src/containers/flight/popup/OperationApprovalsPopupContainer.js

@ -21,6 +21,10 @@ function OperationApprovalsPopupContainer() {
sig: '전체',
address: ''
});
// 검토 상태값
const [reviewedType, setReviewedType] = useState('전체');
const dispatch = useDispatch();
useEffect(() => {
@ -94,12 +98,35 @@ function OperationApprovalsPopupContainer() {
}
};
const checkSearch = text => {
switch (text) {
case '승인':
return 'S';
case '미승인':
return 'F';
case '비대상':
return 'U';
case '조건부승인':
return 'C';
case '조건부 승인':
return 'C';
case '검토완료':
return 'R';
case '재검토':
return 'A';
case '검토대기':
return 'W';
case '검토불필요':
return 'U';
}
};
const handlerSearch = (search, searchDate, filterArea) => {
setStartDate(searchDate.startDate);
setEndDate(searchDate.endDate);
setFilter(search);
if (
search !== '' &&
search != '' &&
(search === '승인' ||
search === '미승인' ||
search === '비대상' ||
@ -113,14 +140,18 @@ function OperationApprovalsPopupContainer() {
ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn,
sig: filterArea.sig === '전체' ? '' : filterArea.sig,
address: filterArea.address,
approvalCd:
search === '승인'
? 'S'
: search === '미승인'
? 'F'
: search === '조건부승인' || search === '조건부 승인'
? 'C'
: 'U'
approvalCd: checkSearch(search)
})
);
} else if (reviewedType !== '전체') {
dispatch(
getLaancAprvList({
searchStDt: searchDate.startDate,
searchEndDt: searchDate.endDate,
ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn,
sig: filterArea.sig === '전체' ? '' : filterArea.sig,
address: filterArea.address,
reviewedType: checkSearch(reviewedType)
})
);
} else if (search != '') {
@ -192,6 +223,8 @@ function OperationApprovalsPopupContainer() {
setFilterId={setFilterId}
filterArea={filterArea}
setFilterArea={setFilterArea}
reviewedType={reviewedType}
setReviewedType={setReviewedType}
pageName='operation'
/>
<OperationApprovalsTable

Loading…
Cancel
Save