Browse Source

laanc 승인 신청 목록 api 연결

pull/2/head
sanguu516(박상현) 11 months ago
parent
commit
89569f3411
  1. 19
      src/components/basis/flight/aprv/FlightPlanAprvGroupGrid.js
  2. 58
      src/components/laanc/LaancGrid.js
  3. 20
      src/components/laanc/LaancSearch.js

19
src/components/basis/flight/aprv/FlightPlanAprvGroupGrid.js

@ -2,7 +2,14 @@ import React from 'react';
import { GridDatabase } from '../../../crud/grid/GridDatatable'; import { GridDatabase } from '../../../crud/grid/GridDatatable';
import { Card, Button } from 'reactstrap'; import { Card, Button } from 'reactstrap';
const FlightPlanAprvGroupGrid = ({ data, count, columns, pagination, paginationPerPage, paginationRowsPerPageOptions }) => { const FlightPlanAprvGroupGrid = ({
data,
count,
columns,
pagination,
paginationPerPage,
paginationRowsPerPageOptions
}) => {
return ( return (
<> <>
<div className='cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> <div className='cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'>
@ -15,8 +22,14 @@ const FlightPlanAprvGroupGrid = ({ data, count, columns, pagination, paginationP
<div className='invoice-list-wrapper'> <div className='invoice-list-wrapper'>
<Card> <Card>
<div className='invoice-list-dataTable'> <div className='invoice-list-dataTable'>
<GridDatabase data={data} count={count} columns={columns} <GridDatabase
pagination={pagination} paginationPerPage={paginationPerPage} paginationRowsPerPageOptions={paginationRowsPerPageOptions} /> data={data}
count={count}
columns={columns}
pagination={pagination}
paginationPerPage={paginationPerPage}
paginationRowsPerPageOptions={paginationRowsPerPageOptions}
/>
</div> </div>
</Card> </Card>
</div> </div>

58
src/components/laanc/LaancGrid.js

@ -1,5 +1,5 @@
import { GridDatabase } from '@src/components/crud/grid/GridDatatable'; import { GridDatabase } from '@src/components/crud/grid/GridDatatable';
import { Row, Col, Card, Button } from 'reactstrap'; import { Row, Col, Card, Button, Spinner } from 'reactstrap';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import moment from 'moment'; import moment from 'moment';
@ -32,6 +32,7 @@ const data = [
function LaancGrid() { function LaancGrid() {
const { scheduleList } = useSelector(state => state.flightState); const { scheduleList } = useSelector(state => state.flightState);
const { laancSearchData } = useSelector(state => state.laancState);
const { loading } = useSelector(state => state.loadingReducer); const { loading } = useSelector(state => state.loadingReducer);
const fillZero = (width, str) => { const fillZero = (width, str) => {
@ -43,59 +44,59 @@ function LaancGrid() {
const columns = [ const columns = [
{ {
name: '조종사 성명', name: '조종사 성명',
selector: row => row.name, selector: row => row.memberName,
minWidth: '150px', minWidth: '150px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return row.name; return row.memberName;
} }
}, },
{ {
name: '비행시작일시', name: '비행시작일시',
selector: row => row.flightStart, selector: row => row.schFltStDt,
minWidth: '150px', minWidth: '150px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return moment(row.flightStart).format('YYYY-MM-DD HH:mm'); return moment(row.schFltStDt).format('YYYY-MM-DD HH:mm');
} }
}, },
{ {
name: '비행종료일시', name: '비행종료일시',
selector: row => row.flightEnd, selector: row => row.schFltEndDt,
minWidth: '150px', minWidth: '150px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return moment(row.flightEnd).format('YYYY-MM-DD HH:mm'); return moment(row.schFltEndDt).format('YYYY-MM-DD HH:mm');
} }
}, },
{ {
name: '승인유형', name: '승인유형',
selector: row => row.apploveType, selector: row => row.aprvlYn,
minWidth: '150px', minWidth: '90px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return row.apploveType; return row.aprvlYn;
} }
}, },
{ {
name: '기체중량', name: '기체중량',
selector: row => row.weight, selector: row => row.arcrftWght,
minWidth: '150px', minWidth: '260px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return row.weight; return row.arcrftWght;
} }
}, },
{ {
name: '고도', name: '고도',
selector: row => row.altitude, selector: row => row.elev,
minWidth: '150px', minWidth: '80px',
sortable: true, sortable: true,
cell: row => { cell: row => {
return row.altitude; return row.elev;
} }
}, },
{ {
@ -150,28 +151,33 @@ function LaancGrid() {
> >
<div style={{ display: 'flex', alignItems: 'center' }}> <div style={{ display: 'flex', alignItems: 'center' }}>
<h4>LAANC 승인 신청 목록</h4> <h4>LAANC 승인 신청 목록</h4>
<span className='search-case'>검색결과 {data.length}</span> <span className='search-case'>
검색결과 {laancSearchData?.numberOfElements}
</span>
</div> </div>
</div> </div>
</div> </div>
<div className='invoice-list-wrapper'> <div className='invoice-list-wrapper'>
<Card> <Card>
<div className='invoice-list-dataTable'> <div className='invoice-list-dataTable'>
{/* {loading ? ( {loading ? (
<div className='grid-loading'> <div className='grid-loading'>
<div> <div>
<Spinner color='primary' /> <Spinner color='primary' />
<span>Loading...</span> <span>Loading...</span>
</div> </div>
</div> </div>
) : null} */} ) : null}
<GridDatabase {laancSearchData?.numberOfElements > 0 ? (
title={'비행이력'} <GridDatabase
data={data} title={'비행이력'}
count={data.length} data={laancSearchData?.content}
columns={columns} // count={laancSearchData?.size}
pagination={false} columns={columns}
/> // handlerPageChange={props.handlerPageChange}
pagination={false}
/>
) : null}
</div> </div>
</Card> </Card>
</div> </div>

20
src/components/laanc/LaancSearch.js

@ -10,8 +10,8 @@ function LaancSearch() {
const dispatch = useDispatch(); const dispatch = useDispatch();
const [date, setDate] = useState({ const [date, setDate] = useState({
stDate: moment().subtract(0, 'day').format('YYYY-MM-DD'), schFltStDate: moment().subtract(0, 'day').format('YYYY-MM-DD'),
endDate: moment().subtract(-14, 'day').format('YYYY-MM-DD') schFltEndDate: moment().subtract(-14, 'day').format('YYYY-MM-DD')
}); });
useEffect(() => { useEffect(() => {
@ -20,9 +20,9 @@ function LaancSearch() {
const handlerChangeDate = selectedDates => { const handlerChangeDate = selectedDates => {
if (selectedDates.length === 2) { if (selectedDates.length === 2) {
const stDate = moment(selectedDates[0]).format('YYYY-MM-DD'); const schFltStDate = moment(selectedDates[0]).format('YYYY-MM-DD');
const endDate = moment(selectedDates[1]).format('YYYY-MM-DD'); const schFltEndDate = moment(selectedDates[1]).format('YYYY-MM-DD');
setDate({ stDate, endDate }); setDate({ schFltStDate, schFltEndDate });
} }
}; };
@ -66,10 +66,16 @@ function LaancSearch() {
<Flatpickr <Flatpickr
placeholder='날짜를 선택해주세요' placeholder='날짜를 선택해주세요'
id='searchDate' id='searchDate'
value={[date.stDate, date.endDate]} value={[
date.schFltStDate,
date.schFltEndDate
]}
options={{ options={{
mode: 'range', mode: 'range',
defaultDate: [date.stDate, date.endDate] defaultDate: [
date.schFltStDate,
date.schFltEndDate
]
}} }}
onChange={selectedDates => onChange={selectedDates =>
handlerChangeDate(selectedDates) handlerChangeDate(selectedDates)

Loading…
Cancel
Save