| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 | 
							- import { Pagination, Progress, PaginationItem, PaginationLink, Button } from "reactstrap";
 
- import Sparkline from "@/components/Common/Sparklines";
 
- import { Container, Row, Col, Card, CardHeader, CardBody } from "reactstrap";
 
- import FlotChart from "@/components/Charts/Flot.js";
 
- import { ChartSpline, ChartArea, ChartBar, ChartBarStacked, ChartDonut, ChartLine, ChartPie } from "@/components/Config/flot.setup.js";
 
- import Datatable from "@/components/Tables/Datatable";
 
- import { useState, useEffect } from "react";
 
- function CaseProgress({ data, nextButton, prevButton, tahun, newLaporan, excel }) {
 
- 	const laporan_pertahun = data.laporan_perTahun;
 
- 	const [chartData, setChartData] = useState([
 
- 		{
 
- 			// "label": "sales",
 
- 			color: "#287DAD",
 
- 			data: [],
 
- 		},
 
- 	]);
 
- 	useEffect(() => {
 
- 		laporan_pertahun.forEach((e) => {
 
- 			console.log(data);
 
- 			chartData[0].data.push([convertMonth(e._id.bulan), e.jumlah_laporan]);
 
- 		});
 
- 	}, []);
 
- 	const convertMonth = (int) => {
 
- 		switch (int) {
 
- 			case 1:
 
- 				return "Januari";
 
- 				break;
 
- 			case 2:
 
- 				return "Februari";
 
- 				break;
 
- 			case 3:
 
- 				return "Maret";
 
- 				break;
 
- 			case 4:
 
- 				return "April";
 
- 				break;
 
- 			case 5:
 
- 				return "Mei";
 
- 				break;
 
- 			case 6:
 
- 				return "Juni";
 
- 				break;
 
- 			case 7:
 
- 				return "Juli";
 
- 				break;
 
- 			case 8:
 
- 				return "Agustus";
 
- 				break;
 
- 			case 9:
 
- 				return "September";
 
- 				break;
 
- 			case 10:
 
- 				return "Oktober";
 
- 				break;
 
- 			case 11:
 
- 				return "November";
 
- 				break;
 
- 			case 12:
 
- 				return "Desember";
 
- 				break;
 
- 			default:
 
- 				break;
 
- 		}
 
- 	};
 
- 	const Rekapitulasi = {
 
- 		data: [
 
- 			{
 
- 				label: "Pelaporan masuk",
 
- 				color: "#287DAD",
 
- 				data: [data.jumlah_laporan.ditutup + data.jumlah_laporan.dikti + data.jumlah_laporan.lldikti],
 
- 			},
 
- 			{
 
- 				label: "Pelaporan selesai",
 
- 				color: "#52D489",
 
- 				data: [data.jumlah_laporan.ditutup],
 
- 			},
 
- 		],
 
- 		options: {
 
- 			series: {
 
- 				pie: {
 
- 					show: true,
 
- 					innerRadius: 0,
 
- 					label: {
 
- 						show: true,
 
- 						radius: 0.8,
 
- 						formatter: function (label, series) {
 
- 							return (
 
- 								'<div class="flot-pie-label">' +
 
- 								//label + ' : ' +
 
- 								Math.round(series.percent) +
 
- 								"%</div>"
 
- 							);
 
- 						},
 
- 						background: {
 
- 							opacity: 0.8,
 
- 							color: "#222",
 
- 						},
 
- 					},
 
- 				},
 
- 			},
 
- 		},
 
- 	};
 
- 	return (
 
- 		<div className="card b">
 
- 			<div className="card-body bb">
 
- 				<div className="margin-botton-20 text-tahun">
 
- 					<Button className="float-left button-hidden icon-next" onClick={prevButton}>
 
- 						<img src="/static/img/previous.png"></img>
 
- 					</Button>
 
- 					<Button className="float-left button-hidden icon-next" onClick={nextButton}>
 
- 						<img src="/static/img/next.png"></img>
 
- 					</Button>
 
- 					<b className="text-tahun">Tahun {tahun} </b>
 
- 					<Button className="float-right button-hidden icon-eksport" onClick={excel}>
 
- 						<img src="/static/img/eksport.png"></img>
 
- 					</Button>
 
- 				</div>
 
- 				<div className="header-1">
 
- 					<h2 className="card-title-1">Perkembangan</h2>
 
- 				</div>
 
- 				<div className="w-400">
 
- 					<FlotChart options={ChartBar.options} data={chartData} className="flot-chart" height="200px" />
 
- 				</div>
 
- 			</div>
 
- 			<div className="card-body">
 
- 				<div className="header-1">
 
- 					<h2 className="card-title-1">Rekapitulasi</h2>
 
- 				</div>
 
- 				<FlotChart options={Rekapitulasi.options} data={Rekapitulasi.data} className="flot-chart" height="250px" />
 
- 			</div>
 
- 			<div className="card-body">
 
- 				<div className="header-1">
 
- 					<h2 className="card-title-1">Laporan Terbaru</h2>
 
- 				</div>
 
- 				{newLaporan.map((value) => (
 
- 					<h5 className="card-title text-left py-2 bg-gray border-radius-login">
 
- 						<b className="f-size">{`${value.no_laporan} - ${value.pt.nama}`}</b>
 
- 					</h5>
 
- 				))}
 
- 			</div>
 
- 		</div>
 
- 	);
 
- }
 
- export default CaseProgress;
 
 
  |