diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue index 05f90db..b0d2b42 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue @@ -532,7 +532,7 @@ :hover-state-enabled="true" @selection-changed="onDataSubSelectionChanged" :column-width="100" - @exporting="onExporting" + @exporting="onExportingDetail" :allow-column-resizing="true" column-resizing-mode="widget" > @@ -867,17 +867,13 @@ import { DxSummary, DxTotalItem } from 'devextreme-vue/data-grid' -import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' -import { saveAs } from 'file-saver' -import { Workbook } from 'exceljs' -import { useQuery } from '@vue/apollo-composable' import { queries, requestGraphQl } from '@/utils/api/api.graphql' import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers' import DetailDialog from '@/components/Dialogs/DetailDialog.vue' import InputText from '@/components/InputText.vue' import { apolloClient } from '@/utils/api/api.graphql' import { provideApolloClient } from '@vue/apollo-composable' -import { exportToPDF } from '@/report/Gangguan/Rekap/RGangguan_PerPosko' +import { exportToPDF, exportToXLSX } from '@/report/Gangguan/Rekap/RGangguan_PerPosko' const client = apolloClient() provideApolloClient(client) @@ -955,21 +951,18 @@ const closeDialog = () => { const onExporting = (e: any) => { if (e.format === 'pdf') { exportToPDF(reportMeta.value, data.value) + } else if (e.format === 'xlsx') { + exportToXLSX(reportMeta.value, e) } else { - const workbook = new Workbook() - const worksheet = workbook.addWorksheet('Employees') + } +} - exportToExcel({ - component: e.component, - worksheet, - autoFilterEnabled: true - }).then(() => { - workbook.xlsx.writeBuffer().then((buffer: any) => { - saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx') - }) - }) - - e.cancel = true +const onExportingDetail = (e: any) => { + if (e.format === 'pdf') { + // exportToPDF(reportMeta.value, data.value) + } else if (e.format === 'xlsx') { + // exportToXLSX(reportMeta.value, e) + } else { } } diff --git a/src/report/Gangguan/Rekap/RGangguan_PerPosko.ts b/src/report/Gangguan/Rekap/RGangguan_PerPosko.ts index f711bd5..1dd31a9 100644 --- a/src/report/Gangguan/Rekap/RGangguan_PerPosko.ts +++ b/src/report/Gangguan/Rekap/RGangguan_PerPosko.ts @@ -431,4 +431,60 @@ const exportToPDF = (reportMeta: any, rawData: any, preview: boolean = false) => } } -export { exportToPDF } +const exportToXLSX = (reportMeta: any, e: any) => { + const meta = formatMetaData(reportMeta) + const workbook = new Workbook() + const worksheet = workbook.addWorksheet(`${reportName}`) + + setHeaderStyle(worksheet, 1, 1, 'PT. PLN(Persero)') + setHeaderStyle( + worksheet, + 2, + 1, + `UNIT INDUK : ${ + reportMeta.uid + ? reportMeta.uid.name.toUpperCase() + : 'Semua Unit Induk Distribusi/Wilayah'.toUpperCase() + }` + ) + setHeaderStyle( + worksheet, + 3, + 1, + `UNIT PELAKSANA PELAYANAN PELANGGAN : ${ + reportMeta.up3 + ? reportMeta.up3.name.toUpperCase() + : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'.toUpperCase() + }` + ) + + setHeaderStyle(worksheet, 7, 8, `${reportName}`.toUpperCase(), true) + setHeaderStyle( + worksheet, + 8, + 8, + `PERIODE TANGGAL : ${meta.dateFromFormat} SD TGL ${meta.dateToFormat}`, + true + ) + + worksheet.mergeCells('A1:F1') + worksheet.mergeCells('A2:F2') + worksheet.mergeCells('A3:F3') + worksheet.mergeCells('H7:J7') + worksheet.mergeCells('H8:J8') + + exportToExcel({ + component: e.component, + worksheet, + autoFilterEnabled: true, + topLeftCell: { row: 10, column: 1 } + }).then(() => { + workbook.xlsx.writeBuffer().then((buffer: any) => { + saveAs(new Blob([buffer], { type: 'application/octet-stream' }), `Laporan ${reportName}.xlsx`) + }) + }) + + e.cancel = true +} + +export { exportToPDF, exportToXLSX }