"use client" import PageBreadcrumb from "@/components/common/PageBreadCrumb2"; import ComponentCard from '@/components/common/ComponentCard2'; import CtTable1 from '@/components/tables/CtTable1'; import Button from '@/components/ui/button/Button2'; import { DocsIcon, FileIcon, PlusIcon } from "@/icons"; import WithLabel from '@/components/form/WithLabel'; import Input from '@/components/form/input/InputField2'; import DatePicker from '@/components/form/date-picker2'; import React from "react"; import { useEffect, useState } from 'react'; import { useRouter } from "next/navigation"; import api, { addDaysYMD, convertDateTime3, todayYMD } from '@/lib/_AG'; import { useModal } from "@/hooks/useModal"; import AddModifyNoticeModal, {NoticeModalProps} from './AddModifyNoticeModal'; import { useMultiState } from "@/hooks/useMultiState"; const SEARCH_LABEL_WIDTH_PX = 80; const COUNT_PER_PAGE = 10; const PAGE_NUM_COUNT = 5; export default function Notice() { const router = useRouter(); const [ tableData, setTableData ] = useState([]); const [ tableOffset, setTableOffset ] = useState(0); const [ tableTotalCount, setTableTotalCount ] = useState(0); // search fields const [ title, setTitle ] = useState(""); const [ content, setContent ] = useState(""); const [ date_start, setDateStart ] = useState(""); const [ date_end, setDateEnd ] = useState(""); const [ uid1, setUid1 ] = useState(""); // // modal const { isOpen, openModal, closeModal } = useModal(); const modalData = useMultiState({isModify: false, user_id: "", user_pw: "", nick_name: "", email: "", gid: "", state: ""}); const fetchAccountList = () => { api.post('/api/get-all-account.do').then((resp) => { console.log(resp); if (resp.data.errCode === 0) { setTableData(resp.data.result.list); } else { alert("조회 실패 :" + resp.data.errCode); } }) .catch((err) => console.error(err)); }; // function part function reqNoticeList() { const params = { offset: tableOffset, limit: COUNT_PER_PAGE, title: title, content: content, date_start: date_start, date_end: date_end, } api.post('/api/get-notice.do', params).then((resp) => { console.log(resp); if (resp.data.errCode == 0) { if (resp.data.result.list.length == 0) { alert("검색 결과가 없습니다."); setTableTotalCount(0); setTableData([]); return; } setTableTotalCount(resp.data.result.totalCount); setTableData(resp.data.result.list); } else { alert("일시적으로 사용할 수 없습니다 : " + resp.data.errCode); } }) .catch((err) => console.error(err)) } useEffect(() => { // api.get('/api-test') // .then((resp) => { // console.log(resp) // }) // .catch((err) => console.error(err)); reqNoticeList(); }, []); // event processing part const handleClickDownload = () => { //... }; const handleClickSearch = () => { reqNoticeList(); }; const handleClickAdd = () => { openModal(); }; const handleClickTableRow = (row: number) => { // nid: notice_id router.push("/notice/detail?nid=" + tableData[row].notice_id); }; const handlePageChange = (page: number) => { setTableOffset((page - 1) * COUNT_PER_PAGE); reqNoticeList(); }; useEffect(() => { reqNoticeList(); }, [tableOffset]); const columns = [ { title: "날짜", key: "reg_time", renderItem: (item: any, row: number) => convertDateTime3(item.reg_time), viewMobile: true, }, { title: "홈화면 시작일", key: "open_time", }, { title: "홈화면 종료일", key: "close_time", }, { title: "첨부파일", key: "attachment", renderItem: (item: any) => ( item.attachment ? : ), }, { title: "제목", key: "title", viewMobile: true, }, { title: "작성자", key: "submitter", }, ]; return (
setTitle(e.target.value)} /> setUid1(e.target.value)} />
{ setDateStart(currentDateString); }} defaultDate={date_start} /> { setDateEnd(currentDateString); }} defaultDate={date_end} />
{/**/}
); }