diff --git a/src/components/analysis/history/AnalysisHistoryGrid.js b/src/components/analysis/history/AnalysisHistoryGrid.js index ade2fd2b..5b5d6ba5 100644 --- a/src/components/analysis/history/AnalysisHistoryGrid.js +++ b/src/components/analysis/history/AnalysisHistoryGrid.js @@ -48,6 +48,7 @@ export const AnalysisHistoryGrid = props => { handlerPageChange={props.handlerPageChange} paginationPerPage={props.paginationPerPage} paginationRowsPerPageOptions={props.paginationRowsPerPageOptions} + page={props.page} /> diff --git a/src/components/analysis/history/AnalysisHistorySearch.js b/src/components/analysis/history/AnalysisHistorySearch.js index dc4ba12a..a81407c5 100644 --- a/src/components/analysis/history/AnalysisHistorySearch.js +++ b/src/components/analysis/history/AnalysisHistorySearch.js @@ -1,5 +1,5 @@ import moment from 'moment'; -import { useEffect } from 'react'; +import { useState } from 'react'; import { Calendar, Search } from 'react-feather'; import Flatpickr from 'react-flatpickr'; import { @@ -13,16 +13,22 @@ import { } from 'reactstrap'; export const AnalysisHistorySearch = props => { - useEffect(() => { - if (props.isClick != -1) { - props.setParams({ - ...props.params, - stDate: moment().subtract(props.dateType, 'day').format('YYYY-MM-DD'), - endDate: moment().subtract(0, 'day').format('YYYY-MM-DD'), - groupId: props.searchData.groupId - }); - } - }, [props.dateType, props.isClick]); + // useEffect(() => { + // if (props.isClick != -1) { + // props.setParams({ + // ...props.params, + // stDate: moment().subtract(props.dateType, 'day').format('YYYY-MM-DD'), + // endDate: moment().subtract(0, 'day').format('YYYY-MM-DD'), + // groupId: props.searchData.groupId + // }); + // } + // }, [props.dateType, props.isClick]); + const [diffDay, setDiffDay] = useState( + moment(props.searchData.endDate).diff( + moment(props.searchData.stDate), + 'days' + ) + ); return ( //
@@ -84,36 +90,44 @@ export const AnalysisHistorySearch = props => { diff --git a/src/components/crud/grid/GridDatatable.js b/src/components/crud/grid/GridDatatable.js index ebfbbc0a..9c7705dd 100644 --- a/src/components/crud/grid/GridDatatable.js +++ b/src/components/crud/grid/GridDatatable.js @@ -27,6 +27,7 @@ export const GridDatabase = props => { responsive={true} sortIcon={} className='react-dataTable pal-dateTable' + paginationDefaultPage={props.page || 1} // defaultSortField='invoiceId' // paginationDefaultPage={currentPage} // paginationComponent={CustomPagination} diff --git a/src/containers/basis/dron/BasisDronContainer.js b/src/containers/basis/dron/BasisDronContainer.js index c7c34cc4..0e17a4da 100644 --- a/src/containers/basis/dron/BasisDronContainer.js +++ b/src/containers/basis/dron/BasisDronContainer.js @@ -2,15 +2,7 @@ import moment from 'moment'; import { useEffect, useState } from 'react'; import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { useHistory, Link } from 'react-router-dom'; -import { - Button, - Col, - Row, - Modal, - ModalHeader, - ModalBody, - ModalFooter -} from 'reactstrap'; +import { Button, Col, Row } from 'reactstrap'; import { BasisDronGrid } from '../../../components/basis/dron/BasisDronGrid'; import { BasisGroupDronGrid } from '../../../components/basis/dron/BasisGroupDronGrid'; import { CustomMainLayout } from '../../../components/layout/CustomMainLayout'; @@ -163,16 +155,6 @@ export const BasisDronContainer = props => { } ]; - // const handlerNotMine = () => { - // setModal({ - // isOpen: true, - // title: '조회 불가', - // desc: '사용자가 등록한 기체가 아닙니다.', - // color: 'danger' - // }); - // return; - // }; - // useEffect(() => { // handlerCancel(); // // if (selectData) { @@ -198,6 +180,38 @@ export const BasisDronContainer = props => { } }, [user]); + useEffect(() => { + const group = groupList?.find(prev => prev.groupId === selectData.groupId); + + const join = joinList?.find(prev => prev.groupId === selectData.groupId); + + const obj = { + groupAuthCd: join?.groupAuthCd, + myGroupAuthCd: group?.myGroupAuthCd + }; + + // 기체등록 버튼 활성/비활성 제어 + let my = false; + if (user.authId === 'SUPER') { + my = true; + } else if (user?.authId === 'ADMIN') { + my = obj?.myGroupAuthCd && true; + } else if (user?.authId === 'USER') { + my = obj?.groupAuthCd && true; + } + setIsMyGroup(my); + }, [selectData]); + + // const handlerNotMine = () => { + // setModal({ + // isOpen: true, + // title: '조회 불가', + // desc: '사용자가 등록한 기체가 아닙니다.', + // color: 'danger' + // }); + // return; + // }; + // const handlerSearch = () => { // GroupActions.JOIN_LIST.request({ // searchParams: { cstmrSno: user?.cstmrSno } diff --git a/src/modules/basis/flight/models/basisFlightModel.ts b/src/modules/basis/flight/models/basisFlightModel.ts index 400555ee..52a8f947 100644 --- a/src/modules/basis/flight/models/basisFlightModel.ts +++ b/src/modules/basis/flight/models/basisFlightModel.ts @@ -19,8 +19,8 @@ export interface FlightState { conut: number | 0; weather: resweatherData | undefined; selectGroup: SelectGroupData | undefined; - listSelect: SelectGroupData | undefined; - aprvSelect: SelectGroupData | undefined; + listSelect: ListGroupData | undefined; + aprvSelect: ListGroupData | undefined; } export interface weatherData { serviceKey: string; @@ -62,6 +62,15 @@ export interface SelectGroupData { cstmrSno: number; groupId: string; groupNm: string; + search1: string; + stDate: string; + endDate: string; +} + +export interface ListGroupData { + cstmrSno: number; + groupId: string; + groupNm: string; } export interface PublicAreaData { @@ -242,7 +251,10 @@ export const initFlight = { selectGroup: { cstmrSno: 0, groupId: '', - groupNm: '' + groupNm: '', + search1: '', + stDate: '', + endDate: '' }, listSelect: { cstmrSno: 0,