ChartRadarA.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import React, { Component } from "react";
  2. import ContentWrapper from "@/components/Layout/ContentWrapper";
  3. import { Container, Row, Col, Card, CardHeader, CardBody } from "reactstrap";
  4. import { connect } from "react-redux";
  5. import { jumlahLaporan } from "@/actions/pelaporan";
  6. import dynamic from "next/dynamic";
  7. import { getjumlahStatusLaporan } from "../../actions/graph";
  8. const ReactApexChart = dynamic(() => import("react-apexcharts"), { ssr: false });
  9. class ChartRadarA extends React.Component {
  10. constructor(props) {
  11. super(props);
  12. this.state = {
  13. series: [{
  14. name: 'Penjadwalan Evaluasi',
  15. data: [8, 5, 3, 4, 5, 1, 6, 8, 3, 9, 5, 2, 9, 6, 4, 2],
  16. }, {
  17. name: 'Pemeriksaan',
  18. data: [2, 3, 4, 2, 5, 4, 3, 6, 7, 8, 6, 5, 4, 3, 2, 1],
  19. }, {
  20. name: 'Sanksi',
  21. data: [4, 6, 8, 5, 7, 5, 6, 8, 9, 4, 3, 2, 4, 5, 6, 7],
  22. }
  23. ],
  24. options: {
  25. chart: {
  26. height: 150,
  27. type: 'radar',
  28. },
  29. xaxis: {
  30. categories: ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "XIII", "XIV", "XV", "XVI"]
  31. },
  32. chart: {
  33. toolbar: {
  34. show: true,
  35. tools: {
  36. download: false,
  37. },
  38. },
  39. },
  40. // legend: {
  41. // show: false,
  42. // }
  43. },
  44. };
  45. }
  46. async componentDidMount() {
  47. const { token } = this.props;
  48. const data = await getjumlahStatusLaporan(this.props.token);
  49. this.setState((prevState) => ({
  50. ...prevState,
  51. series: [{ data: data.data.map((e) => e.jumlah_jadwal_evaluasi), name: "penjadwalan Evaluasi" }
  52. , { data: data.data.map((e) => e.jumlah_pemeriksaan), name: "Pemeriksaan" },
  53. { data: data.data.map((e) => e.jumlah_sanksi), name: "sanksi" }],
  54. options: {
  55. ...prevState,
  56. xaxis: {
  57. categories: data.data.map((data) => data.pembina.name),
  58. },
  59. },
  60. }));
  61. }
  62. render() {
  63. return (
  64. <Card className="card-default">
  65. <CardBody>
  66. <div id="chart">
  67. <ReactApexChart options={this.state.options} series={this.state.series} type="radar" height={400} />
  68. </div>
  69. </CardBody>
  70. </Card>
  71. );
  72. }
  73. }
  74. const MapStateToProps = (state) => ({ token: state.token });
  75. export default connect(MapStateToProps)(ChartRadarA);