Browse Source

기체관리 주석

pull/1/head
junh_eee(이준희) 9 months ago
parent
commit
38d763aad1
  1. 75
      src/components/basis/dron/BasisDronForm.js
  2. 1
      src/components/basis/dron/BasisDronGrid.js
  3. 8
      src/components/basis/dron/BasisDronTab.js
  4. 96
      src/containers/basis/dron/BasisDronContainer.js
  5. 46
      src/containers/basis/dron/BasisDronDetailContainer.js
  6. 53
      src/containers/basis/dron/BasisIdntfContainer.js

75
src/components/basis/dron/BasisDronForm.js

@ -1,5 +1,5 @@
import classnames from 'classnames'; import classnames from 'classnames';
import React from 'react'; import React, { useEffect } from 'react';
import { import {
Card, Card,
CardBody, CardBody,
@ -316,80 +316,7 @@ export const BasisDronForm = props => {
</Row> </Row>
</div> </div>
</dt> </dt>
{/* <dt>
<div className='search-info-ti d-flex justify-content-between'>
<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='ownerNm'
name='ownerNm'
innerRef={props.data}
size='sm'
placeholder=''
className={classnames({
'is-invalid': props.errors.ownerNm
})}
/>
{props.errors && props.errors.ownerNm && (
<FormFeedback>
{props.errors.ownerNm.message}
</FormFeedback>
)}
</FormGroup>
</Col>
<Col className='list-input' lg={4} md={6} sm={12}>
<FormGroup>
<Label for='test'>
<span className='necessary'>*</span>
</Label>
<Input
type='text'
id='hpno'
name='hpno'
innerRef={props.data}
size='sm'
placeholder=''
className={classnames({
'is-invalid': props.errors.hpno
})}
/>
{props.errors && props.errors.hpno && (
<FormFeedback>
{props.errors.hpno.message}
</FormFeedback>
)}
</FormGroup>
</Col>
</Row>
</div>
</dt> */}
</dl> </dl>
{/* <div className='d-flex align-items-center'>
<Button.Ripple
className='mr-1'
color='primary'
size='sm'
onClick={props.handlerSave}
>
저장
</Button.Ripple>
<Button.Ripple
color='danger'
size='sm'
onClick={props.handlerDelete}
>
삭제
</Button.Ripple>
</div> */}
</div> </div>
</CardBody> </CardBody>
</Card> </Card>

1
src/components/basis/dron/BasisDronGrid.js

@ -2,7 +2,6 @@ import { GridDatabase } from '../../crud/grid/GridDatatable';
import { Card, Button } from 'reactstrap'; import { Card, Button } from 'reactstrap';
export const BasisDronGrid = props => { export const BasisDronGrid = props => {
// console.log(props.isMyGroup);
return ( return (
<> <>
<div className='mt-2 cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'> <div className='mt-2 cont-ti d-flex justify-content-between align-items-sm-center align-items-start flex-sm-row'>

8
src/components/basis/dron/BasisDronTab.js

@ -15,16 +15,20 @@ import { Settings, AlertTriangle } from 'react-feather';
import { BasisDronDetailContainer } from '../../../containers/basis/dron/BasisDronDetailContainer'; import { BasisDronDetailContainer } from '../../../containers/basis/dron/BasisDronDetailContainer';
import { BasisIdntfContainer } from '../../../containers/basis/dron/BasisIdntfContainer'; import { BasisIdntfContainer } from '../../../containers/basis/dron/BasisIdntfContainer';
export const BasisDronTab = props => { export const BasisDronTab = props => {
// 현재 활성화 된 탭
const [activeTab, setActiveTab] = useState('1'); const [activeTab, setActiveTab] = useState('1');
//내가 등록한 기체인가 // 유저가 등록한 기체인지 판단
const [isDisabled, setIsDisabled] = useState(false); const [isDisabled, setIsDisabled] = useState(false);
//내가 소속된 그룹의 기체인가
// 유저가 소속된 그룹의 기체인지 판단
const [isMyGroup, setIsMyGroup] = useState(false); const [isMyGroup, setIsMyGroup] = useState(false);
// 탭 변경
const toggle = tab => { const toggle = tab => {
if (activeTab !== tab) setActiveTab(tab); if (activeTab !== tab) setActiveTab(tab);
}; };
return ( return (
<Row> <Row>
<Col sm='12'> <Col sm='12'>

96
src/containers/basis/dron/BasisDronContainer.js

@ -2,15 +2,7 @@ import moment from 'moment';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import { useHistory, Link } from 'react-router-dom'; import { useHistory, Link } from 'react-router-dom';
import { import { Button, Col, Row } from 'reactstrap';
Button,
Col,
Row,
Modal,
ModalHeader,
ModalBody,
ModalFooter
} from 'reactstrap';
import { BasisDronGrid } from '../../../components/basis/dron/BasisDronGrid'; import { BasisDronGrid } from '../../../components/basis/dron/BasisDronGrid';
import { BasisGroupDronGrid } from '../../../components/basis/dron/BasisGroupDronGrid'; import { BasisGroupDronGrid } from '../../../components/basis/dron/BasisGroupDronGrid';
import { CustomMainLayout } from '../../../components/layout/CustomMainLayout'; import { CustomMainLayout } from '../../../components/layout/CustomMainLayout';
@ -22,25 +14,28 @@ import { GET_WGHT_TYPE_CD } from '../../../utility/CondeUtil';
export const BasisDronContainer = props => { export const BasisDronContainer = props => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const history = useHistory(); const history = useHistory();
// 가입한 그룹목록, 가입한 그룹 수, 전체 그룹목록, 전체 그룹 수
const { joinList, joinListCount, groupList, groupListCount } = useSelector( const { joinList, joinListCount, groupList, groupListCount } = useSelector(
state => state.groupState state => state.groupState
); );
// 현재 활성화한 그룹 정보
const { selectData } = useSelector(state => state.dronState); const { selectData } = useSelector(state => state.dronState);
const { list, count, total } = useSelector(state => state.dronState);
// 기체 목록, 총 기체 수
const { list, total } = useSelector(state => state.dronState);
// 유저 정보
const { user } = useSelector(state => state.authState, shallowEqual); const { user } = useSelector(state => state.authState, shallowEqual);
const [params, setParams] = useState({}); const [params, setParams] = useState({});
const titleName = '기체 관리'; const titleName = '기체 관리';
//모달 관련 설정 // 기체등록버튼 활성/비활성 제어
// const [modal, setModal] = useState({
// isOpen: false,
// title: '',
// desc: ''
// });
//기체등록버튼 활성/비활성 제어
const [isMyGroup, setIsMyGroup] = useState(); const [isMyGroup, setIsMyGroup] = useState();
// 그룹목록 컬럼명
const columns = [ const columns = [
{ {
name: '그룹명', name: '그룹명',
@ -112,6 +107,7 @@ export const BasisDronContainer = props => {
} }
]; ];
// 기체목록 컬럼명
const dronColumns = [ const dronColumns = [
{ {
name: '모델명', name: '모델명',
@ -169,7 +165,6 @@ export const BasisDronContainer = props => {
}, },
{ {
name: '상세보기', name: '상세보기',
// selector: 'cntrlStDate',
// minWidth: '102px', // minWidth: '102px',
sortable: true, sortable: true,
cell: row => { cell: row => {
@ -182,23 +177,7 @@ export const BasisDronContainer = props => {
} }
]; ];
// const handlerNotMine = () => { // param 설정 및 권한에 따른 그룹 목록 요청
// setModal({
// isOpen: true,
// title: '조회 불가',
// desc: '사용자가 등록한 기체가 아닙니다.',
// color: 'danger'
// });
// return;
// };
// useEffect(() => {
// handlerCancel();
// // if (selectData) {
// // handlerDronSearch();
// // }
// }, []);
useEffect(() => { useEffect(() => {
if (user?.cstmrSno) { if (user?.cstmrSno) {
setParams({ setParams({
@ -217,20 +196,14 @@ export const BasisDronContainer = props => {
} }
}, [user]); }, [user]);
// const handlerSearch = () => { // 기체목록 페이지 이동 시 새 목록 요청
// GroupActions.JOIN_LIST.request({
// searchParams: { cstmrSno: user?.cstmrSno }
// });
// };
// const handlerDronSearch = () => {
// dispatch(Actions.LIST.request(selectData));
// };
const handlerPageChange = page => { const handlerPageChange = page => {
const param = params; const param = params;
param.page = page; param.page = page;
dispatch(Actions.LIST.request({ searchParams: param })); dispatch(Actions.LIST.request({ searchParams: param }));
}; };
// 상세보기 선택 시
const handlerDetail = (groupId, groupNm, groupAuthCd, myGroupAuthCd) => { const handlerDetail = (groupId, groupNm, groupAuthCd, myGroupAuthCd) => {
dispatch(Actions.SELECT({ groupId: groupId, groupNm: groupNm })); dispatch(Actions.SELECT({ groupId: groupId, groupNm: groupNm }));
localStorage.setItem('dronGroupId', groupId); localStorage.setItem('dronGroupId', groupId);
@ -260,11 +233,13 @@ export const BasisDronContainer = props => {
setIsMyGroup(my); setIsMyGroup(my);
}; };
// 기체 등록 화면으로 이동
const handlerGroupCreate = () => { const handlerGroupCreate = () => {
dispatch(Actions.RESET_IDNTF()); // 초기화 진행 dispatch(Actions.RESET_IDNTF()); // 초기화 진행
history.push(`/basis/dron/create`); history.push(`/basis/dron/create`);
}; };
// 상세보기 선택취소 시
const handlerCancel = () => { const handlerCancel = () => {
dispatch(Actions.SELECT()); dispatch(Actions.SELECT());
@ -277,15 +252,8 @@ export const BasisDronContainer = props => {
return ( return (
<CustomMainLayout title={titleName}> <CustomMainLayout title={titleName}>
{/* <BasisDronSearch
handlerInput={handlerInput}
handlerSearch={handlerSearch}
params={selectData}
setParams={setParams}
/> */}
<div className='pal-card-box'> <div className='pal-card-box'>
<Row> <Row>
{/* <Col sm='4'> */}
<Col sm='12' lg='12'> <Col sm='12' lg='12'>
{user ? ( {user ? (
<> <>
@ -307,7 +275,6 @@ export const BasisDronContainer = props => {
<></> <></>
)} )}
</Col> </Col>
{/* <Col sm='8'> */}
<Col sm='12' lg='12'> <Col sm='12' lg='12'>
{!selectData ? ( {!selectData ? (
<div className='mt-2 no-dataTable'> <div className='mt-2 no-dataTable'>
@ -331,29 +298,6 @@ export const BasisDronContainer = props => {
</Col> </Col>
</Row> </Row>
</div> </div>
{/* <div className='vertically-centered-modal'>
<Modal
isOpen={modal.isOpen}
toggle={() => setModal({ ...modal, isOpen: !modal.isOpen })}
modalClassName={'modal-' + `${modal.color}`}
className='modal-dialog-centered'
>
<ModalHeader
toggle={() => setModal({ ...modal, isOpen: !modal.isOpen })}
>
{modal.title}
</ModalHeader>
<ModalBody>{modal.desc}</ModalBody>
<ModalFooter>
<Button
color={modal.color}
onClick={() => setModal({ ...modal, isOpen: !modal.isOpen })}
>
확인
</Button>{' '}
</ModalFooter>
</Modal>
</div> */}
</CustomMainLayout> </CustomMainLayout>
); );
}; };

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

@ -1,27 +1,38 @@
import { yupResolver } from '@hookform/resolvers/yup';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { Button, Col, Row } from 'reactstrap';
import { useForm } from 'react-hook-form'; import { useForm } from 'react-hook-form';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { useHistory } from 'react-router-dom'; // yup
import { Button, Col, Row } from 'reactstrap';
import * as yup from 'yup'; import * as yup from 'yup';
import { yupResolver } from '@hookform/resolvers/yup';
import { BasisDronForm } from '../../../components/basis/dron/BasisDronForm'; import { BasisDronForm } from '../../../components/basis/dron/BasisDronForm';
import { BasisDronImage } from '../../../components/basis/dron/BasisDronImage'; import { BasisDronImage } from '../../../components/basis/dron/BasisDronImage';
import { IMG_PATH } from '../../../configs/constants';
import * as Actions from '../../../modules/basis/dron/actions/basisDronAction'; import * as Actions from '../../../modules/basis/dron/actions/basisDronAction';
import { dronAPI } from '../../../modules/basis/dron/apis/basisDronApi'; import { dronAPI } from '../../../modules/basis/dron/apis/basisDronApi';
import { IMG_PATH } from '../../../configs/constants';
export const BasisDronDetailContainer = props => { export const BasisDronDetailContainer = props => {
const dispatch = useDispatch();
const titleName = ' 기체 관리';
// 가입한 그룹목록, 전체 그룹목록
const { joinList, groupList } = useSelector(state => state.groupState); const { joinList, groupList } = useSelector(state => state.groupState);
// 기체 상세정보, 선택한 기체정보
const { detail, selectData } = useSelector(state => state.dronState); const { detail, selectData } = useSelector(state => state.dronState);
const history = useHistory();
// 유저 정보
const { user } = useSelector(state => state.authState); const { user } = useSelector(state => state.authState);
// 기체 이미지
const [img, setImg] = useState(null); const [img, setImg] = useState(null);
const [imageUrl, setImageUrl] = useState(''); const [imageUrl, setImageUrl] = useState('');
const dispatch = useDispatch();
const titleName = ' 기체 관리'; // 기체 등록인지, 수정인지 판단
const [pageType, setPageType] = useState('create'); const [pageType, setPageType] = useState('create');
// 유효성검사 목록
const validationSchema = yup.object().shape({ const validationSchema = yup.object().shape({
arcrftModelNm: yup arcrftModelNm: yup
.string() .string()
@ -54,9 +65,9 @@ export const BasisDronDetailContainer = props => {
'지원하지 않는 특수문자입니다.' '지원하지 않는 특수문자입니다.'
), ),
wghtTypeCd: yup.string().trim().required('중량구분 을 선택해 주세요.') wghtTypeCd: yup.string().trim().required('중량구분 을 선택해 주세요.')
// ownerNm: yup.string().trim().required('운영자명 을 입력해 주세요.'),
// hpno: yup.string().trim().required('운영자 연락처 를 입력해 주세요.')
}); });
// 유효성검사를 위한 기체 정보 기본값
const { register, getValues, setValue, errors, handleSubmit } = useForm({ const { register, getValues, setValue, errors, handleSubmit } = useForm({
defaultValues: { defaultValues: {
groupId: '', groupId: '',
@ -74,12 +85,11 @@ export const BasisDronDetailContainer = props => {
createUserId: '', createUserId: '',
updateUserId: '', updateUserId: '',
updateDt: '' updateDt: ''
// ownerSno: '',
// ownerNm: '',
// hpno: ''
}, },
resolver: yupResolver(validationSchema) resolver: yupResolver(validationSchema)
}); });
// 모달 창
const [modal, setModal] = useState({ const [modal, setModal] = useState({
isOpen: false, isOpen: false,
title: '', title: '',
@ -87,6 +97,7 @@ export const BasisDronDetailContainer = props => {
color: '' color: ''
}); });
// 이전 화면에서 넘겨받은 그룹 아이디가 있을 시 기체 수정으로 판단
useEffect(() => { useEffect(() => {
if (props.id) { if (props.id) {
handlerSearch(); handlerSearch();
@ -95,6 +106,7 @@ export const BasisDronDetailContainer = props => {
return () => dispatch(Actions.RESET_IDNTF()); return () => dispatch(Actions.RESET_IDNTF());
}, []); }, []);
// 기체 정보 존재 할 경우 데이터 셋팅
useEffect(() => { useEffect(() => {
if (!selectData && !detail) { if (!selectData && !detail) {
// history.goBack(); // history.goBack();
@ -117,9 +129,6 @@ export const BasisDronDetailContainer = props => {
setValue('prdctNum', detail?.prdctNum); setValue('prdctNum', detail?.prdctNum);
setValue('imageUrl', detail?.imageUrl); setValue('imageUrl', detail?.imageUrl);
setValue('wghtTypeCd', detail?.wghtTypeCd); setValue('wghtTypeCd', detail?.wghtTypeCd);
// setValue('ownerSno', detail?.ownerSno);
// setValue('ownerNm', detail?.ownerNm);
// setValue('hpno', detail?.hpno);
setValue('updateUserId', detail?.updateUserId); setValue('updateUserId', detail?.updateUserId);
setValue('updateDt', detail?.updateDt); setValue('updateDt', detail?.updateDt);
@ -163,6 +172,7 @@ export const BasisDronDetailContainer = props => {
} }
}, [selectData, detail]); }, [selectData, detail]);
// 이미지 업로드
const handlerImageChange = e => { const handlerImageChange = e => {
const reader = new FileReader(), const reader = new FileReader(),
files = e.target.files; files = e.target.files;
@ -183,21 +193,25 @@ export const BasisDronDetailContainer = props => {
saveFileAPI(files[0]); saveFileAPI(files[0]);
}; };
// 이미지 삭제
const handlerImageDelete = () => { const handlerImageDelete = () => {
setImageUrl(''); setImageUrl('');
setImg(''); setImg('');
}; };
// 이미지 저장
const saveFileAPI = async file => { const saveFileAPI = async file => {
const fileName = await dronAPI.fileupload(file); const fileName = await dronAPI.fileupload(file);
setImageUrl(fileName); setImageUrl(fileName);
setImg(IMG_PATH + fileName); setImg(IMG_PATH + fileName);
}; };
// 기체 상세정보 요청
const handlerSearch = () => { const handlerSearch = () => {
dispatch(Actions.DETAIL.request(props.id)); dispatch(Actions.DETAIL.request(props.id));
}; };
// 기체 생성
const handlerCreate = async data => { const handlerCreate = async data => {
const saveData = { const saveData = {
...data, ...data,
@ -208,6 +222,7 @@ export const BasisDronDetailContainer = props => {
dispatch(Actions.CREATE.request(saveData)); dispatch(Actions.CREATE.request(saveData));
}; };
// 기체 수정
const handlerUpdate = async data => { const handlerUpdate = async data => {
const saveData = { const saveData = {
...data, ...data,
@ -219,6 +234,7 @@ export const BasisDronDetailContainer = props => {
dispatch(Actions.UPDATE.request(saveData)); dispatch(Actions.UPDATE.request(saveData));
}; };
// 기체 삭제
const handlerDelete = async data => { const handlerDelete = async data => {
dispatch(Actions.DELETE.request(detail.arcrftSno)); dispatch(Actions.DELETE.request(detail.arcrftSno));
}; };

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

@ -5,12 +5,20 @@ import { BasisIdntfForm } from '../../../components/basis/dron/BasisIdntform';
import * as Actions from '../../../modules/basis/dron/actions/basisDronAction'; import * as Actions from '../../../modules/basis/dron/actions/basisDronAction';
import { ErrorModal } from '../../../components/modal/ErrorModal'; import { ErrorModal } from '../../../components/modal/ErrorModal';
export const BasisIdntfContainer = props => { export const BasisIdntfContainer = props => {
const { listIdntf, idntfCount, detail, isRefreshIdntf } = useSelector( const dispatch = useDispatch();
// 식별장치 목록 (저장 이전 데이터 포함)
const [idntDataList, setIdntfDataList] = useState([]);
// 식별장치 목록, 기체 상세정보
const { listIdntf, detail, isRefreshIdntf } = useSelector(
state => state.dronState state => state.dronState
); );
// 유저 정보
const { user } = useSelector(state => state.authState); const { user } = useSelector(state => state.authState);
const dispatch = useDispatch(); // 식별장치 추가 시 초기 정보
const [idntfData, setIdntfData] = useState({ const [idntfData, setIdntfData] = useState({
id: '', id: '',
idntfNum: '', idntfNum: '',
@ -19,6 +27,7 @@ export const BasisIdntfContainer = props => {
hpno: '', hpno: '',
isSave: false isSave: false
}); });
//모달 관련 설정 //모달 관련 설정
const [modal, setModal] = useState({ const [modal, setModal] = useState({
isOpen: false, isOpen: false,
@ -26,14 +35,13 @@ export const BasisIdntfContainer = props => {
desc: '' desc: ''
}); });
const [idntDataList, setIdntfDataList] = useState([]);
useEffect(() => { useEffect(() => {
if (props.id) { if (props.id) {
handlerSearch(); handlerSearch();
} }
}, []); }, []);
// 권한에 따른 식별장치 삭제버튼 disabled 판단
useEffect(() => { useEffect(() => {
let newArr = []; let newArr = [];
@ -57,36 +65,23 @@ export const BasisIdntfContainer = props => {
}); });
} }
} }
// else if (user?.authId === 'USER') {
// if (newArr.length > 0) {
// newArr.filter(prev => {
// if (user?.cstmrSno === prev.cstmrSno) {
// prev.disabled = false;
// } else {
// prev.disabled = true;
// }
// });
// }
// }
// setIdntfDataList(listIdntf);
setIdntfDataList(newArr); setIdntfDataList(newArr);
}, [listIdntf]); }, [listIdntf]);
// useEffect(() => {
// console.log(idntDataList);
// }, [idntDataList]);
useEffect(() => { useEffect(() => {
if (isRefreshIdntf) { if (isRefreshIdntf) {
handlerSearch(); handlerSearch();
} }
}, [isRefreshIdntf]); }, [isRefreshIdntf]);
// 식별장치 목록 요청
const handlerSearch = () => { const handlerSearch = () => {
console.log(props.id, '??');
dispatch(Actions.IDNTF_LIST.request(props.id)); dispatch(Actions.IDNTF_LIST.request(props.id));
}; };
// 식별장치 추가(+ 유효성검사)
const handlerCreate = async () => { const handlerCreate = async () => {
let saveArr = idntDataList.filter(item => item.isSave === false); let saveArr = idntDataList.filter(item => item.isSave === false);
@ -94,7 +89,7 @@ export const BasisIdntfContainer = props => {
let checking = true; let checking = true;
saveArr.forEach(idntf => { saveArr.forEach(idntf => {
const check_num = /01[016789][^0][0-9]{2,3}[0-9]{3,4}/ const check_num = /01[016789][^0][0-9]{2,3}[0-9]{3,4}/;
const check_kor = const check_kor =
/^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/; /^[가-힣a-zA-Z0-9][^!@#$%^&*()+\=\[\]{};':"\\|,.<>\/?\s]*$/;
@ -159,11 +154,11 @@ export const BasisIdntfContainer = props => {
//saveArr[0].idntfNum = 'PA' + saveArr[0].idntfNum //saveArr[0].idntfNum = 'PA' + saveArr[0].idntfNum
// saveArr = 'PA' + saveArr[0].idntfNum, saveArr // saveArr = 'PA' + saveArr[0].idntfNum, saveArr
saveArr saveArr;
dispatch( dispatch(
Actions.IDNTF_CREATE.request({ Actions.IDNTF_CREATE.request({
arcrftSno: detail?.arcrftSno, arcrftSno: detail?.arcrftSno,
data: saveArr.map((i) => ({ data: saveArr.map(i => ({
...i, ...i,
idntfNum: `PA${i.idntfNum}` idntfNum: `PA${i.idntfNum}`
})) }))
@ -179,24 +174,21 @@ export const BasisIdntfContainer = props => {
} }
}; };
const handlerDelete = async data => { // 식별장치 추가 버튼 클릭 시
dispatch(Actions.IDNTF_DELETE.request(data.arcrftSno));
};
const addData = () => { const addData = () => {
setIdntfDataList([...idntDataList, { ...idntfData, id: Math.random() }]); setIdntfDataList([...idntDataList, { ...idntfData, id: Math.random() }]);
}; };
// 식별장치 삭제
const deletaData = (isSave, id) => { const deletaData = (isSave, id) => {
if (!isSave) { if (!isSave) {
setIdntfDataList(idntDataList.filter(item => item.id !== id)); setIdntfDataList(idntDataList.filter(item => item.id !== id));
} else { } else {
dispatch(Actions.IDNTF_DELETE.request(id)); dispatch(Actions.IDNTF_DELETE.request(id));
} }
}; };
// 식별장치 정보 입력
const handlerInput = (event, index) => { const handlerInput = (event, index) => {
const { name, value } = event.target; const { name, value } = event.target;
let newArr = [...idntDataList]; let newArr = [...idntDataList];
@ -229,7 +221,6 @@ export const BasisIdntfContainer = props => {
addData={addData} addData={addData}
deletaData={deletaData} deletaData={deletaData}
handlerSave={handlerCreate} handlerSave={handlerCreate}
handlerDelete={handlerDelete}
isMyGroup={props.isMyGroup} isMyGroup={props.isMyGroup}
/> />
<ErrorModal modal={modal} setModal={setModal} /> <ErrorModal modal={modal} setModal={setModal} />

Loading…
Cancel
Save