Files
sibedas/resources/js/report-payment-recaps/index.js
2025-03-12 00:32:50 +07:00

70 lines
2.4 KiB
JavaScript

import { Grid } from "gridjs/dist/gridjs.umd.js";
import "gridjs/dist/gridjs.umd.js";
import gridjs from "gridjs/dist/gridjs.umd.js";
import GlobalConfig, { addThousandSeparators } from "../global-config.js";
class ReportPaymentRecaps {
constructor() {
this.table = null;
this.initTableReportPaymentRecaps();
}
initTableReportPaymentRecaps() {
let tableContainer = document.getElementById(
"table-report-payment-recaps"
);
this.table = new Grid({
columns: [
{ name: "Kecamatan" },
{
name: "Total",
formatter: (cell) => addThousandSeparators(cell),
},
],
pagination: {
limit: 10,
server: {
url: (prev, page) =>
`${prev}${prev.includes("?") ? "&" : "?"}page=${
page + 1
}`,
},
},
sort: true,
server: {
url: `${GlobalConfig.apiHost}/api/report-payment-recaps`,
headers: {
Authorization: `Bearer ${document
.querySelector('meta[name="api-token"]')
.getAttribute("content")}`,
"Content-Type": "application/json",
},
then: (response) => {
console.log("API Response:", response); // Debugging
// Pastikan response memiliki data
if (
!response ||
!response.data ||
!Array.isArray(response.data.data)
) {
console.error("Error: Data is not an array", response);
return [];
}
return response.data.data.map((item) => [
item.kecamatan || "Unknown",
item.total,
]);
},
total: (response) => response.data.total || 0, // Ambil total dari API pagination
},
width: "auto",
fixedHeader: true,
}).render(tableContainer);
}
}
document.addEventListener("DOMContentLoaded", function (e) {
new ReportPaymentRecaps();
});