Merge branch 'dev-defuj' of github.com:defuj/eis into dev-bagus

This commit is contained in:
kur0nek-o 2024-03-20 10:24:53 +07:00
commit dbc6d3265b
59 changed files with 354 additions and 262 deletions

View File

@ -18,6 +18,7 @@
:word-wrap-enabled="true" :word-wrap-enabled="true"
:data-source="data" :data-source="data"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -358,6 +359,7 @@ import {
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGroupItem, DxGroupItem,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -18,6 +18,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -438,6 +439,7 @@ import {
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGroupItem, DxGroupItem,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -111,13 +111,13 @@
/> />
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="text-left cursor-pointer" @click="showDialogDataSelected()"> <p class="text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -181,9 +181,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Daftar Detail Jumlah WO Gangguan Individu" title="Daftar Detail Jumlah WO Gangguan Individu"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -204,10 +204,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -829,11 +829,11 @@ const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const data = ref<any[]>([]) const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const getDetail = () => { const getDetail = () => {
loadingSubData.value = true loadingSubData.value = true
@ -857,8 +857,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan
@ -873,11 +871,11 @@ const getDetail = () => {
loadingSubData.value = value loadingSubData.value = value
}) })
} }
const showDialogDataSelected = () => { const showDetail = () => {
if (dataSelected.value != null) { if (dataSelected.value != null) {
dataSub.value = [] dataSub.value = []
dataSubSelected.value = null dataSubSelected.value = null
dialogDataSelected.value = true dialogDetail.value = true
getDetail() getDetail()
} }
} }
@ -913,7 +911,7 @@ const onExporting = (e: any) => {
const onDataSelectionChanged = ({ selectedRowsData }: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => {
dataSelected.value = selectedRowsData[0] dataSelected.value = selectedRowsData[0]
showDialogDataSelected() showDetail()
} }
const onDataSubSelectionChanged = ({ selectedRowsData }: any) => { const onDataSubSelectionChanged = ({ selectedRowsData }: any) => {

View File

@ -20,10 +20,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -21,10 +21,10 @@
:allow-column-resizing="true" :allow-column-resizing="true"
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -20,10 +20,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -20,10 +20,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -36,10 +36,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -20,10 +20,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -20,10 +20,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -23,7 +23,7 @@
:allow-column-resizing="true" :allow-column-resizing="true"
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxGrouping :auto-expand-all="false" /> <DxGrouping :auto-expand-all="false" :context-menu-enabled="true" expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<!-- <DxPaging :page-size="40" :enabled="true" /> <!-- <DxPaging :page-size="40" :enabled="true" />
<DxPager <DxPager
@ -320,13 +320,13 @@
</DxColumn> </DxColumn>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="text-left cursor-pointer" @click="showDialogDataSelected()"> <p class="text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -338,7 +338,7 @@
</template> </template>
<template #formatTime="{ data }"> <template #formatTime="{ data }">
<p @click="showDialogDataSelected()"> <p @click="showDetail()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
@ -510,9 +510,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Detail Gangguan All" title="Detail Gangguan All"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -533,10 +533,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -1038,12 +1038,13 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>(null) const dataSelected = ref<any>(null)
const dataSubSelected = ref<any>(null) const dataSubSelected = ref<any>(null)
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
const filterData = (params: any) => { const filterData = (params: any) => {
loadingData.value = true
const { posko, uid, up3 } = params const { posko, uid, up3 } = params
const dateValue = params.periode.split(' s/d ') const dateValue = params.periode.split(' s/d ')
@ -1102,8 +1103,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan
@ -1118,13 +1117,15 @@ const getDetail = () => {
loadingSubData.value = value loadingSubData.value = value
}) })
} }
const currentDataSelected = ref<any>(null)
const showDialogDataSelected = () => { const showDetail = () => {
if (dataSelected.value != null) { if (dataSelected.value != null) {
dataSub.value = [] if (currentDataSelected.value == dataSelected.value) {
dataSubSelected.value = null dataSub.value = []
dialogDataSelected.value = true dataSubSelected.value = null
getDetail() dialogDetail.value = true
getDetail()
}
} }
} }
@ -1262,8 +1263,11 @@ const onExporting = (e: any) => {
} }
const onDataSelectionChanged = ({ selectedRowsData }: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => {
dataSelected.value = selectedRowsData[0] if (dataSelected.value != selectedRowsData[0]) {
showDialogDataSelected() dataSelected.value = selectedRowsData[0]
currentDataSelected.value = selectedRowsData[0]
showDetail()
}
} }
const onDataSubSelectionChanged = ({ selectedRowsData }: any) => { const onDataSubSelectionChanged = ({ selectedRowsData }: any) => {

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -163,10 +164,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -496,7 +497,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxGroupItem, DxGroupItem,
DxPager DxPager,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -549,8 +551,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan

View File

@ -157,10 +157,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -538,8 +538,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan

View File

@ -437,10 +437,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -813,8 +813,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan

View File

@ -45,7 +45,7 @@
/> />
<DxColumnFixing :enabled="true" /> <DxColumnFixing :enabled="true" />
<DxGroupPanel :visible="true" /> <DxGroupPanel :visible="true" />
<DxGrouping :auto-expand-all="true" /> <DxGrouping :auto-expand-all="true" :context-menu-enabled="true" expand-mode="rowClick" />
<DxColumn <DxColumn
:width="60" :width="60"

View File

@ -27,6 +27,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -448,10 +449,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -777,7 +778,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxGroupItem, DxGroupItem,
DxPager DxPager,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -887,10 +889,10 @@ const getDetail = () => {
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),
posko: ref.id_posko, posko: filters.value?.id_posko ? filters.value.id_posko : 0,
idUid: ref.id_uid, idUid: filters.value?.id_uid ? filters.value.id_uid : 0,
idUp3: ref.id_up3, idUp3: filters.value?.id_up3 ? filters.value.id_up3 : 0,
idEquipment: ref?.id_equipment ? ref.id_equipment : 0 idEquipment: ref?.kode ? ref.kode : 0
} }
const { onResult, onError, loading, refetch } = useQuery( const { onResult, onError, loading, refetch } = useQuery(
@ -898,8 +900,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan

View File

@ -17,7 +17,7 @@
:allow-column-resizing="true" :allow-column-resizing="true"
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxGrouping :auto-expand-all="false" /> <DxGrouping :auto-expand-all="false" :context-menu-enabled="true" expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -26,8 +26,7 @@
:show-indicator="showIndicator" :show-indicator="showIndicator"
:show-pane="showPane" :show-pane="showPane"
:shading="shading" :shading="shading"
v-if="loading" v-model:visible="loadingData"
v-model:visible="loading"
:enabled="true" :enabled="true"
/> />
@ -272,19 +271,19 @@
</DxSummary> </DxSummary>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="text-left cursor-pointer" @click="showData()"> <p class="text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
<template #formatPercentage="{ data }"> <template #formatPercentage="{ data }">
<p class="text-right cursor-pointer" @click="showData()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ isNumber(data.text) ? formatPercentage(data.text) : data.text }} {{ isNumber(data.text) ? formatPercentage(data.text) : data.text }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showData()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -304,7 +303,7 @@
</div> </div>
<DetailDialog <DetailDialog
:open="showDetail" :open="dialogDetail"
title="Detail Rekapitulasi Koreksi Transaksi Individual" title="Detail Rekapitulasi Koreksi Transaksi Individual"
@on-close="closeDetail" @on-close="closeDetail"
:full-width="true" :full-width="true"
@ -327,10 +326,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -962,7 +961,7 @@
<script setup lang="ts"> <script setup lang="ts">
import Filters from '@/components/Form/Filters.vue' import Filters from '@/components/Form/Filters.vue'
import Type18 from '@/components/Form/FiltersType/Type18.vue' import Type18 from '@/components/Form/FiltersType/Type18.vue'
import { onMounted, ref } from 'vue' import { onMounted, ref, watch } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
@ -989,7 +988,11 @@ import { formatNumber, formatPercentage, isNumber } from '@/utils/numbers'
import { formatWaktu } from '@/components/Form/FiltersType/reference' import { formatWaktu } from '@/components/Form/FiltersType/reference'
import DetailDialog from '@/components/Dialogs/DetailDialog.vue' import DetailDialog from '@/components/Dialogs/DetailDialog.vue'
import InputText from '@/components/InputText.vue' import InputText from '@/components/InputText.vue'
import { apolloClient } from '@/utils/api/api.graphql'
import { provideApolloClient } from '@vue/apollo-composable'
const client = apolloClient()
provideApolloClient(client)
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
const shading = ref(true) const shading = ref(true)
@ -998,15 +1001,62 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref() const dataSelected = ref()
const dataSubSelected = ref() const dataSubSelected = ref()
const showDetail = ref(false) const dialogDetail = ref(false)
const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
const showData = () => { const getDetail = () => {
showDetail.value = true loadingSubData.value = true
const dateValue = filters.value.periode.split(' s/d ')
const ref = dataSelected.value
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: ref?.id_posko ? ref?.id_posko : 0,
idUid: ref?.id_uid ? ref?.id_uid : 0,
idUp3: ref?.id_up3 ? ref?.id_up3 : 0,
idRegu: ref?.id_regu ? ref?.id_regu : 0,
idUlp: ref?.id_ulp ? ref?.id_ulp : 0,
namaRegional: ref?.nama_regional ? ref?.nama_regional : '',
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
})
}
const showDetail = () => {
if (dataSelected.value != null) {
dataSub.value = []
dataSubSelected.value = null
dialogDetail.value = true
getDetail()
}
} }
const closeDetail = () => { const closeDetail = () => {
showDetail.value = false dialogDetail.value = false
} }
const onExporting = (e: any) => { const onExporting = (e: any) => {
@ -1040,38 +1090,31 @@ const onExporting = (e: any) => {
const onDataSelectionChanged = ({ selectedRowsData }: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => {
dataSelected.value = selectedRowsData[0] dataSelected.value = selectedRowsData[0]
console.log(data) showDetail()
} }
const onDataSubSelectionChanged = ({ selectedRowsData }: any) => { const onDataSubSelectionChanged = ({ selectedRowsData }: any) => {
dataSubSelected.value = selectedRowsData[0] dataSubSelected.value = selectedRowsData[0]
console.log(dataSubSelected)
} }
const { onResult, onError, loading, refetch } = useQuery(
queries.gangguan.rekap.gangguanKoreksiTransaksiIndividual,
{
dateFrom: new Date().toISOString().slice(0, 10),
dateTo: new Date().toISOString().slice(0, 10),
posko: 0,
idUid: 0,
idUp3: 0
}
)
const filterData = (params: any) => { const filterData = (params: any) => {
const dateValue = params.periode.split(' s/d ') const dateValue = params.periode.split(' s/d ')
const { posko, uid, up3 } = params const { posko, uid, up3 } = params
refetch({
dateFrom: dateValue[0] const { onResult, onError, loading, refetch } = useQuery(
? dateValue[0].split('-').reverse().join('-') queries.gangguan.rekap.gangguanKoreksiTransaksiIndividual,
: new Date().toISOString().slice(0, 10), {
dateTo: dateValue[1] dateFrom: dateValue[0]
? dateValue[1].split('-').reverse().join('-') ? dateValue[0].split('-').reverse().join('-')
: new Date().toISOString().slice(0, 10), : new Date().toISOString().slice(0, 10),
posko: posko ? posko.id : 0, dateTo: dateValue[1]
idUid: uid ? uid.id : 0, ? dateValue[1].split('-').reverse().join('-')
idUp3: up3 ? up3.id : 0 : new Date().toISOString().slice(0, 10),
}) idPosko: posko ? posko.id : 0,
idUid: uid ? uid.id : 0,
idUp3: up3 ? up3.id : 0
}
)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
@ -1081,10 +1124,16 @@ const filterData = (params: any) => {
console.log(queryResult.loading) console.log(queryResult.loading)
console.log(queryResult.networkStatus) console.log(queryResult.networkStatus)
}) })
onError((error) => { onError((error) => {
console.log(error) console.log(error)
}) })
watch(loading, (value) => {
loadingData.value = value
})
} }
const filters = ref() const filters = ref()
onMounted(() => { onMounted(() => {
if (import.meta.env.DEV) { if (import.meta.env.DEV) {

View File

@ -27,6 +27,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -533,10 +534,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -852,6 +853,7 @@ import {
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGroupItem, DxGroupItem,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPager, DxPager,
DxPaging, DxPaging,
@ -914,8 +916,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan

View File

@ -292,10 +292,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -676,8 +676,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan

View File

@ -18,6 +18,7 @@
:allow-column-resizing="true" :allow-column-resizing="true"
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -254,10 +255,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -606,6 +607,7 @@ import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPager, DxPager,
DxPaging, DxPaging,
@ -669,8 +671,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan

View File

@ -246,10 +246,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -661,8 +661,6 @@ const getDetail = () => {
query query
) )
refetch(query)
onResult((queryResult) => { onResult((queryResult) => {
if (queryResult.data != undefined) { if (queryResult.data != undefined) {
dataSub.value = queryResult.data.detailGangguan dataSub.value = queryResult.data.detailGangguan

View File

@ -21,10 +21,10 @@
:word-wrap-enabled="false" :word-wrap-enabled="false"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -21,10 +21,10 @@
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -21,10 +21,10 @@
:word-wrap-enabled="false" :word-wrap-enabled="false"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -37,10 +37,10 @@
:word-wrap-enabled="false" :word-wrap-enabled="false"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -37,10 +37,10 @@
:word-wrap-enabled="false" :word-wrap-enabled="false"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -21,10 +21,10 @@
:word-wrap-enabled="false" :word-wrap-enabled="false"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -21,10 +21,10 @@
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -24,7 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping :auto-expand-all="false" /> <DxGrouping :auto-expand-all="false" :context-menu-enabled="true" expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -395,13 +395,13 @@
</DxSummary> </DxSummary>
<template #formatTime="{ data }"> <template #formatTime="{ data }">
<p class="cursor-pointer !text-right" @click="showDialogDataSelected()"> <p class="cursor-pointer !text-right" @click="showDetail()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -413,7 +413,7 @@
</template> </template>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="cursor-pointer !text-left" @click="showDialogDataSelected()"> <p class="cursor-pointer !text-left" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
@ -421,9 +421,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Detail Rekapitulasi Keluhan All" title="Detail Rekapitulasi Keluhan All"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -444,10 +444,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -800,8 +800,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>() const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -851,8 +851,8 @@ const getDetail = () => {
dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanAll dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanAll
} }
const showDialogDataSelected = () => { const showDetail = () => {
dialogDataSelected.value = true dialogDetail.value = true
getDetail() getDetail()
} }

View File

@ -100,7 +100,7 @@
</DxSummary> </DxSummary>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="!text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="!text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -112,7 +112,7 @@
</template> </template>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="text-left cursor-pointer" @click="showDialogDataSelected()"> <p class="text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
@ -120,9 +120,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Rekapitulasi Keluhan Berdasarkan Media" title="Rekapitulasi Keluhan Berdasarkan Media"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -143,10 +143,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -500,8 +500,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>() const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -554,8 +554,8 @@ const filterData = (params: any) => {
const getDetail = () => {} const getDetail = () => {}
const showDialogDataSelected = () => { const showDetail = () => {
dialogDataSelected.value = true dialogDetail.value = true
console.log(dataSelected.value) console.log(dataSelected.value)
getDetail() getDetail()
} }

View File

@ -25,6 +25,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -362,12 +363,12 @@
</DxSummary> </DxSummary>
<template #formatTime="{ data }"> <template #formatTime="{ data }">
<p class="cursor-pointer !text-right" @click="showDialogDataSelected()"> <p class="cursor-pointer !text-right" @click="showDetail()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -379,7 +380,7 @@
</template> </template>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="cursor-pointer !text-left" @click="showDialogDataSelected()"> <p class="cursor-pointer !text-left" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
@ -387,9 +388,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Rekapitulasi Keluhan Per Fungsi Bidang" title="Rekapitulasi Keluhan Per Fungsi Bidang"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -410,10 +411,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -752,7 +753,8 @@ import {
DxTotalItem, DxTotalItem,
DxScrolling, DxScrolling,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -773,8 +775,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>() const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -826,8 +828,8 @@ const getDetail = () => {
dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPenyelesaianPerFungsiBidang dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPenyelesaianPerFungsiBidang
} }
const showDialogDataSelected = () => { const showDetail = () => {
dialogDataSelected.value = true dialogDetail.value = true
getDetail() getDetail()
} }

View File

@ -25,6 +25,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -516,13 +517,13 @@
</DxSummary> </DxSummary>
<template #formatTime="{ data }"> <template #formatTime="{ data }">
<p class="cursor-pointer !text-right" @click="showDialogDataSelected()"> <p class="cursor-pointer !text-right" @click="showDetail()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -534,7 +535,7 @@
</template> </template>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="text-left cursor-pointer" @click="showDialogDataSelected()"> <p class="text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
@ -542,9 +543,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Rekapitulasi Keluhan Per Jenis Keluhan" title="Rekapitulasi Keluhan Per Jenis Keluhan"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -565,10 +566,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -900,7 +901,8 @@ import {
DxScrolling, DxScrolling,
DxSearchPanel, DxSearchPanel,
DxSelection, DxSelection,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -921,8 +923,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>() const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -975,8 +977,8 @@ const getDetail = () => {
// dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerJenisKeluhan // dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerJenisKeluhan
} }
const showDialogDataSelected = () => { const showDetail = () => {
dialogDataSelected.value = true dialogDetail.value = true
getDetail() getDetail()
} }

View File

@ -25,6 +25,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -373,13 +374,13 @@
</DxSummary> </DxSummary>
<template #formatTime="{ data }"> <template #formatTime="{ data }">
<p class="!text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="!text-right cursor-pointer" @click="showDetail()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -391,7 +392,7 @@
</template> </template>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="!text-left cursor-pointer" @click="showDialogDataSelected()"> <p class="!text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
@ -399,9 +400,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Detail Rekapitulasi Keluhan Per Kelompok Keluhan" title="Detail Rekapitulasi Keluhan Per Kelompok Keluhan"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -422,10 +423,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -758,7 +759,8 @@ import {
DxTotalItem, DxTotalItem,
DxScrolling, DxScrolling,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -779,8 +781,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>() const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -833,8 +835,8 @@ const getDetail = () => {
dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerKelompokKeluhan dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerKelompokKeluhan
} }
const showDialogDataSelected = () => { const showDetail = () => {
dialogDataSelected.value = true dialogDetail.value = true
getDetail() getDetail()
} }

View File

@ -25,6 +25,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -372,17 +373,17 @@
</DxSummary> </DxSummary>
<template #formatTime="{ data }"> <template #formatTime="{ data }">
<p class="!text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="!text-right cursor-pointer" @click="showDetail()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
<template #percent="{ data }"> <template #percent="{ data }">
<p class="cursor-pointer" @click="showDialogDataSelected()">{{ data.text }}%</p> <p class="cursor-pointer" @click="showDetail()">{{ data.text }}%</p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -394,7 +395,7 @@
</template> </template>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="text-left cursor-pointer" @click="showDialogDataSelected()"> <p class="text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
@ -402,9 +403,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Rekapitulasi Keluhan Per Tanggal" title="Rekapitulasi Keluhan Per Tanggal"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -425,10 +426,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -761,7 +762,8 @@ import {
DxTotalItem, DxTotalItem,
DxScrolling, DxScrolling,
DxSearchPanel, DxSearchPanel,
DxSelection DxSelection,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -782,8 +784,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>() const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -833,8 +835,8 @@ const getDetail = () => {
dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerTanggal dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerTanggal
} }
const showDialogDataSelected = () => { const showDetail = () => {
dialogDataSelected.value = true dialogDetail.value = true
getDetail() getDetail()
} }

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -515,13 +516,13 @@
</DxSummary> </DxSummary>
<template #formatTime="{ data }"> <template #formatTime="{ data }">
<p class="cursor-pointer !text-right" @click="showDialogDataSelected()"> <p class="cursor-pointer !text-right" @click="showDetail()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="!text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="!text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -533,7 +534,7 @@
</template> </template>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="text-left cursor-pointer" @click="showDialogDataSelected()"> <p class="text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
@ -541,9 +542,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Rekapitulasi Keluhan Per Unit" title="Rekapitulasi Keluhan Per Unit"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -564,10 +565,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -899,7 +900,8 @@ import {
DxScrolling, DxScrolling,
DxSearchPanel, DxSearchPanel,
DxSelection, DxSelection,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -919,8 +921,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>() const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -970,8 +972,8 @@ const getDetail = () => {
// dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerUnit // dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerUnit
} }
const showDialogDataSelected = () => { const showDetail = () => {
dialogDataSelected.value = true dialogDetail.value = true
console.log(dataSelected.value) console.log(dataSelected.value)
getDetail() getDetail()
} }

View File

@ -18,10 +18,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -18,10 +18,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -209,6 +210,7 @@ import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -153,10 +153,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -23,6 +23,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -356,6 +357,7 @@ import {
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGroupItem, DxGroupItem,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -274,6 +275,7 @@ import {
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGroupItem, DxGroupItem,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -209,6 +210,7 @@ import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -209,6 +210,7 @@ import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -25,6 +25,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -358,6 +359,7 @@ import {
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGroupItem, DxGroupItem,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -265,6 +266,7 @@ import {
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGroupItem, DxGroupItem,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -155,6 +156,7 @@ import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -257,6 +258,7 @@ import {
DxColumn, DxColumn,
DxColumnFixing, DxColumnFixing,
DxExport, DxExport,
DxGrouping,
DxLoadPanel, DxLoadPanel,
DxPaging, DxPaging,
DxScrolling, DxScrolling,

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -289,7 +290,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxGroupItem, DxGroupItem,
DxTotalItem DxTotalItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -289,7 +290,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxGroupItem, DxGroupItem,
DxTotalItem DxTotalItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -348,9 +349,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Detail (Monalisa) Aging Complaint" title="Detail (Monalisa) Aging Complaint"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -371,10 +372,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -671,7 +672,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem, DxTotalItem,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -697,8 +699,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>(null) const dataSelected = ref<any>(null)
const dataSubSelected = ref<any>(null) const dataSubSelected = ref<any>(null)
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -760,11 +762,11 @@ const getDetail = () => {
// }) // })
} }
const showDialogDataSelected = () => { const showDetail = () => {
if (dataSelected.value != null) { if (dataSelected.value != null) {
dataSub.value = [] dataSub.value = []
dataSubSelected.value = null dataSubSelected.value = null
dialogDataSelected.value = true dialogDetail.value = true
getDetail() getDetail()
} }
@ -774,7 +776,7 @@ const onDataSelectionChanged = ({ selectedRowsData }: any) => {
const data = selectedRowsData[0] const data = selectedRowsData[0]
dataSelected.value = data dataSelected.value = data
showDialogDataSelected() showDetail()
} }
const onDataSubSelectionChanged = ({ selectedRowsData }: any) => { const onDataSubSelectionChanged = ({ selectedRowsData }: any) => {

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -263,7 +264,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem, DxTotalItem,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -285,7 +286,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem, DxTotalItem,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'

View File

@ -25,6 +25,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -650,7 +651,7 @@
</DxSummary> </DxSummary>
<template #formatNumber="{ data }"> <template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ {{
isNumber(data.text) isNumber(data.text)
? data.column.caption == '%' ? data.column.caption == '%'
@ -662,13 +663,13 @@
</template> </template>
<template #formatPercentage="{ data }"> <template #formatPercentage="{ data }">
<p class="text-right cursor-pointer" @click="showDialogDataSelected()"> <p class="text-right cursor-pointer" @click="showDetail()">
{{ parseFloat(data.text) ? formatPercentage(data.text) : '0%' }} {{ parseFloat(data.text) ? formatPercentage(data.text) : '0%' }}
</p> </p>
</template> </template>
<template #formatText="{ data }"> <template #formatText="{ data }">
<p class="text-left cursor-pointer" @click="showDialogDataSelected()"> <p class="text-left cursor-pointer" @click="showDetail()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
@ -676,9 +677,9 @@
</div> </div>
<DetailDialog <DetailDialog
:open="dialogDataSelected" :open="dialogDetail"
title="Detail (Monalisa) Penurunan Jumlah Komplain" title="Detail (Monalisa) Penurunan Jumlah Komplain"
@on-close="closeDialogDataSelected" @on-close="closedialogDetail"
:full-width="true" :full-width="true"
> >
<div class="w-full mb-4 lg:w-[70%] lg:float-left"> <div class="w-full mb-4 lg:w-[70%] lg:float-left">
@ -699,10 +700,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"
@ -999,7 +1000,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem, DxTotalItem,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
@ -1025,8 +1027,8 @@ const data = ref<any[]>([])
const dataSub = ref<any[]>([]) const dataSub = ref<any[]>([])
const dataSelected = ref<any>(null) const dataSelected = ref<any>(null)
const dataSubSelected = ref<any>(null) const dataSubSelected = ref<any>(null)
const dialogDataSelected = ref(false) const dialogDetail = ref(false)
const closeDialogDataSelected = () => (dialogDataSelected.value = false) const closedialogDetail = () => (dialogDetail.value = false)
const loadingData = ref(false) const loadingData = ref(false)
const loadingSubData = ref(false) const loadingSubData = ref(false)
@ -1088,11 +1090,11 @@ const getDetail = () => {
// }) // })
} }
const showDialogDataSelected = () => { const showDetail = () => {
if (dataSelected.value != null) { if (dataSelected.value != null) {
dataSub.value = [] dataSub.value = []
dataSubSelected.value = null dataSubSelected.value = null
dialogDataSelected.value = true dialogDetail.value = true
getDetail() getDetail()
} }
@ -1102,7 +1104,7 @@ const onDataSelectionChanged = ({ selectedRowsData }: any) => {
const data = selectedRowsData[0] const data = selectedRowsData[0]
dataSelected.value = data dataSelected.value = data
showDialogDataSelected() showDetail()
} }
const onDataSubSelectionChanged = ({ selectedRowsData }: any) => { const onDataSubSelectionChanged = ({ selectedRowsData }: any) => {

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -365,7 +366,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem, DxTotalItem,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -263,7 +264,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem, DxTotalItem,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'

View File

@ -24,6 +24,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -285,7 +286,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem, DxTotalItem,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'

View File

@ -25,6 +25,7 @@
column-resizing-mode="widget" column-resizing-mode="widget"
:word-wrap-enabled="true" :word-wrap-enabled="true"
> >
<DxGrouping expand-mode="rowClick" />
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :enabled="false" /> <DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" /> <DxScrolling column-rendering-mode="virtual" mode="virtual" />
@ -750,7 +751,8 @@ import {
DxSelection, DxSelection,
DxSummary, DxSummary,
DxTotalItem, DxTotalItem,
DxGroupItem DxGroupItem,
DxGrouping
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter' import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'

View File

@ -19,10 +19,10 @@
column-resizing-mode="widget" column-resizing-mode="widget"
> >
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="20" :enabled="true" />
<DxPager <DxPager
:visible="true" :visible="true"
:allowed-page-sizes="[5, 10, 20]" :allowed-page-sizes="[20, 50, 100]"
display-mode="full" display-mode="full"
:show-page-size-selector="true" :show-page-size-selector="true"
:show-info="true" :show-info="true"

View File

@ -909,9 +909,6 @@ export const queries = {
idUid: $idUid idUid: $idUid
idUp3: $idUp3 idUp3: $idUp3
) { ) {
id_posko
id_uid
id_up3
id id
id_fasilitas id_fasilitas
sub_kelompok sub_kelompok