From 117c192c330174065a320c65dd940c69c77839f7 Mon Sep 17 00:00:00 2001 From: Dede Fuji Abdul Date: Thu, 18 Apr 2024 09:08:45 +0700 Subject: [PATCH 01/11] Refactor code to improve readability and fix bugs in Gangguan and Monalisa components --- .../Gangguan/Rekap/RGangguan_PerTanggal.vue | 60 +++++++++++++++++-- .../Bulanan/MonalisaLB_AgingComplaint.vue | 4 +- src/utils/api/api.graphql.ts | 38 ++++++++++++ 3 files changed, 94 insertions(+), 8 deletions(-) diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue index cbc1d45..33e8a52 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue @@ -871,21 +871,69 @@ const setAgreementDialog = (status: boolean, progress: number) => { const getDetail = async () => { const dateValue = filters.value?.periode.split(' s/d ') const ref = dataSelected.value + const { posko, uid, up3 } = filters.value - const query = { + var query = { dateFrom: ref?.tanggal ? reformatDate(ref?.tanggal, 'yyyy/MM/dd', 'yyyy-MM-dd') : '', dateTo: ref?.tanggal ? reformatDate(ref?.tanggal, 'yyyy/MM/dd', 'yyyy-MM-dd') : '', - posko: progressSelected.value == 0 ? 0 : ref?.id_posko ? ref?.id_posko : 0, - idUid: progressSelected.value == 0 ? 0 : ref?.id_uid ? ref?.id_uid : 0, - idUp3: progressSelected.value == 0 ? 0 : ref?.id_up3 ? ref?.id_up3 : 0, - idRegu: ref?.id_regu ? ref?.id_regu : 0, - idUlp: progressSelected.value == 0 ? 0 : ref?.id_ulp ? ref?.id_ulp : 0, + posko: 0, + idUid: 0, + idUp3: 0, + idUlp: 0, + idRegu: 0, + idUlp: 0, namaRegional: ref?.nama_regional ? ref?.nama_regional : '', media: ref?.media ? ref?.media : '', isSelesai: progressSelected.value, tanggal: ref?.tanggal ? reformatDate(ref?.tanggal, 'yyyy/MM/dd', 'yyyy-MM-dd') : '' } + if (isGroupBy.value) { + query = { + ...query, + idUid: ref?.id_uid + } + if (uid.id != 0) { + query = { + ...query, + idUp3: ref?.id_up3 + } + + if (up3.id != 0) { + query = { + ...query, + posko: ref?.id_posko + } + + if (posko.id != 0) { + query = { + ...query, + idUlp: ref?.id_ulp + } + } + } + } + } else { + if (uid.id != 0) { + query = { + ...query, + idUid: uid.id + } + if (up3.id != 0) { + query = { + ...query, + idUp3: up3.id + } + if (posko.id != 0) { + query = { + ...query, + posko: posko.id + } + } + } + } + } + loadingSubData.value = true await requestGraphQl(queries.gangguan.rekap.gangguanAllDetail, query) .then((result) => { diff --git a/src/components/Pages/Monalisa/Laporan/Bulanan/MonalisaLB_AgingComplaint.vue b/src/components/Pages/Monalisa/Laporan/Bulanan/MonalisaLB_AgingComplaint.vue index 5758cfa..c9b82a3 100755 --- a/src/components/Pages/Monalisa/Laporan/Bulanan/MonalisaLB_AgingComplaint.vue +++ b/src/components/Pages/Monalisa/Laporan/Bulanan/MonalisaLB_AgingComplaint.vue @@ -876,8 +876,8 @@ const getDetail = async () => { loadingSubData.value = true await requestGraphQl( parameterRequest.value.type == 'gangguan' - ? queries.keluhan.rekap.rekapKeluhanAllDetail - : queries.keluhan.rekap.rekapKeluhanAllDetail, + ? queries.monalisa.laporan.bulanan.agingComplaintBulananDetail + : queries.monalisa.laporan.bulanan.agingComplaintBulananDetail, query ) .then((result) => { diff --git a/src/utils/api/api.graphql.ts b/src/utils/api/api.graphql.ts index 2970094..c34e990 100755 --- a/src/utils/api/api.graphql.ts +++ b/src/utils/api/api.graphql.ts @@ -3396,6 +3396,44 @@ export const queries = { } } `, + agingComplaintBulananDetail: gql` + query detailAgingComplaintBulanan( + $bulan: Int! + $tahun: Int! + $namaRegional: String! + $idUlp: Int! + $idUid: Int! + $idUp3: Int! + ) { + detailAgingComplaintBulanan( + bulan: $bulan + tahun: $tahun + namaRegional: $namaRegional + idUlp: $idUlp + idUid: $idUid + idUp3: $idUp3 + ) { + id + nama_regional + id_uid + nama_uid + id_up3 + nama_up3 + id_ulp + nama_ulp + no_laporan + alamat_pelapor + no_telp_pelapor + keterangan_pelapor + penyebab + kode_gangguan + jenis_gangguan + durasi_response_time + durasi_recovery_time + waktu_lapor + } + } + `, agingComplaintBulanan: gql` query agingComplaintBulanan( $namaRegional: String From 46f1b8353c19742ddf30fa716e4a2146686f0200 Mon Sep 17 00:00:00 2001 From: kur0nek-o Date: Thu, 18 Apr 2024 09:42:15 +0700 Subject: [PATCH 02/11] fix: anomali gangguan --- .../Anomali/Gangguan/Anomali_LAPPGP_LPT.vue | 12 +- .../Pages/Anomali/Gangguan/Anomali_LAPPGU.vue | 56 +++ .../Anomali/Gangguan/Anomali_LAPPGU_LPT.vue | 380 +++++++++++++++--- 3 files changed, 385 insertions(+), 63 deletions(-) diff --git a/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGP_LPT.vue b/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGP_LPT.vue index eab9e8b..ff003d1 100755 --- a/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGP_LPT.vue +++ b/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGP_LPT.vue @@ -349,7 +349,7 @@ column="anomali_pln_mobile_marking" name="anomali_pln_mobile_marking" summary-type="custom" - css-class="!text-right" + css-class="!text-right cursor-pointer" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -60,11 +61,66 @@ const resetData = () => { dataSecond.value = [] } +const grouping = ref([ + { + data: '', + caption: 'Semua Unit' + }, + { + data: 'nama_uid', + caption: 'UID' + }, + { + data: 'nama_up3', + caption: 'UP3' + } +]) + const filterData = async (params: any) => { resetData() const { ulp, uid, up3, jenisLaporan } = params console.table('LAPPGU', jenisLaporan) + var groupList: any[] = [ + { + data: '', + caption: 'Semua Unit' + }, + { + data: 'nama_uid', + caption: 'UID' + }, + { + data: 'nama_up3', + caption: 'UP3' + } + ] + + if (uid?.id != 0) { + groupList.forEach((item, index) => { + if (item.caption == 'Semua Unit') { + groupList.splice(index, 1) + } + }) + + if (up3?.id != 0) { + groupList.forEach((item, index) => { + if (item.caption == 'UID') { + groupList.splice(index, 1) + } + }) + + if (ulp?.id != 0) { + groupList.forEach((item, index) => { + if (item.caption == 'UP3') { + groupList.splice(index, 1) + } + }) + } + } + } + grouping.value = groupList + const dateValue = params.periode.split(' s/d ') const query = { dateFrom: dateValue[0] diff --git a/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGU_LPT.vue b/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGU_LPT.vue index 76d5f2c..4d62093 100755 --- a/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGU_LPT.vue +++ b/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGU_LPT.vue @@ -4,6 +4,7 @@ - + @@ -44,35 +45,15 @@ /> - - @@ -400,12 +381,13 @@

- + @@ -413,7 +395,8 @@ :show-in-group-footer="false" :align-by-column="true" column="wo_pln_mobile" - summary-type="sum" + name="wo_pln_mobile" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -421,7 +404,8 @@ :show-in-group-footer="false" :align-by-column="true" column="wo_loket" - summary-type="sum" + name="wo_loket" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -429,7 +413,8 @@ :show-in-group-footer="false" :align-by-column="true" column="wo_lainnya" - summary-type="sum" + summary-type="custom" + name="wo_lainnya" css-class="!text-right" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -437,7 +422,8 @@ :show-in-group-footer="false" :align-by-column="true" column="wo_total" - summary-type="sum" + name="wo_total" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -445,55 +431,62 @@ :show-in-group-footer="false" :align-by-column="true" column="anomali_pln_mobile_marking" - summary-type="sum" - css-class="!text-right" + name="anomali_pln_mobile_marking" + summary-type="custom" + css-class="!text-right cursor-pointer" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -501,7 +494,8 @@ :show-in-group-footer="false" :align-by-column="true" column="persen_anomali_pln_mobile_non_marking" - summary-type="avg" + name="persen_anomali_pln_mobile_non_marking" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatPercentage(e.value)" /> @@ -509,7 +503,8 @@ :show-in-group-footer="false" :align-by-column="true" column="persen_anomali_cc123_marking" - summary-type="avg" + name="persen_anomali_cc123_marking" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatPercentage(e.value)" /> @@ -517,7 +512,8 @@ :show-in-group-footer="false" :align-by-column="true" column="persen_anomali_cc123_non_marking" - summary-type="avg" + name="persen_anomali_cc123_non_marking" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatPercentage(e.value)" /> @@ -525,7 +521,8 @@ :show-in-group-footer="false" :align-by-column="true" column="persen_anomali_marking" - summary-type="avg" + name="persen_anomali_marking" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatPercentage(e.value)" /> @@ -533,7 +530,8 @@ :show-in-group-footer="false" :align-by-column="true" column="persen_anomali_non_marking" - summary-type="avg" + name="persen_anomali_non_marking" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatPercentage(e.value)" /> @@ -1077,6 +1075,7 @@ import { exportDetailToDOCX } from '@/report/Anomali/Gangguan/Anomali_LAPPGU_LPT' import BufferDialog from '@/components/Dialogs/BufferDialog.vue' +import { getDataRowGroup } from '@/utils/helper' const position = { of: '#data' } const showIndicator = ref(true) @@ -1085,7 +1084,11 @@ const showPane = ref(true) const props = defineProps({ data: Array as () => any[], filters: Object as () => any, - loadingData: Boolean + loadingData: Boolean, + grouping: { + type: Array as () => any[], + default: [] + } }) const emit = defineEmits(['update:loadingSubData']) const filters = ref(computed(() => props.filters)) @@ -1102,6 +1105,9 @@ const parameterRequest = ref({ media: null, marking: null }) +const groupDialog = ref(false) +const groupData = ref(null) +const groupIndex = ref(0) const setParameterRequest = (data: any) => { parameterRequest.value = data @@ -1113,6 +1119,234 @@ const setParameterRequest = (data: any) => { } } +const onCellClicked = (e: any) => { + if (e.rowType == 'group') { + groupDialog.value = true + groupIndex.value = e.row.groupIndex + + if (e.column.dataField == 'anomali_pln_mobile_marking') { + setParameterRequest({ media: 'PLN Mobile', marking: 1 }) + } else if (e.column.dataField == 'anomali_pln_mobile_non_marking') { + setParameterRequest({ media: 'PLN Mobile', marking: 2 }) + } else if (e.column.dataField == 'anomali_cc123_marking') { + setParameterRequest({ media: 'Call PLN 123', marking: 1 }) + } else if (e.column.dataField == 'anomali_cc123_non_marking') { + setParameterRequest({ media: 'Call PLN 123', marking: 2 }) + } else if (e.column.dataField == 'total_anomali_marking') { + setParameterRequest({ media: '', marking: 1 }) + } else if (e.column.dataField == 'total_anomali_non_marking') { + setParameterRequest({ media: '', marking: 2 }) + } else { + setParameterRequest({ media: null, marking: null }) + } + groupData.value = getDataRowGroup(e.data) + showDetail() + } else { + groupDialog.value = false + } +} + +let wo_cc123 = 0 +let wo_pln_mobile = 0 +let wo_loket = 0 +let wo_lainnya = 0 +let wo_total = 0 +let anomali_pln_mobile_marking = 0 +let anomali_pln_mobile_non_marking = 0 +let anomali_cc123_marking = 0 +let anomali_cc123_non_marking = 0 +let total_anomali_marking = 0 +let total_anomali_non_marking = 0 +let persen_anomali_pln_mobile_marking = 0 +let persen_anomali_pln_mobile_non_marking = 0 +let persen_anomali_cc123_marking = 0 +let persen_anomali_cc123_non_marking = 0 +let persen_anomali_marking = 0 +let persen_anomali_non_marking = 0 + +const calculateCustomSummary = (options: any) => { + if (options.name === 'wo_cc123') { + if (options.summaryProcess === 'calculate') { + wo_cc123 += options.value + } else if (options.summaryProcess === 'finalize') { + options.totalValue = wo_cc123 + } + } + + if (options.name === 'wo_pln_mobile') { + if (options.summaryProcess === 'calculate') { + wo_pln_mobile += options.value + } else if (options.summaryProcess === 'finalize') { + options.totalValue = wo_pln_mobile + } + } + + if (options.name === 'wo_loket') { + if (options.summaryProcess === 'calculate') { + wo_loket += options.value + } else if (options.summaryProcess === 'finalize') { + options.totalValue = wo_loket + } + } + + if (options.name === 'wo_lainnya') { + if (options.summaryProcess === 'calculate') { + wo_lainnya += options.value + } else if (options.summaryProcess === 'finalize') { + options.totalValue = wo_lainnya + } + } + + if (options.name === 'wo_total') { + if (options.summaryProcess === 'start') { + wo_cc123 = 0 + wo_pln_mobile = 0 + wo_loket = 0 + wo_lainnya = 0 + } else if (options.summaryProcess === 'calculate') { + wo_total = wo_cc123 + wo_pln_mobile + wo_loket + wo_lainnya + } else if (options.summaryProcess === 'finalize') { + options.totalValue = wo_cc123 + wo_pln_mobile + wo_loket + wo_lainnya + } + } + + if (options.name === 'anomali_pln_mobile_marking') { + if (options.summaryProcess === 'calculate') { + anomali_pln_mobile_marking += options.value + } else if (options.summaryProcess === 'finalize') { + options.totalValue = anomali_pln_mobile_marking + } + } + + if (options.name === 'anomali_pln_mobile_non_marking') { + if (options.summaryProcess === 'calculate') { + anomali_pln_mobile_non_marking += options.value + } else if (options.summaryProcess === 'finalize') { + options.totalValue = anomali_pln_mobile_non_marking + } + } + + if (options.name === 'anomali_cc123_marking') { + if (options.summaryProcess === 'calculate') { + anomali_cc123_marking += options.value + } else if (options.summaryProcess === 'finalize') { + options.totalValue = anomali_cc123_marking + } + } + + if (options.name === 'anomali_cc123_non_marking') { + if (options.summaryProcess === 'calculate') { + anomali_cc123_non_marking += options.value + } else if (options.summaryProcess === 'finalize') { + options.totalValue = anomali_cc123_non_marking + } + } + + if (options.name === 'total_anomali_marking') { + if (options.summaryProcess === 'start') { + anomali_pln_mobile_marking = 0 + anomali_cc123_marking = 0 + } else if (options.summaryProcess === 'finalize') { + options.totalValue = anomali_pln_mobile_marking + anomali_cc123_marking + } + } + + if (options.name === 'total_anomali_non_marking') { + if (options.summaryProcess === 'start') { + anomali_pln_mobile_non_marking = 0 + anomali_cc123_non_marking = 0 + } else if (options.summaryProcess === 'finalize') { + options.totalValue = anomali_pln_mobile_non_marking + anomali_cc123_non_marking + } + } + + if (options.name === 'persen_anomali_pln_mobile_marking') { + if (options.summaryProcess === 'start') { + anomali_pln_mobile_marking = 0 + wo_total = 0 + } else if (options.summaryProcess === 'calculate') { + persen_anomali_pln_mobile_marking = + !isFinite(anomali_pln_mobile_marking / wo_total) || anomali_pln_mobile_marking == 0 + ? 0 + : (anomali_pln_mobile_marking / wo_total) * 100 + } else if (options.summaryProcess === 'finalize') { + options.totalValue = + !isFinite(anomali_pln_mobile_marking / wo_total) || anomali_pln_mobile_marking == 0 + ? 0 + : (anomali_pln_mobile_marking / wo_total) * 100 + } + } + + if (options.name === 'persen_anomali_pln_mobile_non_marking') { + if (options.summaryProcess === 'start') { + anomali_pln_mobile_non_marking = 0 + wo_total = 0 + } else if (options.summaryProcess === 'calculate') { + persen_anomali_pln_mobile_non_marking = + !isFinite(anomali_pln_mobile_non_marking / wo_total) || anomali_pln_mobile_non_marking == 0 + ? 0 + : (anomali_pln_mobile_non_marking / wo_total) * 100 + } else if (options.summaryProcess === 'finalize') { + options.totalValue = + !isFinite(anomali_pln_mobile_non_marking / wo_total) || anomali_pln_mobile_non_marking == 0 + ? 0 + : (anomali_pln_mobile_non_marking / wo_total) * 100 + } + } + + if (options.name === 'persen_anomali_cc123_marking') { + if (options.summaryProcess === 'start') { + anomali_cc123_marking = 0 + wo_total = 0 + } else if (options.summaryProcess === 'calculate') { + persen_anomali_cc123_marking = + !isFinite(anomali_cc123_marking / wo_total) || anomali_cc123_marking == 0 + ? 0 + : (anomali_cc123_marking / wo_total) * 100 + } else if (options.summaryProcess === 'finalize') { + options.totalValue = + !isFinite(anomali_cc123_marking / wo_total) || anomali_cc123_marking == 0 + ? 0 + : (anomali_cc123_marking / wo_total) * 100 + } + } + + if (options.name === 'persen_anomali_cc123_non_marking') { + if (options.summaryProcess === 'start') { + anomali_cc123_non_marking = 0 + wo_total = 0 + } else if (options.summaryProcess === 'calculate') { + persen_anomali_cc123_non_marking = + !isFinite(anomali_cc123_non_marking / wo_total) || anomali_cc123_non_marking == 0 + ? 0 + : (anomali_cc123_non_marking / wo_total) * 100 + } else if (options.summaryProcess === 'finalize') { + options.totalValue = + !isFinite(anomali_cc123_non_marking / wo_total) || anomali_cc123_non_marking == 0 + ? 0 + : (anomali_cc123_non_marking / wo_total) * 100 + } + } + + if (options.name === 'persen_anomali_marking') { + if (options.summaryProcess === 'start') { + persen_anomali_pln_mobile_marking = 0 + persen_anomali_cc123_marking = 0 + } else if (options.summaryProcess === 'finalize') { + options.totalValue = persen_anomali_pln_mobile_marking + persen_anomali_cc123_marking + } + } + + if (options.name === 'persen_anomali_non_marking') { + if (options.summaryProcess === 'start') { + persen_anomali_cc123_non_marking = 0 + persen_anomali_pln_mobile_non_marking = 0 + } else if (options.summaryProcess === 'finalize') { + options.totalValue = persen_anomali_pln_mobile_non_marking + persen_anomali_cc123_non_marking + } + } +} + const resetData = () => { dataSub.value = [] dataSubSelected.value = null @@ -1124,21 +1358,53 @@ const getDetail = async () => { const dateValue = periode.split(' s/d ') const selected = dataSelected.value - const query = { + let query = { 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), - idUlp: selected?.id_ulp ? selected?.id_ulp : 0, - idUid: selected?.id_uid ? selected?.id_uid : 0, - idUp3: selected?.id_up3 ? selected?.id_up3 : 0, + idUlp: 0, + idUid: 0, + idUp3: 0, namaRegional: '', media: parameterRequest.value?.media, isMarking: parameterRequest.value?.marking } + if (groupDialog.value) { + if (props.grouping[groupIndex.value].data == 'nama_uid') { + query = { + ...query, + idUid: groupData.value?.id_uid ? groupData.value?.id_uid : 0, + namaRegional: groupData.value?.nama_regional ? groupData.value?.nama_regional : '' + } + } else if (props.grouping[groupIndex.value].data == 'nama_up3') { + query = { + ...query, + idUid: groupData.value?.id_uid ? groupData.value?.id_uid : 0, + idUp3: groupData.value?.id_up3 ? groupData.value?.id_up3 : 0, + namaRegional: groupData.value?.nama_regional ? groupData.value?.nama_regional : '' + } + } + } else { + query = { + 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), + idUlp: selected?.id_ulp ? selected?.id_ulp : 0, + idUid: selected?.id_uid ? selected?.id_uid : 0, + idUp3: selected?.id_up3 ? selected?.id_up3 : 0, + namaRegional: selected?.nama_regional ? selected?.nama_regional : '', + media: parameterRequest.value?.media, + isMarking: parameterRequest.value?.marking + } + } + loadingSubData.value = true emit('update:loadingSubData', true) await requestGraphQl( From df130784bd075f30573d986192064cba9c2f9021 Mon Sep 17 00:00:00 2001 From: Dede Fuji Abdul Date: Thu, 18 Apr 2024 09:42:58 +0700 Subject: [PATCH 03/11] Update version number in package.json and Welcome.vue --- package.json | 2 +- src/components/Pages/Welcome.vue | 2 ++ src/views/HomeView.vue | 30 ++++++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 1b745fb..9cb47be 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "eis", - "version": "0.0.1", + "version": "0.0.111", "private": true, "scripts": { "dev": "vite", diff --git a/src/components/Pages/Welcome.vue b/src/components/Pages/Welcome.vue index 84c5317..b0a549a 100755 --- a/src/components/Pages/Welcome.vue +++ b/src/components/Pages/Welcome.vue @@ -129,6 +129,7 @@
Copyright © 2023 PT PLN (Persero). All Rights Reserved
+
Version {{ version }}
@@ -142,6 +143,7 @@ import { type RouteRecordRaw } from 'vue-router' import { routes, extractLeafRoutes } from '@/router' import { navigationIcon } from '@/utils/route' import { detectOS } from '@/utils/helper' +import { version } from '../../../package.json' const os = ref(detectOS()) const command = useCommandPalattesStore() diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index d3dc71f..4c56dfd 100755 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -3,7 +3,37 @@ import MenuProvider from '@/components/Pages/MenuProvider.vue' import Navigation from '@/components/Navigation/Navigation.vue' import { useMenuStore } from '@/stores/menu' import { RouterView } from 'vue-router' +import { useDialogStore } from '@/stores/dialog' +import { onMounted } from 'vue' +import { version } from '../../package.json' const menu = useMenuStore() +const dialog = useDialogStore() + +const showDialogUpdate = () => { + dialog.type = 'success' + dialog.title = 'Update Aplikasi' + dialog.content = + 'Aplikasi telah diperbarui. Silahkan muat ulang aplikasi untuk melihat perubahan.' + dialog.confirmText = 'Muat Ulang' + dialog.showCancelButton = false + dialog.onConfirm = () => { + window.location.reload() + } + dialog.dismissOnAction = false + dialog.open = true +} + +onMounted(() => { + const localVersion = localStorage.getItem('version') + if (localVersion) { + if (localVersion !== version) { + localStorage.setItem('version', version) + showDialogUpdate() + } + } else { + localStorage.setItem('version', version) + } +}) @@ -43,6 +43,21 @@ const filters = ref({ up3: 0 }) +const grouping = ref([ + { + data: '', + caption: 'Semua Unit' + }, + { + data: 'nama_uid', + caption: 'UID' + }, + { + data: 'nama_up3', + caption: 'UP3' + } +]) + const resetData = () => { data.value = [] dataSecond.value = [] @@ -53,6 +68,46 @@ const filterData = async (params: any) => { const { ulp, uid, up3, jenisLaporan } = params console.table('LAPPGU', jenisLaporan) + var groupList: any[] = [ + { + data: '', + caption: 'Semua Unit' + }, + { + data: 'nama_uid', + caption: 'UID' + }, + { + data: 'nama_up3', + caption: 'UP3' + } + ] + + if (uid?.id != 0) { + groupList.forEach((item, index) => { + if (item.caption == 'Semua Unit') { + groupList.splice(index, 1) + } + }) + + if (up3?.id != 0) { + groupList.forEach((item, index) => { + if (item.caption == 'UID') { + groupList.splice(index, 1) + } + }) + + if (ulp?.id != 0) { + groupList.forEach((item, index) => { + if (item.caption == 'UP3') { + groupList.splice(index, 1) + } + }) + } + } + } + grouping.value = groupList + const dateValue = params.periode.split(' s/d ') const query = { dateFrom: dateValue[0] diff --git a/src/components/Pages/Anomali/Keluhan/Anomali_LAPPKU_LPT.vue b/src/components/Pages/Anomali/Keluhan/Anomali_LAPPKU_LPT.vue index 689b122..2f99d18 100755 --- a/src/components/Pages/Anomali/Keluhan/Anomali_LAPPKU_LPT.vue +++ b/src/components/Pages/Anomali/Keluhan/Anomali_LAPPKU_LPT.vue @@ -3,6 +3,7 @@

Laporan Pengaduan Total

- + @@ -42,35 +43,15 @@ cell-template="formatText" /> - - @@ -275,12 +256,13 @@

- + @@ -288,7 +270,8 @@ :show-in-group-footer="false" :align-by-column="true" column="wo_pln_mobile" - summary-type="sum" + name="wo_pln_mobile" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -296,7 +279,8 @@ :show-in-group-footer="false" :align-by-column="true" column="wo_loket" - summary-type="sum" + name="wo_loket" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -304,7 +288,8 @@ :show-in-group-footer="false" :align-by-column="true" column="wo_lainnya" - summary-type="sum" + name="wo_lainnya" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -312,7 +297,8 @@ :show-in-group-footer="false" :align-by-column="true" column="wo_total" - summary-type="sum" + name="wo_total" + summary-type="custom" css-class="!text-right" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -320,24 +306,27 @@ :show-in-group-footer="false" :align-by-column="true" column="anomali_pln_mobile" - summary-type="sum" - css-class="!text-right" + summary-type="custom" + name="anomali_pln_mobile" + css-class="!text-right cursor-pointer" :customize-text="(e: any) => formatNumber(e.value)" /> @@ -345,24 +334,27 @@ :show-in-group-footer="false" :align-by-column="true" column="persen_anomali_pln_mobile" - summary-type="avg" + summary-type="custom" css-class="!text-right" + name="persen_anomali_pln_mobile" :customize-text="(e: any) => formatPercentage(e.value)" /> @@ -730,7 +722,7 @@ - +