From b592b3f26b1ee42be8a01b72f15573e5f2613f8c Mon Sep 17 00:00:00 2001 From: sanguu516 Date: Mon, 2 Sep 2024 19:22:37 +0900 Subject: [PATCH] =?UTF-8?q?feat/=EC=9E=A5=EC=95=A0=EB=AC=BC=20=EC=A0=9C?= =?UTF-8?q?=ED=95=9C=20=ED=91=9C=EB=A9=B4=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flight/NewFlightApprovalsReport.js | 37 ++++++++---- .../flight/OperationApprovalsTable.js | 32 +++++++--- .../flight/ControlApprovalsContainer.js | 32 +++++----- .../flight/OperationApprovalsContainer.js | 32 +++++----- .../popup/ControlApprovalsPopupContainer.js | 40 ++++++------- .../popup/OperationApprovalsPopupContainer.js | 58 ++++++------------- 6 files changed, 116 insertions(+), 115 deletions(-) diff --git a/src/components/flight/NewFlightApprovalsReport.js b/src/components/flight/NewFlightApprovalsReport.js index c500b7a6..a305621c 100644 --- a/src/components/flight/NewFlightApprovalsReport.js +++ b/src/components/flight/NewFlightApprovalsReport.js @@ -112,9 +112,14 @@ export default function NewFlightApprovalsReport(props) { bsSize='sm' id='limitzoneNm' placeholder='장애물 제한표면을 선택 해 주세요.' - onChange={e => props.setLimitZoneNm(e.target.value)} + onChange={e => + props.setCheckState({ + ...props.checkState, + limitZoneNm: e.target.value + }) + } onKeyPress={handleKeyDown} - value={props.limitZoneNm} + value={props.checkState.limitZoneNm} > @@ -146,13 +151,19 @@ export default function NewFlightApprovalsReport(props) { } value={ props.pageName === 'control' - ? props.reviewedProcType - : props.reviewedType + ? props.checkState.reviewedProcType + : props.checkState.reviewedType } onChange={e => { props.pageName === 'control' - ? props.setReviewedProcType(e.target.value) - : props.setReviewedType(e.target.value); + ? props.setCheckState({ + ...props.checkState, + reviewedProcType: e.target.value + }) + : props.setCheckState({ + ...props.checkState, + reviewedType: e.target.value + }); }} onKeyPress={handleKeyDown} > @@ -186,13 +197,19 @@ export default function NewFlightApprovalsReport(props) { } value={ props.pageName === 'control' - ? props.reviewedType - : props.reviewedProcType + ? props.checkState.reviewedType + : props.checkState.reviewedProcType } onChange={e => { props.pageName === 'control' - ? props.setReviewedType(e.target.value) - : props.setReviewedProcType(e.target.value); + ? props.setCheckState({ + ...props.checkState, + reviewedType: e.target.value + }) + : props.setCheckState({ + ...props.checkState, + reviewedProcType: e.target.value + }); }} onKeyPress={handleKeyDown} > diff --git a/src/components/flight/OperationApprovalsTable.js b/src/components/flight/OperationApprovalsTable.js index 70c42738..a49712f0 100644 --- a/src/components/flight/OperationApprovalsTable.js +++ b/src/components/flight/OperationApprovalsTable.js @@ -12,12 +12,7 @@ import { ERROR_MESSAGE, ERROR_TITLE } from '@src/configs/msgConst'; import OperationModal from './OperationModal'; import ScrollContainer from 'react-indiana-drag-scroll'; import OperationCheckBoxModal from './OperationCheckBoxModal'; -import { - CityCategories, - DistrictCategories, - FlightCategory, - limitZoneNmCategories -} from '@configs/constants'; +import { ConfirmModal } from '@component/modal/ConfirmModal'; export default function OperationApprovalsTable(props) { const dispatch = useDispatch(); @@ -61,6 +56,15 @@ export default function OperationApprovalsTable(props) { const [reviewedTypeValue, setReviewedTypeValue] = useState(''); + // 확인 모달 + const [modal, setModal] = useState({ + isOpen: false, + title: '', + desc: '', + type: '', + row: {} + }); + useEffect(() => { let approvalCdValue = { S: 0, F: 0, C: 0, U: 0 }; @@ -102,7 +106,13 @@ export default function OperationApprovalsTable(props) { try { const values = await form.validateFields(); - handleSave({ ...record, ...values }); + setModal({ + isOpen: true, + title: '수정 확인', + desc: '데이터를 수정하시겠습니까?', + type: 'edit', + row: { ...record, ...values } + }); } catch (errInfo) {} }; @@ -978,6 +988,14 @@ export default function OperationApprovalsTable(props) { + {modal && ( + handleSave(modal.row)} + color='primary' + /> + )} ) : (
diff --git a/src/containers/flight/OperationApprovalsContainer.js b/src/containers/flight/OperationApprovalsContainer.js index 184f5376..b8e9a646 100644 --- a/src/containers/flight/OperationApprovalsContainer.js +++ b/src/containers/flight/OperationApprovalsContainer.js @@ -65,12 +65,12 @@ export default function OperationApprovalsContainer({ mode }) { // 식별번호 const [filterId, setFilterId] = useState(''); - // 운항과 검토 상태값 - const [reviewedType, setReviewedType] = useState('전체'); - // 관제과 검토 상태값 - const [reviewedProcType, setReviewedProcType] = useState('전체'); - - const [limitZoneNm, setLimitZoneNm] = useState(''); + // 검색조건 + const [checkState, setCheckState] = useState({ + reviewedType: '전체', + reviewedProcType: '전체', + limitZoneNm: '전체' + }); // 지역 const [filterArea, setFilterArea] = useState({ @@ -282,11 +282,14 @@ export default function OperationApprovalsContainer({ mode }) { ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn, sig: filterArea.sig === '전체' ? '' : filterArea.sig, address: filterArea.address, - limitZoneCd: limitZoneNm === '전체' ? '' : limitZoneNm, + limitZoneCd: + checkState.limitZoneNm === '전체' ? '' : checkState.limitZoneNm, ...(search !== '' ? { applyNo: search } : {}), - ...(reviewedType !== '전체' ? { reviewedType: reviewedType } : {}), - ...(reviewedProcType !== '전체' - ? { reviewedProcType: reviewedProcType } + ...(checkState.reviewedType !== '전체' + ? { reviewedType: checkState.reviewedType } + : {}), + ...(checkState.reviewedProcType !== '전체' + ? { reviewedProcType: checkState.reviewedProcType } : {}) }) ); @@ -909,12 +912,8 @@ export default function OperationApprovalsContainer({ mode }) { setFilterId={setFilterId} filterArea={filterArea} setFilterArea={setFilterArea} - setReviewedType={setReviewedType} - reviewedType={reviewedType} - reviewedProcType={reviewedProcType} - setReviewedProcType={setReviewedProcType} - limitZoneNm={limitZoneNm} - setLimitZoneNm={setLimitZoneNm} + checkState={checkState} + setCheckState={setCheckState} pageName='operation' /> diff --git a/src/containers/flight/popup/ControlApprovalsPopupContainer.js b/src/containers/flight/popup/ControlApprovalsPopupContainer.js index 14e490c3..59203137 100644 --- a/src/containers/flight/popup/ControlApprovalsPopupContainer.js +++ b/src/containers/flight/popup/ControlApprovalsPopupContainer.js @@ -20,17 +20,12 @@ function ControlApprovalsPopupContainer() { address: '' }); - // 검토 상태값 - const [reviewedType, setReviewedType] = useState('전체'); - const [reviewedProcType, setReviewedProcType] = 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 [checkState, setCheckState] = useState({ + reviewedType: '전체', + reviewedProcType: '전체', + limitZoneNm: '전체' + }); const dispatch = useDispatch(); @@ -94,13 +89,14 @@ function ControlApprovalsPopupContainer() { ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn, sig: filterArea.sig === '전체' ? '' : filterArea.sig, address: filterArea.address, + limitZoneCd: + checkState.limitZoneNm === '전체' ? '' : checkState.limitZoneNm, ...(search !== '' ? { applyNo: search } : {}), - ...(reviewedType !== '전체' ? { reviewedType: reviewedType } : {}), - ...(reviewedProcType !== '전체' - ? { reviewedProcType: reviewedProcType } + ...(checkState.reviewedType !== '전체' + ? { reviewedType: checkState.reviewedType } : {}), - ...(approvalCd.filter(i => i.select).length > 0 - ? { approvalCd: approvalCd.filter(i => i.select)[0].value } + ...(checkState.reviewedProcType !== '전체' + ? { reviewedProcType: checkState.reviewedProcType } : {}) }) ); @@ -113,8 +109,9 @@ function ControlApprovalsPopupContainer() { address: filterArea.address, startDate: searchDate.startDate, endDate: searchDate.endDate, - reviewedType, - reviewedProcType + reviewedType: checkState.reviewedType, + reviewedProcType: checkState.reviewedProcType, + limitZoneNm: checkState.limitZoneNm }) ); handlerOpnerPostMessage('search', { search, searchDate, filterArea }); @@ -166,12 +163,9 @@ function ControlApprovalsPopupContainer() { setFilterId={setFilterId} filterArea={filterArea} setFilterArea={setFilterArea} - reviewedType={reviewedType} - setReviewedType={setReviewedType} - approvalCd={approvalCd} - reviewedProcType={reviewedProcType} - setReviewedProcType={setReviewedProcType} handlerApprovalCd={handlerApprovalCd} + checkState={checkState} + setCheckState={setCheckState} pageName='control' /> { - switch (text) { - case '검토완료': - return 'R'; - case '검토대기': - return 'W'; - case '검토불필요': - return 'U'; - case '검토요청': - return 'Q'; - case '검토재요청': - return 'A'; - case '검토요청취소': - return 'C'; - } - }; - const handlerSearch = (search, searchDate, filterArea) => { setStartDate(searchDate.startDate); setEndDate(searchDate.endDate); @@ -136,13 +113,14 @@ function OperationApprovalsPopupContainer() { ctprvn: filterArea.ctprvn === '전체' ? '' : filterArea.ctprvn, sig: filterArea.sig === '전체' ? '' : filterArea.sig, address: filterArea.address, + limitZoneCd: + checkState.limitZoneNm === '전체' ? '' : checkState.limitZoneNm, ...(search !== '' ? { applyNo: search } : {}), - ...(reviewedType !== '전체' ? { reviewedType: reviewedType } : {}), - ...(reviewedProcType !== '전체' - ? { reviewedProcType: reviewedProcType } + ...(checkState.reviewedType !== '전체' + ? { reviewedType: checkState.reviewedType } : {}), - ...(approvalCd.filter(i => i.select).length > 0 - ? { approvalCd: approvalCd.filter(i => i.select)[0].value } + ...(checkState.reviewedProcType !== '전체' + ? { reviewedProcType: checkState.reviewedProcType } : {}) }) ); @@ -155,8 +133,9 @@ function OperationApprovalsPopupContainer() { address: filterArea.address, startDate: searchDate.startDate, endDate: searchDate.endDate, - reviewedType, - reviewedProcType + reviewedType: checkState.reviewedType, + reviewedProcType: checkState.reviewedProcType, + limitZoneNm: checkState.limitZoneNm }) ); handlerOpnerPostMessage('search', { search, searchDate, filterArea }); @@ -219,11 +198,8 @@ function OperationApprovalsPopupContainer() { setFilterId={setFilterId} filterArea={filterArea} setFilterArea={setFilterArea} - reviewedType={reviewedType} - setReviewedType={setReviewedType} - approvalCd={approvalCd} - reviewedProcType={reviewedProcType} - setReviewedProcType={setReviewedProcType} + checkState={checkState} + setCheckState={setCheckState} handlerApprovalCd={handlerApprovalCd} pageName='operation' />