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}
paginationPerPage={props.paginationPerPage}
paginationRowsPerPageOptions={props.paginationRowsPerPageOptions}
page={props.page}
/>
</div>
</Card>

60
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 (
// <div className='pal-card-box'>
@ -84,36 +90,44 @@ export const AnalysisHistorySearch = props => {
<Button
outline
size='sm'
className={props.isClick == 1 ? 'active' : ''}
onClick={e => props.handlerClickDate(1)}
className={diffDay == 1 ? 'active' : ''}
onClick={e => {
setDiffDay(1);
props.handlerClickDate(1);
}}
>
최근1일
</Button>
<Button
outline
className={props.isClick == 7 ? 'active' : ''}
className={diffDay == 7 ? 'active' : ''}
size='sm'
onClick={e => props.handlerClickDate(7)}
onClick={e => {
setDiffDay(7);
props.handlerClickDate(7);
}}
>
최근7일
</Button>
<Button
outline
className={
props.isClick == 15 ? 'active' : ''
}
className={diffDay == 15 ? 'active' : ''}
size='sm'
onClick={e => props.handlerClickDate(15)}
onClick={e => {
setDiffDay(15);
props.handlerClickDate(15);
}}
>
최근 15
</Button>
<Button
outline
className={
props.isClick == 30 ? 'active' : ''
}
className={diffDay == 30 ? 'active' : ''}
size='sm'
onClick={e => props.handlerClickDate(30)}
onClick={e => {
setDiffDay(30);
props.handlerClickDate(30);
}}
>
최근 30
</Button>

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

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

52
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 }

18
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,

Loading…
Cancel
Save