Merge branch 'dev-bagus' of https://github.com/defuj/eis into dev-defuj
This commit is contained in:
commit
04f73e7331
@ -123,7 +123,7 @@
|
|||||||
:width="170"
|
:width="170"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="nama_posko_lama"
|
data-field="nama_posko_lama"
|
||||||
caption="Posko Awal"
|
caption="Posko Asal"
|
||||||
cell-template="data"
|
cell-template="data"
|
||||||
/>
|
/>
|
||||||
<DxColumn
|
<DxColumn
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<Filters @run-search="() => filterData(filters)" class="mb-4">
|
<Filters @reset-form="data = []" @run-search="() => filterData(filters)" class="mb-4">
|
||||||
<Type2 @update:filters="(value) => (filters = value)" />
|
<Type2 @update:filters="(value) => (filters = value)" />
|
||||||
</Filters>
|
</Filters>
|
||||||
|
|
||||||
<div id="data">
|
<div id="data">
|
||||||
<DxDataGrid
|
<DxDataGrid
|
||||||
class="max-h-[calc(100vh-140px)] mb-10"
|
class="max-h-[calc(100vh-140px)] mb-10"
|
||||||
@ -42,7 +43,7 @@
|
|||||||
<DxColumn
|
<DxColumn
|
||||||
:width="170"
|
:width="170"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="nama_posko"
|
data-field="nama_ulp"
|
||||||
caption="Nama Unit"
|
caption="Nama Unit"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
/>
|
/>
|
||||||
@ -56,7 +57,7 @@
|
|||||||
<DxColumn
|
<DxColumn
|
||||||
:width="150"
|
:width="150"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="rata_rct_gangguan_bulan"
|
data-field="avg_durasi_recovery_gangguan"
|
||||||
data-type="number"
|
data-type="number"
|
||||||
caption="Feb 2020"
|
caption="Feb 2020"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
@ -64,7 +65,7 @@
|
|||||||
<DxColumn
|
<DxColumn
|
||||||
:width="150"
|
:width="150"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="rata_rct_gangguan_sla"
|
data-field="sla_gangguan"
|
||||||
data-type="number"
|
data-type="number"
|
||||||
caption="SLA (Menit)"
|
caption="SLA (Menit)"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
@ -78,7 +79,7 @@
|
|||||||
<DxColumn
|
<DxColumn
|
||||||
:width="150"
|
:width="150"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="rata_rct_keluhan_bulan"
|
data-field="avg_durasi_recovery_keluhan"
|
||||||
data-type="number"
|
data-type="number"
|
||||||
caption="Feb 2020"
|
caption="Feb 2020"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
@ -86,7 +87,7 @@
|
|||||||
<DxColumn
|
<DxColumn
|
||||||
:width="150"
|
:width="150"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="rata_rct_keluhan_sla"
|
data-field="sla_keluhan"
|
||||||
data-type="number"
|
data-type="number"
|
||||||
caption="SLA (Jam)"
|
caption="SLA (Jam)"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
@ -97,28 +98,35 @@
|
|||||||
<DxColumn
|
<DxColumn
|
||||||
:width="150"
|
:width="150"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="aging_komplain_gangguan"
|
data-field="aging_complaint_gangguan"
|
||||||
data-type="number"
|
data-type="number"
|
||||||
caption="G"
|
caption="G"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
|
cell-template="percent"
|
||||||
/>
|
/>
|
||||||
<DxColumn
|
<DxColumn
|
||||||
:width="150"
|
:width="150"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="aging_komplain_keluhan"
|
data-field="aging_complaint_keluhan"
|
||||||
data-type="number"
|
data-type="number"
|
||||||
caption="K"
|
caption="K"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
|
cell-template="percent"
|
||||||
/>
|
/>
|
||||||
</DxColumn>
|
</DxColumn>
|
||||||
<DxColumn
|
<DxColumn
|
||||||
:width="170"
|
:width="170"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="persen_rata_aging_komplain"
|
data-field="avg_aging_complaint"
|
||||||
data-type="number"
|
data-type="number"
|
||||||
caption="% Rata-Rata Aging Complains"
|
caption="% Rata-Rata Aging Complains"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
|
cell-template="percent"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<template #percent="{ data }">
|
||||||
|
<p>{{ data.text }}%</p>
|
||||||
|
</template>
|
||||||
</DxDataGrid>
|
</DxDataGrid>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -127,7 +135,6 @@
|
|||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import Filters from '@/components/Form/Filters.vue'
|
import Filters from '@/components/Form/Filters.vue'
|
||||||
import Type2 from '@/components/Form/FiltersType/Type2.vue'
|
import Type2 from '@/components/Form/FiltersType/Type2.vue'
|
||||||
|
|
||||||
import { DxDataGrid } from 'devextreme-vue'
|
import { DxDataGrid } from 'devextreme-vue'
|
||||||
import {
|
import {
|
||||||
DxColumn,
|
DxColumn,
|
||||||
@ -146,16 +153,16 @@ 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 gql from 'graphql-tag'
|
import gql from 'graphql-tag'
|
||||||
|
|
||||||
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<any[]>([])
|
const data = ref<any[]>([])
|
||||||
const dataDetail = ref<any>()
|
|
||||||
const showDetail = ref(false)
|
|
||||||
const tahunSekarang = ref(new Date().getFullYear())
|
const tahunSekarang = ref(new Date().getFullYear())
|
||||||
const bulanSekarang = ref(new Date().getMonth())
|
const bulanSekarang = ref(new Date().getMonth())
|
||||||
const tahunLalu = ref(tahunSekarang.value - 1)
|
const tahunLalu = ref(tahunSekarang.value - 1)
|
||||||
|
|
||||||
const onExporting = (e: any) => {
|
const onExporting = (e: any) => {
|
||||||
if (e.format === 'pdf') {
|
if (e.format === 'pdf') {
|
||||||
const doc = new jsPDF()
|
const doc = new jsPDF()
|
||||||
@ -190,62 +197,85 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
|
|||||||
console.log(data)
|
console.log(data)
|
||||||
}
|
}
|
||||||
const agingComplaintBulanan = gql`
|
const agingComplaintBulanan = gql`
|
||||||
query DaftaragingComplaintBulanan(
|
query agingComplaintBulanan($idUid: Int, $idUp3: Int, $idUlp: Int, $bulan: Int, $tahun: Int) {
|
||||||
$regional: String
|
|
||||||
$posko: Int
|
|
||||||
$idUid: Int
|
|
||||||
$idUp3: Int
|
|
||||||
$bulan: Int
|
|
||||||
$tahun: Int
|
|
||||||
) {
|
|
||||||
agingComplaintBulanan(
|
agingComplaintBulanan(
|
||||||
regional: $regional
|
|
||||||
posko: $posko
|
|
||||||
idUid: $idUid
|
idUid: $idUid
|
||||||
idUp3: $idUp3
|
idUp3: $idUp3
|
||||||
|
idUlp: $idUlp
|
||||||
bulan: $bulan
|
bulan: $bulan
|
||||||
tahun: $tahun
|
tahun: $tahun
|
||||||
) {
|
) {
|
||||||
aging_komplain_gangguan
|
nama_regional
|
||||||
aging_komplain_keluhan
|
id_uid
|
||||||
nama_posko
|
nama_uid
|
||||||
persen_rata_aging_komplain
|
id_up3
|
||||||
rata_rct_gangguan_bulan
|
nama_up3
|
||||||
rata_rct_gangguan_sla
|
id_ulp
|
||||||
rata_rct_keluhan_bulan
|
nama_ulp
|
||||||
rata_rct_keluhan_sla
|
avg_durasi_recovery_gangguan
|
||||||
|
sla_gangguan
|
||||||
|
avg_durasi_recovery_keluhan
|
||||||
|
sla_keluhan
|
||||||
|
aging_complaint_gangguan
|
||||||
|
aging_complaint_keluhan
|
||||||
|
avg_aging_complaint
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
const { onResult, onError, loading, refetch } = useQuery(agingComplaintBulanan, {
|
|
||||||
regional: '',
|
|
||||||
posko: '',
|
|
||||||
idUid: 0,
|
|
||||||
idUp3: 0,
|
|
||||||
bulan: 10,
|
|
||||||
tahun: 2023
|
|
||||||
})
|
|
||||||
const filterData = (params: any) => {
|
|
||||||
const { regional, posko, idUid, idUp3, bulan, tahun } = params
|
|
||||||
|
|
||||||
|
// const agingComplaintBulanan = gql`
|
||||||
|
// query agingComplaintBulanan(
|
||||||
|
// $regional: String
|
||||||
|
// $idUid: Int
|
||||||
|
// $idUp3: Int
|
||||||
|
// $idUlp: Int
|
||||||
|
// $bulan: Int
|
||||||
|
// $tahun: Int
|
||||||
|
// ) {
|
||||||
|
// agingComplaintBulanan(
|
||||||
|
// regional: $regional
|
||||||
|
// idUid: $idUid
|
||||||
|
// idUp3: $idUp3
|
||||||
|
// idUlp: $idUlp
|
||||||
|
// bulan: $bulan
|
||||||
|
// tahun: $tahun
|
||||||
|
// ) {
|
||||||
|
// aging_komplain_gangguan
|
||||||
|
// aging_komplain_keluhan
|
||||||
|
// nama_posko
|
||||||
|
// persen_rata_aging_komplain
|
||||||
|
// rata_rct_gangguan_bulan
|
||||||
|
// rata_rct_gangguan_sla
|
||||||
|
// rata_rct_keluhan_bulan
|
||||||
|
// rata_rct_keluhan_sla
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// `
|
||||||
|
const { onResult, onError, loading, refetch } = useQuery(agingComplaintBulanan, {
|
||||||
|
// regional: 0,
|
||||||
|
idUp3: 0,
|
||||||
|
idUid: 0,
|
||||||
|
idUlp: 0,
|
||||||
|
bulan: bulanSekarang.value,
|
||||||
|
tahun: tahunSekarang.value
|
||||||
|
})
|
||||||
|
|
||||||
|
const filterData = (params: any) => {
|
||||||
|
const { regional, ulp, uid, up3, bulan, tahun } = params
|
||||||
|
bulanSekarang.value = bulan.id
|
||||||
|
tahunSekarang.value = tahun.id
|
||||||
|
tahunLalu.value = tahun.id - 1
|
||||||
refetch({
|
refetch({
|
||||||
regional: regional,
|
// regional: regional,
|
||||||
posko: posko ? posko.id : 0,
|
idUid: uid ? uid.id : 0,
|
||||||
idUid: idUid ? idUid.id : 0,
|
idUp3: up3 ? up3.id : 0,
|
||||||
idUp3: idUp3 ? idUp3.id : 0,
|
idUlp: ulp ? ulp.id : 0,
|
||||||
bulan: bulan ? bulan.id : 10,
|
bulan: bulan ? bulan.id : bulanSekarang.value,
|
||||||
tahun: bulan ? tahun.id : 2023
|
tahun: bulan ? tahun.id : tahunSekarang.value
|
||||||
})
|
})
|
||||||
onResult((queryResult) => {
|
onResult((queryResult) => {
|
||||||
if (queryResult.data != undefined) {
|
if (queryResult.data != undefined) {
|
||||||
queryResult.data.agingComplaintBulanan.forEach((item: any) => {
|
data.value = queryResult.data.agingComplaintBulanan
|
||||||
data.value = [
|
|
||||||
...data.value,
|
|
||||||
{
|
|
||||||
...item
|
|
||||||
}
|
|
||||||
]
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
console.log(queryResult.data)
|
console.log(queryResult.data)
|
||||||
console.log(queryResult.loading)
|
console.log(queryResult.loading)
|
||||||
@ -255,5 +285,6 @@ const filterData = (params: any) => {
|
|||||||
console.log(error)
|
console.log(error)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const filters = ref()
|
const filters = ref()
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,86 +1,254 @@
|
|||||||
<template>
|
<template>
|
||||||
<Filters @run-search="() => filterData(filters)" class="mb-4">
|
<Filters @reset-form="data = []" @run-search="() => filterData(filters)" class="mb-4">
|
||||||
<Type2 @update:filters="(value) => (filters = value)" />
|
<Type2 @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 :width="170" alignment="center" data-field="nama_posko" caption="Nama Unit"
|
<DxColumn
|
||||||
css-class="custom-table-column" />
|
:width="170"
|
||||||
<DxColumn alignment="center" :caption="`${getMonthName(bulanSekarang - 1)} ${tahunSekarang}`"
|
alignment="center"
|
||||||
css-class="custom-table-column">
|
data-field="nama_regional"
|
||||||
<DxColumn :width="120" alignment="center" data-field="keluhan_bulan_lalu" data-type="number" caption="Keluhan"
|
caption="Nama Unit"
|
||||||
css-class="custom-table-column" name="keluhanBulanLalu" />
|
css-class="custom-table-column"
|
||||||
<DxColumn :width="120" alignment="center" data-field="gangguan_bulan_lalu" data-type="number" caption="Gangguan"
|
/>
|
||||||
css-class="custom-table-column" />
|
<DxColumn
|
||||||
|
alignment="center"
|
||||||
|
:caption="`${getMonthName(bulanSekarang - 1)} ${tahunSekarang}`"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
>
|
||||||
|
<DxColumn
|
||||||
|
:width="120"
|
||||||
|
alignment="center"
|
||||||
|
data-field="keluhan_bulan_lalu"
|
||||||
|
data-type="number"
|
||||||
|
caption="Keluhan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
name="keluhanBulanLalu"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="120"
|
||||||
|
alignment="center"
|
||||||
|
data-field="gangguan_bulan_lalu"
|
||||||
|
data-type="number"
|
||||||
|
caption="Gangguan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
<DxColumn alignment="center" caption="Informasi" css-class="custom-table-column">
|
<DxColumn alignment="center" caption="Informasi" css-class="custom-table-column">
|
||||||
<DxColumn :width="120" alignment="center" data-field="informasi_keluhan_bulan_lalu" data-type="number"
|
<DxColumn
|
||||||
caption="Keluhan" css-class="custom-table-column" />
|
:width="120"
|
||||||
<DxColumn :width="120" alignment="center" data-field="informasi_gangguan_bulan_lalu" data-type="number"
|
alignment="center"
|
||||||
caption="Gangguan" css-class="custom-table-column" />
|
data-field="total_keluhan_informasi_tahun_ini"
|
||||||
<DxColumn :width="120" alignment="center" data-field="total_bulan_lalu" data-type="number" caption="Total"
|
data-type="number"
|
||||||
css-class="custom-table-column" />
|
caption="Keluhan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="120"
|
||||||
|
alignment="center"
|
||||||
|
data-field="total_gangguan_informasi_tahun_ini"
|
||||||
|
data-type="number"
|
||||||
|
caption="Gangguan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="120"
|
||||||
|
alignment="center"
|
||||||
|
data-field="total_informasi_tahun_ini"
|
||||||
|
data-type="number"
|
||||||
|
caption="Total"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
</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="" data-type="number" caption="Jml"
|
<DxColumn
|
||||||
css-class="custom-table-column" />
|
:width="150"
|
||||||
<DxColumn :width="150" alignment="center" data-field="" data-type="number" caption="%"
|
alignment="center"
|
||||||
css-class="custom-table-column" />
|
data-field=""
|
||||||
|
data-type="number"
|
||||||
|
caption="Jml"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="150"
|
||||||
|
alignment="center"
|
||||||
|
data-field=""
|
||||||
|
data-type="number"
|
||||||
|
caption="%"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
</DxColumn>
|
</DxColumn>
|
||||||
<DxColumn alignment="center" caption="Total Komplain" css-class="custom-table-column"
|
<DxColumn
|
||||||
data-field="total_komplain_bulan_lalu" data-type="number" />
|
alignment="center"
|
||||||
|
caption="Total Komplain"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
data-field="total_komplain_bulan_lalu"
|
||||||
|
data-type="number"
|
||||||
|
/>
|
||||||
</DxColumn>
|
</DxColumn>
|
||||||
|
|
||||||
<DxColumn alignment="center" caption="Januari 2020" css-class="custom-table-column">
|
<DxColumn alignment="center" caption="Januari 2020" css-class="custom-table-column">
|
||||||
<DxColumn :width="120" alignment="center" data-field="keluhan_bulan_ini" data-type="number" caption="Keluhan"
|
<DxColumn
|
||||||
css-class="custom-table-column" />
|
:width="120"
|
||||||
<DxColumn :width="120" alignment="center" data-field="keluhan_bulan_lalu" data-type="number" caption="Gangguan"
|
alignment="center"
|
||||||
css-class="custom-table-column" />
|
data-field="keluhan_bulan_ini"
|
||||||
|
data-type="number"
|
||||||
|
caption="Keluhan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="120"
|
||||||
|
alignment="center"
|
||||||
|
data-field="keluhan_bulan_lalu"
|
||||||
|
data-type="number"
|
||||||
|
caption="Gangguan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
<DxColumn alignment="center" caption="Informasi" css-class="custom-table-column">
|
<DxColumn alignment="center" caption="Informasi" css-class="custom-table-column">
|
||||||
<DxColumn :width="120" alignment="center" data-field="informasi_keluhan_bulan_ini" data-type="number"
|
<DxColumn
|
||||||
caption="Keluhan" css-class="custom-table-column" />
|
:width="120"
|
||||||
<DxColumn :width="120" alignment="center" data-field="informasi_gangguan_bulan_ini" data-type="number"
|
alignment="center"
|
||||||
caption="Gangguan" css-class="custom-table-column" />
|
data-field="informasi_keluhan_bulan_ini"
|
||||||
<DxColumn :width="120" alignment="center" data-field="total_bulan_ini" data-type="number" caption="Total"
|
data-type="number"
|
||||||
css-class="custom-table-column" />
|
caption="Keluhan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="120"
|
||||||
|
alignment="center"
|
||||||
|
data-field="informasi_gangguan_bulan_ini"
|
||||||
|
data-type="number"
|
||||||
|
caption="Gangguan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="120"
|
||||||
|
alignment="center"
|
||||||
|
data-field="total_bulan_ini"
|
||||||
|
data-type="number"
|
||||||
|
caption="Total"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
</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="" data-type="number" caption="Jml"
|
<DxColumn
|
||||||
css-class="custom-table-column" />
|
:width="150"
|
||||||
<DxColumn :width="150" alignment="center" data-field="" data-type="number" caption="%"
|
alignment="center"
|
||||||
css-class="custom-table-column" />
|
data-field=""
|
||||||
|
data-type="number"
|
||||||
|
caption="Jml"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="150"
|
||||||
|
alignment="center"
|
||||||
|
data-field=""
|
||||||
|
data-type="number"
|
||||||
|
caption="%"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
</DxColumn>
|
</DxColumn>
|
||||||
<DxColumn alignment="center" caption="Total Komplain" css-class="custom-table-column"
|
<DxColumn
|
||||||
data-field="total_komplain_bulan_ini" data-type="number" />
|
alignment="center"
|
||||||
|
caption="Total Komplain"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
data-field="total_komplain_bulan_ini"
|
||||||
|
data-type="number"
|
||||||
|
/>
|
||||||
</DxColumn>
|
</DxColumn>
|
||||||
<DxColumn alignment="center" caption="Delta Penurunan" css-class="custom-table-column">
|
<DxColumn alignment="center" caption="Delta Penurunan" css-class="custom-table-column">
|
||||||
<DxColumn :width="150" alignment="center" data-field="delta_penurunan_keluhan" data-type="number"
|
<DxColumn
|
||||||
caption="Keluhan" css-class="custom-table-column" />
|
:width="150"
|
||||||
<DxColumn :width="150" alignment="center" data-field="delta_penurunan_gangguan" data-type="number"
|
alignment="center"
|
||||||
caption="Gangguan" css-class="custom-table-column" />
|
data-field="delta_penurunan_keluhan"
|
||||||
<DxColumn :width="150" alignment="center" data-field="delta_penurunan_informasi" data-type="number"
|
data-type="number"
|
||||||
caption="Informasi" css-class="custom-table-column" />
|
caption="Keluhan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="150"
|
||||||
|
alignment="center"
|
||||||
|
data-field="delta_penurunan_gangguan"
|
||||||
|
data-type="number"
|
||||||
|
caption="Gangguan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="150"
|
||||||
|
alignment="center"
|
||||||
|
data-field="delta_penurunan_informasi"
|
||||||
|
data-type="number"
|
||||||
|
caption="Informasi"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
</DxColumn>
|
</DxColumn>
|
||||||
<DxColumn alignment="center" caption="% Penurunan YoY" css-class="custom-table-column">
|
<DxColumn alignment="center" caption="% Penurunan YoY" css-class="custom-table-column">
|
||||||
<DxColumn :width="150" alignment="center" data-field="persen_penurunan_keluhan" data-type="number"
|
<DxColumn
|
||||||
caption="Keluhan" css-class="custom-table-column" />
|
:width="150"
|
||||||
<DxColumn :width="150" alignment="center" data-field="persen_penurunan_gangguan" data-type="number"
|
alignment="center"
|
||||||
caption="Gangguan" css-class="custom-table-column" />
|
data-field="persen_penurunan_keluhan"
|
||||||
<DxColumn :width="150" alignment="center" data-field="persen_penurunan_informasi" data-type="number"
|
data-type="number"
|
||||||
caption="Informasi" css-class="custom-table-column" />
|
caption="Keluhan"
|
||||||
<DxColumn :width="150" alignment="center" data-field="persen_penurunan_total" data-type="number" caption="% Total"
|
css-class="custom-table-column"
|
||||||
css-class="custom-table-column" />
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="150"
|
||||||
|
alignment="center"
|
||||||
|
data-field="persen_penurunan_gangguan"
|
||||||
|
data-type="number"
|
||||||
|
caption="Gangguan"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="150"
|
||||||
|
alignment="center"
|
||||||
|
data-field="persen_penurunan_informasi"
|
||||||
|
data-type="number"
|
||||||
|
caption="Informasi"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="150"
|
||||||
|
alignment="center"
|
||||||
|
data-field="persen_penurunan_total"
|
||||||
|
data-type="number"
|
||||||
|
caption="% Total"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
/>
|
||||||
</DxColumn>
|
</DxColumn>
|
||||||
</DxDataGrid>
|
</DxDataGrid>
|
||||||
</div>
|
</div>
|
||||||
@ -109,22 +277,16 @@ import { Workbook } from 'exceljs'
|
|||||||
import { useQuery } from '@vue/apollo-composable'
|
import { useQuery } from '@vue/apollo-composable'
|
||||||
import gql from 'graphql-tag'
|
import gql from 'graphql-tag'
|
||||||
import { getMonthName } from '@/utils/texts'
|
import { getMonthName } from '@/utils/texts'
|
||||||
|
|
||||||
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<any[]>([])
|
const data = ref<any[]>([])
|
||||||
const dataDetail = ref<any>()
|
|
||||||
const showDetail = ref(false)
|
|
||||||
const tahunSekarang = ref(new Date().getFullYear())
|
const tahunSekarang = ref(new Date().getFullYear())
|
||||||
const bulanSekarang = ref(new Date().getMonth())
|
const bulanSekarang = ref(new Date().getMonth())
|
||||||
if (bulanSekarang.value - 1 == 0) {
|
const tahunLalu = ref(tahunSekarang.value - 1)
|
||||||
let bulanLalu = 12
|
|
||||||
let tahunLalu = tahunSekarang.value - 1
|
|
||||||
} else {
|
|
||||||
let bulanLalu = bulanSekarang.value - 1
|
|
||||||
let tahunLalu = tahunSekarang.value
|
|
||||||
}
|
|
||||||
const onExporting = (e: any) => {
|
const onExporting = (e: any) => {
|
||||||
if (e.format === 'pdf') {
|
if (e.format === 'pdf') {
|
||||||
const doc = new jsPDF()
|
const doc = new jsPDF()
|
||||||
@ -153,87 +315,134 @@ const onExporting = (e: any) => {
|
|||||||
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 penurunanJumlahKomplainBulanan = gql`
|
const penurunanJumlahKomplainBulanan = gql`
|
||||||
query DaftarpenurunanJumlahKomplainBulanan(
|
query DaftarpenurunanJumlahKomplainBulanan(
|
||||||
$regional: String
|
|
||||||
$posko: Int
|
|
||||||
$idUid: Int
|
$idUid: Int
|
||||||
$idUp3: Int
|
$idUp3: Int
|
||||||
|
$idUlp: Int
|
||||||
$bulan: Int
|
$bulan: Int
|
||||||
$tahun: Int
|
$tahun: Int
|
||||||
) {
|
) {
|
||||||
penurunanJumlahKomplainBulanan(
|
penurunanJumlahKomplainBulanan(
|
||||||
regional: $regional
|
|
||||||
posko: $posko
|
|
||||||
idUid: $idUid
|
idUid: $idUid
|
||||||
idUp3: $idUp3
|
idUp3: $idUp3
|
||||||
|
idUlp: $idUlp
|
||||||
bulan: $bulan
|
bulan: $bulan
|
||||||
tahun: $tahun
|
tahun: $tahun
|
||||||
) {
|
) {
|
||||||
delta_penurunan_gangguan
|
nama_regional
|
||||||
delta_penurunan_informasi
|
id_uid
|
||||||
delta_penurunan_keluhan
|
nama_uid
|
||||||
gangguan_bulan_ini
|
id_up3
|
||||||
gangguan_bulan_lalu
|
nama_up3
|
||||||
informasi_gangguan_bulan_ini
|
id_ulp
|
||||||
informasi_gangguan_bulan_lalu
|
nama_ulp
|
||||||
informasi_keluhan_bulan_ini
|
total_gangguan_tahun_ini
|
||||||
informasi_keluhan_bulan_lalu
|
total_keluhan_tahun_ini
|
||||||
keluhan_bulan_ini
|
total_gangguan_informasi_tahun_ini
|
||||||
keluhan_bulan_lalu
|
total_keluhan_informasi_tahun_ini
|
||||||
nama_posko
|
total_informasi_tahun_ini
|
||||||
persen_penurunan_gangguan
|
total_tahun_ini
|
||||||
persen_penurunan_informasi
|
total_gangguan_tahun_sebelumnya
|
||||||
persen_penurunan_keluhan
|
total_keluhan_tahun_sebelumnya
|
||||||
persen_penurunan_total
|
total_gangguan_informasi_tahun_sebelumnya
|
||||||
total_bulan_ini
|
total_keluhan_informasi_tahun_sebelumnya
|
||||||
total_bulan_lalu
|
total_informasi_tahun_sebelumnya
|
||||||
total_komplain_bulan_ini
|
total_tahun_sebelumnya
|
||||||
total_komplain_bulan_lalu
|
delta_gangguan
|
||||||
|
delta_keluhan
|
||||||
|
delta_informasi
|
||||||
|
persen_delta_gangguan
|
||||||
|
persen_delta_keluhan
|
||||||
|
persen_delta_informasi
|
||||||
|
persen_delta_total
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
const { onResult, onError, loading, refetch } = useQuery(penurunanJumlahKomplainBulanan, {
|
|
||||||
regional: '',
|
|
||||||
posko: '',
|
|
||||||
idUid: 0,
|
|
||||||
idUp3: 0,
|
|
||||||
bulan: 10,
|
|
||||||
tahun: 2023
|
|
||||||
})
|
|
||||||
const filterData = (params: any) => {
|
|
||||||
const { regional, posko, idUid, idUp3, bulan, tahun } = params
|
|
||||||
|
|
||||||
refetch({
|
// const penurunanJumlahKomplainBulanan = gql`
|
||||||
regional: regional,
|
// query DaftarpenurunanJumlahKomplainBulanan(
|
||||||
posko: posko ? posko.id : 0,
|
// $regional: String
|
||||||
idUid: idUid ? idUid.id : 0,
|
// $posko: Int
|
||||||
idUp3: idUp3 ? idUp3.id : 0,
|
// $idUid: Int
|
||||||
bulan: bulan ? bulan.id : 10,
|
// $idUp3: Int
|
||||||
tahun: bulan ? tahun.id : 2023
|
// $bulan: Int
|
||||||
|
// $tahun: Int
|
||||||
|
// ) {
|
||||||
|
// penurunanJumlahKomplainBulanan(
|
||||||
|
// regional: $regional
|
||||||
|
// posko: $posko
|
||||||
|
// idUid: $idUid
|
||||||
|
// idUp3: $idUp3
|
||||||
|
// bulan: $bulan
|
||||||
|
// tahun: $tahun
|
||||||
|
// ) {
|
||||||
|
// delta_penurunan_gangguan
|
||||||
|
// delta_penurunan_informasi
|
||||||
|
// delta_penurunan_keluhan
|
||||||
|
// gangguan_bulan_ini
|
||||||
|
// gangguan_bulan_lalu
|
||||||
|
// informasi_gangguan_bulan_ini
|
||||||
|
// informasi_gangguan_bulan_lalu
|
||||||
|
// informasi_keluhan_bulan_ini
|
||||||
|
// informasi_keluhan_bulan_lalu
|
||||||
|
// keluhan_bulan_ini
|
||||||
|
// keluhan_bulan_lalu
|
||||||
|
// nama_posko
|
||||||
|
// persen_penurunan_gangguan
|
||||||
|
// persen_penurunan_informasi
|
||||||
|
// persen_penurunan_keluhan
|
||||||
|
// persen_penurunan_total
|
||||||
|
// total_bulan_ini
|
||||||
|
// total_bulan_lalu
|
||||||
|
// total_komplain_bulan_ini
|
||||||
|
// total_komplain_bulan_lalu
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// `
|
||||||
|
|
||||||
|
const { onResult, onError, loading, refetch } = useQuery(penurunanJumlahKomplainBulanan, {
|
||||||
|
// regional: 0,
|
||||||
|
idUp3: 0,
|
||||||
|
idUid: 0,
|
||||||
|
idUlp: 0,
|
||||||
|
bulan: bulanSekarang.value,
|
||||||
|
tahun: tahunSekarang.value
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const filterData = (params: any) => {
|
||||||
|
const { regional, ulp, uid, up3, bulan, tahun } = params
|
||||||
|
bulanSekarang.value = bulan.id
|
||||||
|
tahunSekarang.value = tahun.id
|
||||||
|
tahunLalu.value = tahun.id - 1
|
||||||
|
refetch({
|
||||||
|
// regional: regional,
|
||||||
|
idUid: uid ? uid.id : 0,
|
||||||
|
idUp3: up3 ? up3.id : 0,
|
||||||
|
idUlp: ulp ? ulp.id : 0,
|
||||||
|
bulan: bulan ? bulan.id : bulanSekarang.value,
|
||||||
|
tahun: bulan ? tahun.id : tahunSekarang.value
|
||||||
|
})
|
||||||
|
|
||||||
onResult((queryResult) => {
|
onResult((queryResult) => {
|
||||||
if (queryResult.data != undefined) {
|
if (queryResult.data != undefined) {
|
||||||
queryResult.data.penurunanJumlahKomplainBulanan.forEach((item: any) => {
|
data.value = queryResult.data.penurunanJumlahKomplainBulanan
|
||||||
data.value = [
|
|
||||||
...data.value,
|
|
||||||
{
|
|
||||||
...item
|
|
||||||
}
|
|
||||||
]
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
console.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)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const filters = ref()
|
const filters = ref()
|
||||||
</script>
|
</script>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user