fix error

This commit is contained in:
Dede Fuji Abdul
2024-03-07 22:50:12 +07:00
parent ce38a5711c
commit 11b1dd0cd8
54 changed files with 731 additions and 489 deletions

View File

@ -56,6 +56,7 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import Filters from '@/components/Form/Filters.vue' import Filters from '@/components/Form/Filters.vue'
import { Type1 } from '@/components/Form/FiltersType'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
@ -137,5 +138,4 @@ const { onResult, onError, loading, refetch } = useQuery(queries.cico.laporanChe
}) })
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -86,6 +86,7 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { dummyData } from '@/utils/dummy' import { dummyData } from '@/utils/dummy'
import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -93,7 +94,7 @@ const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const data = ref<any[]>([]) const data = ref<any[]>([])
const { onResult, onErr or, loading, refetch } = useQuery(qu eries.gangguan.daftar.berdasarkanMedia, { const { onResult, onError, loading, refetch } = useQuery(queries.gangguan.daftar.berdasarkanMedia, {
dateFrom: new Date().toISOString().slice(0, 10), dateFrom: new Date().toISOString().slice(0, 10),
dateTo: new Date().toISOString().slice(0, 10), dateTo: new Date().toISOString().slice(0, 10),
posko: 0, posko: 0,
@ -134,5 +135,4 @@ const filters = ref()
onMounted(() => { onMounted(() => {
data.value = dummyData.gangguan.daftar.daftarGangguanBerdasarkanMedia data.value = dummyData.gangguan.daftar.daftarGangguanBerdasarkanMedia
}) })
</script> </script>
@/utils/api/graphql

View File

@ -203,7 +203,7 @@ import InputText from '@/components/InputText.vue'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
import { dummyData } from '@/utils/dummy' import { dummyData } from '@/utils/dummy'
impo rt { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
const position = { of: '#dataTable' } const position = { of: '#dataTable' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -354,5 +354,4 @@ const filters = ref()
onMounted(() => { onMounted(() => {
data.value = dummyData.gangguan.daftar.dialihkanKePoskoLain data.value = dummyData.gangguan.daftar.dialihkanKePoskoLain
}) })
</script> </script>
@/utils/api/graphql

View File

@ -86,15 +86,16 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { dummyData } from '@/utils/dummy' import { dummyData } from '@/utils/dummy'
import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const data = ref < a ny[]> ([]) const data = ref<any[]>([])
const { onResult, onError, loading, refetch } = useQuery( const { onResult, onError, loading, refetch } = useQuery(
q ueries.gangguan.daftar.diselesaikanMobileAPKT, queries.gangguan.daftar.diselesaikanMobileAPKT,
{ {
dateFrom: new Date('2023-10-01').toISOString().slice(0, 10), dateFrom: new Date('2023-10-01').toISOString().slice(0, 10),
dateTo: new Date('2023-10-01').toISOString().slice(0, 10), dateTo: new Date('2023-10-01').toISOString().slice(0, 10),
@ -136,5 +137,4 @@ const filters = ref()
onMounted(() => { onMounted(() => {
data.value = dummyData.gangguan.daftar.daftarGangguanDiselesaikanMobileAPKT data.value = dummyData.gangguan.daftar.daftarGangguanDiselesaikanMobileAPKT
}) })
</script> </script>
@/utils/api/graphql

View File

@ -243,5 +243,4 @@ const filterData = (params: any) => {
onMounted(() => { onMounted(() => {
data.value = dummyData.gangguan.daftar.melaporLebihDariSatuKali data.value = dummyData.gangguan.daftar.melaporLebihDariSatuKali
}) })
</script> </script>
@/utils/api/graphql

View File

@ -196,7 +196,7 @@ import { queries } from '@/utils/api/api.graphql'
import { dummyData } from '@/utils/dummy' import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
cons t showIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const data = ref<any[]>([]) const data = ref<any[]>([])
@ -213,31 +213,33 @@ const showData = () => showDetail.value = true
const closeDetail = () => showDetail.value = false const closeDetail = () => showDetail.value = false
const filterData = (params: any) => { const filterData = (params: any) => {
const { minT maxTime, posko, uid, up3 } = params const { minTime, maxTime, posko, uid, up3 } = params
console.t(param console.table(params);
const dateValue = params.periode.split(' s/d ') const dateValue = params.periode.split(' s/d ')
refetch(dateFrom: dateValue[0] refetch({
? dateValue[0].sp '-').r se().join('-') dateFrom: dateValue[0]
? dateValue[0].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10),
dateTo: dateValue[1]
? dateValue[1].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10), : new Date().toISOString().slice(0, 10),
dateTo: dateValue[1]
? dateValue[1].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10),
minDurasiRecoveryTime: minTime ? minTime : 0, minDurasiRecoveryTime: minTime ? minTime : 0,
maxDurasiRecoveryTime: maxTime ? maxTime : 1, maxDurasiRecoveryTime: maxTime ? maxTime : 1,
posko: posko ? posko.id : 0, posko: posko ? posko.id : 0,
idUid: uid ? uid.id : 0, idUid: uid ? uid.id : 0,
idUp3: up3 ? up3.id : 0 idUp3: up3 ? up3.id : 0
})
onResult((queryResult) => {
if (queryResult.data != undefined) {
data.value = queryResult.data.daftarGangguanRecoveryTime
}
console.log(queryResult.loading)
console.log(queryResult.networkStatus)
})
onError((error) => {
console.log(error)
}) })
onResult((queryResult) => {
if (queryResult.data != undefined) {
data.value = queryResult.data.daftarGangguanRecoveryTime
}
console.log(queryResult.loading)
console.log(queryResult.networkStatus)
})
onError((error) => {
console.log(error)
})
} }
@ -256,4 +258,3 @@ onMounted(() => {
data.value = dummyData.gangguan.daftar.gangguanRecoveryTime data.value = dummyData.gangguan.daftar.gangguanRecoveryTime
}) })
</script> </script>
@/utils/api/graphql

View File

@ -182,14 +182,14 @@ import { queries } from '@/utils/api/api.graphql'
import { dummyData } from '@/utils/dummy' import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
cons t showIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const data = ref<any[]>([]) const data = ref<any[]>([])
const dataDetail = ref<any>({}) const dataDetail = ref<any>({})
const showDetail = ref(false) const showDetail = ref(false)
const onSelectionChanged = ({ selected RowsData }: any) => { const onSelectionChanged = ({ selectedRowsData }: any) => {
const data = selectedRowsData[0] const data = selectedRowsData[0]
dataDetail.value = data dataDetail.value = data
} }
@ -203,27 +203,27 @@ const filterData = (params: any) => {
const dateValue = params.periode.split(' s/d ') const dateValue = params.periode.split(' s/d ')
refetch({ refetch({
dateFrom: dateValue[0] dateFrom: dateValue[0]
? dateVa 0].split('-').reverse().join('-') ? dateValue[0].split('-').reverse().join('-')
: new Da.toISO ng().slice(0, 10), : new Date().toISOString().slice(0, 10),
dateTo: dateValue[1] dateTo: dateValue[1]
? dateValue split('-').reverse().join('-') ? dateValue[1].split('-').reverse().join('-')
: new Date(ISOStr).slice(0, 10), : new Date().toISOString().slice(0, 10),
minDurasiResponseTime: minTime ? minTime : 0, minDurasiResponseTime: minTime ? minTime : 0,
maxDurasiResponseTime: maxTime ? maxTime : 1, maxDurasiResponseTime: maxTime ? maxTime : 1,
posko: posko ? posko.id : 0, posko: posko ? posko.id : 0,
idUid: uid ? uid.id : 0, idUid: uid ? uid.id : 0,
idUp3: up3 ? up3.id : 0 idUp3: up3 ? up3.id : 0
})
onResult((queryResult) => {
if (queryResult.data != undefined) {
data.value = queryResult.data.daftarGangguanResponseTime
}
console.log(queryResult.loading)
console.log(queryResult.networkStatus)
})
onError((error) => {
console.log(error)
}) })
onResult((queryResult) => {
if (queryResult.data != undefined) {
data.value = queryResult.data.daftarGangguanResponseTime
}
console.log(queryResult.loading)
console.log(queryResult.networkStatus)
})
onError((error) => {
console.log(error)
})
} }
const { onResult, onError, loading, refetch } = useQuery(queries.gangguan.daftar.responseTime, { const { onResult, onError, loading, refetch } = useQuery(queries.gangguan.daftar.responseTime, {
@ -241,4 +241,3 @@ onMounted(() => {
data.value = dummyData.gangguan.daftar.gangguanResponseTime data.value = dummyData.gangguan.daftar.gangguanResponseTime
}) })
</script> </script>
@/utils/api/graphql

View File

@ -70,14 +70,13 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Filters from '@/components/Form/Filters.vue'; import Filters from '@/components/Form/Filters.vue'
import { useQuery } from '@vue/apollo-composable'; import Type1 from '@/components/Form/FiltersType/Type1.vue'
import { queries } from '@/utils/api/api.graphql'; import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { dummyData } from '@/utils/dummy'; import { onMounted, ref } from 'vue'
i t from '@ nents/Form/FiltersType/Type1.vue' import { DxDataGrid } from 'devextreme-vue'
m / F rs eferenc ort { onMounted, ref } from 'vue rt { DxDataG from 'devextreme - vue' import {
impo DxColumn,
xColumn,
DxExport, DxExport,
DxLoadPanel, DxLoadPanel,
DxPager, DxPager,
@ -85,6 +84,9 @@ xColumn,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql'
import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -100,7 +102,7 @@ const { onResult, onError, loading, refetch } = useQuery(queries.gangguan.daftar
idUp3: 0 idUp3: 0
}) })
c onst filterData = (params: any) => { const filterData = (params: any) => {
const { posko, uid, up3 } = params const { posko, uid, up3 } = params
const dateValue = params.periode.split(' s/d ') const dateValue = params.periode.split(' s/d ')
refetch({ refetch({
@ -114,14 +116,14 @@ c onst filterData = (params: any) => {
idUid: uid ? uid.id : 0, idUid: uid ? uid.id : 0,
idUp3: up3 ? up3.id : 0 idUp3: up3 ? up3.id : 0
}) })
onResult((queryRe) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
data.value = quer ult.data.daftarGangguanSelesaiTanpaIdPelanggan data.value = queryResult.data.daftarGangguanSelesaiTanpaIdPelanggan
}
c le.log(queryResult.data) console.log(queryResult.data)
console.log(queryResult.loading) console.log(queryResult.loading)
console.log(queryResult.networkStatus) console.log(queryResult.networkStatus)
}) })
onError((error) => { onError((error) => {
console.log(error) console.log(error)
}) })
@ -132,4 +134,3 @@ onMounted(() => {
data.value = dummyData.gangguan.daftar.daftarGangguanSelesaiTanpaIdPelanggan data.value = dummyData.gangguan.daftar.daftarGangguanSelesaiTanpaIdPelanggan
}) })
</script> </script>
@/utils/api/graphql

View File

@ -85,10 +85,10 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apoll o-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
import { dummyData } from "@/ut " import { dummyData } from '@/utils/dummy'
import { formatNumber, isNumber } from '@/utils /numbers' import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -169,5 +169,4 @@ const filters = ref()
onMounted(() => { onMounted(() => {
data.value = dummyData.gangguan.rekap.rekapitulasiGangguanAlihPosko data.value = dummyData.gangguan.rekap.rekapitulasiGangguanAlihPosko
}) })
</script> </script>
@/utils/api/graphql

View File

@ -91,12 +91,14 @@ import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
import { formatPercentage, isNumber } from '@/utils/numbers' import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers'
import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = const showIndicator = ref(true)
const shading = ref(true) wPane = ref(true) const shading = ref(true)
const onExpo rting = (e: any) => { const showPane = ref(true)
const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const doc = new jsPDF() const doc = new jsPDF()
@ -172,5 +174,4 @@ const filters = ref()
onMounted(() => { onMounted(() => {
data.value = dummyData.gangguan.rekap.rekapitulasiGangguanBerdasarkanMedia data.value = dummyData.gangguan.rekap.rekapitulasiGangguanBerdasarkanMedia
}) })
</script> </script>
@/utils/api/graphql

View File

@ -143,5 +143,4 @@ const filterData = (params: any) => {
}) })
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -180,86 +180,85 @@ import {
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-save r' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs ' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apo llo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { const position = { of: '#data' }
of: '#data showIndicator = ref(true) const showIndicator = ref(true)
ing = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const doc = new jsPDF() const doc = new jsPDF()
exportToPdf({ exportToPdf({
jsPDFDocument: doc, jsPDFDocument: doc,
component: e.component, component: e.component,
indent: 5 indent: 5
}).then(() => { }).then(() => {
doc.save(`.pdf`) doc.save(`.pdf`)
})
} 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')
}) })
} else { })
const workbook = new Workbook()
const worksheet = workbook.addWorksheet('Employees')
exportToExcel({ e.cancel = true
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 onSelectionChanged = ({ selectedRowsData }: any) => { const onSelectionChanged = ({ selectedRowsData }: any) => {
const data = selectedRowsData[0] const data = selectedRowsData[0]
console.log(data) console.log(data)
} }
const data = ref<any[]>([]) const data = ref<any[]>([])
const { onResult, onError, loading, refetch } = useQuery( const { onResult, onError, loading, refetch } = useQuery(
queries.gangguan.rekap.gangguanDiselesaikanMobileAPKT, queries.gangguan.rekap.gangguanDiselesaikanMobileAPKT,
{ {
dateFrom: new Date('2023-10-01').toISOString().slice(0, 10), dateFrom: new Date('2023-10-01').toISOString().slice(0, 10),
dateTo: new Date('2023-10-01').toISOString().slice(0, 10), dateTo: new Date('2023-10-01').toISOString().slice(0, 10),
posko: 0, posko: 0,
idUid: 0, idUid: 0,
idUp3: 0 idUp3: 0
}
)
const filterData = (params: any) => {
const dateValue = params.periode.split(' s/d ')
const { posko, uid, up3 } = params
refetch({
dateFrom: dateValue[0]
? dateValue[0].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10),
dateTo: dateValue[1]
? dateValue[1].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10),
posko: posko ? posko.id : 0,
idUid: uid ? uid.id : 0,
idUp3: up3 ? up3.id : 0
})
const filters = useFiltersStore()
onResult((queryResult) => {
if (queryResult.data != undefined) {
data.value = queryResult.data.rekapitulasiGangguanDiselesaikanMobileAPKT
}
console.log(queryResult.data)
console.log(queryResult.loading)
console.log(queryResult.networkStatus)
})
onError((error) => {
console.log(error)
})
} }
)
const filterData = (params: any) => {
const dateValue = params.periode.split(' s/d ')
const { posko, uid, up3 } = params
refetch({
dateFrom: dateValue[0]
? dateValue[0].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10),
dateTo: dateValue[1]
? dateValue[1].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10),
posko: posko ? posko.id : 0,
idUid: uid ? uid.id : 0,
idUp3: up3 ? up3.id : 0
})
const filters = useFiltersStore()
onResult((queryResult) => {
if (queryResult.data != undefined) {
data.value = queryResult.data.rekapitulasiGangguanDiselesaikanMobileAPKT
}
console.log(queryResult.data)
console.log(queryResult.loading)
console.log(queryResult.networkStatus)
})
onError((error) => {
console.log(error)
})
}
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -172,6 +172,9 @@ import {
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_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 { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
import { dummyData } from '@/utils/dummy' import { dummyData } from '@/utils/dummy'
import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers' import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers'
@ -344,4 +347,3 @@ onMounted(() => {
) )
}) })
</script> </script>
@/utils/api/graphql

View File

@ -124,6 +124,7 @@ import {
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
@ -132,16 +133,16 @@ import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
import { dummyData } from '@/utils/dummy' import { dummyData } from '@/utils/dummy'
import { formatNumber, formatPercentage, isNumber } from '@/utils/n umbers' import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers'
const position = { of: '#dat a' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const data = ref<any[]>([]) const data = ref<any[]>([])
cons ing = (e: any) => { const onExporting = (e: any) => {
if ( == 'pdf') { if (e.format === 'pdf') {
const doc = ne w jsPDF() const doc = new jsPDF()
exportToPdf({ exportToPdf({
jsPDFDocument: doc, jsPDFDocument: doc,
@ -212,4 +213,3 @@ onMounted(() => {
data.value = dummyData.gangguan.rekap.rekapitulasiJenisGangguanSE004 data.value = dummyData.gangguan.rekap.rekapitulasiJenisGangguanSE004
}) })
</script> </script>
@/utils/api/graphql

View File

@ -147,5 +147,4 @@ const filterData = (params: any) => {
}) })
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -205,12 +205,11 @@ import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs ' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apo llo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from f import { queries } from '@/utils/api/api.graphql'
import { dummyData } from '@/utils/dummy' import { dummyData } from '@/utils/dummy'
import { formatNumber, isNumber } from '@ bers' import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers'
om '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -372,4 +371,3 @@ onMounted(() => {
}) })
}) })
</script> </script>
@/utils/api/graphql

View File

@ -374,5 +374,4 @@ onMounted(() => {
} }
}) })
}) })
</script> </script>
@/utils/api/graphql

View File

@ -211,5 +211,4 @@ const filters = ref({ groupBy: false })
onMounted(() => { onMounted(() => {
data.value = dummyData.gangguan.rekap.rekapitulasiGangguanPerTanggal data.value = dummyData.gangguan.rekap.rekapitulasiGangguanPerTanggal
}) })
</script> </script>
@/utils/api/graphql

View File

@ -195,5 +195,4 @@ const filterData = (params: any) => {
}) })
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -161,5 +161,4 @@ const filterData = (params: any) => {
}) })
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -157,22 +157,22 @@ import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxLoadPanel, DxLoadPanel,
DxPager, DxPager,
DxPaging, DxPaging,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from f import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
om 'file-saver'
im port { useQuery } from '@vue/apollo-composable'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -182,18 +182,23 @@ const dataDetail = ref<any>()
const showDetail = ref(false) const showDetail = ref(false)
const closeDetail = () => { const closeDetail = () => {
value = false showDetail.value = false
} }
const showData = () => { const showData = () => {
lue = true showDetail.value = true
} }
const onSelectionChanged = ({ sele : any) taDetail.value = sta[0] const onSelectionChanged = ({ selectedRowsData }: any) => {
dataDetail.value = selectedRowsData[0]
console.log(selectedRowsData[0]) console.log(selectedRowsData[0])
} }
ting = (e: any) => {
if (e.format === 'pdf') { = new exportToPdf({ const onExporting = (e: any) => {
if (e.format === 'pdf') {
const doc = new jsPDF()
exportToPdf({
jsPDFDocument: doc, jsPDFDocument: doc,
component: e.component, component: e.component,
indent: 5 indent: 5
@ -258,4 +263,3 @@ const filterData = (params: any) => {
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -88,14 +88,14 @@ import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxLoadPanel, DxLoadPanel,
DxPager, DxPager,
DxPaging, DxPaging,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -192,5 +192,4 @@ const filters = ref()
onMounted(() => { onMounted(() => {
data.value = dummyData.keluhan.daftar.daftarKeluhanDialihkanKeUnitLain data.value = dummyData.keluhan.daftar.daftarKeluhanDialihkanKeUnitLain
}) })
</script> </script>
@/utils/api/graphql

View File

@ -161,26 +161,27 @@ import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxLoadPanel, DxLoadPanel,
DxPager, DxPager,
DxPaging, DxPaging,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'fil e-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'e xceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@v ue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: const position = { of: '#data' }
const showIndicator = ref st shading = ref(true) const showIndicator = ref(true)
const s howPane = ref(true) const shading = ref(true)
const showPane = ref(true)
const dataDetail = ref<any>() const dataDetail = ref<any>()
const showDetail = ref(false) const showDetail = ref(false)

View File

@ -87,16 +87,16 @@
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3>
<InputText :readonly="true" :value="parseInt(dataDetail?.durasi_response_time) <InputText :readonly="true" :value="parseInt(dataDetail?.durasi_response_time)
? formatWaktu(dataDetail?.durasi_response_time) ? formatWaktu(dataDetail?.durasi_response_time)
: '-' : '-'
" class-name="flex-1" /> " class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3>
<InputText :readonly="true" :value="parseInt(dataDetail?.durasi_recovery_time) <InputText :readonly="true" :value="parseInt(dataDetail?.durasi_recovery_time)
? formatWaktu(dataDetail?.durasi_recovery_time) ? formatWaktu(dataDetail?.durasi_recovery_time)
: '-' : '-'
" class-name="flex-1" /> " class-name="flex-1" />
</div> </div>
@ -164,6 +164,7 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
@ -176,16 +177,22 @@ const showPane = ref(true)
const dataDetail = ref<any>() const dataDetail = ref<any>()
const showDetail = ref(false) const showDetail = ref(false)
const closeDetai showDetail.value = false const closeDetail = () => {
showDetail.value = false
} }
const showData howDetail.value = true const showData = () => {
showDetail.value = true
} }
const onSelectionChang edRows y) => { const onSelectionChanged = ({ selectedRowsData }: any) => {
dataDetalectedRowsData[0] dataDetail.value = selectedRowsData[0]
console.log(selectedRow onst onExporting = (e: any) => { console.log(selectedRowsData[0])
if (e.format con ew jsPDF() }
const onExporting = (e: any) => {
if (e.format === 'pdf') {
const doc = new jsPDF()
exportToPdf({ exportToPdf({
jsPDFDocument: doc, jsPDFDocument: doc,
@ -200,16 +207,16 @@ const onSelectionChang edRows y) => {
exportToExcel({ exportToExcel({
component: e.component, component: e.component,
worksheet, worksheet,
autoFilterEnabled: true autoFilterEnabled: true
}).then(() => { }).then(() => {
workbook.xlsx.writeBuffer().then((buffer: any) => { workbook.xlsx.writeBuffer().then((buffer: any) => {
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx') saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx')
})
}) })
})
e.cancel = true e.cancel = true
} }
} }
const data = ref<any[]>([]) const data = ref<any[]>([])

View File

@ -87,16 +87,16 @@
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3>
<InputText :readonly="true" :value="parseInt(dataDetail?.durasi_response_time) <InputText :readonly="true" :value="parseInt(dataDetail?.durasi_response_time)
? formatWaktu(dataDetail?.durasi_response_time) ? formatWaktu(dataDetail?.durasi_response_time)
: '-' : '-'
" class-name="flex-1" /> " class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3>
<InputText :readonly="true" :value="parseInt(dataDetail?.durasi_recovery_time) <InputText :readonly="true" :value="parseInt(dataDetail?.durasi_recovery_time)
? formatWaktu(dataDetail?.durasi_recovery_time) ? formatWaktu(dataDetail?.durasi_recovery_time)
: '-' : '-'
" class-name="flex-1" /> " class-name="flex-1" />
</div> </div>
@ -164,8 +164,10 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { saveAs } from 'fil e-saver' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
@ -179,16 +181,22 @@ const closeDetail = () => {
showDetail.value = false showDetail.value = false
} }
const showData = () tail.value = true const showData = () => {
showDetail.value = true
} }
const onSelectionChang edRowsData }: any) => { const onSelectionChanged = ({ selectedRowsData }: any) => {
dataDetail.value = sel 0] dataDetail.value = selectedRowsData[0]
c(selectedRowsData[onExporting = (e: any) => { console.log(selectedRowsData[0])
if (e.format const doc = new jsPDF() }
const onExporting = (e: any) => {
if (e.format === 'pdf') {
const doc = new jsPDF()
exportToPdf({ exportToPdf({
ent: d component: e.component, jsPDFDocument: doc,
component: e.component,
indent: 5 indent: 5
}).then(() => { }).then(() => {
doc.save(`.pdf`) doc.save(`.pdf`)
@ -199,16 +207,16 @@ const onSelectionChang edRowsData }: any) => {
exportToExcel({ exportToExcel({
component: e.component, component: e.component,
worksheet, worksheet,
autoFilterEnabled: true autoFilterEnabled: true
}).then(() => { }).then(() => {
workbook.xlsx.writeBuffer().then((buffer: any) => { workbook.xlsx.writeBuffer().then((buffer: any) => {
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx') saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx')
})
}) })
})
e.cancel = true e.cancel = true
} }
} }
const data = ref<any[]>([]) const data = ref<any[]>([])

View File

@ -154,18 +154,20 @@ import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxLoadPanel, DxLoadPanel,
DxPager, DxPager,
DxPaging, DxPaging,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'e xceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
@ -176,16 +178,22 @@ const showPane = ref(true)
const dataDetail = ref<any>() const dataDetail = ref<any>()
const showDetail = ref(false) const showDetail = ref(false)
const closeDetail howDetail.value = false const closeDetail = () => {
showDetail.value = false
} }
const showData = wDetail.value = true const showData = () => {
showDetail.value = true
} }
const onSelectionChanged RowsDa => { const onSelectionChanged = ({ selectedRowsData }: any) => {
dataDetailctedRowsData[0] dataDetail.value = selectedRowsData[0]
console.log(selectedRowsD st onExporting = (e: any) => { console.log(selectedRowsData[0])
if (e.format == const jsPDF() }
const onExporting = (e: any) => {
if (e.format === 'pdf') {
const doc = new jsPDF()
exportToPdf({ exportToPdf({
jsPDFDocument: doc, jsPDFDocument: doc,
@ -252,4 +260,3 @@ const filterData = (params: any) => {
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -63,26 +63,27 @@ import Type3 from '@/components/Form/FiltersType/Type3.vue'
import { ref } from 'vue' import { ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxLoadPanel, DxLoadPanel,
DxPager, DxPager,
DxPaging, DxPaging,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const sh owIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
cons t showPane = ref(true) const showPane = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const doc = new jsPDF() const doc = new jsPDF()
@ -103,16 +104,23 @@ const onExporting = (e: any) => {
worksheet, worksheet,
autoFilterEnabled: true autoFilterEnabled: true
}).then(() => { }).then(() => {
workbook.xlsx.writeBuffer().then((buf{ workbook.xlsx.writeBuffer().then((buffer: any) => {
saveAs(new Blob([buffer], { type: octet-stream' }), 'DataGrid.xlsx') saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx')
}) })
el = t })
const onSelectionselectedRowsData }: any) => {
const data Data[0] e.cancel = true
}
}
const onSelectionChanged = ({ selectedRowsData }: any) => {
const data = selectedRowsData[0]
console.log(data) console.log(data)
} }
const data = ref< nst { onError, loading, refetch } = useQuery(queries.keluhan.daftar.keluhanDiselesaikanCC123, { const data = ref<any[]>([])
const { onResult, onError, loading, refetch } = useQuery(queries.keluhan.daftar.keluhanDiselesaikanCC123, {
dateFrom: new Date('2023-10-01').toISOString().slice(0, 10), dateFrom: new Date('2023-10-01').toISOString().slice(0, 10),
dateTo: new Date('2023-10-01').toISOString().slice(0, 10), dateTo: new Date('2023-10-01').toISOString().slice(0, 10),
idUlp: 0, idUlp: 0,

View File

@ -205,13 +205,13 @@ import Type3 from '@/components/Form/FiltersType/Type3.vue'
import { ref } from 'vue' import { ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxLoadPanel, DxPaging, DxLoadPanel, DxPaging,
DxScrolling, DxScrolling,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -315,5 +315,4 @@ const filterData = (params: any) => {
console.log(error) console.log(error)
}) })
} }
</script> </script>
@/utils/api/graphql

View File

@ -73,7 +73,7 @@ const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const d oc = new jsPDF() const doc = new jsPDF()
exportToPdf({ exportToPdf({
jsPDFDocument: doc, jsPDFDocument: doc,

View File

@ -1,25 +1,58 @@
<template> <template>
<Filters @reset-form="data = []" @run-search="() => filterData(filters)" :report-button="true" class="mb-4"> <Filters
@reset-form="data = []"
@run-search="() => filterData(filters)"
:report-button="true"
class="mb-4"
>
<Type13 @update:filters="(value) => filters = value" /> <Type13 @update:filters="(value) => filters = value" />
</Filters> </Filters>
<div id="data"> <div id="data">
<DxDataGrid class="max-h-[calc(100vh-140px)] mb-10" :data-source="data" :show-column-lines="true" <DxDataGrid
:show-row-lines="false" :show-borders="true" :row-alternation-enabled="true" :hover-state-enabled="true" class="max-h-[calc(100vh-140px)] mb-10"
@selection-changed="onSelectionChanged" :column-width="100" @exporting="onExporting" :allow-column-resizing="true" :data-source="data"
column-resizing-mode="widget" :word-wrap-enabled="true"> :show-column-lines="true"
:show-row-lines="false"
:show-borders="true"
:row-alternation-enabled="true"
:hover-state-enabled="true"
@selection-changed="onSelectionChanged"
:column-width="100"
@exporting="onExporting"
:allow-column-resizing="true"
column-resizing-mode="widget"
:word-wrap-enabled="true"
>
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
<DxLoadPanel :position="position" :show-indicator="showIndicator" :show-pane="showPane" :shading="shading" <DxLoadPanel
v-if="loading" v-model:visible="loading" :enabled="true" /> :position="position"
:show-indicator="showIndicator"
:show-pane="showPane"
:shading="shading"
v-if="loading"
v-model:visible="loading"
:enabled="true"
/>
<DxSearchPanel :visible="true" :highlight-case-sensitive="true" /> <DxSearchPanel :visible="true" :highlight-case-sensitive="true" />
<DxExport :enabled="true" :formats="['pdf', 'xlsx', 'document']" :allow-export-selected-data="false" /> <DxExport
:enabled="true"
:formats="['pdf', 'xlsx', 'document']"
:allow-export-selected-data="false"
/>
<DxColumnFixing :enabled="true" /> <DxColumnFixing :enabled="true" />
<DxColumn css-class="custom-table-column" :width="100" alignment="center" <DxColumn
:calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" data-type="number" data-field="no" css-class="custom-table-column"
caption="No" /> :width="100"
alignment="center"
:calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1"
data-type="number"
data-field="no"
caption="No"
/>
<!-- <DxColumn <!-- <DxColumn
:width="120" :width="120"
alignment="center" alignment="center"
@ -30,84 +63,284 @@
name="NamaUID" name="NamaUID"
v-if="filters.groupBy" v-if="filters.groupBy"
/> --> /> -->
<DxColumn :width="170" alignment="center" data-field="fungsi_bidang" caption="Fungsi Bidang" <DxColumn
css-class="custom-table-column" cell-template="cell-left" /> :width="170"
alignment="center"
data-field="fungsi_bidang"
caption="Fungsi Bidang"
css-class="custom-table-column"
cell-template="cell-left"
/>
<DxColumn alignment="center" caption="Laporan" css-class="custom-table-column"> <DxColumn alignment="center" caption="Laporan" css-class="custom-table-column">
<DxColumn :width="150" alignment="center" data-field="total" data-type="number" caption="Total" <DxColumn
css-class="custom-table-column" /> :width="150"
alignment="center"
data-field="total"
data-type="number"
caption="Total"
css-class="custom-table-column"
/>
<DxColumn alignment="center" caption="Sudah Selesai" css-class="custom-table-column"> <DxColumn alignment="center" caption="Sudah Selesai" css-class="custom-table-column">
<DxColumn :width="150" alignment="center" data-field="total_selesai" data-type="number" caption="Jml" <DxColumn
css-class="custom-table-column" /> :width="150"
<DxColumn :width="150" alignment="center" data-field="persen_selesai" data-type="number" caption="%" alignment="center"
css-class="custom-table-column" cell-template="percent" /> data-field="total_selesai"
data-type="number"
caption="Jml"
css-class="custom-table-column"
/>
<DxColumn
:width="150"
alignment="center"
data-field="persen_selesai"
data-type="number"
caption="%"
css-class="custom-table-column"
cell-template="percent"
/>
</DxColumn> </DxColumn>
<DxColumn alignment="center" caption="Belum Selesai" css-class="custom-table-column"> <DxColumn alignment="center" caption="Belum Selesai" css-class="custom-table-column">
<DxColumn :width="150" alignment="center" data-field="total_inproses" data-type="number" caption="Jml" <DxColumn
css-class="custom-table-column" /> :width="150"
<DxColumn :width="150" alignment="center" data-field="persen_inproses" data-type="number" caption="%" alignment="center"
css-class="custom-table-column" cell-template="percent" /> data-field="total_inproses"
data-type="number"
caption="Jml"
css-class="custom-table-column"
/>
<DxColumn
:width="150"
alignment="center"
data-field="persen_inproses"
data-type="number"
caption="%"
css-class="custom-table-column"
cell-template="percent"
/>
</DxColumn> </DxColumn>
</DxColumn> </DxColumn>
<DxColumn alignment="center" caption="Response Time" css-class="custom-table-column"> <DxColumn alignment="center" caption="Response Time" css-class="custom-table-column">
<DxColumn alignment="center" caption="Hari" css-class="custom-table-column"> <DxColumn alignment="center" caption="Hari" css-class="custom-table-column">
<DxColumn :width="150" alignment="center" data-field="total_durasi_response" data-type="number" <DxColumn
caption="Total" css-class="custom-table-column" /> :width="150"
<DxColumn :width="150" alignment="center" data-field="avg_durasi_response" data-type="number" alignment="center"
caption="Rata-Rata" css-class="custom-table-column" /> data-field="total_durasi_response"
<DxColumn :width="150" alignment="center" data-field="min_durasi_response" data-type="number" caption="Max" data-type="number"
css-class="custom-table-column" cell-template="data-waktu" /> caption="Total"
<DxColumn :width="150" alignment="center" data-field="max_durasi_response" data-type="number" caption="Min" css-class="custom-table-column"
css-class="custom-table-column" cell-template="data-waktu" /> />
<DxColumn
:width="150"
alignment="center"
data-field="avg_durasi_response"
data-type="number"
caption="Rata-Rata"
css-class="custom-table-column"
/>
<DxColumn
:width="150"
alignment="center"
data-field="min_durasi_response"
data-type="number"
caption="Max"
css-class="custom-table-column"
cell-template="data-waktu"
/>
<DxColumn
:width="150"
alignment="center"
data-field="max_durasi_response"
data-type="number"
caption="Min"
css-class="custom-table-column"
cell-template="data-waktu"
/>
</DxColumn> </DxColumn>
<DxColumn alignment="center" caption="Laporan" css-class="custom-table-column"> <DxColumn alignment="center" caption="Laporan" css-class="custom-table-column">
<DxColumn :width="150" alignment="center" data-field="total_diatas_sla_response" data-type="number" <DxColumn
caption=">SLA" css-class="custom-table-column" /> :width="150"
<DxColumn :width="150" alignment="center" data-field="total_dibawah_sla_response" data-type="number" alignment="center"
caption="SLA" css-class="custom-table-column" /> data-field="total_diatas_sla_response"
data-type="number"
caption=">SLA"
css-class="custom-table-column"
/>
<DxColumn
:width="150"
alignment="center"
data-field="total_dibawah_sla_response"
data-type="number"
caption="SLA"
css-class="custom-table-column"
/>
</DxColumn> </DxColumn>
</DxColumn> </DxColumn>
<DxColumn alignment="center" caption="Penyelesaian" css-class="custom-table-column"> <DxColumn alignment="center" caption="Penyelesaian" css-class="custom-table-column">
<DxColumn alignment="center" caption="Hari" css-class="custom-table-column"> <DxColumn alignment="center" caption="Hari" css-class="custom-table-column">
<DxColumn :width="150" alignment="center" data-field="total_durasi_recovery" data-type="number" <DxColumn
caption="Total" css-class="custom-table-column" /> :width="150"
<DxColumn :width="150" alignment="center" data-field="avg_durasi_recovery" data-type="number" alignment="center"
caption="Rata-Rata" css-class="custom-table-column" /> data-field="total_durasi_recovery"
<DxColumn :width="150" alignment="center" data-field="max_durasi_recovery" data-type="number" caption="Max" data-type="number"
css-class="custom-table-column" cell-template="data-waktu" /> caption="Total"
<DxColumn :width="150" alignment="center" data-field="min_durasi_recovery" data-type="number" caption="Min" css-class="custom-table-column"
css-class="custom-table-column" cell-template="data-waktu" /> />
<DxColumn
:width="150"
alignment="center"
data-field="avg_durasi_recovery"
data-type="number"
caption="Rata-Rata"
css-class="custom-table-column"
/>
<DxColumn
:width="150"
alignment="center"
data-field="max_durasi_recovery"
data-type="number"
caption="Max"
css-class="custom-table-column"
cell-template="data-waktu"
/>
<DxColumn
:width="150"
alignment="center"
data-field="min_durasi_recovery"
data-type="number"
caption="Min"
css-class="custom-table-column"
cell-template="data-waktu"
/>
</DxColumn> </DxColumn>
<DxColumn alignment="center" caption="Laporan" css-class="custom-table-column"> <DxColumn alignment="center" caption="Laporan" css-class="custom-table-column">
<DxColumn :width="150" alignment="center" data-field="total_diatas_sla_recovery" data-type="number" <DxColumn
caption=">SLA" css-class="custom-table-column" /> :width="150"
<DxColumn :width="150" alignment="center" data-field="total_dibawah_sla_recovery" data-type="number" alignment="center"
caption="SLA" css-class="custom-table-column" /> data-field="total_diatas_sla_recovery"
data-type="number"
caption=">SLA"
css-class="custom-table-column"
/>
<DxColumn
:width="150"
alignment="center"
data-field="total_dibawah_sla_recovery"
data-type="number"
caption="SLA"
css-class="custom-table-column"
/>
</DxColumn> </DxColumn>
</DxColumn> </DxColumn>
<DxSummary> <DxSummary>
<DxTotalItem summary-type="sum" display-format="Total" show-in-column="no" css-class="text-white" /> <DxTotalItem
<DxTotalItem summary-type="sum" display-format="{0}" column="total" css-class="text-white" /> summary-type="sum"
<DxTotalItem summary-type="sum" display-format="{0}" column="total_selesai" css-class="text-white" /> display-format="Total"
<DxTotalItem summary-type="sum" display-format="{0}%" column="persen_selesai" css-class="text-white" /> show-in-column="no"
<DxTotalItem summary-type="sum" display-format="{0}" column="total_inproses" css-class="text-white" /> css-class="text-white"
<DxTotalItem summary-type="sum" display-format="{0}%" column="persen_inproses" css-class="text-white" /> />
<DxTotalItem summary-type="sum" display-format="{0}" column="total_durasi_response" css-class="text-white" /> <DxTotalItem
<DxTotalItem summary-type="sum" display-format="{0}" column="avg_durasi_response" css-class="text-white" /> summary-type="sum"
<DxTotalItem summary-type="sum" display-format="{0}" column="min_durasi_response" css-class="text-white" /> display-format="{0}"
<DxTotalItem summary-type="sum" display-format="{0}" column="max_durasi_response" css-class="text-white" /> column="total"
<DxTotalItem summary-type="sum" display-format="{0}" column="total_diatas_sla_response" css-class="text-white"
css-class="text-white" /> />
<DxTotalItem summary-type="sum" display-format="{0}" column="total_dibawah_sla_response" <DxTotalItem
css-class="text-white" /> summary-type="sum"
<DxTotalItem summary-type="sum" display-format="{0}" column="total_durasi_recovery" css-class="text-white" /> display-format="{0}"
<DxTotalItem summary-type="sum" display-format="{0}" column="avg_durasi_recovery" css-class="text-white" /> column="total_selesai"
<DxTotalItem summary-type="sum" display-format="{0}" column="min_durasi_recovery" css-class="text-white" /> css-class="text-white"
<DxTotalItem summary-type="sum" display-format="{0}" column="max_durasi_recovery" css-class="text-white" /> />
<DxTotalItem summary-type="sum" display-format="{0}" column="total_diatas_sla_recovery" <DxTotalItem
css-class="text-white" /> summary-type="sum"
<DxTotalItem summary-type="sum" display-format="{0}" column="total_dibawah_sla_recovery" display-format="{0}%"
css-class="text-white" /> column="persen_selesai"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="total_inproses"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}%"
column="persen_inproses"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="total_durasi_response"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="avg_durasi_response"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="min_durasi_response"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="max_durasi_response"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="total_diatas_sla_response"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="total_dibawah_sla_response"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="total_durasi_recovery"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="avg_durasi_recovery"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="min_durasi_recovery"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="max_durasi_recovery"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="total_diatas_sla_recovery"
css-class="text-white"
/>
<DxTotalItem
summary-type="sum"
display-format="{0}"
column="total_dibawah_sla_recovery"
css-class="text-white"
/>
</DxSummary> </DxSummary>
<template #data-waktu="{ data }"> <template #data-waktu="{ data }">
@ -115,11 +348,9 @@
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
<template #percent="{ data }"> <template #percent="{ data }">
<p>{{ data.text }}%</p> <p>{{ data.text }}%</p>
</template> </template>
<template #cell-left="{ data }"> <template #cell-left="{ data }">
<p class="text-left"> <p class="text-left">
{{ data.text }} {{ data.text }}
@ -147,15 +378,15 @@ import {
DxSummary, DxSummary,
DxTotalItem DxTotalItem
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf ' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils /graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const showInd icator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)

View File

@ -189,9 +189,9 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/ utils/graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of : '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
@ -267,5 +267,4 @@ const filterData = (params: any) => {
console.log(error) console.log(error)
}) })
} }
</script> </script>
@/utils/api/graphql

View File

@ -136,16 +136,16 @@ import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,
DxSearchPanel, DxSearchPanel,
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem DxTotalItem
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -158,12 +158,12 @@ const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
c onst onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const doc = new jsPDF() const doc = new jsPDF()
exportToPdf({ exportToPdf({
jsPDFDocument: doc, jsPDFDocument: doc,
component: e.component, component: e.component,
indent: 5 indent: 5
}).then(() => { }).then(() => {

View File

@ -144,11 +144,11 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQ uery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/graphql ' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {
@ -222,5 +222,4 @@ const filterData = (params: any) => {
console.log(error) console.log(error)
}) })
} }
</script> </script>
@/utils/api/graphql

View File

@ -190,11 +190,11 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-co mposable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: ' #data' } const position = { of: '#data' }
const showIndicator = ref(t rue) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {

View File

@ -87,7 +87,7 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@ vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -164,5 +164,4 @@ const filterData = (params: any) => {
console.log(error) console.log(error)
}) })
} }
</script> </script>
@/utils/api/graphql

View File

@ -145,5 +145,4 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -145,5 +145,4 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -130,5 +130,4 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -133,5 +133,4 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -198,5 +198,4 @@ const filters = ref<any>({
onMounted(() => { onMounted(() => {
getMonthName(filters.value.bulan.id) getMonthName(filters.value.bulan.id)
}) })
</script> </script>
@/utils/api/graphql

View File

@ -171,5 +171,4 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -59,7 +59,7 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_export er' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'

View File

@ -146,5 +146,4 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -146,5 +146,4 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -144,5 +144,4 @@ onMounted(() => {
console.log(currentMonth.value) console.log(currentMonth.value)
}) })
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -143,5 +143,4 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -162,5 +162,4 @@ const filterData = (params: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -60,8 +60,8 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_ exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'fi le-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'

View File

@ -66,12 +66,11 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from fro import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
'devextreme/excel_exporter'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)

View File

@ -111,7 +111,7 @@ import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { getMonthName } from '@/utils/texts' import { getMonthName } from '@/utils/texts'
i mport { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)

View File

@ -155,5 +155,4 @@ const filterData = (params: any) => {
}) })
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql

View File

@ -61,6 +61,7 @@ import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
@ -83,17 +84,17 @@ const onExporting = (e: any) => {
doc.save(`.pdf`) doc.save(`.pdf`)
}) })
} else { } else {
const workbook = new Wor kbook() const workbook = new Workbook()
const worksheet = workbook.addWorksheet('Employees') const worksheet = workbook.addWorksheet('Employees')
exportToExcel({ exportToExcel({
component: e.component, component: e.component,
et, worksheet,
autoFilterEnable autoFilterEnabled: true
}).then(() => { }).then(() => {
workbo ok.xlsx.writeBuffer().then((buffer: any) => { workbook.xlsx.writeBuffer().then((buffer: any) => {
saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx') saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx')
}) })
}) })
e.cancel = true e.cancel = true

View File

@ -72,10 +72,10 @@ import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/api/api.graphql' import { queries } from '@/utils/api/api.graphql'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
co nst shading = ref(true) const shading = ref(true)
const showPane = ref(true) const showPane = ref(true)
con st dataDetail = ref<any>() const dataDetail = ref<any>()
const showDetail = ref(fals e) const showDetail = ref(false)
const data = ref<any[]>([]) const data = ref<any[]>([])
const onExporting = (e: any) => { const onExporting = (e: any) => {
@ -95,51 +95,53 @@ const onExporting = (e: any) => {
exportToExcel({ exportToExcel({
component: e.component, component: e.component,
workshe autoFilterEnabled: true worksheet,
autoFilterEnabled: true
}).then(() => { }).then(() => {
book.x eBuffer().then((buffer: any) => { workbook.xlsx.writeBuffer().then((buffer: any) => {
saveAs(new Blob([bu type: 'application/octet-stream' }), 'DataGrid. } saveAs(new Blob([buffer], { type: 'application/octet-stream' }), 'DataGrid.xlsx')
})
})
e.cancel = true e.cancel = true
} }
} }
const onSelectionChanged = ({ selectedRowsData }: any) => { const onSelectionChanged = ({ selectedRowsData }: any) => {
const data = selectedRowsData[0] const data = selectedRowsData[0]
console.log(data) console.log(data)
} }
const { onResult, onError, loading, refetch } = useQuery(queries.monalisa.laporan.kumulatif.kepatuhandanAkurasiDalamPelaporanKumulatif, { const { onResult, onError, loading, refetch } = useQuery(queries.monalisa.laporan.kumulatif.kepatuhandanAkurasiDalamPelaporanKumulatif, {
regional: '', regional: '',
idUlp: 0, idUlp: 0,
idUid: 0, idUid: 0,
idUp3: 0, idUp3: 0,
bulan: 10, bulan: 10,
tahun: 2023 tahun: 2023
})
const filterData = (params: any) => {
const { regional, ulp, uid, up3, bulan, tahun } = params
refetch({
regional: regional,
idUlp: ulp ? ulp.id : 0,
idUid: uid ? uid.id : 0,
idUp3: up3 ? up3.id : 0,
bulan: bulan ? bulan.id : 10,
tahun: bulan ? tahun.id : 2023
}) })
const filterData = (params: any) => { onResult((queryResult) => {
const { regional, ulp, uid, up3, bulan, tahun } = params if (queryResult.data != undefined) {
data.value = queryResult.data.kepatuhandanAkurasiDalamPelaporanKumulatif
refetch({ }
regional: regional, console.log(queryResult.data)
idUlp: ulp ? ulp.id : 0, console.log(queryResult.loading)
idUid: uid ? uid.id : 0, console.log(queryResult.networkStatus)
idUp3: up3 ? up3.id : 0, })
bulan: bulan ? bulan.id : 10, onError((error) => {
tahun: bulan ? tahun.id : 2023 console.log(error)
}) })
onResult((queryResult) => { }
if (queryResult.data != undefined) { const filters = ref()
data.value = queryResult.data.kepatuhandanAkurasiDalamPelaporanKumulatif </script>
}
console.log(queryResult.data)
console.log(queryResult.loading)
console.log(queryResult.networkStatus)
})
onError((error) => {
console.log(error)
})
}
const filters = ref()
</script>
@/utils/api/graphql

View File

@ -105,7 +105,7 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/ex cel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
@ -191,4 +191,3 @@ const filterData = (params: any) => {
} }
const filters = ref() const filters = ref()
</script> </script>
@/utils/api/graphql