|
|
|
@ -21,7 +21,10 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
const titleName = ' 기체 관리'; |
|
|
|
|
const [pageType, setPageType] = useState('create'); |
|
|
|
|
const validationSchema = yup.object().shape({ |
|
|
|
|
arcrftModelNm: yup.string().trim().required('모델명 을 입력해 주세요.') |
|
|
|
|
arcrftModelNm: yup |
|
|
|
|
.string() |
|
|
|
|
.trim() |
|
|
|
|
.required('모델명 을 입력해 주세요.') |
|
|
|
|
.max(20, '최대 20 자 이하 입력 부탁드립니다.') |
|
|
|
|
.matches( |
|
|
|
|
/^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/, |
|
|
|
@ -30,19 +33,25 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
arcrftTypeCd: yup.string().trim().required('종류 를 선택해 주세요.'), |
|
|
|
|
cameraYn: yup.string().trim().required('카메라 탑재여부 를 선택해 주세요.'), |
|
|
|
|
insrncYn: yup.string().trim().required('보험가입 여부를 선택해 주세요.'), |
|
|
|
|
prdctCmpnNm: yup.string().trim().required('제작사 를 입력해 주세요.') |
|
|
|
|
prdctCmpnNm: yup |
|
|
|
|
.string() |
|
|
|
|
.trim() |
|
|
|
|
.required('제작사 를 입력해 주세요.') |
|
|
|
|
.max(20, '최대 20 자 이하 입력 부탁드립니다.') |
|
|
|
|
.matches( |
|
|
|
|
/^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/, |
|
|
|
|
'지원하지 않는 특수문자입니다.' |
|
|
|
|
), |
|
|
|
|
prdctNum: yup.string().trim().required('제작번호 를 입력해 주세요.') |
|
|
|
|
prdctNum: yup |
|
|
|
|
.string() |
|
|
|
|
.trim() |
|
|
|
|
.required('제작번호 를 입력해 주세요.') |
|
|
|
|
.max(20, '최대 20 자 이하 입력 부탁드립니다.') |
|
|
|
|
.matches( |
|
|
|
|
/^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/, |
|
|
|
|
'지원하지 않는 특수문자입니다.' |
|
|
|
|
), |
|
|
|
|
wghtTypeCd: yup.string().trim().required('중량구분 을 선택해 주세요.'), |
|
|
|
|
wghtTypeCd: yup.string().trim().required('중량구분 을 선택해 주세요.') |
|
|
|
|
// ownerNm: yup.string().trim().required('운영자명 을 입력해 주세요.'),
|
|
|
|
|
// hpno: yup.string().trim().required('운영자 연락처 를 입력해 주세요.')
|
|
|
|
|
}); |
|
|
|
@ -62,7 +71,7 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
createDt: '', |
|
|
|
|
createUserId: '', |
|
|
|
|
updateUserId: '', |
|
|
|
|
updateDt: '', |
|
|
|
|
updateDt: '' |
|
|
|
|
// ownerSno: '',
|
|
|
|
|
// ownerNm: '',
|
|
|
|
|
// hpno: ''
|
|
|
|
@ -74,7 +83,8 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
title: '', |
|
|
|
|
desc: '', |
|
|
|
|
color: '' |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (props.id) { |
|
|
|
|
handlerSearch(); |
|
|
|
@ -111,6 +121,11 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
setImageUrl(detail?.imageUrl); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (detail?.createUserId) { |
|
|
|
|
if (detail?.createUserId != user?.userId) { |
|
|
|
|
props.setIsDisabled(true); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, [selectData, detail]); |
|
|
|
|
|
|
|
|
|
const handlerImageChange = e => { |
|
|
|
@ -125,7 +140,7 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
title: '이미지 용량 초과', |
|
|
|
|
desc: '10MB 이하의 파일만 등록 가능합니다', |
|
|
|
|
color: 'modal-danger' |
|
|
|
|
}) |
|
|
|
|
}); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -184,6 +199,7 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
img={img} |
|
|
|
|
modal={modal} |
|
|
|
|
setModal={setModal} |
|
|
|
|
isDisabled={props.isDisabled} |
|
|
|
|
/> |
|
|
|
|
</Col> |
|
|
|
|
<Col md={7} lg={9}> |
|
|
|
@ -194,6 +210,7 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
errors={errors} |
|
|
|
|
type={pageType} |
|
|
|
|
updateDt={detail?.updateDt} |
|
|
|
|
isDisabled={props.isDisabled} |
|
|
|
|
/> |
|
|
|
|
</Col> |
|
|
|
|
<Col md='12'> |
|
|
|
@ -207,20 +224,22 @@ export const BasisDronDetailContainer = props => {
|
|
|
|
|
? handleSubmit(handlerCreate) |
|
|
|
|
: handleSubmit(handlerUpdate) |
|
|
|
|
} |
|
|
|
|
disabled={props.isDisabled} |
|
|
|
|
> |
|
|
|
|
저장 |
|
|
|
|
</Button.Ripple> |
|
|
|
|
{pageType != 'create' ? |
|
|
|
|
( |
|
|
|
|
<Button.Ripple color='danger' size='sm' onClick={handlerDelete} > |
|
|
|
|
삭제 |
|
|
|
|
</Button.Ripple> |
|
|
|
|
) |
|
|
|
|
: |
|
|
|
|
( |
|
|
|
|
<></> |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
{pageType != 'create' ? ( |
|
|
|
|
<Button.Ripple |
|
|
|
|
color='danger' |
|
|
|
|
size='sm' |
|
|
|
|
onClick={handlerDelete} |
|
|
|
|
disabled={props.isDisabled} |
|
|
|
|
> |
|
|
|
|
삭제 |
|
|
|
|
</Button.Ripple> |
|
|
|
|
) : ( |
|
|
|
|
<></> |
|
|
|
|
)} |
|
|
|
|
</div> |
|
|
|
|
</Col> |
|
|
|
|
</Row> |
|
|
|
|