Browse Source

비행계획서 신청 폼 작업(작업중......)

remotes/origin/feature/flight-plan
qkr7828(박재우) 2 years ago
parent
commit
ffb4d14ed7
  1. 29
      src/components/basis/flight/plan/FlightPlanForm.js
  2. 66
      src/containers/basis/flight/plan/FlightPlanDetailContainer.js
  3. 15
      src/modules/basis/flight/actions/basisFlightAction.ts
  4. 15
      src/modules/basis/flight/models/basisFlightModel.ts

29
src/components/basis/flight/plan/FlightPlanForm.js

@ -25,9 +25,9 @@ const FlightPlanForm = (props) => {
<CardBody className='pal-card-body'>
<div className='search-cont search-info pd-0'>
<div className='cont-ti mb-1 d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'>
<div>
{/* <div>
<h4> 상세정보</h4>
</div>
</div> */}
<div className='final'>
{/* {props.type === 'update' ? (
<span>최종 수정일자 : {props.updateDt}</span>
@ -41,16 +41,19 @@ const FlightPlanForm = (props) => {
<h4 className='ti'>신청인 정보</h4>
</div>
<div className='search-info-box'>
<Row>
<Col className='list-input' lg={4} md={6} sm={12}>
<FormGroup>
<Label for='test'><span className='necessary'>*</span></Label>
<Input
type='text'
id='memberName'
name='memberName'
id={'memberName'}
name={'memberName'}
onChange={props.onChange}
size='sm'
// innerRef={props.data}
innerRef={props.data}
placeholder=''
/>
</FormGroup>
@ -77,7 +80,7 @@ const FlightPlanForm = (props) => {
name='hpno'
size='sm'
placeholder='010-0000-0000'
readOnly
/>
</div>
@ -500,8 +503,8 @@ const FlightPlanForm = (props) => {
</Label>
<Input
type='text'
id='groupNm'
name='groupNm'
id='arcrftModelNm'
name='arcrftModelNm'
size='sm'
placeholder=''
readOnly
@ -519,8 +522,8 @@ const FlightPlanForm = (props) => {
</Label>
<Input
type='text'
id='ownerNm'
name='ownerNm'
id='arcrftTypeCd'
name='arcrftTypeCd'
size='sm'
placeholder=''
readOnly
@ -551,11 +554,7 @@ const FlightPlanForm = (props) => {
className='mr-1'
color='primary'
size='sm'
// onClick={
// pageType === 'create'
// ? handleSubmit(handlerCreate)
// : handleSubmit(handlerUpdate)
// }
onClick={props.handlerSave}
>
저장
</Button.Ripple>

66
src/containers/basis/flight/plan/FlightPlanDetailContainer.js

@ -10,17 +10,38 @@ import { yupResolver } from '@hookform/resolvers/yup';
import * as Actions from '../../../../modules/basis/flight/actions/basisFlightAction';
import { useForm } from 'react-hook-form';
const FlightPlanDetailContainer = () => {
const FlightPlanDetailContainer = props => {
const dispatch = useDispatch();
const history = useHistory();
const [pageType, setPageType] = useState('create');
const { flightPlanArea } = useSelector(state => state.flightState);
const [areaInfo, setAreaInfo] = useState();
const [modal, setModal] = useState({
isOpen: false,
title: '',
});
const { listFlightP, flightCount, isRefreshFlight } = useSelector(
state => state.flightState
);
const [flightPlanData, setFlightPlanData] = useState({
id: '',
memberName: '',
clncd: '',
hpno: '',
email:'',
createDt: '',
createUserId: '',
updateUserId: '',
updateDt: ''
});
useEffect(() => {
console.log('isRefreshFlight>>>>', isRefreshFlight);
if (isRefreshFlight) {
console.log(isRefreshFlight);
handlerSearch();
}
}, [isRefreshFlight]);
const [flightPlanDataList, setFlightPlanDataList] = useState([]);
/* Form Validation Checking */
const validSchema = yup.object().shape({
});
@ -37,14 +58,47 @@ const FlightPlanDetailContainer = () => {
const saveFlightPlanArea = () => {
console.log('비행 구역 설정 저장');
}
useEffect(() => {
if (props.id) {
handlerSearch();
setPageType('update');
}
// console.log(selectData);
}, []);
useEffect(() => {
let newArr = [];
listFlightP?.map(item => {
newArr.push({ ...item });
});
setFlightPlanDataList(listFlightP);
}, [listFlightP]);
const openModal = () => {
setModal({
isOpen: true,
title: '비행 구역 설정',
});
}
const handlerCreate = async data => {
console.log('data>>>>>', data);
console.log('flightPlanData>>>',flightPlanData);
let saveArr = flightPlanData;
dispatch(
Actions.FLIGHT_PLAN_CREATE.request({
data: saveArr
})
);
};
const onChange = (e) => {
setFlightPlanData({
...flightPlanData,
[e.target.name]: e.target.value,
});
};
const handlerDelete = async data => {
// dispatch(Actions.IDNTF_DELETE.request(data.arcrftSno));
};
useEffect(() => {
setAreaInfo(flightPlanArea);
}, [flightPlanArea]);
@ -52,8 +106,14 @@ const FlightPlanDetailContainer = () => {
return (
<CustomDetailLayout title={"비행 계획 신청서"}>
<FlightPlanForm
data={flightPlanData}
openModal={openModal}
areaInfo={areaInfo}
handlerSave={
pageType === 'create' ? handlerCreate : handlerUpdate
}
onChange={onChange}
handlerDelete={handlerDelete}
/>
<FlightPlanAreaModal
modal={modal}

15
src/modules/basis/flight/actions/basisFlightAction.ts

@ -1,6 +1,6 @@
import { AxiosError } from 'axios';
import { createAsyncAction, ActionType} from 'typesafe-actions';
import { FlightAreaData, FlightPlanArea } from '../models/basisFlightModel';
import { FlightAreaData, FlightPlanArea, FlightPlanData } from '../models/basisFlightModel';
// 공역 조회
@ -13,6 +13,10 @@ const FLIGHT_PLAN_AREA_REQUEST = 'basis/flight/plan/area/LIST_REQUEST';
const FLIGHT_PLAN_AREA_SUCCESS = 'basis/flight/plan/area/LIST_SUCCESS';
const FLIGHT_PLAN_AREA_FAILURE = 'basis/flight/plan/area/LIST_FAILURE';
const FLIGHT_PLAN_CREATE_REQUEST = 'basis/flight/plan/area/LIST_CREATE_REQUEST';
const FLIGHT_PLAN_CREATE_SUCCESS = 'basis/flight/plan/area/LIST_CREATE_SUCCESS';
const FLIGHT_PLAN_CREATE_FAILURE = 'basis/flight/plan/area/LIST_CREATE_FAILURE';
export const AREA_LIST = createAsyncAction(
AREA_LIST_REQUEST,
AREA_LIST_SUCCESS,
@ -25,9 +29,16 @@ export const FLIGHT_PLAN_AREA = createAsyncAction(
FLIGHT_PLAN_AREA_FAILURE
)<FlightPlanArea, { data: FlightPlanArea }, AxiosError>();
export const FLIGHT_PLAN_CREATE = createAsyncAction(
FLIGHT_PLAN_CREATE_REQUEST,
FLIGHT_PLAN_CREATE_SUCCESS,
FLIGHT_PLAN_CREATE_FAILURE
)<FlightPlanData, { data: FlightPlanData }, AxiosError>();
const actions = {
AREA_LIST,
FLIGHT_PLAN_AREA
FLIGHT_PLAN_AREA,
FLIGHT_PLAN_CREATE
};
export type FlightAction = ActionType<typeof actions>;

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

@ -15,7 +15,20 @@ export interface FlightPlanArea {
altitude_ft : '',
}
export interface FlightPlanData {
id: '',
memberName: '',
clncd: '',
hpno: '',
email:'',
createDt: '',
createUserId: '',
updateUserId: '',
updateDt: ''
}
export const initFlight = {
areaList: undefined,
flightPlanArea: undefined
flightPlanArea: undefined,
flightPlanData: undefined
};
Loading…
Cancel
Save