From 0226f3e219403fbdf6a867340c244b886169fea2 Mon Sep 17 00:00:00 2001 From: sanguu516 Date: Wed, 31 Jul 2024 14:38:13 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B2=80=ED=86=A0=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flight/NewFlightApprovalsReport.js | 29 ++++++++++- src/configs/constants.ts | 19 +++++++ .../flight/ControlApprovalsContainer.js | 25 ++++++++- .../flight/OperationApprovalsContainer.js | 25 ++++++++- .../popup/ControlApprovalsPopupContainer.js | 50 ++++++++++++++---- .../popup/OperationApprovalsPopupContainer.js | 51 +++++++++++++++---- 6 files changed, 177 insertions(+), 22 deletions(-) diff --git a/src/components/flight/NewFlightApprovalsReport.js b/src/components/flight/NewFlightApprovalsReport.js index bb3ee5cd..f2079355 100644 --- a/src/components/flight/NewFlightApprovalsReport.js +++ b/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) {

비행승인 신청 검토결과 현황

- 검색일자 또는 신청번호/검토결과를 입력해주세요. + 검색일자 또는 신청번호/검토결과 또는 확인결과를 입력해주세요.
@@ -81,6 +85,27 @@ export default function NewFlightApprovalsReport(props) { onKeyPress={handleKeyDown} />
+
+ props.setReviewedType(e.target.value)} + onKeyPress={handleKeyDown} + > + {Object.values( + props.pageName === 'control' + ? FlightCategory.Control + : FlightCategory.Operation + ).map(item => ( + + ))} + +
diff --git a/src/configs/constants.ts b/src/configs/constants.ts index 1b418a24..d1db29c3 100644 --- a/src/configs/constants.ts +++ b/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; diff --git a/src/containers/flight/ControlApprovalsContainer.js b/src/containers/flight/ControlApprovalsContainer.js index 1a38c59f..d43480c6 100644 --- a/src/containers/flight/ControlApprovalsContainer.js +++ b/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' /> { 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' /> { @@ -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' /> { @@ -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' />