TablePenetapanSanksi.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import React, { Component } from "react";
  2. import { Card, Table } from "reactstrap";
  3. export class TablePenetapanSanksi extends Component {
  4. constructor(props) {
  5. super(props);
  6. this.state = {
  7. hisJenisPelanggaran: [],
  8. tbljenisPelanggaran: [],
  9. };
  10. }
  11. handleApplyClick = () => {
  12. const _noSangsi = document.getElementById("noSangsi").value;
  13. const _hisJP = [];
  14. //Get data for filter by checked
  15. this.state.tbljenisPelanggaran.filter((_jp) => _jp.checked == true).map((selectedPelanggaran) => _hisJP.push(selectedPelanggaran));
  16. this.state.hisJenisPelanggaran = [];
  17. this.state.hisJenisPelanggaran.push({
  18. noSangsi: _noSangsi,
  19. pelanggaran: _hisJP,
  20. });
  21. console.log("Result hisJenisPelanggaran : ", this.state.hisJenisPelanggaran);
  22. };
  23. // handle particular changes on each checkbox
  24. onHandleChange(listName, index) {
  25. //set state to checkbox and data in promise mode
  26. this.setState({
  27. [listName]: this.state[listName].map((item, i) => (index !== i ? item : { ...item, checked: !this.state[listName][index].checked })),
  28. });
  29. }
  30. renderTableData = () => {
  31. return this.state.tbljenisPelanggaran.map((jp, index) => {
  32. return (
  33. <tr>
  34. <td>
  35. <label>{index + 1}</label>
  36. </td>
  37. <td>
  38. <div className="media align-items-center">
  39. <div className="media-body d-flex">
  40. <div>
  41. <p>{jp.Pelanggaran}</p>
  42. <p>TMT : {jp.TMTBulan} Bulan</p>
  43. <p>Level Pelanggaran : {jp.LabelSangsi}</p>
  44. </div>
  45. </div>
  46. </div>
  47. </td>
  48. <td>
  49. <div className="media align-items-center">
  50. <div className="media-body d-flex">
  51. <div>
  52. <p>{jp.Sangsi}</p>
  53. <p>Keterangan : {jp.KeteranganSangsi}</p>
  54. </div>
  55. </div>
  56. </div>
  57. </td>
  58. <td>
  59. <div className="checkbox c-checkbox">
  60. <label>
  61. {/* <input type="checkbox" checked={this.state.listA[index].checked} onChange={e => this.handleChange('listA', index)}/> */}
  62. <input
  63. //name="cb"{jp.idPelanggaran}
  64. type="checkbox"
  65. // checked={
  66. // jp.checked=true
  67. // }
  68. checked={this.state.tbljenisPelanggaran[jp.idPelanggaran].checked}
  69. //{this.state.listA[0].checked}
  70. onChange={(e) => this.onHandleChange("tbljenisPelanggaran", jp.idPelanggaran)}
  71. />
  72. <span className="fa fa-check"></span>
  73. </label>
  74. </div>
  75. </td>
  76. </tr>
  77. );
  78. });
  79. };
  80. render() {
  81. return (
  82. <Card className="card-default">
  83. <Table bordered hover responsive>
  84. <thead>
  85. <tr>
  86. <th>No</th>
  87. <th>Jenis Pelanggaran</th>
  88. <th>Sanksi</th>
  89. <th></th>
  90. </tr>
  91. </thead>
  92. <tbody>{this.renderTableData()}</tbody>
  93. </Table>
  94. </Card>
  95. );
  96. }
  97. }
  98. export default TablePenetapanSanksi;