import React, { useState, useEffect, useCallback, useRef } from 'react'; import { Link, useLocation } from 'react-router-dom'; import * as EgovNet from 'api/egovFetch'; import URL from 'constants/url'; import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; import EgovPaging from 'components/EgovPaging'; import { itemIdxByPage } from 'utils/calc'; 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"; import {Form} from "react-bootstrap"; const fileIconPath = require('../../../css/images/ico_file.png'); function AdminPostMgtList(props) { console.group("EgovAdminPostList"); console.log("[Start] EgovAdminPostList ------------------------------"); console.log("EgovAdminPostList [props] : ", props); const location = useLocation(); console.log("EgovAdminPostList [location] : ", location); // eslint-disable-next-line no-unused-vars const [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || { pageIndex: 1, searchCnd: '0', searchKeyword: '', bbsSeq:8 });// 기존 조회에서 접근 했을 시 || 신규로 접근 했을 시 const [paginationInfo, setPaginationInfo] = useState({}); const cndRef = useRef(); const wrdRef = useRef(); const [listTag, setListTag] = useState([]); const [categoryList, setCategoryList] = useState([]); const [show, setShow] = useState(false); const [modalBody, setModalBody] = useState(); const handleClose = () => setShow(false); const handleShow = () => setShow(true); const retrieveList = useCallback((searchCondition) => { handleClose(); const params = EgovNet.convParams(searchCondition); console.groupCollapsed("EgovAdminPostList.retrieveList()"); const retrieveListURL = '/admin/boards/posts/post-list' + params; const requestOptions = { method: "GET", headers: { 'Content-type': 'application/json', } } EgovNet.requestFetch(retrieveListURL, requestOptions, (resp) => { setPaginationInfo(resp.result.paginationInfo); setCategoryList(resp.result.categoryList); console.log("@@@ resultCnt : " + resp.result.resultCnt); let mutListTag = []; setListTag([]); resp.result.fixedList.forEach(function (item) { const finalModifiedDate = item?.lastChgDt ? item?.lastChgDt : item?.frstCrtDt; const formattedDate = finalModifiedDate ? format(finalModifiedDate, "yyyy-MM-dd HH:mm") : ""; mutListTag.push(
공지
{item?.bbsContTitle}
{item?.frstCrtId}
{formattedDate}
{item?.bbsReadCnt}
{item?.fileGrpId && File Icon}
); }); resp.result.postList.forEach(function (item, index) { const finalModifiedDate = item?.lastChgDt ? item?.lastChgDt : item?.frstCrtDt; const formattedDate = finalModifiedDate ? format(finalModifiedDate, "yyyy-MM-dd HH:mm") : ""; mutListTag.push(
{resp.result.resultCnt - (resp.result.paginationInfo.pageIndex -1) * resp.result.paginationInfo.rowCnt - index}
{item?.bbsContTitle}
{item?.frstCrtId}
{formattedDate}
{item?.bbsReadCnt}
{item?.fileGrpId && File Icon}
); }); if(!mutListTag.length) mutListTag.push(

검색된 결과가 없습니다.

); // 게시판 목록 초기값 setListTag(mutListTag); }, function (resp) { console.log("err response : ", resp); } ); console.groupEnd("EgovAdminPostList.retrieveList()"); },[listTag]); useEffect(() => { retrieveList(searchCondition); // eslint-disable-next-line react-hooks/exhaustive-deps }, [searchCondition]); const handleSelectChange = (e) => { setSearchCondition({...searchCondition, bbsSeq: e.target.value}) } function editPost(item){ handleShow(); if(item != undefined) { item.mode = CODE.MODE_MODIFY; } else { item = {}; item.selectedBbsSeq = searchCondition.bbsSeq; } setModalBody( retrieveList(searchCondition)}/>) } console.log("------------------------------EgovAdminPostList [End]"); console.groupEnd("EgovAdminPostList"); return (
{/* */}
  • Home
  • 사이트관리
  • 게시판현황
  • 게시물 관리
{/* */}
{/* */} {/* */}
{/* */}

게시물 관리

{/* */}
  • 게시판선택
  • 검색어 {setSearchCondition({...searchCondition, searchKeyword: e.target.value})}}/>
{/* */} {/* */}
번호 제목 작성자 최종수정일 조회수 파일
{listTag}
{/* */}
{/* */} { retrieveList({ ...searchCondition, pageIndex: passedPage}) //, searchCnd: cndRef.current.value, searchKeyword: wrdRef.current.value }} /> {/* */}
{/* */}
{modalBody}
); } export default AdminPostMgtList;