Add GraphQL queries for material-related data

This commit is contained in:
Dede Fuji Abdul
2024-03-29 10:54:16 +07:00
parent 2bbf120210
commit 30bc1cbb97
28 changed files with 1137 additions and 1226 deletions

View File

@ -152,51 +152,19 @@ import Filters from '@/components/Form/Filters.vue'
import { Type14 } from '@/components/Form/FiltersType'
import { useQuery } from '@vue/apollo-composable'
import gql from 'graphql-tag'
import { queries, requestGraphQl } from '@/utils/api/api.graphql'
const position = { of: '#data' }
const showIndicator = ref(true)
const shading = ref(true)
const showPane = ref(true)
const data = ref<any[]>([])
const loading = ref(false)
const daftarGangguanDanMaterialDipakai = gql`
query DaftardaftarGangguanDanMaterialDipakai(
$dateFrom: Date!
$dateTo: Date!
$posko: String
$idUid: Int
$idUp3: Int
) {
daftarGangguanDanMaterialDipakai(
dateFrom: $dateFrom
dateTo: $dateTo
distribusi: $idUid
area: $idUp3
posko: $posko
) {
isi_laporan
nama_material
nama_pelanggan
nomor_gangguan
penyebab_gangguan
regu
satuan
sumber
volume
waktu_padam
}
}
`
const { onResult, onError, loading, refetch } = useQuery(daftarGangguanDanMaterialDipakai, {
dateFrom: new Date('2023-10-01').toISOString().slice(0, 10),
dateTo: new Date('2023-10-01').toISOString().slice(0, 10),
idUid: 0,
idUp3: 0,
posko: ''
})
const filterData = (params: any) => {
const filterData = async (params: any) => {
const dateValue = params.periode.split(' s/d ')
const { posko, idUid, idUp3 } = params
refetch({
const query = {
dateFrom: dateValue[0]
? dateValue[0].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10),
@ -206,23 +174,23 @@ const filterData = (params: any) => {
idUid: idUid ? idUid.id : 0,
idUp3: idUp3 ? idUp3.id : 0,
posko: posko ? posko.id : 0
})
onResult((queryResult) => {
if (queryResult.data != undefined) {
queryResult.data.daftarGangguanDanMaterialDipakai.forEach((item: any) => {
data.value = [
...data.value,
{
...item
}
]
})
}
console.log(queryResult.data)
})
onError((error) => {
console.log(error)
})
}
loading.value = true
await requestGraphQl(queries.material.daftar.daftarGangguanDanMaterialDipakai, query)
.then((result) => {
if (result.data.data != undefined) {
data.value = result.data.data.daftarGangguanDanMaterialDipakai
} else {
data.value = []
}
})
.catch((err) => {
console.error(err)
})
.finally(() => {
loading.value = false
})
}
const filters = ref()
</script>

View File

@ -112,78 +112,18 @@ import { Type14 } from '@/components/Form/FiltersType'
import Filters from '@/components/Form/Filters.vue'
import { useQuery } from '@vue/apollo-composable'
import gql from 'graphql-tag'
import { queries, requestGraphQl } from '@/utils/api/api.graphql'
const position = { of: '#data' }
const showIndicator = ref(true)
const shading = ref(true)
const showPane = ref(true)
const data = ref<any[]>([])
const loading = ref(false)
const rekapitulasiPemakaianMaterial = gql`
query DaftarrekapitulasiPemakaianMaterial(
$dateFrom: Date!
$dateTo: Date!
$posko: String
$idUid: Int
$idUp3: Int
) {
rekapitulasiPemakaianMaterial(
dateFrom: $dateFrom
dateTo: $dateTo
distribusi: $idUid
area: $idUp3
posko: $posko
) {
kode_material
nama_material
satuan
sumber_material
tgl1
tgl10
tgl11
tgl12
tgl13
tgl14
tgl15
tgl16
tgl17
tgl18
tgl19
tgl2
tgl20
tgl21
tgl22
tgl23
tgl24
tgl25
tgl26
tgl27
tgl28
tgl29
tgl3
tgl30
tgl31
tgl4
tgl5
tgl6
tgl7
tgl8
tgl9
}
}
`
const { onResult, onError, loading, refetch } = useQuery(rekapitulasiPemakaianMaterial, {
dateFrom: new Date('2023-10-01').toISOString().slice(0, 10),
dateTo: new Date('2023-10-01').toISOString().slice(0, 10),
idUid: 0,
idUp3: 0,
posko: 0
})
const filterData = (params: any) => {
const filterData = async (params: any) => {
const dateValue = params.periode.split(' s/d ')
const { posko, idUid, idUp3 } = params
refetch({
const query = {
dateFrom: dateValue[0]
? dateValue[0].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10),
@ -193,23 +133,23 @@ const filterData = (params: any) => {
idUid: idUid ? idUid.id : 0,
idUp3: idUp3 ? idUp3.id : 0,
posko: posko ? posko.id : 0
})
onResult((queryResult) => {
if (queryResult.data != undefined) {
queryResult.data.rekapitulasiPemakaianMaterial.forEach((item: any) => {
data.value = [
...data.value,
{
...item
}
]
})
}
console.log(queryResult.data)
})
onError((error) => {
console.log(error)
})
}
loading.value = true
await requestGraphQl(queries.material.rekap.rekapitulasiPemakaianMaterial, query)
.then((result) => {
if (result.data.data != undefined) {
data.value = result.data.data.rekapitulasiPemakaianMaterial
} else {
data.value = []
}
})
.catch((err) => {
console.error(err)
})
.finally(() => {
loading.value = false
})
}
const filters = ref()
</script>