TablePenetapanSanksi.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import React, { Component } from "react";
  2. import { Card, Table } from "reactstrap";
  3. import { getPelanggaran } from "@/actions/pelanggaran";
  4. export class TablePenetapanSanksi extends Component {
  5. checkedData = [];
  6. constructor(props) {
  7. super(props);
  8. this.state = {
  9. pelanggaran: null,
  10. // checkedData: [],
  11. };
  12. }
  13. componentDidMount = async () => {
  14. const pelanggaran = await getPelanggaran();
  15. this.setState({ pelanggaran });
  16. };
  17. onHandleChange = (evt) => {
  18. const checked = evt.target.checked;
  19. const item = evt.target.value;
  20. if (checked) this.checkedData.push(evt.target.value);
  21. else this.checkedData = this.checkedData.filter((e) => e != item);
  22. this.props.setCheckedData(this.checkedData);
  23. };
  24. render() {
  25. const { pelanggaran } = this.state;
  26. return (
  27. <Card className="card-default">
  28. <Table bordered hover responsive>
  29. <thead>
  30. <tr>
  31. <th>No</th>
  32. <th>Jenis Pelanggaran</th>
  33. <th>Sanksi</th>
  34. <th></th>
  35. </tr>
  36. </thead>
  37. <tbody>
  38. {pelanggaran
  39. ? pelanggaran.data.map((jp, index) => (
  40. <tr key={jp._id}>
  41. <td>
  42. <label>{index + 1}</label>
  43. </td>
  44. <td>
  45. <div className="media align-items-center">
  46. <div className="media-body d-flex">
  47. <div>
  48. <p>{jp.pelanggaran}</p>
  49. <p>TMT : {jp.tmt_bulan} Bulan</p>
  50. <p>Jenis Sanksi Administratif : {jp.label_sanksi}</p>
  51. </div>
  52. </div>
  53. </div>
  54. </td>
  55. <td>
  56. <div className="media align-items-center">
  57. <div className="media-body d-flex">
  58. <div>
  59. <p>{jp.sanksi}</p>
  60. <p>Keterangan : {jp.keterangan_sanksi}</p>
  61. </div>
  62. </div>
  63. </div>
  64. </td>
  65. <td>
  66. <div className="checkbox c-checkbox">
  67. <label>
  68. <input type="checkbox" value={jp._id} onChange={this.onHandleChange} />
  69. <span className="fa fa-check"></span>
  70. </label>
  71. </div>
  72. </td>
  73. </tr>
  74. ))
  75. : ""}
  76. </tbody>
  77. </Table>
  78. </Card>
  79. );
  80. }
  81. }
  82. export default TablePenetapanSanksi;