TableLaporan.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import Datatable from "@/components/Tables/Datatable";
  2. import { Button } from "reactstrap";
  3. import Link from "next/link";
  4. import moment from "moment";
  5. function TableLaporan({ listData }) {
  6. const sanksiMap = { 1: "Ringan", 2: "Sedang", 3: "Berat" };
  7. return (
  8. <div className="card b">
  9. <div className="card-body card-over">
  10. {listData && (
  11. <Datatable options={{ responsive: false }}>
  12. <table className="table w-100" data-order='[[3, "asc"]]'>
  13. <thead>
  14. <tr>
  15. <th>No.Laporan</th>
  16. <th>Deskripsi Laporan</th>
  17. <th>Status TMT</th>
  18. <th>Status</th>
  19. <th>Aksi</th>
  20. </tr>
  21. </thead>
  22. <tbody>
  23. {listData.map((data) => {
  24. return (
  25. <tr key={data._id}>
  26. {/* <td>{data.no_laporan}</td> */}
  27. <td>
  28. <div className="media align-items-center">
  29. <div className="media-body d-flex">
  30. <div>
  31. <p style={{ display: "none" }}>{data.createdAt}</p>
  32. <h4>{data.no_laporan}</h4>
  33. <p>{moment(data.createdAt).format("DD-MM-YYYY")}</p>
  34. </div>
  35. </div>
  36. </div>
  37. </td>
  38. <td>
  39. <div className="table-desc">
  40. <div className="media align-items-center">
  41. <div className="media-body d-flex">
  42. <div>
  43. <h4 className="m-0">{data.pt.nama.length > 65 ? data.pt.nama.substring(0, 65) + "..." : data.pt.nama}</h4>
  44. {/* <h4 className="m-0">{data.pt.nama}</h4> */}
  45. {/* <p>{data.keterangan.length > 200 ? data.keterangan.substring(0, 200) + "..." : data.keterangan}</p> */}
  46. <p className="w-105">{data.keterangan}</p>
  47. </div>
  48. </div>
  49. </div>
  50. </div>
  51. </td>
  52. <td>
  53. {data.sanksi?.masa_berlaku ? (
  54. new Date(data.sanksi?.masa_berlaku.to_date).getTime() + 86400000 > Date.now() ? <div className="badge badge-primary">Berlaku</div> : <div className="badge badge-warning">Tidak berlaku</div>
  55. ) : ""}
  56. </td>
  57. <td>{data.sanksi ? <div className="badge badge-green">Sudah ditetapkan</div> : <div className="badge badge-red">Belum ditetapkan</div>}
  58. {/* {data?.sanksi?.levelSanksi?
  59. <p>Sanksi Administratif :</p>
  60. :
  61. <p>
  62. ""
  63. </p>
  64. } */}
  65. {data?.sanksi?.levelSanksi && (
  66. <p>Sanksi Administratif : {sanksiMap[data?.sanksi?.levelSanksi]}</p>
  67. )}
  68. </td>
  69. {/* <td>{moment(data.createdAt).format("MM-DD-YYYY")}</td> */}
  70. <td>
  71. <div className="ml-auto">
  72. <Link
  73. href={{
  74. pathname: data.sanksi ? "/app/sanksi/detail" : "/app/sanksi/proses",
  75. query: { id: data.sanksi?._id || data._id },
  76. }}
  77. >
  78. <Button className="btn-login" color style={{ borderRadius: "7px" }}>
  79. <span className="font-color-white">
  80. {data.sanksi ? "Detail" : "Proses Sanksi"}
  81. </span>
  82. </Button>
  83. </Link>
  84. </div>
  85. </td>
  86. </tr>
  87. );
  88. })}
  89. </tbody>
  90. </table>
  91. </Datatable>
  92. )}
  93. </div>
  94. </div>
  95. );
  96. }
  97. export default TableLaporan;