ChartRadarA.js 2.7 KB

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