import React, {useState, useEffect, useCallback} from 'react'; import { Link, useLocation } from 'react-router-dom'; import {LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer} from 'recharts'; import DatePicker from 'react-datepicker'; import 'react-datepicker/dist/react-datepicker.css'; import { CSVLink } from "react-csv"; import {format, sub} from "date-fns"; import { ko } from 'date-fns/locale'; import * as EgovNet from 'api/egovFetch'; import URL from 'constants/url'; import { default as EgovLeftNav } from 'components/leftmenu/EgovLeftNavAdmin'; import { itemIdxByPage } from 'utils/calc'; function FileConnections(props) { // console.group("EgovAdminPrivacyList"); // console.log("[Start] EgovAdminPrivacyList ------------------------------"); // console.log("EgovAdminPrivacyList [props] : ", props); const nowDate = new Date(); const oneMonthAgoDate = sub(nowDate, { months: 1 }); const [start_date, setStartDate] = useState(oneMonthAgoDate); const [end_date, setEndDate] = useState(nowDate); // new Date() const location = useLocation(); // console.log("EgovAdminPrivacyList [location] : ", location); // eslint-disable-next-line no-unused-vars const [searchCondition, setSearchCondition] = useState(location.state?.searchCondition || {start_date: format(start_date, "yyyy-MM-dd"), end_date: format(end_date, "yyyy-MM-dd")}); const [chartData, setChartData] = useState([]); const [excelData, setExcelData] = useState([]); const [listTag, setListTag] = useState([]); const excelHeaders = [ { label: "일자", key: "logdt" }, { label: "설계기준", key: "group10" }, { label: "표준시방서", key: "group20" }, { label: "서울특별시", key: "group40" }, { label: "고속도로공사", key: "group50" }, { label: "농업생산기반시설", key: "group60" }, { label: "철도건설공사", key: "group70" }, { label: "LH", key: "group80" }, { label: "K-water", key: "group90" }, { label: "(구)설계기준", key: "groupO2" }, { label: "(구)표준시방서", key: "groupO3" }, { label: "(구)전문시방서", key: "groupO4" }, { label: "(구)훈령.예규.지침", key: "groupO567" } ]; const retrieveList = useCallback((srchCnd) => { // console.groupCollapsed("EgovAdminUsageList.retrieveList()"); const retrieveListURL = '/admin/logs/file'; const requestOptions = { method: "POST", headers: { 'Content-type': 'application/json', }, body: JSON.stringify(srchCnd) } EgovNet.requestFetch( retrieveListURL, requestOptions, (resp) => { let mutListTag = []; const resultCnt = parseInt(resp.result.resultCnt); const currentPageNo = 1; // resp.result.paginationInfo.currentPageNo; const pageSize = resultCnt; // resp.result.paginationInfo.pageSize; // 리스트 항목 구성 if (resultCnt === 0) { mutListTag.push(

데이터가 없습니다.

); } else { resp.result.resultList.forEach(function (item, index) { if (index === 0) mutListTag = []; // 목록 초기화 const listIdx = itemIdxByPage(resultCnt, currentPageNo, pageSize, index); mutListTag.push(
{item[0]}
{item[1].toLocaleString()}
{item[2].toLocaleString()}
{item[3].toLocaleString()}
{item[4].toLocaleString()}
{item[5].toLocaleString()}
{item[6].toLocaleString()}
{item[7].toLocaleString()}
{item[8].toLocaleString()}
{item[9].toLocaleString()}
{item[10].toLocaleString()}
{item[11].toLocaleString()}
{item[12].toLocaleString()}
); }); } setListTag(mutListTag); // chart values let chartDataArray = resp.result.resultList.map((item, index) => ({ logdt: item[0], // Assuming logdt is the x-axis data "설계기준": item[1], // Assuming menuTitle is the y-axis data "표준시방서": item[2], "서울특별시": item[3], "고속도로공사": item[4], "농업생산기반시설": item[5], "철도건설공사": item[6], "LH": item[7], "K-water": item[8], "(구)설계기준": item[9], "(구)표준시방서": item[10], "(구)전문시방서": item[11], "(구)훈령.예규.지침": item[12], })); setChartData(chartDataArray); // excel value let filteredExcelData = resp.result.resultList.map((item) => ({ logdt: item[0], group10: item[1], group20: item[2], group40: item[3], group50: item[4], group60: item[5], group70: item[6], group80: item[7], group90: item[8], groupO2: item[9], groupO3: item[10], groupO4: item[11], groupO567: item[12] })); setExcelData(filteredExcelData); }, function (resp) { console.log("err response : ", resp); } ); // console.groupEnd("EgovAdminPrivacyList.retrieveList()"); // eslint-disable-next-line react-hooks/exhaustive-deps },[listTag]); const CustomTooltip = ({ active, payload, label }) => { if (active && payload && payload.length) { return (

파일 다운 현황 [{`${label}`}]

설계기준 : {`${payload[0].value}`}회

표준시방서 : {`${payload[1].value}`}회

서울특별시 : {`${payload[2].value}`}회

고속도로공사 : {`${payload[3].value}`}회

농업생산기반시설 : {`${payload[4].value}`}회

철도건설공사 : {`${payload[5].value}`}회

LH : {`${payload[6].value}`}회

K-water : {`${payload[7].value}`}회

(구)설계기준 : {`${payload[8].value}`}회

(구)표준시방서 : {`${payload[9].value}`}회

(구)전문시방서 : {`${payload[10].value}`}회

(구)훈령.예규.지침 : {`${payload[11].value}`}회

); } return null; }; useEffect(() => { retrieveList(searchCondition); // eslint-disable-next-line react-hooks/exhaustive-deps }, [start_date, end_date]); // console.log("------------------------------EgovAdminPrivacyList [End]"); // console.groupEnd("EgovAdminPrivacyList"); return (
{/* */}
  • Home
  • 사이트관리
  • 로그현황
  • 파일 다운 현황
{/* */}
{/* */} {/* */}
{/* */}

파일 다운 현황

{/* */}
  • { setStartDate(date); setSearchCondition({ start_date: format(date, "yyyy-MM-dd"), end_date: format(end_date, "yyyy-MM-dd") }); }} /> -
  • { setEndDate(date); setSearchCondition({ start_date: format(start_date, "yyyy-MM-dd"), end_date: format(date, "yyyy-MM-dd") }); }} /> {/* */} CSV ⬇
{/* */} {/* */}
일자 설계기준 표준시방서 서울특별시 고속도로공사 농업생산기반시설 철도건설공사 LH K-water (구)설계기준 (구)표준시방서 (구)전문시방서 (구)훈령.예규.지침
{listTag}
} />
{/* */} {/* */}
); } export default FileConnections;