노승철
2 years ago
2 changed files with 177 additions and 0 deletions
@ -0,0 +1,136 @@ |
|||||||
|
import React from 'react'; |
||||||
|
import {Button, Card, CardBody, Col, CustomInput, Row, FormGroup, Input, Label} from 'reactstrap'; |
||||||
|
import {Search} from 'react-feather'; |
||||||
|
import {GridDatabase} from '../../../crud/grid/GridDatatable'; |
||||||
|
|
||||||
|
const FlightPlanPilot = ({ pilotList, handleSelectPilot }) => { |
||||||
|
const columns = [ |
||||||
|
{id: 'groupNm', name: '그룹 명', cell: row => (<div>{row.groupNm}</div>)}, |
||||||
|
{id: 'memberName', name: '성명', cell: row => (<div>{row.memberName}</div>)}, |
||||||
|
{id: 'hpno', name: '핸드폰 번호', cell: row => (<div>{row.hpno}</div>)}, |
||||||
|
{id: 'email', name: '이메일', cell: row => (<div>{row.email}</div>)}, |
||||||
|
{ |
||||||
|
id: 'selectPilot', name: '선택', cell: row => { |
||||||
|
return <Button.Ripple color='primary' size='sm' onClick={() => { |
||||||
|
handleSelectPilot(row.cstmrSno)
|
||||||
|
} |
||||||
|
}>선택</Button.Ripple>; |
||||||
|
}
|
||||||
|
} |
||||||
|
]; |
||||||
|
|
||||||
|
return ( |
||||||
|
<> |
||||||
|
<div className='pal-card-box'> |
||||||
|
<Row> |
||||||
|
<Col> |
||||||
|
<div |
||||||
|
className='cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> |
||||||
|
<div> |
||||||
|
<h4>검색조건</h4> |
||||||
|
</div> |
||||||
|
<div className='d-flex align-items-center'> |
||||||
|
<Button.Ripple |
||||||
|
color='primary' |
||||||
|
size='sm' |
||||||
|
// onClick={handleClickSearch}
|
||||||
|
> |
||||||
|
<Search size={16}/> |
||||||
|
검색 |
||||||
|
</Button.Ripple> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<Card> |
||||||
|
<CardBody className='pal-card-body'> |
||||||
|
<div className='search-cont'> |
||||||
|
<dl>
|
||||||
|
<dt> |
||||||
|
<div className='search-box'> |
||||||
|
<div className='search-list-ti'>그룹 명</div> |
||||||
|
<div className='search-list'> |
||||||
|
<div className='search-list-cont'> |
||||||
|
<Row> |
||||||
|
<Col className='list-input' xl='4' md='4' sm='12'> |
||||||
|
<FormGroup className='form-label-group'> |
||||||
|
<Input |
||||||
|
type='text' |
||||||
|
id='groupNm' |
||||||
|
name='groupNm' |
||||||
|
// value={props.params.groupNm}
|
||||||
|
// onChange={props.handlerInput}
|
||||||
|
size='sm' |
||||||
|
// onKeyPress={props.onKeyPress}
|
||||||
|
placeholder='그룹명을 입력하세요' |
||||||
|
/> |
||||||
|
<Label for='test'>그룹 명</Label> |
||||||
|
</FormGroup> |
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div className='search-box'> |
||||||
|
<div className='search-list-ti'>성명</div> |
||||||
|
<div className='search-list'> |
||||||
|
<div className='search-list-cont'> |
||||||
|
<Row> |
||||||
|
<Col className='list-input' xl='4' md='4' sm='12'> |
||||||
|
<FormGroup className='form-label-group'> |
||||||
|
<Input |
||||||
|
type='text' |
||||||
|
id='groupNm' |
||||||
|
name='groupNm' |
||||||
|
// value={props.params.groupNm}
|
||||||
|
// onChange={props.handlerInput}
|
||||||
|
size='sm' |
||||||
|
// onKeyPress={props.onKeyPress}
|
||||||
|
placeholder='성명을 입력하세요' |
||||||
|
/> |
||||||
|
<Label for='test'>성명</Label> |
||||||
|
</FormGroup> |
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</dt> |
||||||
|
</dl> |
||||||
|
</div> |
||||||
|
</CardBody> |
||||||
|
</Card> |
||||||
|
|
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
</div> |
||||||
|
<div className='pal-card-box'> |
||||||
|
<Row> |
||||||
|
<Col> |
||||||
|
<div className='cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> |
||||||
|
<div> |
||||||
|
<h4>조종사 목록</h4> |
||||||
|
<span className='search-case'>검색결과 총 {!!pilotList ? pilotList.length : 0}건</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div className='invoice-list-wrapper'> |
||||||
|
<Card> |
||||||
|
<div className='invoice-list-dataTable'> |
||||||
|
<GridDatabase |
||||||
|
title={'조종사목록'} |
||||||
|
data={pilotList} |
||||||
|
// count={0}
|
||||||
|
columns={columns} |
||||||
|
// pagination={props.pagination}
|
||||||
|
/> |
||||||
|
{/* 검색된 데이터가 없습니다. */} |
||||||
|
</div> |
||||||
|
</Card> |
||||||
|
</div> |
||||||
|
</Col> |
||||||
|
</Row> |
||||||
|
</div> |
||||||
|
</> |
||||||
|
) |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
export default FlightPlanPilot; |
@ -0,0 +1,41 @@ |
|||||||
|
import React, {useEffect, useState} from 'react'; |
||||||
|
import {useDispatch, useSelector} from 'react-redux'; |
||||||
|
import * as Actions from '../../../../modules/basis/flight/actions/basisFlightAction'; |
||||||
|
import FlightPlanPilot from '../../../../components/basis/flight/plan/FlightPlanPilot'; |
||||||
|
|
||||||
|
const FlightPlanPilotContainer = ({handleModal, type}) => { |
||||||
|
const dispatch = useDispatch(); |
||||||
|
const { pilotList } = useSelector(state => state.flightState); |
||||||
|
|
||||||
|
|
||||||
|
/* 조종사 조회 */ |
||||||
|
const handleSearch = () => { |
||||||
|
// group id 하드코딩
|
||||||
|
dispatch(Actions.FLIGHT_PLAN_PILOT_LIST.request("D1682A")); |
||||||
|
} |
||||||
|
|
||||||
|
/* 조종사 선택 */ |
||||||
|
const handleSelectPilot = (cstmrSno) => { |
||||||
|
handleModal({target: 'area', isOpen: false}); |
||||||
|
|
||||||
|
const pilot = pilotList.find(pilot => { |
||||||
|
return pilot.cstmrSno === cstmrSno; |
||||||
|
});
|
||||||
|
/* 파일럿 정보 Redux 저장 */ |
||||||
|
dispatch(Actions.PILOT_SELECT(pilot)); |
||||||
|
} |
||||||
|
|
||||||
|
useEffect(() => { |
||||||
|
handleSearch(); |
||||||
|
}, []) |
||||||
|
|
||||||
|
|
||||||
|
return ( |
||||||
|
<FlightPlanPilot
|
||||||
|
pilotList = {pilotList} |
||||||
|
handleSelectPilot={handleSelectPilot} |
||||||
|
/> |
||||||
|
) |
||||||
|
} |
||||||
|
|
||||||
|
export default FlightPlanPilotContainer; |
Loading…
Reference in new issue