|
|
@ -1,77 +1,80 @@ |
|
|
|
import React, {useState} from 'react'; |
|
|
|
import React, { useState } from 'react'; |
|
|
|
import {Button, Card, CardBody, Col, CustomInput, Row} from 'reactstrap'; |
|
|
|
import { Button, Card, CardBody, Col, CustomInput, Row } from 'reactstrap'; |
|
|
|
import {Search} from 'react-feather'; |
|
|
|
import { Search } from 'react-feather'; |
|
|
|
import Flatpickr from 'react-flatpickr'; |
|
|
|
import Flatpickr from 'react-flatpickr'; |
|
|
|
import moment from 'moment'; |
|
|
|
import moment from 'moment'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const FlightPlanAprvSearch = ({ |
|
|
|
const FlightPlanAprvSearch = ({searchData, handleChangeSearchData, handleSearch}) => { |
|
|
|
searchData, |
|
|
|
|
|
|
|
handleChangeSearchData, |
|
|
|
const {schFltStDt, schFltEndDt, aprvlYn} = searchData; |
|
|
|
handleSearch |
|
|
|
|
|
|
|
}) => { |
|
|
|
|
|
|
|
const { schFltStDt, schFltEndDt, aprvlYn } = searchData; |
|
|
|
const initCheckState = { |
|
|
|
const initCheckState = { |
|
|
|
'all': aprvlYn == 'A', |
|
|
|
all: aprvlYn == 'A', |
|
|
|
'yes': (aprvlYn == 'Y' || aprvlYn == 'A'), |
|
|
|
yes: aprvlYn == 'Y' || aprvlYn == 'A', |
|
|
|
'no': (aprvlYn == 'N' || aprvlYn == 'A'), |
|
|
|
no: aprvlYn == 'N' || aprvlYn == 'A' |
|
|
|
} |
|
|
|
}; |
|
|
|
const [checkState, setCheckState] = useState(initCheckState); |
|
|
|
const [checkState, setCheckState] = useState(initCheckState); |
|
|
|
const handleClickSearch = (e) => { |
|
|
|
const handleClickSearch = e => { |
|
|
|
handleSearch(searchData); |
|
|
|
handleSearch(searchData); |
|
|
|
} |
|
|
|
}; |
|
|
|
const handleChangeInput = (dates, value, config) => { |
|
|
|
const handleChangeInput = (dates, value, config) => { |
|
|
|
if (dates.length === 2) { |
|
|
|
if (dates.length === 2) { |
|
|
|
const schFltStDt = moment(dates[0]).format('YYYY-MM-DD HH:mm:ss'); |
|
|
|
const schFltStDt = moment(dates[0]).format('YYYY-MM-DD HH:mm:ss'); |
|
|
|
const schFltEndDt = moment(dates[1]).set({'h': 23, 'm': 59, 's': 59}).format('YYYY-MM-DD HH:mm:ss'); |
|
|
|
const schFltEndDt = moment(dates[1]) |
|
|
|
handleChangeSearchData({schFltStDt, schFltEndDt}) |
|
|
|
.set({ h: 23, m: 59, s: 59 }) |
|
|
|
|
|
|
|
.format('YYYY-MM-DD HH:mm:ss'); |
|
|
|
|
|
|
|
handleChangeSearchData({ schFltStDt, schFltEndDt }); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
const handleChangeCheckbox = (e) => { |
|
|
|
const handleChangeCheckbox = e => { |
|
|
|
const {name, value, checked} = e.target; |
|
|
|
const { name, value, checked } = e.target; |
|
|
|
let val; |
|
|
|
let val; |
|
|
|
switch (value) { |
|
|
|
switch (value) { |
|
|
|
case 'A': |
|
|
|
case 'A': |
|
|
|
val = checked ? 'A' : ''; |
|
|
|
val = checked ? 'A' : ''; |
|
|
|
handleChangeSearchData({[name]: val}) |
|
|
|
handleChangeSearchData({ [name]: val }); |
|
|
|
setCheckState({ |
|
|
|
setCheckState({ |
|
|
|
'all': checked, |
|
|
|
all: checked, |
|
|
|
'yes': checked, |
|
|
|
yes: checked, |
|
|
|
'no': checked |
|
|
|
no: checked |
|
|
|
}) |
|
|
|
}); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'Y': |
|
|
|
case 'Y': |
|
|
|
if (checked && checkState.no) val = 'A' |
|
|
|
if (checked && checkState.no) val = 'A'; |
|
|
|
else if (checked && !checkState.no) val = 'Y' |
|
|
|
else if (checked && !checkState.no) val = 'Y'; |
|
|
|
else if (!checked && checkState.no) val = 'N' |
|
|
|
else if (!checked && checkState.no) val = 'N'; |
|
|
|
else if (!checked && !checkState.no) val = '' |
|
|
|
else if (!checked && !checkState.no) val = ''; |
|
|
|
handleChangeSearchData({[name]: val}) |
|
|
|
handleChangeSearchData({ [name]: val }); |
|
|
|
setCheckState(prevState => ({ |
|
|
|
setCheckState(prevState => ({ |
|
|
|
'all': prevState.no && checked, |
|
|
|
all: prevState.no && checked, |
|
|
|
'yes': checked, |
|
|
|
yes: checked, |
|
|
|
'no': prevState.no |
|
|
|
no: prevState.no |
|
|
|
})) |
|
|
|
})); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case 'N': |
|
|
|
case 'N': |
|
|
|
if (checked && checkState.yes) val = 'A' |
|
|
|
if (checked && checkState.yes) val = 'A'; |
|
|
|
else if (checked && !checkState.yes) val = 'N' |
|
|
|
else if (checked && !checkState.yes) val = 'N'; |
|
|
|
else if (!checked && checkState.yes) val = 'Y' |
|
|
|
else if (!checked && checkState.yes) val = 'Y'; |
|
|
|
else if (!checked && !checkState.yes) val = '' |
|
|
|
else if (!checked && !checkState.yes) val = ''; |
|
|
|
handleChangeSearchData({[name]: val}) |
|
|
|
handleChangeSearchData({ [name]: val }); |
|
|
|
setCheckState(prevState => ({ |
|
|
|
setCheckState(prevState => ({ |
|
|
|
'all': prevState.yes && checked, |
|
|
|
all: prevState.yes && checked, |
|
|
|
'yes': prevState.yes, |
|
|
|
yes: prevState.yes, |
|
|
|
'no': checked |
|
|
|
no: checked |
|
|
|
})) |
|
|
|
})); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
break; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
return ( |
|
|
|
return ( |
|
|
|
// <div className='pal-card-box'>
|
|
|
|
// <div className='pal-card-box'>
|
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<Row> |
|
|
|
<Row> |
|
|
|
<Col> |
|
|
|
<Col> |
|
|
|
<div |
|
|
|
<div className='cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> |
|
|
|
className='cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> |
|
|
|
|
|
|
|
<div> |
|
|
|
<div> |
|
|
|
<h4>검색조건</h4> |
|
|
|
<h4>검색조건</h4> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -81,7 +84,7 @@ const FlightPlanAprvSearch = ({searchData, handleChangeSearchData, handleSearch} |
|
|
|
size='sm' |
|
|
|
size='sm' |
|
|
|
onClick={handleClickSearch} |
|
|
|
onClick={handleClickSearch} |
|
|
|
> |
|
|
|
> |
|
|
|
<Search size={16}/> |
|
|
|
<Search size={16} /> |
|
|
|
검색 |
|
|
|
검색 |
|
|
|
</Button.Ripple> |
|
|
|
</Button.Ripple> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -100,12 +103,9 @@ const FlightPlanAprvSearch = ({searchData, handleChangeSearchData, handleSearch} |
|
|
|
<div className='d-flex align-items-center calendar-flat'> |
|
|
|
<div className='d-flex align-items-center calendar-flat'> |
|
|
|
<Flatpickr |
|
|
|
<Flatpickr |
|
|
|
id='searchDate' |
|
|
|
id='searchDate' |
|
|
|
value={[ |
|
|
|
value={[schFltStDt, schFltEndDt]} |
|
|
|
schFltStDt, |
|
|
|
|
|
|
|
schFltEndDt |
|
|
|
|
|
|
|
]} |
|
|
|
|
|
|
|
options={{ |
|
|
|
options={{ |
|
|
|
mode: 'range', |
|
|
|
mode: 'range' |
|
|
|
// defaultDate: [
|
|
|
|
// defaultDate: [
|
|
|
|
// props.params.stDate,
|
|
|
|
// props.params.stDate,
|
|
|
|
// props.params.endDate
|
|
|
|
// props.params.endDate
|
|
|
@ -132,8 +132,8 @@ const FlightPlanAprvSearch = ({searchData, handleChangeSearchData, handleSearch} |
|
|
|
type='checkbox' |
|
|
|
type='checkbox' |
|
|
|
id='exampleCustomCheckbox' |
|
|
|
id='exampleCustomCheckbox' |
|
|
|
label='전체' |
|
|
|
label='전체' |
|
|
|
name="aprvlYn" |
|
|
|
name='aprvlYn' |
|
|
|
value="A" |
|
|
|
value='A' |
|
|
|
// checked={true}
|
|
|
|
// checked={true}
|
|
|
|
checked={checkState.all} |
|
|
|
checked={checkState.all} |
|
|
|
onChange={handleChangeCheckbox} |
|
|
|
onChange={handleChangeCheckbox} |
|
|
@ -143,8 +143,8 @@ const FlightPlanAprvSearch = ({searchData, handleChangeSearchData, handleSearch} |
|
|
|
type='checkbox' |
|
|
|
type='checkbox' |
|
|
|
id='exampleCustomCheckbox2' |
|
|
|
id='exampleCustomCheckbox2' |
|
|
|
label='승인' |
|
|
|
label='승인' |
|
|
|
name="aprvlYn" |
|
|
|
name='aprvlYn' |
|
|
|
value="Y" |
|
|
|
value='Y' |
|
|
|
checked={checkState.yes} |
|
|
|
checked={checkState.yes} |
|
|
|
onChange={handleChangeCheckbox} |
|
|
|
onChange={handleChangeCheckbox} |
|
|
|
/> |
|
|
|
/> |
|
|
@ -153,8 +153,8 @@ const FlightPlanAprvSearch = ({searchData, handleChangeSearchData, handleSearch} |
|
|
|
type='checkbox' |
|
|
|
type='checkbox' |
|
|
|
id='exampleCustomCheckbox3' |
|
|
|
id='exampleCustomCheckbox3' |
|
|
|
label='미승인' |
|
|
|
label='미승인' |
|
|
|
name="aprvlYn" |
|
|
|
name='aprvlYn' |
|
|
|
value="N" |
|
|
|
value='N' |
|
|
|
checked={checkState.no} |
|
|
|
checked={checkState.no} |
|
|
|
onChange={handleChangeCheckbox} |
|
|
|
onChange={handleChangeCheckbox} |
|
|
|
/> |
|
|
|
/> |
|
|
@ -166,11 +166,10 @@ const FlightPlanAprvSearch = ({searchData, handleChangeSearchData, handleSearch} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* </CardBody> */} |
|
|
|
{/* </CardBody> */} |
|
|
|
</Card> |
|
|
|
</Card> |
|
|
|
|
|
|
|
|
|
|
|
</Col> |
|
|
|
</Col> |
|
|
|
</Row> |
|
|
|
</Row> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
) |
|
|
|
); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
export default FlightPlanAprvSearch; |
|
|
|
export default FlightPlanAprvSearch; |
|
|
|