diff --git a/egovframe-template-simple-react-contribution/src/components/list/ListCreateUpdateDelete.jsx b/egovframe-template-simple-react-contribution/src/components/list/ListCreateUpdateDelete.jsx index eaeb9ca..4701648 100644 --- a/egovframe-template-simple-react-contribution/src/components/list/ListCreateUpdateDelete.jsx +++ b/egovframe-template-simple-react-contribution/src/components/list/ListCreateUpdateDelete.jsx @@ -15,6 +15,9 @@ import AddIcon from '@mui/icons-material/Add'; import styledComponent from "styled-components"; +import * as EgovNet from 'api/egovFetch'; + + const StyledDiv = styledComponent.div` .text-item.active { background-color: #676767; @@ -27,10 +30,14 @@ function generate(items, element, onClickListner,nameKey, let returnValue = []; let nIndex = 0; Object.keys(items).forEach(function(key) { + + returnValue = [ ...returnValue, React.cloneElement(element, { key, + 'data-key' : key, + 'data-index' : nIndex, }, {onClickListner(e, key);}}> @@ -114,10 +121,19 @@ function ListCreateUpdateDelete(props) { - + {alert('수정 클릭')}}> - + { + const dataKey = Number(e.currentTarget.parentNode.parentNode.parentNode.getAttribute('data-key')); + + let paramCodeGroup = null; + if( props.depthSelectedArrayIndex > 0 ) { + paramCodeGroup = props.itemIndex[props.depthSelectedArrayIndex-1]; + } + + props.onClickDeleteItem(e, paramCodeGroup, props.paramCodeLevel, props.depthSelectedArrayIndex, props.items[dataKey]); + }}> diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/config/CommitteeCodeMgt.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/config/CommitteeCodeMgt.jsx index 3422ad1..3273219 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/config/CommitteeCodeMgt.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/config/CommitteeCodeMgt.jsx @@ -4,15 +4,10 @@ import Box from '@mui/material/Box'; import * as EgovNet from 'api/egovFetch'; - - - import CommitteeCodeRegistrationPopup from './CommitteeCodeMgt/CommitteeCodeRegistrationPopup'; - import ListCreateUpdateDelete from '../../../components/list/ListCreateUpdateDelete' import ListLabelInputs from '../../../components/list/ListLabelInputs' - import URL from 'constants/url'; import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; @@ -37,7 +32,7 @@ function CommitteeCodeMgt(props) { // '중앙건설기술심의'에서 특정 item선택 시, 하위 '총괄위원회'목록을 불러온다. useEffect(function () { - if( typeof depthSelectedIndex[0] !== "undefined" && depth01List[depthSelectedIndex[0]].orgId !== undefined) { + if( typeof depthSelectedIndex[0] !== "undefined" && depth01List[depthSelectedIndex[0]] && depth01List[depthSelectedIndex[0]].orgId !== undefined) { setSearchCondition({ paramCodeGroup: depth01List[depthSelectedIndex[0]].orgId, paramCodeLevel: 'LV_02' }); setDepth02List({}); setDepth03List({}); @@ -153,6 +148,66 @@ function CommitteeCodeMgt(props) { ]); + const onClickDeleteItem = (e, paramCodeGroup, paramCodeLevel, depthSelectedArrayIndex, deleteItem) => { + + if( deleteItem.orgId === undefined ) { + alert('삭제 대상이 존재하지 않습니다.'); + return false; + } + + const requestOptions = { + method: "DELETE", + headers: { + 'Content-type': 'application/json', + } + }; + + EgovNet.requestFetch(`/admin/config/committee-code-management/${deleteItem.orgId}`, + requestOptions, + function (resp) { + //방금 삭제한 것만 새로 읽어 드린다. + let forChangeObject = {...searchCondition, paramCodeGroup, paramCodeLevel}; + setSearchCondition(forChangeObject); + + //현재 선택된 아이템을 삭제한 경우 그 하위 목록을 모두 비운다. + + //현재 선택된 아이템을 삭제 했는지 체크한다 + // 여기에 현재 선택된 아이템을 삭제 했는지 체크하는 로직을 추가해주세요. + if( Number(depthSelectedIndex[depthSelectedArrayIndex]) === Number(deleteItem.orgId) ) { + // 맞다면 + //그 하위 목록을 비운다. + + for( let i = depthSelectedArrayIndex + 1; i<4; i++ ) { + //setSearchCondition({...searchCondition, paramCodeLevel : createCondition.paramCodeLevel}); + depthSelectedIndex[i] = undefined; + } + let forChangeObject = [...depthSelectedIndex]; + setDepthSelectedIndex(forChangeObject); + + // eslint-disable-next-line default-case + switch(depthSelectedArrayIndex) { + case 0: + setDepth02List({}); + // eslint-disable-next-line no-fallthrough + case 1: + setDepth03List({}); + // eslint-disable-next-line no-fallthrough + case 2: + setDepth04List({}); + } + + + + + + } + + + alert('삭제 되었습니다.'); + } + ); + } + const Location = React.memo(function Location() { return (
@@ -211,6 +266,7 @@ function CommitteeCodeMgt(props) { idKey="orgId" isPopupOpen = {isCommitteeCodeRegistrationPopupOpen} setIsPopupOpen = {setIsCommitteeCodeRegistrationPopupOpen} + onClickDeleteItem={onClickDeleteItem} /> diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/config/CommitteeCodeMgt/CommitteeCodeRegistrationPopup.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/config/CommitteeCodeMgt/CommitteeCodeRegistrationPopup.jsx index 2a7061d..2037054 100644 --- a/egovframe-template-simple-react-contribution/src/pages/admin/config/CommitteeCodeMgt/CommitteeCodeRegistrationPopup.jsx +++ b/egovframe-template-simple-react-contribution/src/pages/admin/config/CommitteeCodeMgt/CommitteeCodeRegistrationPopup.jsx @@ -28,7 +28,6 @@ function CommitteeCodeRegistrationPopup(props) { EgovNet.requestFetch(`/admin/config/committee-code-management`, requestOptions, function (resp) { - //window.location.reload(); //방금 추가한 것만 새로 읽어 드린다. props.setSearchCondition({...props.searchCondition, paramCodeLevel : props.createCondition.paramCodeLevel});