From 0710b2635d04ce6729b9fcce747085cc431a35e8 Mon Sep 17 00:00:00 2001 From: kur0nek-o Date: Mon, 22 Apr 2024 17:18:51 +0700 Subject: [PATCH 01/13] feat: create server-side request in daftar gangguan dialihkan ke posko lain --- .../Pages/Gangguan/Daftar/DGangguan_DKPL.vue | 299 ++++++++---------- src/types/requestParams.ts | 9 + src/utils/api/api.graphql.ts | 10 + 3 files changed, 154 insertions(+), 164 deletions(-) create mode 100644 src/types/requestParams.ts diff --git a/src/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue b/src/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue index 738482f..f3ceae3 100755 --- a/src/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue +++ b/src/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue @@ -1,14 +1,16 @@ diff --git a/src/report/Gangguan/Daftar/DGangguan_ResponseTime.ts b/src/report/Gangguan/Daftar/DGangguan_ResponseTime.ts index bf3d095..7b0e102 100644 --- a/src/report/Gangguan/Daftar/DGangguan_ResponseTime.ts +++ b/src/report/Gangguan/Daftar/DGangguan_ResponseTime.ts @@ -64,12 +64,13 @@ const formatMetaData = (reportMeta: any) => { } } -const exportToPDF = (reportMeta: any, data: any) => { +const exportToPDF = async (reportMeta: any, data: any) => { const meta = formatMetaData(reportMeta) const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) const date = new Date().getDate() const month = new Date().toLocaleString('id-ID', { month: 'long' }) const year = new Date().getFullYear() + const resultData = data.value.data const doc = new jsPDF({ orientation: 'landscape' }) @@ -150,7 +151,7 @@ const exportToPDF = (reportMeta: any, data: any) => { 'Posko' ] ], - body: data.value.map((item: any, i: any) => [ + body: resultData.map((item: any, i: any) => [ { content: ++i, styles: { halign: 'right' } }, item.no_laporan, item.waktu_lapor, @@ -217,12 +218,19 @@ const exportToPDF = (reportMeta: any, data: any) => { margin: { left: 230 } }) - doc.save(`Laporan ${reportName}.pdf`, { returnPromise: true }).then(() => { - console.log('pdf berhasil disimpan') - }) + await doc + .save(`Laporan ${reportName}.pdf`, { returnPromise: true }) + .then(() => { + console.log('PDF Exported') + }) + .catch((error) => { + console.error('Error while exporting PDF', error) + }) + + return true } -const exportToXLSX = (reportMeta: any, data: any, e: any) => { +const exportToXLSX = async (reportMeta: any, e: any) => { const meta = formatMetaData(reportMeta) const workbook = new Workbook() @@ -282,14 +290,11 @@ const exportToXLSX = (reportMeta: any, data: any, e: any) => { worksheet.mergeCells('H7:J7') worksheet.mergeCells('H8:J8') - exportToExcel({ + await exportToExcel({ component: e.component, worksheet, autoFilterEnabled: true, - topLeftCell: { row: 11, column: 1 }, - loadPanel: { - enabled: false - } + topLeftCell: { row: 11, column: 1 } }).then(() => { workbook.xlsx.writeBuffer().then((buffer: any) => { saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `Laporan ${reportName}.xlsx`) @@ -299,15 +304,16 @@ const exportToXLSX = (reportMeta: any, data: any, e: any) => { e.cancel = true } -const exportToDOCX = (reportMeta: any, data: any) => { +const exportToDOCX = async (reportMeta: any, data: any) => { const day = new Date().toLocaleString('id-ID', { weekday: 'long' }) const date = new Date().getDate() const month = new Date().toLocaleString('id-ID', { month: 'long' }) const year = new Date().getFullYear() const meta = formatMetaData(reportMeta) + const resultData = data.value.data const generateRows = () => { - return data.value.map((item: any, i: any) => { + return resultData.map((item: any, i: any) => { return new TableRow({ children: [ { text: `${++i}`, field: 'no' }, @@ -553,10 +559,17 @@ const exportToDOCX = (reportMeta: any, data: any) => { ] }) - Packer.toBlob(doc).then((blob) => { - saveAs(blob, `Laporan ${reportName}.docx`) - console.log('Document created successfully') - }) + await Packer.toBlob(doc) + .then((blob) => { + saveAs(blob, `Laporan ${reportName}.docx`) + + console.log('DOCX Exported') + }) + .catch((error) => { + console.error('Error while exporting DOCX', error) + }) + + return true } export { exportToPDF, exportToXLSX, exportToDOCX } diff --git a/src/utils/api/api.graphql.ts b/src/utils/api/api.graphql.ts index a649525..fc0367a 100755 --- a/src/utils/api/api.graphql.ts +++ b/src/utils/api/api.graphql.ts @@ -2416,6 +2416,60 @@ export const queries = { } } `, + ssdaftarGangguanResponseTime: gql` + query ssdaftarGangguanResponseTime( + $dateFrom: Date! + $dateTo: Date! + $posko: Int! + $idUid: Int! + $idUp3: Int! + $minDurasiResponseTime: Int! + $maxDurasiResponseTime: Int! + $skip: Int + $take: Int + $requireTotalCount: Boolean + $sort: [SortInput] + $filter: [FilterInput] + ) { + ssdaftarGangguanResponseTime( + dateFrom: $dateFrom + dateTo: $dateTo + minDurasiResponseTime: $minDurasiResponseTime + maxDurasiResponseTime: $maxDurasiResponseTime + posko: $posko + idUid: $idUid + idUp3: $idUp3 + skip: $skip + take: $take + requireTotalCount: $requireTotalCount + sort: $sort + filter: $filter + ) { + totalCount + data { + no_laporan + pembuat_laporan + waktu_lapor + waktu_response + waktu_recovery + durasi_response_time + durasi_recovery_time + status_akhir + is_marking + referensi_marking + idpel_nometer + nama_pelapor + alamat_pelapor + no_telp_pelapor + keterangan_pelapor + media + nama_posko + penyebab + tindakan + } + } + } + `, recoveryTime: gql` query daftarGangguanRecoveryTime( $dateFrom: Date! From b8867a1310cba9c5ad1556a947635d57c9b67e89 Mon Sep 17 00:00:00 2001 From: kur0nek-o Date: Sat, 4 May 2024 14:40:27 +0700 Subject: [PATCH 06/13] feat: implement server-side in daftar gangguan recovery time --- .../Daftar/DGangguan_RecoveryTime.vue | 369 +++++++++--------- .../Daftar/DGangguan_ResponseTime.vue | 2 +- .../Gangguan/Daftar/DGangguan_RecoveryTime.ts | 47 ++- src/utils/api/api.graphql.ts | 52 +++ 4 files changed, 273 insertions(+), 197 deletions(-) diff --git a/src/components/Pages/Gangguan/Daftar/DGangguan_RecoveryTime.vue b/src/components/Pages/Gangguan/Daftar/DGangguan_RecoveryTime.vue index 47e8182..03a0e66 100755 --- a/src/components/Pages/Gangguan/Daftar/DGangguan_RecoveryTime.vue +++ b/src/components/Pages/Gangguan/Daftar/DGangguan_RecoveryTime.vue @@ -1,5 +1,5 @@ diff --git a/src/components/Pages/Gangguan/Daftar/DGangguan_ResponseTime.vue b/src/components/Pages/Gangguan/Daftar/DGangguan_ResponseTime.vue index 9f69b0f..5b5cd92 100755 --- a/src/components/Pages/Gangguan/Daftar/DGangguan_ResponseTime.vue +++ b/src/components/Pages/Gangguan/Daftar/DGangguan_ResponseTime.vue @@ -1,5 +1,5 @@