diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtEdit.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtEdit.jsx
index 0335671..05ae684 100644
--- a/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtEdit.jsx
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtEdit.jsx
@@ -1,4 +1,4 @@
-import React, {useState, useEffect, useRef} from 'react';
+import React, {useState, useEffect, useRef, useCallback} from 'react';
import {Link, useNavigate, useLocation, useParams} from 'react-router-dom';
import Modal from "react-bootstrap/Modal";
@@ -9,6 +9,7 @@ import CODE from 'constants/code';
import {default as EgovLeftNav} from 'components/leftmenu/EgovLeftNavAdmin';
import EgovRadioButtonGroup from 'components/EgovRadioButtonGroup';
import {Form} from "react-bootstrap";
+import RichTextEditor from "../../../components/editor/RichTextEditor";
function AdminPostMgtEdit({props, reloadFunction}) {
@@ -30,7 +31,33 @@ function AdminPostMgtEdit({props, reloadFunction}) {
const [boardDetail, setBoardDetail] = useState({});
console.log("@@@ mode : " + modeInfo.mode);
+ const [categoryList, setCategoryList] = useState([]);
+
+ const retrieveList = useCallback(() => {
+ const retrieveListURL = '/admin/boards/get-category-list';
+
+ const requestOptions = {
+ method: "GET",
+ headers: {
+ 'Content-type': 'application/json',
+ },
+ body: JSON.stringify()
+ }
+
+ EgovNet.requestFetch(retrieveListURL,
+ requestOptions,
+ (resp) => {
+ setCategoryList(resp.result.categoryList);
+ console.log("@@@ categoryList : " + JSON.stringify(resp.result.categoryList));
+ },
+ function (resp) {
+ console.log("err response : ", resp);
+ }
+ );
+ },[]);
+
useEffect(() => {
+ retrieveList();
initMode();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
@@ -41,22 +68,24 @@ function AdminPostMgtEdit({props, reloadFunction}) {
}
}
- function editPartnerSite(e) {
+ function editPost(e) {
e.preventDefault();
e.stopPropagation();
const form = e.target;
const info = {
- siteTitle: form.siteTitle.value,
- siteUrl: form.siteUrl.value,
+ fixedYn: defaultFixedYn,
+ secretYn: defaultSecretYn,
+ bbsId: form.bbsId.value,
+ bbsSeq: selectedBbsSeq,
+ bbsContTitle: form.bbsContTitle.value,
fileGrpId: form.fileGrpId.value,
- siteOrder: form.siteOrder.value,
- useYn: form.useYn.value
+ bbsContents: text
}
if (modeInfo.mode === CODE.MODE_MODIFY) {
- info.siteSeq = props.siteSeq;
+ info.bbsContSeq = props.bbsContSeq;
}
EgovNet.requestFetch(
- '/admin/config/partner-site-mgt',
+ '/admin/boards/post-mgt',
{
method: "PUT",
headers: {
@@ -77,16 +106,16 @@ function AdminPostMgtEdit({props, reloadFunction}) {
)
}
- function deletePartnerSite(partnerSite){
+ function deletePost(post){
if(window.confirm("삭제하시겠습니까?")) {
EgovNet.requestFetch(
- '/admin/config/partner-site-mgt',
+ '/admin/boards/post-mgt',
{
method: "DELETE",
headers: {
'Content-type': 'application/json'
},
- body: JSON.stringify(partnerSite)
+ body: JSON.stringify(post)
},
(resp) => {
if (Number(resp.resultCode) === Number(CODE.RCV_SUCCESS)) {
@@ -106,9 +135,25 @@ function AdminPostMgtEdit({props, reloadFunction}) {
console.groupEnd("AdminPostMgtEdit");
const [defaultFixedYn, setDefaultFixedYn] = useState(props?.fixedYn || "N");
+ const [defaultSecretYn, setDefaultSecretYn] = useState(props?.secretYn || "N");
+ const [text, setText] = useState(props?.bbsContents);
+ const [selectedBbsSeq, setSelectedBbsSeq] = useState(null);
+
+ const handleSelectChange = (e) => {
+ const selectedBbsId = e.target.value;
+ const selectedOption = categoryList.find((item) => item.bbsId === selectedBbsId);
+ setSelectedBbsSeq(selectedOption.bbsSeq);
+ }
return (
<>
+
{/* */}
@@ -119,13 +164,13 @@ function AdminPostMgtEdit({props, reloadFunction}) {
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtList.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtList.jsx
index 4f65a0d..53ad99b 100644
--- a/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtList.jsx
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/board/AdminPostMgtList.jsx
@@ -12,6 +12,7 @@ import CODE from "../../../constants/code";
import AboutSiteModal from "../config/aboutSiteMgt/AboutSiteModal";
import AdminPostMgtEdit from "./AdminPostMgtEdit";
import Modal from "react-bootstrap/Modal";
+import {format} from "date-fns";
function AdminPostMgtList(props) {
console.group("EgovAdminPostList");
@@ -36,6 +37,7 @@ function AdminPostMgtList(props) {
const handleShow = () => setShow(true);
const retrieveList = useCallback(() => {
+ handleClose();
console.groupCollapsed("EgovAdminPostList.retrieveList()");
const retrieveListURL = '/admin/boards/post-list';
@@ -60,15 +62,18 @@ function AdminPostMgtList(props) {
// 리스트 항목 구성
resp.result.postList.forEach(function (item, index) {
if (index === 0) mutListTag = []; // 목록 초기화
+ const finalModifiedDate = item.lastChgDt ? item.lastChgDt : item.frstCrtDt;
+ const formattedDate = finalModifiedDate ? format(finalModifiedDate, "yyyy-MM-dd HH:mm") : "";
mutListTag.push(
-
{item.bbsContSeq}
-
{item.bbsSeq}
+
{item.bbsContTitle}
-
{item.bbsContents}
+
{item.frstCrtId}
+
{formattedDate}
{item.bbsReadCnt}
-
{item.bbsContLevel}
+
{item.fileGrpId}
+
);
});
@@ -131,7 +136,7 @@ function AdminPostMgtList(props) {