Browse Source

값 유효성(기체 페이지)

pull/2/head
sanguu 2 years ago
parent
commit
55df2a6b8e
  1. 31
      src/containers/basis/dron/BasisDronDetailContainer.js
  2. 41
      src/containers/basis/dron/BasisIdntfContainer.js

31
src/containers/basis/dron/BasisDronDetailContainer.js

@ -21,12 +21,27 @@ export const BasisDronDetailContainer = props => {
const titleName = ' 기체 관리'; const titleName = ' 기체 관리';
const [pageType, setPageType] = useState('create'); const [pageType, setPageType] = useState('create');
const validationSchema = yup.object().shape({ const validationSchema = yup.object().shape({
arcrftModelNm: yup.string().trim().required('모델명 을 입력해 주세요.'), arcrftModelNm: yup.string().trim().required('모델명 을 입력해 주세요.')
.max(20, '최대 20 자 이하 입력 부탁드립니다.')
.matches(
/^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/,
'지원하지 않는 특수문자입니다.'
),
arcrftTypeCd: yup.string().trim().required('종류 를 선택해 주세요.'), arcrftTypeCd: yup.string().trim().required('종류 를 선택해 주세요.'),
cameraYn: yup.string().trim().required('카메라 탑재여부 를 선택해 주세요.'), cameraYn: yup.string().trim().required('카메라 탑재여부 를 선택해 주세요.'),
insrncYn: yup.string().trim().required('보험가입 여부를 선택해 주세요.'), insrncYn: yup.string().trim().required('보험가입 여부를 선택해 주세요.'),
prdctCmpnNm: yup.string().trim().required('제작사 를 입력해 주세요.'), prdctCmpnNm: yup.string().trim().required('제작사 를 입력해 주세요.')
prdctNum: yup.string().trim().required('제작번호 를 입력해 주세요.'), .max(20, '최대 20 자 이하 입력 부탁드립니다.')
.matches(
/^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/,
'지원하지 않는 특수문자입니다.'
),
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('운영자명 을 입력해 주세요.'), // ownerNm: yup.string().trim().required('운영자명 을 입력해 주세요.'),
// hpno: yup.string().trim().required('운영자 연락처 를 입력해 주세요.') // hpno: yup.string().trim().required('운영자 연락처 를 입력해 주세요.')
@ -101,10 +116,10 @@ export const BasisDronDetailContainer = props => {
const handlerImageChange = e => { const handlerImageChange = e => {
const reader = new FileReader(), const reader = new FileReader(),
files = e.target.files; files = e.target.files;
if(!(files[0] == undefined)){ if (!(files[0] == undefined)) {
if(!(files[0].size == 0)){ if (!(files[0].size == 0)) {
const fileSize = files[0].size/1048576; const fileSize = files[0].size / 1048576;
if(fileSize > 10) { if (fileSize > 10) {
setModal({ setModal({
isOpen: true, isOpen: true,
title: '이미지 용량 초과', title: '이미지 용량 초과',
@ -195,7 +210,7 @@ export const BasisDronDetailContainer = props => {
> >
저장 저장
</Button.Ripple> </Button.Ripple>
{pageType != 'create'? {pageType != 'create' ?
( (
<Button.Ripple color='danger' size='sm' onClick={handlerDelete} > <Button.Ripple color='danger' size='sm' onClick={handlerDelete} >
삭제 삭제

41
src/containers/basis/dron/BasisIdntfContainer.js

@ -14,8 +14,8 @@ export const BasisIdntfContainer = props => {
id: '', id: '',
idntfNum: '', idntfNum: '',
idntfTypeCd: 'DRON', idntfTypeCd: 'DRON',
ownerNm:'', ownerNm: '',
hpno:'', hpno: '',
isSave: false isSave: false
}); });
//모달 관련 설정 //모달 관련 설정
@ -61,6 +61,38 @@ export const BasisIdntfContainer = props => {
saveArr.forEach(idntf => { saveArr.forEach(idntf => {
const check_num = /[0-9]/;
const check_kor = /^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/;
if (!check_num.test(idntf.hpno)) {
setModal({
isOpen: true,
title: '필수값 입력 오류',
desc: '연락처에 숫자만 입력해주세요.'
});
checking = false;
return false;
}
if (!check_kor.test(idntf.idntfNum)) {
setModal({
isOpen: true,
title: '필수값 입력 오류',
desc: '식별번호에 지원되지 않는 특수문자입니다.'
});
checking = false;
return false;
}
if (!check_kor.test(idntf.ownerNm)) {
setModal({
isOpen: true,
title: '필수값 입력 오류',
desc: '소유자명에 지원되지 않는 특수문자입니다.'
});
checking = false;
return false;
}
if (!idntf.idntfNum && idntf.idntfNum === '') { if (!idntf.idntfNum && idntf.idntfNum === '') {
setModal({ setModal({
isOpen: true, isOpen: true,
@ -70,7 +102,7 @@ export const BasisIdntfContainer = props => {
checking = false; checking = false;
return false; return false;
} }
if(!idntf.ownerNm && idntf.ownerNm === '') { if (!idntf.ownerNm && idntf.ownerNm === '') {
setModal({ setModal({
isOpen: true, isOpen: true,
title: '필수값 입력 오류', title: '필수값 입력 오류',
@ -79,7 +111,7 @@ export const BasisIdntfContainer = props => {
checking = false; checking = false;
return false; return false;
} }
if(!idntf.hpno && idntf.hpno === '') { if (!idntf.hpno && idntf.hpno === '') {
setModal({ setModal({
isOpen: true, isOpen: true,
title: '필수값 입력 오류', title: '필수값 입력 오류',
@ -114,6 +146,7 @@ export const BasisIdntfContainer = props => {
const addData = () => { const addData = () => {
setIdntfDataList([...idntDataList, { ...idntfData, id: Math.random() }]); setIdntfDataList([...idntDataList, { ...idntfData, id: Math.random() }]);
}; };

Loading…
Cancel
Save