feat: create export pdf, xlsx in monalisa rekapitulasi gangguan
This commit is contained in:
		| @@ -1,5 +1,6 @@ | ||||
| <template> | ||||
|   <Filters | ||||
|     @run-report="() => exportToPDF(reportMeta, data, true)" | ||||
|     @reset-form="data = []" | ||||
|     @run-search="() => filterData(filters)" | ||||
|     :report-button="true" | ||||
| @@ -7,6 +8,7 @@ | ||||
|   > | ||||
|     <Type2 @update:filters="(value) => (filters = value)" /> | ||||
|   </Filters> | ||||
|  | ||||
|   <div> | ||||
|     <DxDataGrid | ||||
|       ref="dataGridRef" | ||||
| @@ -379,18 +381,16 @@ import { | ||||
|   DxSelection, | ||||
|   DxSummary | ||||
| } from 'devextreme-vue/data-grid' | ||||
| import { jsPDF } from 'jspdf' | ||||
| import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' | ||||
| import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' | ||||
| import { saveAs } from 'file-saver' | ||||
| import { Workbook } from 'exceljs' | ||||
| import { useQuery } from '@vue/apollo-composable' | ||||
| import { getMonthName } from '@/utils/texts' | ||||
| import { queries, requestGraphQl } from '@/utils/api/api.graphql' | ||||
| import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers' | ||||
| import { apolloClient } from '@/utils/api/api.graphql' | ||||
| import { provideApolloClient } from '@vue/apollo-composable' | ||||
| import BufferDialog from '@/components/Dialogs/BufferDialog.vue' | ||||
| import { | ||||
|   exportToPDF, | ||||
|   exportToXLSX | ||||
| } from '@/report/Monalisa/Gangguan/Rekap/MonalisaGR_JumlahDDRPTRCTGangguan' | ||||
|  | ||||
| const client = apolloClient() | ||||
| provideApolloClient(client) | ||||
| @@ -408,6 +408,17 @@ const dialogDetail = ref(false) | ||||
| const closedialogDetail = () => (dialogDetail.value = false) | ||||
| const loadingData = ref(false) | ||||
| const loadingSubData = ref(false) | ||||
| const reportMeta = ref({ | ||||
|   regional: { id: 0, name: 'Semua Regional' }, | ||||
|   uid: { id: 0, name: 'Semua Unit Induk Distribusi/Wilayah' }, | ||||
|   up3: { id: 0, name: 'Semua Unit Pelaksanaan Pelayanan Pelanggan' }, | ||||
|   ulp: { id: 0, name: 'Semua Unit Layanan Pelanggan' }, | ||||
|   bulan: { id: new Date().getMonth(), name: getMonthName(new Date().getMonth()) }, | ||||
|   tahun: { id: new Date().getFullYear(), name: new Date().getFullYear().toString() }, | ||||
|   periode: '', | ||||
|   currentMonth: currentMonth.value, | ||||
|   currentYear: currentYear.value | ||||
| }) | ||||
|  | ||||
| const resetData = () => { | ||||
|   data.value = [] | ||||
| @@ -433,6 +444,18 @@ const filterData = async (params: any) => { | ||||
|       } else { | ||||
|         data.value = [] | ||||
|       } | ||||
|  | ||||
|       reportMeta.value = { | ||||
|         regional: regional, | ||||
|         uid: uid, | ||||
|         up3: up3, | ||||
|         ulp: ulp, | ||||
|         bulan: bulan, | ||||
|         tahun: tahun, | ||||
|         periode: `${bulan.name} ${tahun.name}`, | ||||
|         currentMonth: bulan.id, | ||||
|         currentYear: tahun.id | ||||
|       } | ||||
|     }) | ||||
|     .catch((err) => { | ||||
|       console.error(err) | ||||
| @@ -447,30 +470,10 @@ const filterData = async (params: any) => { | ||||
|  | ||||
| const onExporting = (e: any) => { | ||||
|   if (e.format === 'pdf') { | ||||
|     const doc = new jsPDF() | ||||
|  | ||||
|     exportToPdf({ | ||||
|       jsPDFDocument: doc, | ||||
|       component: e.component, | ||||
|       indent: 5 | ||||
|     }).then(() => { | ||||
|       doc.save(`.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 getDetail = async () => { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user