Update Keluhan and Gangguan components

This commit is contained in:
Dede Fuji Abdul
2024-03-30 15:34:15 +07:00
parent 2b98887972
commit b69d2024fe
6 changed files with 105 additions and 25 deletions

View File

@ -69,6 +69,7 @@
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
:group-index="0" :group-index="0"
v-if="filters?.uid ? filters?.uid.id == 0 : 0"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -77,7 +78,7 @@
caption="Regional" caption="Regional"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
:group-index="1" :group-index="filters?.uid.id != 0 ? 0 : 1"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -86,7 +87,7 @@
caption="UID" caption="UID"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
:group-index="2" :group-index="filters?.uid.id != 0 ? 0 : 2"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -95,7 +96,7 @@
caption="UP3" caption="UP3"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
:group-index="3" :group-index="filters?.uid.id != 0 ? 0 : 3"
/> />
<!-- <DxColumn <!-- <DxColumn
:width="150" :width="150"
@ -1108,6 +1109,21 @@ const reportMeta = ref({
periode: '' periode: ''
}) })
const getDataRowGroup = (data: any): any => {
if (data.items) {
if (Array.isArray(data.items)) {
return getDataRowGroup(data.items)
} else {
if (data.items.collapsedItems) {
}
}
} else if (data.collapsedItems) {
return {}
} else {
return {}
}
}
const onCellClicked = (e: any) => { const onCellClicked = (e: any) => {
console.log('cell clicked', e) console.log('cell clicked', e)
// console.log('group cell clicked', e.column.caption) // console.log('group cell clicked', e.column.caption)
@ -1116,6 +1132,8 @@ const onCellClicked = (e: any) => {
groupDialog.value = true groupDialog.value = true
groupIndex.value = e.row.groupIndex groupIndex.value = e.row.groupIndex
setAgreementDialog(e.column.caption) setAgreementDialog(e.column.caption)
const data = getDataRowGroup(e.data)
console.log('data', data)
if (e.row.groupIndex == 0) { if (e.row.groupIndex == 0) {
// //
} else if (e.row.groupIndex == 1) { } else if (e.row.groupIndex == 1) {

View File

@ -24,6 +24,7 @@
:allow-column-resizing="true" :allow-column-resizing="true"
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxPaging :enabled="false" />
<DxGrouping :auto-expand-all="false" :context-menu-enabled="true" /> <DxGrouping :auto-expand-all="false" :context-menu-enabled="true" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxLoadPanel <DxLoadPanel

View File

@ -67,8 +67,8 @@
<DxColumn <DxColumn
:width="170" :width="170"
alignment="center" alignment="center"
data-field="tipe_keluhan" data-field="grouping_tipe_keluhan"
caption="Jenis Keluhan" caption=""
name="tipeKeluhan" name="tipeKeluhan"
css-class="custom-table-column" css-class="custom-table-column"
:group-index="0" :group-index="0"
@ -777,7 +777,13 @@
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer"> <p class="text-right cursor-pointer">
{{ data.text }} {{
isNumber(data.text)
? data.column.caption == '%'
? formatPercentage(data.text)
: formatNumber(data.text)
: data.text
}}
</p> </p>
</template> </template>
@ -1033,7 +1039,7 @@ const getDetail = async () => {
media: '', media: '',
tanggal: '', tanggal: '',
namaIssuetype: '', namaIssuetype: '',
namaSubissuetype: '' namaSubissuetype: selected?.tipe_keluhan ? selected?.tipe_keluhan : ''
} }
loadingSubData.value = true loadingSubData.value = true

View File

@ -64,7 +64,7 @@
css-class="custom-table-column" css-class="custom-table-column"
:group-index="0" :group-index="0"
name="NamaUID" name="NamaUID"
v-if="filters.groupBy" v-if="isGroupBy"
/> />
<DxColumn <DxColumn
:width="120" :width="120"
@ -836,6 +836,7 @@ const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
const agreeToShowDialog = ref(false) const agreeToShowDialog = ref(false)
const progressSelected = ref(0) const progressSelected = ref(0)
const isGroupBy = ref(false)
const setAgreementDialog = (status: boolean, progress: number) => { const setAgreementDialog = (status: boolean, progress: number) => {
agreeToShowDialog.value = status agreeToShowDialog.value = status
@ -859,10 +860,18 @@ const filterData = async (params: any) => {
} }
loadingData.value = true loadingData.value = true
await requestGraphQl(queries.keluhan.rekap.keluhanPerKelompokKeluhan, query) await requestGraphQl(
params.groupBy
? queries.keluhan.rekap.keluhanPerKelompokKeluhanUID
: queries.keluhan.rekap.keluhanPerKelompokKeluhan,
query
)
.then((result) => { .then((result) => {
isGroupBy.value = params.groupBy
if (result.data.data != undefined) { if (result.data.data != undefined) {
data.value = result.data.data.rekapitulasiKeluhanPerKelompokKeluhan data.value = isGroupBy.value
? result.data.data.rekapitulasiKeluhanPerKelompokKeluhanUid
: result.data.data.rekapitulasiKeluhanPerKelompokKeluhan
} else { } else {
data.value = [] data.value = []
} }
@ -886,14 +895,14 @@ const getDetail = async () => {
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: isGroupBy.value ? (selected?.id_uid ? selected?.id_uid : 0) : 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0, idUp3: 0,
namaRegional: selected?.nama_regional ? selected?.nama_regional : '', namaRegional: '',
isSelesai: progressSelected.value, isSelesai: progressSelected.value,
media: '', media: '',
tanggal: '', tanggal: '',
namaIssuetype: '', namaIssuetype: selected?.kelompok ? selected?.kelompok : '',
namaSubissuetype: '' namaSubissuetype: ''
} }

View File

@ -71,7 +71,7 @@
caption="UID" caption="UID"
css-class="custom-table-column" css-class="custom-table-column"
:group-index="0" :group-index="0"
v-if="filters.groupBy" v-if="isGroupBy"
/> />
<DxColumn <DxColumn
:width="170" :width="170"
@ -839,6 +839,7 @@ const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
const agreeToShowDialog = ref(false) const agreeToShowDialog = ref(false)
const progressSelected = ref(0) const progressSelected = ref(0)
const isGroupBy = ref(false)
const setAgreementDialog = (status: boolean, progress: number) => { const setAgreementDialog = (status: boolean, progress: number) => {
agreeToShowDialog.value = status agreeToShowDialog.value = status
@ -864,6 +865,7 @@ const filterData = async (params: any) => {
loadingData.value = true loadingData.value = true
await requestGraphQl(queries.keluhan.rekap.keluhanPerTanggal, query) await requestGraphQl(queries.keluhan.rekap.keluhanPerTanggal, query)
.then((result) => { .then((result) => {
isGroupBy.value = params.groupBy
if (result.data.data != undefined) { if (result.data.data != undefined) {
data.value = result.data.data.rekapitulasiKeluhanPerTanggal data.value = result.data.data.rekapitulasiKeluhanPerTanggal
} else { } else {
@ -883,15 +885,15 @@ const getDetail = async () => {
const selected = dataSelected.value const selected = dataSelected.value
const query = { const query = {
dateFrom: dateValue[0] dateFrom: selected?.tanggal_lapor
? dateValue[0].split('-').reverse().join('-') ? reformatDate(selected?.tanggal_lapor, 'dd/MM/yyyy', 'yyyy-MM-dd')
: new Date().toISOString().slice(0, 10), : '',
dateTo: dateValue[1] dateTo: selected?.tanggal_lapor
? dateValue[1].split('-').reverse().join('-') ? reformatDate(selected?.tanggal_lapor, 'dd/MM/yyyy', 'yyyy-MM-dd')
: 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: isGroupBy.value ? (selected?.id_uid ? selected?.id_uid : 0) : 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0, idUp3: 0,
namaRegional: '', namaRegional: '',
isSelesai: progressSelected.value, isSelesai: progressSelected.value,
media: '', media: '',

View File

@ -421,6 +421,50 @@ export const queries = {
} }
} }
`, `,
keluhanPerKelompokKeluhanUID: gql`
query rekapitulasiKeluhanPerKelompokKeluhanUid(
$dateFrom: Date!
$dateTo: Date!
$idUlp: Int!
$idUid: Int!
$idUp3: Int!
) {
rekapitulasiKeluhanPerKelompokKeluhanUid(
dateFrom: $dateFrom
dateTo: $dateTo
idUlp: $idUlp
idUid: $idUid
idUp3: $idUp3
) {
id
nama_regional
id_uid
nama_uid
id_up3
nama_up3
id_ulp
nama_ulp
kelompok
total
total_selesai
persen_selesai
total_inproses
persen_inproses
total_durasi_response
avg_durasi_response
min_durasi_response
max_durasi_response
total_dibawah_sla_response
total_diatas_sla_response
total_durasi_recovery
avg_durasi_recovery
min_durasi_recovery
max_durasi_recovery
total_dibawah_sla_recovery
total_diatas_sla_recovery
}
}
`,
keluhanPerKelompokKeluhan: gql` keluhanPerKelompokKeluhan: gql`
query rekapitulasiKeluhanPerKelompokKeluhan( query rekapitulasiKeluhanPerKelompokKeluhan(
$dateFrom: Date! $dateFrom: Date!