Update Keluhan and Gangguan components
This commit is contained in:
@ -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) {
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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: ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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: '',
|
||||||
|
@ -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!
|
||||||
|
Reference in New Issue
Block a user