Browse Source

비행구역 반경 정수 통일 및 유효성 검사

pull/2/head
junh_eee(이준희) 2 years ago
parent
commit
aa73d25bb9
  1. 78
      src/components/basis/flight/plan/FlightPlanAreaDetailForm.js
  2. 12
      src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js
  3. 18
      src/modules/control/gp/apis/controlGpApi.ts

78
src/components/basis/flight/plan/FlightPlanAreaDetailForm.js

@ -17,7 +17,6 @@ const FlightPlanAreaDetailForm = ({
handleBufferList, handleBufferList,
data, data,
mapControl, mapControl,
// test,
isDone, isDone,
isDisabled isDisabled
}) => { }) => {
@ -133,62 +132,12 @@ const FlightPlanAreaDetailForm = ({
}); });
}} }}
/> />
{/* {isDisabled || isDone ? (
<Input
type='text'
id='bufferZone'
name='bufferZone'
bsSize='sm'
disabled={isDisabled || isDone}
placeholder='반경'
value={
data[0].bufferZone
? data[0].bufferZone
: ''
}
onChange={e => {
const { name, value } = e.target;
handleChange({
name,
value
});
}}
/>
) : (
<Input
type='text'
id='bufferZone'
name='bufferZone'
bsSize='sm'
readOnly={
coordList[0].lat &&
data[0].areaType &&
data[0].areaType != 'POLYGON'
? false
: true
}
placeholder='반경'
value={
data[0].bufferZone
? data[0].bufferZone
: ''
}
onChange={e => {
const { name, value } = e.target;
handleChange({
name,
value
});
}}
/>
)} */}
</div> </div>
<div className='m_ft_box'> <div className='m_ft_box'>
<Button.Ripple <Button.Ripple
className='mr-1' className='mr-1'
color='primary' color='primary'
size='sm' size='sm'
// disabled={isDisabled || isDone}
disabled={ disabled={
isDisabled || isDone isDisabled || isDone
? true ? true
@ -202,33 +151,6 @@ const FlightPlanAreaDetailForm = ({
> >
적용 적용
</Button.Ripple> </Button.Ripple>
{/* {isDisabled || isDone ? (
<Button.Ripple
className='mr-1'
color='primary'
size='sm'
disabled={isDisabled || isDone}
onClick={() => handleBufferList()}
>
적용
</Button.Ripple>
) : (
<Button.Ripple
className='mr-1'
color='primary'
size='sm'
disabled={
coordList[0].lat &&
data[0].areaType &&
data[0].areaType != 'POLYGON'
? false
: true
}
onClick={() => handleBufferList()}
>
적용
</Button.Ripple>
)} */}
</div> </div>
</FormGroup> </FormGroup>
</Col> </Col>

12
src/containers/basis/flight/plan/FlightPlanAreaDetailContainer.js

@ -70,11 +70,21 @@ const FlightPlanAreaDetailContainer = ({ handleModal, isDone, isDisabled }) => {
}; };
const handleChange = ({ name, value }) => { const handleChange = ({ name, value }) => {
let size;
if (name === 'bufferZone') {
const regex = /^[0-9]{0,100}$/;
if (regex.test(value)) {
size = value;
} else {
return;
}
}
setAreaDetail(prevState => { setAreaDetail(prevState => {
const areaList = prevState.map((area, i) => { const areaList = prevState.map((area, i) => {
return { return {
...area, ...area,
[name]: value ...(value === 'bufferZone' ? { [name]: size } : { [name]: value })
// [name]: value
}; };
}); });

18
src/modules/control/gp/apis/controlGpApi.ts

@ -46,29 +46,23 @@ export const controlGpApi = {
return null; return null;
} }
const { data } = await axios.get( const { data } = await axios.get(`api/ctr/cntrl/flight_plan/${idntfNum}`);
`api/ctr/cntrl/flight_plan/${idntfNum}`
);
return data; return data;
}, },
checkPlanContains: async (rq: ControlGpPlanContainsRQ) => { checkPlanContains: async (rq: ControlGpPlanContainsRQ) => {
if(!rq.idntfNum) { if (!rq.idntfNum) {
return null; return null;
} }
const { data } = await axios.post( const { data } = await axios.post(`api/ctr/cntrl/contains`, rq);
`api/ctr/cntrl/contains`, rq
);
return data; return data;
}, },
getArcrftWarnList: async (id: string) => { getArcrftWarnList: async (id: string) => {
if(!id) return null; if (!id) return null;
const { data } = await axios.get( const { data } = await axios.get(`api/ctr/cntrl/arcrft/warn/list?id=${id}`);
`api/ctr/cntrl/arcrft/warn/list?id=${id}`
);
return data; return data;
} }

Loading…
Cancel
Save