Refactor code to update date range in Anomali_LAPPGP_LPT.vue and api.graphql.ts

This commit is contained in:
Dede Fuji Abdul 2024-04-16 17:28:13 +07:00
parent 80f390e80a
commit 98eec9f138
6 changed files with 64 additions and 38 deletions

View File

@ -214,7 +214,7 @@
class="text-right cursor-pointer" class="text-right cursor-pointer"
@click=" @click="
setParameterRequest({ setParameterRequest({
media: 1 media: 'PLN Mobile'
}) })
" "
> >
@ -233,7 +233,7 @@
class="text-right cursor-pointer" class="text-right cursor-pointer"
@click=" @click="
setParameterRequest({ setParameterRequest({
media: 2 media: 'Call PLN 123'
}) })
" "
> >
@ -252,7 +252,7 @@
class="text-right cursor-pointer" class="text-right cursor-pointer"
@click=" @click="
setParameterRequest({ setParameterRequest({
media: 0 media: ''
}) })
" "
> >
@ -903,9 +903,16 @@ const resetData = () => {
const getDetail = async () => { const getDetail = async () => {
resetData() resetData()
const { jenisLaporan } = filters.value const { jenisLaporan } = filters.value
const dateValue = filters.value.periode.split(' s/d ')
const selected = dataSelected.value const selected = dataSelected.value
const query = { const 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, idUlp: selected?.id_ulp ? selected?.id_ulp : 0,
idUid: selected?.id_uid ? selected?.id_uid : 0, idUid: selected?.id_uid ? selected?.id_uid : 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0, idUp3: selected?.id_up3 ? selected?.id_up3 : 0,

View File

@ -182,7 +182,7 @@
<DetailDialog <DetailDialog
:open="dialogDetail" :open="dialogDetail"
title="Daftar Detail Penugasan Khusus" title="Daftar Detail Check in & Check Out"
@on-close="closedialogDetail" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
@ -859,13 +859,12 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref, watch } 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,
DxPager, DxPager,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -1092,16 +1092,12 @@ const calculateCustomSummary = (options: any) => {
} }
} }
if (options.name === 'persen_selesai') { if (options.name == 'persen_selesai') {
if (options.summaryProcess === 'start') { if (options.summaryProcess === 'start') {
total = 0 total = 0
total_selesai = 0 total_selesai = 0
} else if (options.summaryProcess === 'finalize') { } else if (options.summaryProcess === 'finalize') {
options.totalValue = isFinite(total_selesai / total) options.totalValue = total == 0 ? 0 : (total_selesai / total) * 100
? 0
: total_selesai == 0
? 0
: (total_selesai / total) * 100
} }
} }
@ -1110,11 +1106,7 @@ const calculateCustomSummary = (options: any) => {
total = 0 total = 0
total_inproses = 0 total_inproses = 0
} else if (options.summaryProcess === 'finalize') { } else if (options.summaryProcess === 'finalize') {
options.totalValue = isFinite(total_inproses / total) options.totalValue = total == 0 ? 0 : (total_inproses / total) * 100
? 0
: total_inproses == 0
? 0
: (total_inproses / total) * 100
} }
} }
@ -1139,11 +1131,7 @@ const calculateCustomSummary = (options: any) => {
total_durasi_response = 0 total_durasi_response = 0
count_durasi_response = 0 count_durasi_response = 0
} else if (options.summaryProcess === 'finalize') { } else if (options.summaryProcess === 'finalize') {
options.totalValue = isFinite(count_durasi_response / total_durasi_response) options.totalValue = count_durasi_response / total_durasi_response
? 0
: count_durasi_response == 0
? 0
: count_durasi_response / total_durasi_response
} }
} }
@ -1168,11 +1156,7 @@ const calculateCustomSummary = (options: any) => {
count_durasi_recovery = 0 count_durasi_recovery = 0
total_durasi_recovery = 0 total_durasi_recovery = 0
} else if (options.summaryProcess === 'finalize') { } else if (options.summaryProcess === 'finalize') {
options.totalValue = isFinite(count_durasi_recovery / total_durasi_recovery) options.totalValue = count_durasi_recovery / total_durasi_recovery
? 0
: count_durasi_recovery == 0
? 0
: count_durasi_recovery / total_durasi_recovery
} }
} }
} }
@ -1321,20 +1305,42 @@ const getDetail = async () => {
const dateValue = filters.value.periode.split(' s/d ') const dateValue = filters.value.periode.split(' s/d ')
const selected = dataSelected.value const selected = dataSelected.value
const query = { var query = {
dateFrom: dateValue[0] dateFrom: dateValue[0]
? dateValue[0].split('-').reverse().join('-') ? dateValue[0].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10), : new Date().toISOString().slice(0, 10),
dateTo: dateValue[1] dateTo: dateValue[1]
? dateValue[1].split('-').reverse().join('-') ? dateValue[1].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10), : new Date().toISOString().slice(0, 10),
idUlp: selected?.id_ulp ? selected?.id_ulp : 0, idUlp: 0,
idUid: selected?.id_uid ? selected?.id_uid : 0, idUid: 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0, idUp3: 0,
isSelesai: progressSelected.value, isSelesai: progressSelected.value,
namaFungsiBidang: selected?.fungsi_bidang ? selected?.fungsi_bidang : '' namaFungsiBidang: selected?.fungsi_bidang ? selected?.fungsi_bidang : ''
} }
if (isGroupBy.value && grouping.value.length > 0) {
if (grouping.value[0].data == 'nama_uid') {
query = {
...query,
idUid: selected?.id_uid ? selected?.id_uid : 0
}
} else if (grouping.value[0].data == 'nama_up3') {
query = {
...query,
idUid: selected?.id_uid ? selected?.id_uid : 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0
}
} else if (grouping.value[0].data == 'nama_ulp') {
query = {
...query,
idUid: selected?.id_uid ? selected?.id_uid : 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0,
idUlp: selected?.id_ulp ? selected?.id_ulp : 0
}
}
}
loadingSubData.value = true loadingSubData.value = true
await requestGraphQl(queries.keluhan.rekap.keluhanPenyelesaianPerFungsiBidangDetail, query) await requestGraphQl(queries.keluhan.rekap.keluhanPenyelesaianPerFungsiBidangDetail, query)
.then((result) => { .then((result) => {

View File

@ -69,7 +69,6 @@
cell-template="formatNumber" cell-template="formatNumber"
/> />
<DxColumn <DxColumn
:width="70"
alignment="center" alignment="center"
data-field="persen" data-field="persen"
caption="%" caption="%"
@ -109,8 +108,15 @@
<DxTotalItem <DxTotalItem
column="jumlah" column="jumlah"
summary-type="sum" summary-type="sum"
display-format="19.169.174,65" display-format="-"
css-class="text-transparent !text-right"
/>
<DxTotalItem
column="ens"
show-in-column="persen"
summary-type="sum"
css-class="text-white !text-right" css-class="text-white !text-right"
:customize-text="(e: any) => formatNumber(e.value)"
/> />
</DxSummary> </DxSummary>
@ -139,13 +145,12 @@
<script setup lang="ts"> <script setup lang="ts">
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 { onMounted, ref, watch } 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,
DxPaging, DxPaging,
DxScrolling, DxScrolling,
DxSearchPanel, DxSearchPanel,
@ -243,7 +248,6 @@ const onExporting = (e: any) => {
exportToXLSX(reportMeta.value, e) exportToXLSX(reportMeta.value, e)
} else { } else {
exportToDOCX(reportMeta.value, data.value) exportToDOCX(reportMeta.value, data.value)
} }
} }
const getDetail = async () => { const getDetail = async () => {

View File

@ -113,7 +113,7 @@
summary-type="sum" summary-type="sum"
display-format="{0}" display-format="{0}"
css-class="text-white !text-right" css-class="text-white !text-right"
:customize-text="(e: any) => formatPercentage(e.value)" :customize-text="(e: any) => formatNumber(e.value)"
/> />
<DxGroupItem <DxGroupItem

View File

@ -1713,6 +1713,8 @@ export const queries = {
`, `,
gangguanKoreksiTransaksiIndividualDetail: gql` gangguanKoreksiTransaksiIndividualDetail: gql`
query detailGangguanKoreksiTransaksiIndividu( query detailGangguanKoreksiTransaksiIndividu(
$bulan: Int!
$tahun: Int!
$dateFrom: Date! $dateFrom: Date!
$dateTo: Date! $dateTo: Date!
$posko: Int! $posko: Int!
@ -1724,6 +1726,8 @@ export const queries = {
$is_koreksi_gangguan_dan_anev: Int! $is_koreksi_gangguan_dan_anev: Int!
) { ) {
detailGangguanKoreksiTransaksiIndividu( detailGangguanKoreksiTransaksiIndividu(
bulan: $bulan
tahun: $tahun
dateFrom: $dateFrom dateFrom: $dateFrom
dateTo: $dateTo dateTo: $dateTo
posko: $posko posko: $posko
@ -2873,6 +2877,7 @@ export const queries = {
nama_jenis_gangguan nama_jenis_gangguan
jumlah jumlah
persen persen
ens
} }
} }
`, `,
@ -2893,6 +2898,7 @@ export const queries = {
bulan: $bulan bulan: $bulan
tahun: $tahun tahun: $tahun
) { ) {
nama_regional
id_uid id_uid
nama_uid nama_uid
id_up3 id_up3
@ -4195,6 +4201,8 @@ export const queries = {
`, `,
petugasBerulangDetailSub: gql` petugasBerulangDetailSub: gql`
query subDetailAnomaliPenangananPengaduanGangguanPetugasBerulang( query subDetailAnomaliPenangananPengaduanGangguanPetugasBerulang(
$dateFrom: Date!
$dateTo: Date!
$namaRegional: String! $namaRegional: String!
$idUlp: Int! $idUlp: Int!
$idUid: Int! $idUid: Int!
@ -4204,6 +4212,8 @@ export const queries = {
$idPetugas: Int! $idPetugas: Int!
) { ) {
subDetailAnomaliPenangananPengaduanGangguanPetugasBerulang( subDetailAnomaliPenangananPengaduanGangguanPetugasBerulang(
dateFrom: $dateFrom
dateTo: $dateTo
namaRegional: $namaRegional namaRegional: $namaRegional
idUlp: $idUlp idUlp: $idUlp
idUid: $idUid idUid: $idUid