@@ -99,7 +104,8 @@ function AdminPostMgtList(props) {
- Home
- - 사이트관리
+ - 사이트관리
+ - 게시판현황
- 게시물 관리
@@ -114,11 +120,9 @@ function AdminPostMgtList(props) {
{/* */}
-
사이트관리
+ 게시물 관리
-
게시물 관리
-
{/* */}
@@ -159,12 +163,13 @@ function AdminPostMgtList(props) {
{/* */}
- 번호
- 게시판명
- 게시판유형
- 게시판속성
- 생성일
- 사용여부
+
+ 제목
+ 작성자
+ 작성일
+ 조회수
+ 파일
+
{listTag}
@@ -184,6 +189,9 @@ function AdminPostMgtList(props) {
+
+ {modalBody}
+
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/board/EgovAdminBoardEdit.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/board/EgovAdminBoardEdit.jsx
index 1051483..eb120ad 100644
--- a/egovframe-template-simple-react-contribution/src/pages/admin/board/EgovAdminBoardEdit.jsx
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/board/EgovAdminBoardEdit.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";
@@ -30,7 +30,35 @@ function EgovAdminBoardEdit({props, reloadFunction}) {
const [boardDetail, setBoardDetail] = useState({});
console.log("@@@ mode : " + modeInfo.mode);
+ const [bbsTypeList, setBbsTypeList] = useState([]);
+ const [roleList, setRoleList] = useState([]);
+
+ const retrieveList = useCallback(() => {
+ const retrieveListURL = '/admin/boards/get-option-list';
+
+ const requestOptions = {
+ method: "GET",
+ headers: {
+ 'Content-type': 'application/json',
+ },
+ body: JSON.stringify()
+ }
+
+ EgovNet.requestFetch(retrieveListURL,
+ requestOptions,
+ (resp) => {
+ setBbsTypeList(resp.result.bbsTypeList);
+ setRoleList(resp.result.roleList);
+ console.log("@@@ bbsTypeList : " + JSON.stringify(resp.result.bbsTypeList));
+ },
+ function (resp) {
+ console.log("err response : ", resp);
+ }
+ );
+ },[]);
+
useEffect(() => {
+ retrieveList();
initMode();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
@@ -48,7 +76,13 @@ function EgovAdminBoardEdit({props, reloadFunction}) {
const info = {
bbsId: form.bbsId.value,
bbsTitle: form.bbsTitle.value,
- bbsDesc: form.bbsDesc.value
+ bbsDesc: form.bbsDesc.value,
+ bbsType: form.bbsType.value,
+ bbsAnsYn: bbsAnsYn,
+ bbsReplYn: bbsReplYn,
+ useYn: useYn,
+ readRole: form.readRole.value,
+ writeRole: form.writeRole.value
}
if (modeInfo.mode === CODE.MODE_MODIFY) {
info.bbsSeq = props.bbsSeq;
@@ -103,6 +137,10 @@ function EgovAdminBoardEdit({props, reloadFunction}) {
console.log("------------------------------EgovAdminBoardEdit [End]");
console.groupEnd("EgovAdminBoardEdit");
+ const [bbsAnsYn, setBbsAnsYn] = useState(props?.bbsAnsYn || "N");
+ const [bbsReplYn, setBbsReplYn] = useState(props?.bbsReplYn || "N");
+ const [useYn, setUseYn] = useState(props?.useYn || "N");
+
return (
<>
{/* */}
@@ -137,6 +175,75 @@ function EgovAdminBoardEdit({props, reloadFunction}) {
defaultValue={props?.bbsDesc}/>
+
+ - 필수
+ -
+
+
+ {bbsTypeList.map((item) => (
+
+ ))}
+
+
+
+
+ - 필수
+ -
+ setBbsAnsYn(e.target.checked ? 'Y' : 'N')}
+ />
+
+
+
+ - 필수
+ -
+ setBbsReplYn(e.target.checked ? 'Y' : 'N')}
+ />
+
+
+
+ - 필수
+ -
+ setUseYn(e.target.checked ? 'Y' : 'N')}
+ />
+
+
+
+ - 필수
+ -
+
+
+ {roleList.map((item) => (
+
+ ))}
+
+
+
+
+ - 필수
+ -
+
+
+ {roleList.map((item) => (
+
+ ))}
+
+
+
{/* */}
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/boards/List.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/boards/List.jsx
index fe4318e..27d39a3 100644
--- a/egovframe-template-simple-react-contribution/src/pages/admin/boards/List.jsx
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/boards/List.jsx
@@ -53,15 +53,17 @@ function EgovAdminBoardList(props) {
// 리스트 항목 구성
resp.result.boardList.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.bbsSeq}
+
{item.bbsId}
{item.bbsTitle}
{item.frstCrtId}
-
{item.frstCrtDt ? format(item.frstCrtDt, "yyyy-MM-dd HH:mm") : ""}
-
{item.lastChgDt ? format(item.lastChgDt, "yyyy-MM-dd HH:mm") : ""}
+
{formattedDate}
+
{item.useYn}
);
@@ -79,7 +81,6 @@ function EgovAdminBoardList(props) {
useEffect(() => {
retrieveList(searchCondition);
- // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
function editBoard(item){
@@ -99,7 +100,8 @@ function EgovAdminBoardList(props) {
- Home
- - 사이트관리
+ - 사이트관리
+ - 게시판현황
- 게시판 관리
@@ -114,57 +116,18 @@ function EgovAdminBoardList(props) {
{/* */}
-
사이트관리
+ 게시판 관리
-
게시판 관리
-
- {/* */}
- {/*
*/}
- {/* */}
-
{/* */}
- 번호
+
아이디
제목
작성자
- 작성일
- 수정일
+ 최종수정일
+ 사용여부
@@ -174,11 +137,6 @@ function EgovAdminBoardList(props) {
{/* */}
- {/* */}
- {/* {
- retrieveList({ ...searchCondition, pageIndex: passedPage, searchCnd: cndRef.current.value, searchWrd: wrdRef.current.value })
- }} />*/}
- {/* */}
{/* */}
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/config/AboutSiteMgt.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/config/AboutSiteMgt.jsx
index 0003462..3bf6bab 100644
--- a/egovframe-template-simple-react-contribution/src/pages/admin/config/AboutSiteMgt.jsx
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/config/AboutSiteMgt.jsx
@@ -50,13 +50,13 @@ function StandardCodeMgt(props) {
mutListTag.push(
-
{item.siteSeq}
+
{item.siteTitle}
{item.siteUrl}
{item.fileGrpId}
{item.siteOrder}
{item.useYn}
-
+
);
});
@@ -76,7 +76,7 @@ function StandardCodeMgt(props) {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
- function editBoard(item){
+ function editPartnerSite(item){
handleShow();
if(item != undefined) {
item.mode = CODE.MODE_MODIFY;
@@ -147,13 +147,13 @@ function StandardCodeMgt(props) {
{/* */}
- 번호
+
사이트명
URL
배너이미지
정렬순서
사용여부
-
+
{listTag}
diff --git a/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/QuestionModal.jsx b/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/QuestionModal.jsx
index 66e22ad..7cc790d 100644
--- a/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/QuestionModal.jsx
+++ b/egovframe-template-simple-react-contribution/src/pages/admin/contents/survey/QuestionModal.jsx
@@ -8,8 +8,8 @@ import * as EgovNet from "api/egovFetch";
function QuestionModal({svySeq}){
- const [qtTag, setQtTag] = useState([]);
- const [itemTag, setItemTag] = useState([]);
+ const [qtList, setQtList] = useState([]);
+ const [selectedQt, setSelectedQt] = useState(null);
function getSurveyQt(){
EgovNet.requestFetch(
@@ -18,19 +18,7 @@ function QuestionModal({svySeq}){
method: "GET"
},
(resp) => {
-
- const temp = [];
- resp.result.qtList.forEach(function (qt, index){
- temp.push(
-
- | selectQt(qt.itemList)}>
-
- |
-
- )
- })
- setQtTag(temp);
-
+ setQtList(resp.result.qtList)
},
function (resp) {
console.log("err response : ", resp);
@@ -38,42 +26,12 @@ function QuestionModal({svySeq}){
);
}
- function selectQt(itemList){
- const temp = [];
- itemList.forEach(function (item, index){
- temp.push(
-
- |
-
- |
-
- )
- })
- setItemTag(temp);
- }
-
function addQt(){
- const temp = [...qtTag]
- temp.push(
-
- |
-
- |
-
- )
- setQtTag(temp)
+
}
function addItem(){
- const temp = [...itemTag]
- temp.push(
-
- |
-
- |
-
- )
- setItemTag(temp)
+
}
function editSurveyQt(e){
@@ -91,7 +49,7 @@ function QuestionModal({svySeq}){
-
+
@@ -99,7 +57,15 @@ function QuestionModal({svySeq}){
- {qtTag}
+ {qtList.map(qt=>{
+ return (
+
+ |
+ {setSelectedQt(qt)}}/>
+ |
+
+ );
+ })}
@@ -110,7 +76,32 @@ function QuestionModal({svySeq}){
-
+
+
+
+ 질문유형
+
+
+ {setSelectedQt({...selectedQt, qtType:1})}}/>
+ {setSelectedQt({...selectedQt, qtType:2})}}/>
+ {setSelectedQt({...selectedQt, qtType:3})}}/>
+ {setSelectedQt({...selectedQt, qtType:4})}}/>
+
+
+
+
+ 최대 선택 개수
+
+
+
+
+
+ 기타 여부
+
+
+
+
+
@@ -118,7 +109,15 @@ function QuestionModal({svySeq}){
- {itemTag}
+ {selectedQt?.itemList.map(item=>{
+ return (
+
+ |
+
+ |
+
+ );
+ })}
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/AdminBoardsController.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/AdminBoardsController.java
index 9215a7b..1a2ec86 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/AdminBoardsController.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/AdminBoardsController.java
@@ -4,6 +4,8 @@ import com.dbnt.kcscbackend.admin.boards.entity.TnBbs;
import com.dbnt.kcscbackend.admin.boards.service.AdminBoardsService;
import com.dbnt.kcscbackend.admin.config.entity.TcMenu;
import com.dbnt.kcscbackend.auth.entity.LoginVO;
+import com.dbnt.kcscbackend.commonCode.CommonCodeController;
+import com.dbnt.kcscbackend.commonCode.service.CommonCodeService;
import com.dbnt.kcscbackend.config.common.BaseController;
import com.dbnt.kcscbackend.config.common.ResponseCode;
import com.dbnt.kcscbackend.config.common.ResultVO;
@@ -32,6 +34,7 @@ import java.util.Map;
public class AdminBoardsController extends BaseController {
private final AdminBoardsService adminBoardsService;
+ private final CommonCodeService commonCodeService;
/* ---- 게시판관리 ----- */
@Operation(
@@ -53,6 +56,26 @@ public class AdminBoardsController extends BaseController {
return resultVO;
}
+ @Operation(
+ summary = "게시판 셀렉트박스 옵션 조회",
+ description = "게시판 셀렉트박스 옵션 조회",
+ tags = {"AdminBoardsController"}
+ )
+ @ApiResponses(value = {
+ @ApiResponse(responseCode = "200", description = "조회 성공"),
+ @ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
+ })
+ @RequestMapping(method = RequestMethod.GET, value = "/get-option-list", consumes = MediaType.APPLICATION_JSON_VALUE)
+ public ResultVO getOptionList() throws Exception {
+ ResultVO resultVO = new ResultVO();
+ Map resultMap = new HashMap<>();
+
+ resultMap.put("bbsTypeList", commonCodeService.selectCodeItemList("BBS_TYPE"));
+ resultMap.put("roleList", commonCodeService.selectCodeItemList("ROLE"));
+ resultVO.setResult(resultMap);
+ return resultVO;
+ }
+
@Operation(
summary = "게시판 저장",
description = "게시판 저장",
@@ -126,7 +149,7 @@ public class AdminBoardsController extends BaseController {
ResultVO resultVO = new ResultVO();
Map resultMap = new HashMap<>();
- resultMap.put("boardList", adminBoardsService.selectBoardList());
+ resultMap.put("postList", adminBoardsService.selectPostList());
resultVO.setResult(resultMap);
return resultVO;
}
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/entity/TnBbs.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/entity/TnBbs.java
index f91277a..1226a05 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/entity/TnBbs.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/entity/TnBbs.java
@@ -70,4 +70,10 @@ public class TnBbs {
@Column(name = "oldd_seq")
private Long olddSeq;
+ @Column(name = "read_role")
+ private Long readRole;
+
+ @Column(name = "write_role")
+ private Long writeRole;
+
}
\ No newline at end of file
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/repository/TnBbsRepository.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/repository/TnBbsRepository.java
index 5291413..874c5f0 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/repository/TnBbsRepository.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/repository/TnBbsRepository.java
@@ -8,7 +8,7 @@ import java.util.List;
public interface TnBbsRepository extends JpaRepository {
- @Query(value = "SELECT * FROM tn_bbs WHERE use_yn = 'Y' ORDER BY bbs_seq DESC", nativeQuery = true)
+ @Query(value = "SELECT * FROM tn_bbs ORDER BY bbs_seq DESC", nativeQuery = true)
List findAllByOrderByBbsSeqDesc();
}
diff --git a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/service/AdminBoardsService.java b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/service/AdminBoardsService.java
index 48a4bca..796d21f 100644
--- a/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/service/AdminBoardsService.java
+++ b/kcsc-back-end/src/main/java/com/dbnt/kcscbackend/admin/boards/service/AdminBoardsService.java
@@ -34,16 +34,18 @@ public class AdminBoardsService extends EgovAbstractServiceImpl {
if (bbs.getBbsSeq() == null) {
bbs.setFrstCrtDt(LocalDateTime.now());
bbs.setFrstCrtId(userId);
- bbs.setBbsAnsYn("N");
- bbs.setBbsReplYn("N");
- bbs.setUseYn("Y");
tnBbsRepository.save(bbs);
} else {
TnBbs savedBoard = tnBbsRepository.findById(bbs.getBbsSeq()).orElse(null);
savedBoard.setBbsId(bbs.getBbsId());
savedBoard.setBbsTitle(bbs.getBbsTitle());
savedBoard.setBbsDesc(bbs.getBbsDesc());
- //savedBoard.setUseYn("Y");
+ savedBoard.setBbsType(bbs.getBbsType());
+ savedBoard.setBbsAnsYn(bbs.getBbsAnsYn());
+ savedBoard.setBbsReplYn(bbs.getBbsReplYn());
+ savedBoard.setUseYn(bbs.getUseYn());
+ savedBoard.setReadRole(bbs.getReadRole());
+ savedBoard.setWriteRole(bbs.getWriteRole());
savedBoard.setLastChgId(userId);
savedBoard.setLastChgDt(LocalDateTime.now());
tnBbsRepository.save(savedBoard);