kcscDev/egovframe-template-simple-r.../src/pages/admin/config/aboutSiteMgt/AboutSiteModal.jsx

182 lines
7.5 KiB
React
Raw Normal View History

2024-02-28 00:08:26 +00:00
import React, {useState, useEffect, useRef} from 'react';
import {Link, useNavigate, useLocation, useParams} from 'react-router-dom';
import Modal from "react-bootstrap/Modal";
import * as EgovNet from 'api/egovFetch';
import URL from 'constants/url';
import CODE from 'constants/code';
import {default as EgovLeftNav} from 'components/leftmenu/EgovLeftNavAdmin';
import EgovRadioButtonGroup from 'components/EgovRadioButtonGroup';
import {Form} from "react-bootstrap";
function AboutSiteModal({props, reloadFunction}) {
console.group("AboutSiteModal");
console.log("[Start] AboutSiteModal ------------------------------");
console.log("AboutSiteModal [props] : ", props);
const navigate = useNavigate();
const location = useLocation();
const checkRef = useRef([]);
console.log("AboutSiteModal [location] : ", location);
let item = null;
item = props;
console.log("@@@ item : " + JSON.stringify(item));
const [modeInfo, setModeInfo] = useState(item != null ? {mode: props.mode} : {mode: CODE.MODE_CREATE});
const [boardDetail, setBoardDetail] = useState({});
console.log("@@@ mode : " + modeInfo.mode);
useEffect(() => {
initMode();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
const initMode = () => {
if (modeInfo.mode === CODE.MODE_MODIFY) {
setBoardDetail(item);
}
}
2024-02-28 07:03:40 +00:00
function editPartnerSite(e) {
2024-02-28 00:08:26 +00:00
e.preventDefault();
e.stopPropagation();
const form = e.target;
const info = {
2024-02-28 07:03:40 +00:00
siteTitle: form.siteTitle.value,
siteUrl: form.siteUrl.value,
fileGrpId: form.fileGrpId.value,
siteOrder: form.siteOrder.value,
useYn: form.useYn.value
2024-02-28 00:08:26 +00:00
}
if (modeInfo.mode === CODE.MODE_MODIFY) {
2024-02-28 07:03:40 +00:00
info.siteSeq = props.siteSeq;
2024-02-28 00:08:26 +00:00
}
EgovNet.requestFetch(
2024-02-28 07:03:40 +00:00
'/admin/config/partner-site-mgt',
2024-02-28 00:08:26 +00:00
{
method: "PUT",
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify(info)
},
(resp) => {
if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) {
alert("저장되었습니다.");
reloadFunction();
} else if (Number(resp.resultCode) === Number(CODE.RCV_ERROR_AUTH)) {
console.log("토큰 갱신중.")
} else {
alert(resp.result.resultMessage)
}
}
)
}
2024-02-28 07:03:40 +00:00
function deletePartnerSite(partnerSite){
2024-02-28 00:08:26 +00:00
if(window.confirm("삭제하시겠습니까?")) {
EgovNet.requestFetch(
2024-02-28 07:03:40 +00:00
'/admin/config/partner-site-mgt',
2024-02-28 00:08:26 +00:00
{
method: "DELETE",
headers: {
'Content-type': 'application/json'
},
2024-02-28 07:03:40 +00:00
body: JSON.stringify(partnerSite)
2024-02-28 00:08:26 +00:00
},
(resp) => {
if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) {
alert("삭제되었습니다.")
reloadFunction();
} else if (Number(resp.resultCode) === Number(CODE.RCV_ERROR_AUTH)) {
console.log("토큰 갱신중.")
} else {
alert(resp.result.resultMessage)
}
}
)
}
}
console.log("------------------------------AboutSiteModal [End]");
console.groupEnd("AboutSiteModal");
2024-02-28 07:03:40 +00:00
const defaultUseYn = props?.useYn ? props.useYn : "Y";
2024-02-28 00:08:26 +00:00
return (
<>
{/* <!-- 본문 --> */}
<Modal.Header closeButton>
<Modal.Title>
{modeInfo.mode === CODE.MODE_CREATE && '관련사이트 생성'}
{modeInfo.mode === CODE.MODE_MODIFY && '관련사이트 수정'}
</Modal.Title>
</Modal.Header>
<Modal.Body>
<div className="board_view2">
2024-02-28 07:03:40 +00:00
<Form onSubmit={(e) => {editPartnerSite(e)}} noValidate>
2024-02-28 00:08:26 +00:00
<dl>
2024-02-28 07:03:40 +00:00
<dt><label htmlFor="siteTitle">사이트명</label><span className="req">필수</span></dt>
2024-02-28 00:08:26 +00:00
<dd>
2024-02-28 07:03:40 +00:00
<Form.Control className="f_input2 w_full" type="text" name="siteTitle" placeholder="사이트명" required
2024-02-28 00:08:26 +00:00
defaultValue={props?.siteTitle} readOnly={props!==undefined}/>
</dd>
</dl>
<dl>
2024-02-28 07:03:40 +00:00
<dt><label htmlFor="siteUrl">URL</label><span className="req">필수</span></dt>
2024-02-28 00:08:26 +00:00
<dd>
2024-02-28 07:03:40 +00:00
<Form.Control className="f_input2 w_full" type="text" name="siteUrl" placeholder="URL" required
2024-02-28 00:08:26 +00:00
defaultValue={props?.siteUrl}/>
</dd>
</dl>
<dl>
2024-02-28 07:03:40 +00:00
<dt><label htmlFor="fileGrpId">배너이미지</label><span className="req">필수</span></dt>
2024-02-28 00:08:26 +00:00
<dd>
2024-02-28 07:03:40 +00:00
<Form.Control className="f_txtar w_full" type="text" name="fileGrpId" placeholder="배너이미지" required
2024-02-28 00:08:26 +00:00
defaultValue={props?.fileGrpId}/>
</dd>
</dl>
<dl>
2024-02-28 07:03:40 +00:00
<dt><label htmlFor="siteOrder">정렬순서</label><span className="req">필수</span></dt>
2024-02-28 00:08:26 +00:00
<dd>
2024-02-28 07:03:40 +00:00
<Form.Control className="f_txtar w_full" type="text" name="siteOrder" placeholder="정렬순서" required
2024-02-28 00:08:26 +00:00
defaultValue={props?.siteOrder}/>
</dd>
</dl>
<dl>
2024-02-28 07:03:40 +00:00
<dt><label htmlFor="useYn">사용여부</label><span className="req">필수</span></dt>
2024-02-28 00:08:26 +00:00
<dd>
2024-02-28 07:03:40 +00:00
<Form.Check inline type="radio" label="Y" name="useYn" value="Y" defaultChecked={defaultUseYn === "Y"}/>
<Form.Check inline type="radio" label="N" name="useYn" value="N" defaultChecked={defaultUseYn === "N"}/>
2024-02-28 00:08:26 +00:00
</dd>
</dl>
{/* <!-- 버튼영역 --> */}
<div className="board_btn_area">
<div className="left_col btn1">
<button type="submit" className="btn btn_skyblue_h46 w_100">저장
</button>
{modeInfo.mode === CODE.MODE_MODIFY &&
2024-02-28 07:03:40 +00:00
<button type={"button"} className="btn btn_skyblue_h46 w_100" onClick={()=>{deletePartnerSite(props)}}>삭제</button>
2024-02-28 00:08:26 +00:00
}
</div>
<div className="right_col btn1">
<button type={"button"} className="btn btn_blue_h46 w_100" onClick={()=>{reloadFunction()}}>목록</button>
</div>
</div>
{/* <!--// 버튼영역 --> */}
</Form>
</div>
</Modal.Body>
</>
);
}
export default AboutSiteModal;