Browse Source

비행 이력 현황 그룹선택 및 검색조건 유지

ctrlDraw
김장현 2 years ago
parent
commit
879687d12f
  1. 1
      src/components/analysis/history/AnalysisHistoryGrid.js
  2. 60
      src/components/analysis/history/AnalysisHistorySearch.js
  3. 1
      src/components/crud/grid/GridDatatable.js
  4. 52
      src/containers/basis/dron/BasisDronContainer.js
  5. 18
      src/modules/basis/flight/models/basisFlightModel.ts

1
src/components/analysis/history/AnalysisHistoryGrid.js

@ -48,6 +48,7 @@ export const AnalysisHistoryGrid = props => {
handlerPageChange={props.handlerPageChange} handlerPageChange={props.handlerPageChange}
paginationPerPage={props.paginationPerPage} paginationPerPage={props.paginationPerPage}
paginationRowsPerPageOptions={props.paginationRowsPerPageOptions} paginationRowsPerPageOptions={props.paginationRowsPerPageOptions}
page={props.page}
/> />
</div> </div>
</Card> </Card>

60
src/components/analysis/history/AnalysisHistorySearch.js

@ -1,5 +1,5 @@
import moment from 'moment'; import moment from 'moment';
import { useEffect } from 'react'; import { useState } from 'react';
import { Calendar, Search } from 'react-feather'; import { Calendar, Search } from 'react-feather';
import Flatpickr from 'react-flatpickr'; import Flatpickr from 'react-flatpickr';
import { import {
@ -13,16 +13,22 @@ import {
} from 'reactstrap'; } from 'reactstrap';
export const AnalysisHistorySearch = props => { export const AnalysisHistorySearch = props => {
useEffect(() => { // useEffect(() => {
if (props.isClick != -1) { // if (props.isClick != -1) {
props.setParams({ // props.setParams({
...props.params, // ...props.params,
stDate: moment().subtract(props.dateType, 'day').format('YYYY-MM-DD'), // stDate: moment().subtract(props.dateType, 'day').format('YYYY-MM-DD'),
endDate: moment().subtract(0, 'day').format('YYYY-MM-DD'), // endDate: moment().subtract(0, 'day').format('YYYY-MM-DD'),
groupId: props.searchData.groupId // groupId: props.searchData.groupId
}); // });
} // }
}, [props.dateType, props.isClick]); // }, [props.dateType, props.isClick]);
const [diffDay, setDiffDay] = useState(
moment(props.searchData.endDate).diff(
moment(props.searchData.stDate),
'days'
)
);
return ( return (
// <div className='pal-card-box'> // <div className='pal-card-box'>
@ -84,36 +90,44 @@ export const AnalysisHistorySearch = props => {
<Button <Button
outline outline
size='sm' size='sm'
className={props.isClick == 1 ? 'active' : ''} className={diffDay == 1 ? 'active' : ''}
onClick={e => props.handlerClickDate(1)} onClick={e => {
setDiffDay(1);
props.handlerClickDate(1);
}}
> >
최근1일 최근1일
</Button> </Button>
<Button <Button
outline outline
className={props.isClick == 7 ? 'active' : ''} className={diffDay == 7 ? 'active' : ''}
size='sm' size='sm'
onClick={e => props.handlerClickDate(7)} onClick={e => {
setDiffDay(7);
props.handlerClickDate(7);
}}
> >
최근7일 최근7일
</Button> </Button>
<Button <Button
outline outline
className={ className={diffDay == 15 ? 'active' : ''}
props.isClick == 15 ? 'active' : ''
}
size='sm' size='sm'
onClick={e => props.handlerClickDate(15)} onClick={e => {
setDiffDay(15);
props.handlerClickDate(15);
}}
> >
최근 15 최근 15
</Button> </Button>
<Button <Button
outline outline
className={ className={diffDay == 30 ? 'active' : ''}
props.isClick == 30 ? 'active' : ''
}
size='sm' size='sm'
onClick={e => props.handlerClickDate(30)} onClick={e => {
setDiffDay(30);
props.handlerClickDate(30);
}}
> >
최근 30 최근 30
</Button> </Button>

1
src/components/crud/grid/GridDatatable.js

@ -27,6 +27,7 @@ export const GridDatabase = props => {
responsive={true} responsive={true}
sortIcon={<ChevronDown />} sortIcon={<ChevronDown />}
className='react-dataTable pal-dateTable' className='react-dataTable pal-dateTable'
paginationDefaultPage={props.page || 1}
// defaultSortField='invoiceId' // defaultSortField='invoiceId'
// paginationDefaultPage={currentPage} // paginationDefaultPage={currentPage}
// paginationComponent={CustomPagination} // paginationComponent={CustomPagination}

52
src/containers/basis/dron/BasisDronContainer.js

@ -2,15 +2,7 @@ import moment from 'moment';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import { import { Button, Col, Row } from 'reactstrap';
Button,
Col,
Row,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from 'reactstrap';
import { BasisDronGrid } from '../../../components/basis/dron/BasisDronGrid'; import { BasisDronGrid } from '../../../components/basis/dron/BasisDronGrid';
import { BasisGroupDronGrid } from '../../../components/basis/dron/BasisGroupDronGrid'; import { BasisGroupDronGrid } from '../../../components/basis/dron/BasisGroupDronGrid';
import { CustomMainLayout } from '../../../components/layout/CustomMainLayout'; 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(() => { // useEffect(() => {
// handlerCancel(); // handlerCancel();
// // if (selectData) { // // if (selectData) {
@ -198,6 +180,38 @@ export const BasisDronContainer = props => {
} }
}, [user]); }, [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 = () => { // const handlerSearch = () => {
// GroupActions.JOIN_LIST.request({ // GroupActions.JOIN_LIST.request({
// searchParams: { cstmrSno: user?.cstmrSno } // searchParams: { cstmrSno: user?.cstmrSno }

18
src/modules/basis/flight/models/basisFlightModel.ts

@ -19,8 +19,8 @@ export interface FlightState {
conut: number | 0; conut: number | 0;
weather: resweatherData | undefined; weather: resweatherData | undefined;
selectGroup: SelectGroupData | undefined; selectGroup: SelectGroupData | undefined;
listSelect: SelectGroupData | undefined; listSelect: ListGroupData | undefined;
aprvSelect: SelectGroupData | undefined; aprvSelect: ListGroupData | undefined;
} }
export interface weatherData { export interface weatherData {
serviceKey: string; serviceKey: string;
@ -62,6 +62,15 @@ export interface SelectGroupData {
cstmrSno: number; cstmrSno: number;
groupId: string; groupId: string;
groupNm: string; groupNm: string;
search1: string;
stDate: string;
endDate: string;
}
export interface ListGroupData {
cstmrSno: number;
groupId: string;
groupNm: string;
} }
export interface PublicAreaData { export interface PublicAreaData {
@ -242,7 +251,10 @@ export const initFlight = {
selectGroup: { selectGroup: {
cstmrSno: 0, cstmrSno: 0,
groupId: '', groupId: '',
groupNm: '' groupNm: '',
search1: '',
stDate: '',
endDate: ''
}, },
listSelect: { listSelect: {
cstmrSno: 0, cstmrSno: 0,

Loading…
Cancel
Save