2024-01-30 02:00:24 +00:00
|
|
|
import React, { useState, useEffect } from 'react';
|
2024-01-02 07:27:42 +00:00
|
|
|
import { Link } from 'react-router-dom';
|
2024-01-26 08:56:03 +00:00
|
|
|
import Box from '@mui/material/Box';
|
2024-02-23 05:20:23 +00:00
|
|
|
|
|
|
|
|
import * as EgovNet from 'api/egovFetch';
|
2024-01-26 08:56:03 +00:00
|
|
|
|
2024-01-30 02:00:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-26 08:56:03 +00:00
|
|
|
import ListCreateUpdateDelete from '../../../components/list/ListCreateUpdateDelete'
|
2024-01-30 02:00:24 +00:00
|
|
|
import ListLabelInputs from '../../../components/list/ListLabelInputs'
|
|
|
|
|
|
2024-01-02 07:27:42 +00:00
|
|
|
|
|
|
|
|
import URL from 'constants/url';
|
|
|
|
|
|
|
|
|
|
import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin';
|
2023-12-26 06:35:38 +00:00
|
|
|
|
|
|
|
|
|
2024-01-30 02:00:24 +00:00
|
|
|
function CommitteeCodeMgt(props) {
|
2024-01-26 08:56:03 +00:00
|
|
|
|
2024-02-23 05:20:23 +00:00
|
|
|
const [searchCondition, setSearchCondition] = useState({ paramCodeGroup: null, paramCodeLevel: 'LV_01' });
|
2024-01-26 08:56:03 +00:00
|
|
|
|
2024-02-23 05:20:23 +00:00
|
|
|
const [depth01List, setDepth01List] = useState([]);
|
|
|
|
|
const [depth02List, setDepth02List] = useState([]);
|
|
|
|
|
const [depth03List, setDepth03List] = useState([]);
|
|
|
|
|
const [depth04List, setDepth04List] = useState([]);
|
2024-01-30 02:00:24 +00:00
|
|
|
const [summaryArray, setSummaryArray] = useState({});
|
2024-01-26 08:56:03 +00:00
|
|
|
|
2024-01-30 02:00:24 +00:00
|
|
|
const [depth01SelectedIndex, setDepth01SelectedIndex] = React.useState();
|
|
|
|
|
const [depth02SelectedIndex, setDepth02SelectedIndex] = React.useState();
|
|
|
|
|
const [depth03SelectedIndex, setDepth03SelectedIndex] = React.useState();
|
|
|
|
|
const [depth04SelectedIndex, setDepth04SelectedIndex] = React.useState();
|
|
|
|
|
|
2024-02-23 05:20:23 +00:00
|
|
|
|
|
|
|
|
// '중앙건설기술심의'에서 특정 item선택 시, 하위 '총괄위원회'목록을 불러온다.
|
|
|
|
|
useEffect(function () {
|
|
|
|
|
// 여기에서 레벨2를 지정했다는 명확한 분기가 이루어지도록 수정해야 함.
|
|
|
|
|
if( typeof depth01SelectedIndex !== 'undefined' ) {
|
|
|
|
|
setSearchCondition({ paramCodeGroup: depth01List[depth01SelectedIndex].orgId, paramCodeLevel: 'LV_02' });
|
|
|
|
|
//setDepth02List([]);
|
|
|
|
|
}
|
|
|
|
|
if( typeof depth02SelectedIndex !== 'undefined' ) {
|
|
|
|
|
setSearchCondition({ paramCodeGroup: depth02List[depth02SelectedIndex].orgId, paramCodeLevel: 'LV_03' });
|
|
|
|
|
//setDepth03List([]);
|
|
|
|
|
}
|
|
|
|
|
if( typeof depth03SelectedIndex !== 'undefined' ) {
|
|
|
|
|
setSearchCondition({ paramCodeGroup: depth03List[depth03SelectedIndex].orgId, paramCodeLevel: 'LV_04' });
|
|
|
|
|
//setDepth04List([]);
|
|
|
|
|
}
|
|
|
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
|
|
|
}, [depth01SelectedIndex, depth02SelectedIndex, depth03SelectedIndex]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 검색 조건이 변경되면 데이터를 불러온다.
|
|
|
|
|
useEffect(function () {
|
|
|
|
|
if( typeof searchCondition !== 'undefined' ) {
|
|
|
|
|
getList(searchCondition);
|
|
|
|
|
}
|
|
|
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
|
|
|
}, [searchCondition]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const requestOptions = {
|
|
|
|
|
method: "GET",
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-type': 'application/json'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const getList = (searchCondition) => {
|
|
|
|
|
|
|
|
|
|
EgovNet.requestFetch(`/admin/config/committee-code-management?paramCodeGroup=${searchCondition.paramCodeGroup}¶mCodeLevel=${searchCondition.paramCodeLevel}`,
|
|
|
|
|
requestOptions,
|
|
|
|
|
function (resp) {
|
|
|
|
|
if( searchCondition.paramCodeLevel === 'LV_01' ) {
|
|
|
|
|
setDepth01List(resp.result.list);
|
|
|
|
|
} else if( searchCondition.paramCodeLevel === 'LV_02' ) {
|
|
|
|
|
setDepth02List(resp.result.list);
|
|
|
|
|
} else if( searchCondition.paramCodeLevel === 'LV_03' ) {
|
|
|
|
|
setDepth03List(resp.result.list);
|
|
|
|
|
} else if( searchCondition.paramCodeLevel === 'LV_04' ) {
|
|
|
|
|
setDepth04List(resp.result.list);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-30 02:00:24 +00:00
|
|
|
useEffect(function () {
|
|
|
|
|
setSummaryArray(
|
|
|
|
|
{
|
2024-02-23 05:20:23 +00:00
|
|
|
"중앙건설기술심의" : depth01List[depth01SelectedIndex] && depth01List[depth01SelectedIndex].orgNm ? depth01List[depth01SelectedIndex].orgNm : "",
|
|
|
|
|
"총괄위원회" : depth02List[depth02SelectedIndex] && depth02List[depth02SelectedIndex].orgNm ? depth02List[depth02SelectedIndex].orgNm : "",
|
|
|
|
|
"건설기준위원회" : depth03List[depth03SelectedIndex] && depth03List[depth03SelectedIndex].orgNm ? depth03List[depth03SelectedIndex].orgNm : "",
|
|
|
|
|
"실무위원회" : depth04List[depth04SelectedIndex] && depth04List[depth04SelectedIndex].orgNm ? depth04List[depth04SelectedIndex].orgNm : "",
|
2024-01-30 02:00:24 +00:00
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
console.log(`${depth01List[depth01SelectedIndex]}[${depth01SelectedIndex}]`);
|
|
|
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
|
|
|
}, [
|
|
|
|
|
depth01List,
|
|
|
|
|
depth02List,
|
|
|
|
|
depth03List,
|
|
|
|
|
depth04List,
|
|
|
|
|
depth01SelectedIndex,
|
|
|
|
|
depth02SelectedIndex,
|
|
|
|
|
depth03SelectedIndex,
|
2024-02-23 05:20:23 +00:00
|
|
|
depth04SelectedIndex]);
|
2024-01-30 02:00:24 +00:00
|
|
|
|
2024-01-26 08:56:03 +00:00
|
|
|
|
2024-01-02 07:27:42 +00:00
|
|
|
const Location = React.memo(function Location() {
|
|
|
|
|
return (
|
|
|
|
|
<div className="location">
|
|
|
|
|
<ul>
|
|
|
|
|
<li><Link to={URL.MAIN} className="home">Home</Link></li>
|
|
|
|
|
<li><Link to={URL.ADMIN}>사이트 관리</Link></li>
|
|
|
|
|
<li>환경 설정</li>
|
2024-01-08 00:23:45 +00:00
|
|
|
<li>위원회 코드 관리</li>
|
2024-01-02 07:27:42 +00:00
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
)
|
|
|
|
|
});
|
|
|
|
|
|
2024-02-23 05:20:23 +00:00
|
|
|
|
|
|
|
|
|
2023-12-26 06:35:38 +00:00
|
|
|
return (
|
|
|
|
|
<div className="container">
|
2024-01-02 07:27:42 +00:00
|
|
|
<div className="c_wrap">
|
|
|
|
|
{/* <!-- Location --> */}
|
|
|
|
|
<Location />
|
|
|
|
|
{/* <!--// Location --> */}
|
|
|
|
|
|
|
|
|
|
<div className="layout">
|
|
|
|
|
{/* <!-- Navigation --> */}
|
|
|
|
|
<EgovLeftNav></EgovLeftNav>
|
|
|
|
|
{/* <!--// Navigation --> */}
|
|
|
|
|
|
|
|
|
|
<div className="contents " id="contents">
|
|
|
|
|
{/* <!-- 본문 --> */}
|
|
|
|
|
<div className="top_tit">
|
|
|
|
|
<h1 className="tit_1">위원회 코드 관리</h1>
|
|
|
|
|
</div>
|
2024-01-26 08:56:03 +00:00
|
|
|
<Box
|
|
|
|
|
sx={{
|
|
|
|
|
display: 'flex',
|
|
|
|
|
flexWrap: 'wrap',
|
2024-01-30 02:00:24 +00:00
|
|
|
justifyContent: 'space-between',
|
2024-01-26 08:56:03 +00:00
|
|
|
'& > :not(style)': {
|
2024-01-30 02:00:24 +00:00
|
|
|
mt: 4,
|
2024-01-26 08:56:03 +00:00
|
|
|
width: 245,
|
|
|
|
|
},
|
|
|
|
|
}}
|
|
|
|
|
>
|
2024-02-23 05:20:23 +00:00
|
|
|
<ListCreateUpdateDelete title="중앙건설기술심의" items={depth01List} setItemIndex={setDepth01SelectedIndex} nameKey="orgNm" idKey="orgId" />
|
|
|
|
|
<ListCreateUpdateDelete title="총괄위원회" items={depth02List} setItemIndex={setDepth02SelectedIndex} nameKey="orgNm" idKey="orgId" />
|
|
|
|
|
<ListCreateUpdateDelete title="건설기준위원회" items={depth03List} setItemIndex={setDepth03SelectedIndex} nameKey="orgNm" idKey="orgId" />
|
|
|
|
|
<ListCreateUpdateDelete title="실무위원회" items={depth04List} setItemIndex={setDepth04SelectedIndex} nameKey="orgNm" idKey="orgId" />
|
|
|
|
|
|
2024-01-26 08:56:03 +00:00
|
|
|
</Box>
|
2024-02-23 05:20:23 +00:00
|
|
|
{ true &&
|
|
|
|
|
<Box
|
|
|
|
|
sx={{
|
|
|
|
|
display: 'flex',
|
|
|
|
|
flexWrap: 'wrap',
|
|
|
|
|
'& > :not(style)': {
|
|
|
|
|
mt: 4,
|
|
|
|
|
width: 245,
|
|
|
|
|
},
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<ListLabelInputs title="위원회 코드정보" items={summaryArray} />
|
|
|
|
|
</Box>
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-30 02:00:24 +00:00
|
|
|
|
2024-01-02 07:27:42 +00:00
|
|
|
{/* <!--// 본문 --> */}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2023-12-26 06:35:38 +00:00
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default CommitteeCodeMgt;
|