Refactor data retrieval in filterData function

This commit is contained in:
Dede Fuji Abdul
2024-03-29 00:22:39 +07:00
parent c7bbf61878
commit b05b6f82bc
35 changed files with 1247 additions and 1427 deletions

View File

@ -629,7 +629,7 @@ 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, requestGraphQl } from '@/utils/api/api.graphql'
import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers'
import { apolloClient } from '@/utils/api/api.graphql'
import { provideApolloClient } from '@vue/apollo-composable'
@ -659,8 +659,7 @@ const reportMeta = ref({
groupBy: false
})
const getDetail = () => {
loadingSubData.value = true
const getDetail = async () => {
const dateValue = filters.value?.periode.split(' s/d ')
const ref = dataSelected.value
@ -680,24 +679,21 @@ const getDetail = () => {
media: ref?.media ? ref?.media : ''
}
const { onResult, onError, loading, refetch } = useQuery(
queries.gangguan.rekap.gangguanAllDetail,
query
)
onResult((queryResult) => {
if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan
}
})
onError((error) => {
console.log(error)
})
watch(loading, (value) => {
loadingSubData.value = value
})
loadingSubData.value = true
await requestGraphQl(queries.gangguan.rekap.gangguanAllDetail, query)
.then((result) => {
if (result.data.data != undefined) {
dataSub.value = result.data.data.detailGangguan
} else {
dataSub.value = []
}
})
.catch((err) => {
console.error(err)
})
.finally(() => {
loadingSubData.value = false
})
}
const dataGridRef = ref<DxDataGrid | null>(null)
@ -756,57 +752,47 @@ const onDataSubSelectionChanged = ({ selectedRowsData }: any) => {
}
}
const filterData = (params: any) => {
loadingData.value = true
const filterData = async (params: any) => {
const dateValue = params.periode.split(' s/d ')
const { posko, uid, up3 } = params
const { onResult, onError, loading, refetch } = useQuery(
queries.gangguan.rekap.gangguanPerTanggal,
{
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 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),
posko: posko ? posko.id : 0,
idUid: uid ? uid.id : 0,
idUp3: up3 ? up3.id : 0
}
onResult((queryResult) => {
if (queryResult.data != undefined) {
data.value = queryResult.data.rekapitulasiGangguanPerTanggal
}
if (queryResult.networkStatus == 7) {
loadingData.value = true
await requestGraphQl(queries.gangguan.rekap.gangguanPerTanggal, query)
.then((result) => {
if (result.data.data != undefined) {
data.value = result.data.data.rekapitulasiGangguanPerTanggal
} else {
data.value = []
}
reportMeta.value = {
uid: { id: uid ? uid.id : 0, name: uid ? uid.name : 'Semua Unit Induk Distribusi/Wilayah' },
up3: {
id: up3 ? up3.id : 0,
name: up3 ? up3.name : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'
},
posko: { id: posko ? posko.id : 0, name: posko ? posko.name : 'Semua Posko' },
periode: params.periode,
groupBy: params.groupBy
}
})
.catch((err) => {
console.error(err)
})
.finally(() => {
loadingData.value = false
}
reportMeta.value = {
uid: { id: uid ? uid.id : 0, name: uid ? uid.name : 'Semua Unit Induk Distribusi/Wilayah' },
up3: {
id: up3 ? up3.id : 0,
name: up3 ? up3.name : 'Semua Unit Pelaksanaan Pelayanan Pelanggan'
},
posko: { id: posko ? posko.id : 0, name: posko ? posko.name : 'Semua Posko' },
periode: params.periode,
groupBy: params.groupBy
}
})
onError((error) => {
console.log(error)
// loadingData.value = false
})
loadingData.value = loading.value
watch(loading, (value) => {
// loadingData.value = value
})
})
}
onMounted(() => {