Update cell templates : Gangguan - Daftar.vue

This commit is contained in:
Dede Fuji Abdul 2024-03-06 11:22:15 +07:00
parent 60e0e30685
commit 099b5d867a
7 changed files with 340 additions and 2074 deletions

View File

@ -4,154 +4,61 @@
</Filters> </Filters>
<div id="data"> <div id="data">
<DxDataGrid <DxDataGrid class="max-h-[calc(100vh-140px)] mb-10" :data-source="data" :show-column-lines="true"
class="max-h-[calc(100vh-140px)] mb-10" :show-row-lines="false" :show-borders="true" :row-alternation-enabled="true" :hover-state-enabled="true"
:data-source="data" @selection-changed="" :column-width="100" @exporting="" :allow-column-resizing="true"
:show-column-lines="true" column-resizing-mode="widget">
:show-row-lines="false"
:show-borders="true"
:row-alternation-enabled="true"
:hover-state-enabled="true"
@selection-changed=""
:column-width="100"
@exporting=""
:allow-column-resizing="true"
column-resizing-mode="widget"
>
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="5" :enabled="true" />
<DxPager <DxPager :visible="true" :allowed-page-sizes="[5, 10, 20]" display-mode="full" :show-page-size-selector="true"
:visible="true" :show-info="true" :show-navigation-buttons="true" />
:allowed-page-sizes="[5, 10, 20]" <DxLoadPanel :position="position" :show-indicator="showIndicator" :show-pane="showPane" :shading="shading"
display-mode="full" v-if="loading" v-model:visible="loading" :enabled="true" />
:show-page-size-selector="true"
:show-info="true"
:show-navigation-buttons="true"
/>
<DxLoadPanel
:position="position"
:show-indicator="showIndicator"
:show-pane="showPane"
:shading="shading"
v-if="loading"
v-model:visible="loading"
:enabled="true"
/>
<DxSearchPanel :visible="true" :highlight-case-sensitive="true" /> <DxSearchPanel :visible="true" :highlight-case-sensitive="true" />
<DxExport <DxExport :enabled="true" :formats="['pdf', 'xlsx', 'document']" :allow-export-selected-data="false" />
:enabled="true" <DxColumn css-class="custom-table-column" :width="50" alignment="center"
:formats="['pdf', 'xlsx', 'document']" :calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" data-type="number" caption="No" />
:allow-export-selected-data="false"
/>
<DxColumn
css-class="custom-table-column"
:width="50"
alignment="center"
:calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1"
data-type="number"
caption="No"
/>
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_laporan"
css-class="custom-table-column" caption="No Laporan" cell-template="cellCenter" />
:width="150" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="nama_pelapor"
alignment="center" caption="Nama Pelapor" cell-template="cellDefault" />
data-field="no_laporan" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="alamat_pelapor"
caption="No Laporan" caption="Alamat Pelapor" cell-template="cellDefault" />
/> <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_telp_pelapor"
<DxColumn caption="No Telp Pelapor" cell-template="cellCenter" />
css-class="custom-table-column" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="keterangan_pelapor"
:width="150" caption="Keterangan Pelapor" cell-template="cellDefault" />
alignment="center" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="status_akhir"
data-field="nama_pelapor" caption="Status" cell-template="cellCenter" />
caption="Nama Pelapor" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_lapor"
/> caption="Tgl Lapor" cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_response"
css-class="custom-table-column" caption="Tgl Response" cell-template="cellCenter" />
:width="170" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_recovery"
alignment="center" caption="Tgl Recovery" cell-template="cellCenter" />
data-field="alamat_pelapor" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_response_time"
caption="Alamat Pelapor" caption="Durasi Response Time" cell-template="data-waktu" />
/> <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_recovery_time"
<DxColumn caption="Durasi Recovery Time" cell-template="data-waktu" />
css-class="custom-table-column" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="nama_posko"
:width="150" caption="Sumber Lapor" cell-template="cellCenter" />
alignment="center" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_media"
data-field="no_telp_pelapor" caption="Tgl Media" cell-template="cellCenter" />
caption="No Telp Pelapor" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="keterangan_media"
/> caption="Keterangan Media" cell-template="cellDefault" />
<DxColumn
css-class="custom-table-column" <template #cellCenter="{ data }">
:width="150" <p class="cursor-pointer">
alignment="center" {{ data.text }}
data-field="keterangan_pelapor" </p>
caption="Keterangan Pelapor" </template>
/>
<DxColumn <template #cellDefault="{ data }">
css-class="custom-table-column" <p class="text-left cursor-pointer">
:width="150" {{ data.text }}
alignment="center" </p>
data-field="status_akhir" </template>
caption="Status"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="waktu_lapor"
caption="Tgl Lapor"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="waktu_response"
caption="Tgl Response"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="waktu_recovery"
caption="Tgl Recovery"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="durasi_response_time"
caption="Durasi Response Time"
cell-template="data-waktu"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="durasi_recovery_time"
caption="Durasi Recovery Time"
cell-template="data-waktu"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="nama_posko"
caption="Sumber Lapor"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="waktu_media"
caption="Tgl Media"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="media"
caption="Keterangan Media"
/>
<template #data-waktu="{ data }"> <template #data-waktu="{ data }">
<p> <p>
@ -166,7 +73,7 @@
import Filters from '@/components/Form/Filters.vue' import Filters from '@/components/Form/Filters.vue'
import Type16 from '@/components/Form/FiltersType/Type16.vue' import Type16 from '@/components/Form/FiltersType/Type16.vue'
import { formatWaktu } from '@/components/Form/FiltersType/reference' import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { onMounted, ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
@ -179,6 +86,7 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/graphql' import { queries } from '@/utils/graphql'
import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -224,4 +132,7 @@ const filterData = (params: any) => {
} }
const filters = ref() const filters = ref()
onMounted(() => {
data.value = dummyData.gangguan.daftar.daftarGangguanBerdasarkanMedia
})
</script> </script>

View File

@ -21,49 +21,49 @@
:calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" data-type="number" :calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" data-type="number"
caption="No" /> caption="No" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_laporan" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_laporan"
caption="No Laporan" cell-template="cellDefault" /> caption="No Laporan" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="pembuat_laporan" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="pembuat_laporan"
caption="Pembuat Laporan" cell-template="cellLeft" /> caption="Pembuat Laporan" cell-template="cellDefault" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_lapor" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_lapor"
caption="Tgl Lapor" cell-template="cellDefault" /> caption="Tgl Lapor" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_dialihkan" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_dialihkan"
caption="Tgl Dialihkan" cell-template="cellDefault" /> caption="Tgl Dialihkan" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_response" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_response"
caption="Tgl Response" cell-template="cellDefault" /> caption="Tgl Response" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_recovery" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_recovery"
caption="Tgl Recovery" cell-template="cellDefault" /> caption="Tgl Recovery" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_response_time" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_response_time"
caption="Durasi Response Time" cell-template="data-waktu" /> caption="Durasi Response Time" cell-template="data-waktu" />
<DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_recovery_time" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_recovery_time"
caption="Durasi Recovery Time" cell-template="data-waktu" /> caption="Durasi Recovery Time" cell-template="data-waktu" />
<DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko_lama" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko_lama"
caption="Posko Asal" cell-template="cellLeft" /> caption="Posko Asal" cell-template="cellDefault" />
<DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko_baru" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko_baru"
caption="Posko Tujuan" cell-template="cellDefault" /> caption="Posko Tujuan" cell-template="cellDefault" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="status_akhir" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="status_akhir"
caption="Status" cell-template="cellDefault" /> caption="Status" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="idpel_nometer" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="idpel_nometer"
caption="IDPEL/NO METER" cell-template="cellDefault" /> caption="IDPEL/NO METER" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="nama_pelapor" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="nama_pelapor"
caption="Nama Pelapor" cell-template="cellLeft" /> caption="Nama Pelapor" cell-template="cellDefault" />
<DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="alamat_pelapor" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="alamat_pelapor"
caption="Alamat Pelapor" cell-template="cellLeft" /> caption="Alamat Pelapor" cell-template="cellDefault" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_telp_pelapor" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_telp_pelapor"
caption="No Telp Pelapor" cell-template="cellDefault" /> caption="No Telp Pelapor" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="250" alignment="center" data-field="keterangan_pelapor" <DxColumn css-class="custom-table-column" :width="250" alignment="center" data-field="keterangan_pelapor"
caption="Keterangan Pelapor" cell-template="cellLeft" /> caption="Keterangan Pelapor" cell-template="cellDefault" />
<DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="media" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="media"
caption="Sumber Lapor" cell-template="cellDefault" /> caption="Sumber Lapor" cell-template="cellCenter" />
<DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko_lama" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko_lama"
caption="Posko" cell-template="cellLeft" /> caption="Posko" cell-template="cellDefault" />
<template #cellDefault="{ data }"> <template #cellCenter="{ data }">
<p class="cursor-pointer" @click="showData()"> <p class="cursor-pointer" @click="showData()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
<template #cellLeft="{ data }"> <template #cellDefault="{ data }">
<p class="text-left cursor-pointer" @click="showData()"> <p class="text-left cursor-pointer" @click="showData()">
{{ data.text }} {{ data.text }}
</p> </p>
@ -193,7 +193,7 @@ import {
DxSelection DxSelection
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { formatWaktu } from '@/components/Form/FiltersType/reference' import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { onMounted, ref } from 'vue'
import { jsPDF } from 'jspdf' import { jsPDF } from 'jspdf'
import autoTable from 'jspdf-autotable' import autoTable from 'jspdf-autotable'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
@ -203,6 +203,7 @@ import DetailDialog from '@/components/Dialogs/DetailDialog.vue'
import InputText from '@/components/InputText.vue' import InputText from '@/components/InputText.vue'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/graphql' import { queries } from '@/utils/graphql'
import { dummyData } from '@/utils/dummy'
const position = { of: '#dataTable' } const position = { of: '#dataTable' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -350,4 +351,7 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
} }
const showData = () => showDetail.value = true const showData = () => showDetail.value = true
const filters = ref() const filters = ref()
onMounted(() => {
data.value = dummyData.gangguan.daftar.dialihkanKePoskoLain
})
</script> </script>

View File

@ -4,154 +4,61 @@
</Filters> </Filters>
<div id="data"> <div id="data">
<DxDataGrid <DxDataGrid class="max-h-[calc(100vh-140px)] mb-10" :data-source="data" :show-column-lines="true"
class="max-h-[calc(100vh-140px)] mb-10" :show-row-lines="false" :show-borders="true" :row-alternation-enabled="true" :hover-state-enabled="true"
:data-source="data" @selection-changed="" :column-width="100" @exporting="" :allow-column-resizing="true"
:show-column-lines="true" column-resizing-mode="widget">
:show-row-lines="false"
:show-borders="true"
:row-alternation-enabled="true"
:hover-state-enabled="true"
@selection-changed=""
:column-width="100"
@exporting=""
:allow-column-resizing="true"
column-resizing-mode="widget"
>
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="5" :enabled="true" />
<DxPager <DxPager :visible="true" :allowed-page-sizes="[5, 10, 20]" display-mode="full" :show-page-size-selector="true"
:visible="true" :show-info="true" :show-navigation-buttons="true" />
:allowed-page-sizes="[5, 10, 20]" <DxLoadPanel :position="position" :show-indicator="showIndicator" :show-pane="showPane" :shading="shading"
display-mode="full" v-if="loading" v-model:visible="loading" :enabled="true" />
:show-page-size-selector="true"
:show-info="true"
:show-navigation-buttons="true"
/>
<DxLoadPanel
:position="position"
:show-indicator="showIndicator"
:show-pane="showPane"
:shading="shading"
v-if="loading"
v-model:visible="loading"
:enabled="true"
/>
<DxSearchPanel :visible="true" :highlight-case-sensitive="true" /> <DxSearchPanel :visible="true" :highlight-case-sensitive="true" />
<DxExport <DxExport :enabled="true" :formats="['pdf', 'xlsx', 'document']" :allow-export-selected-data="false" />
:enabled="true" <DxColumn css-class="custom-table-column" :width="50" alignment="center"
:formats="['pdf', 'xlsx', 'document']" :calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" data-type="number" caption="No" />
:allow-export-selected-data="false"
/>
<DxColumn
css-class="custom-table-column"
:width="50"
alignment="center"
:calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1"
data-type="number"
caption="No"
/>
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_laporan"
css-class="custom-table-column" caption="No Laporan" cell-template="cellCenter" />
:width="150" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_lapor"
alignment="center" caption="Tgl Lapor" cell-template="cellCenter" />
data-field="no_laporan" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_response"
caption="No Laporan" caption="Tgl Response" cell-template="cellCenter" />
/> <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_recovery"
<DxColumn caption="Tgl Recovery" cell-template="cellCenter" />
css-class="custom-table-column" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_response_time"
:width="150" caption="Durasi Response Time" cell-template="data-waktu" />
alignment="center" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_recovery_time"
data-field="waktu_lapor" caption="Durasi Recovery Time" cell-template="data-waktu" />
caption="Tgl Lapor" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="status_akhir"
/> caption="Status" cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="idpel_nometer"
css-class="custom-table-column" caption="IDPEL/NO METER" cell-template="cellCenter" />
:width="150" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="nama_pelapor"
alignment="center" caption="Nama Pelapor" cell-template="cellDefault" />
data-field="waktu_response" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="alamat_pelapor"
caption="Tgl Response" caption="Alamat Pelapor" cell-template="cellDefault" />
/> <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_telp_pelapor"
<DxColumn caption="No Telp Pelapor" cell-template="cellCenter" />
css-class="custom-table-column" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="keterangan_pelapor"
:width="150" caption="Keterangan Pelapor" cell-template="cellDefault" />
alignment="center" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="media"
data-field="waktu_recovery" caption="Sumber Lapor" cell-template="cellCenter" />
caption="Tgl Recovery" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko" caption="Posko"
/> cell-template="cellDefault" />
<DxColumn
css-class="custom-table-column" <template #cellCenter="{ data }">
:width="170" <p class="cursor-pointer">
alignment="center" {{ data.text }}
data-field="durasi_response_time" </p>
caption="Durasi Response Time" </template>
cell-template="data-waktu"
/> <template #cellDefault="{ data }">
<DxColumn <p class="text-left cursor-pointer">
css-class="custom-table-column" {{ data.text }}
:width="170" </p>
alignment="center" </template>
data-field="durasi_recovery_time"
caption="Durasi Recovery Time"
cell-template="data-waktu"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="status_akhir"
caption="Status"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="idpel_nometer"
caption="IDPEL/NO METER"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="nama_pelapor"
caption="Nama Pelapor"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="alamat_pelapor"
caption="Alamat Pelapor"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="no_telp_pelapor"
caption="No Telp Pelapor"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="keterangan_pelapor"
caption="Keterangan Pelapor"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="media"
caption="Sumber Lapor"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="nama_posko"
caption="Posko"
/>
<template #data-waktu="{ data }"> <template #data-waktu="{ data }">
<p> <p>
@ -166,7 +73,7 @@
import Filters from '@/components/Form/Filters.vue' import Filters from '@/components/Form/Filters.vue'
import Type1 from '@/components/Form/FiltersType/Type1.vue' import Type1 from '@/components/Form/FiltersType/Type1.vue'
import { formatWaktu } from '@/components/Form/FiltersType/reference' import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { onMounted, ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
@ -179,6 +86,7 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/graphql' import { queries } from '@/utils/graphql'
import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -226,4 +134,7 @@ const filterData = (params: any) => {
} }
const filters = ref() const filters = ref()
onMounted(() => {
data.value = dummyData.gangguan.daftar.daftarGangguanDiselesaikanMobileAPKT
})
</script> </script>

View File

@ -4,179 +4,63 @@
</Filters> </Filters>
<div id="data"> <div id="data">
<DxDataGrid <DxDataGrid class="max-h-[calc(100vh-140px)] mb-10" :data-source="data" :show-column-lines="true"
class="max-h-[calc(100vh-140px)] mb-10" :show-row-lines="false" :show-borders="true" :row-alternation-enabled="true" :hover-state-enabled="true"
:data-source="data" @selection-changed="onSelectionChanged" :column-width="100" @exporting="" :allow-column-resizing="true"
:show-column-lines="true" column-resizing-mode="widget">
:show-row-lines="false"
:show-borders="true"
:row-alternation-enabled="true"
:hover-state-enabled="true"
@selection-changed="onSelectionChanged"
:column-width="100"
@exporting=""
:allow-column-resizing="true"
column-resizing-mode="widget"
>
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="5" :enabled="true" />
<DxPager <DxPager :visible="true" :allowed-page-sizes="[5, 10, 20]" display-mode="full" :show-page-size-selector="true"
:visible="true" :show-info="true" :show-navigation-buttons="true" />
:allowed-page-sizes="[5, 10, 20]" <DxLoadPanel :position="position" :show-indicator="showIndicator" :show-pane="showPane" :shading="shading"
display-mode="full" v-if="loading" v-model:visible.sync="loading" :enabled="true" />
:show-page-size-selector="true"
:show-info="true"
:show-navigation-buttons="true"
/>
<DxLoadPanel
:position="position"
:show-indicator="showIndicator"
:show-pane="showPane"
:shading="shading"
v-if="loading"
v-model:visible.sync="loading"
:enabled="true"
/>
<DxSearchPanel :visible="true" :highlight-case-sensitive="true" /> <DxSearchPanel :visible="true" :highlight-case-sensitive="true" />
<DxExport <DxExport :enabled="true" :formats="['pdf', 'xlsx', 'document']" :allow-export-selected-data="false" />
:enabled="true" <DxColumn css-class="custom-table-column" :width="50" alignment="center"
:formats="['pdf', 'xlsx', 'document']" :calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" data-type="number" caption="No" />
:allow-export-selected-data="false" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_laporan"
/> caption="No Laporan" cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_lapor"
css-class="custom-table-column" caption="Tgl Lapor" cell-template="cellCenter" />
:width="50" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_response"
alignment="center" caption="Tgl Response" cell-template="cellCenter" />
:calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_recovery"
data-type="number" caption="Tgl Recovery" cell-template="cellCenter" />
caption="No" <DxColumn css-class="custom-table-column" alignment="center" data-field="jumlah_lapor" caption="Jml Lapor"
/> cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_response_time"
css-class="custom-table-column" caption="Durasi Response Time" cell-template="data-waktu" />
:width="150" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_recovery_time"
alignment="center" caption="Durasi Recovery Time" cell-template="data-waktu" />
data-field="no_laporan" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="status_akhir"
caption="No Laporan" caption="Status" cell-template="cellCenter" />
cell-template="data" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="idpel_nometer"
/> caption="IDPEL/NO METER" cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="nama_pelapor"
css-class="custom-table-column" caption="Nama Pelapor" cell-template="cellDefault" />
:width="150" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="alamat_pelapor"
alignment="center" caption="Alamat Pelapor" cell-template="cellDefault" />
data-field="waktu_lapor" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_telp_pelapor"
caption="Tgl Lapor" caption="No Telp Pelapor" cell-template="cellCenter" />
cell-template="data" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="keterangan_pelapor"
/> caption="Keterangan Pelapor" cell-template="cellDefault" />
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="media"
css-class="custom-table-column" caption="Sumber Lapor" cell-template="cellDefault" />
:width="150" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko" caption="Posko"
alignment="center" cell-template="cellDefault" />
data-field="waktu_response"
caption="Tgl Response"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="waktu_recovery"
caption="Tgl Recovery"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
alignment="center"
data-field="jumlah_lapor"
caption="Jml Lapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="durasi_response_time"
caption="Durasi Response Time"
cell-template="data-waktu"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="durasi_recovery_time"
caption="Durasi Recovery Time"
cell-template="data-waktu"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="status_akhir"
caption="Status"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="idpel_nometer"
caption="IDPEL/NO METER"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="nama_pelapor"
caption="Nama Pelapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="alamat_pelapor"
caption="Alamat Pelapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="no_telp_pelapor"
caption="No Telp Pelapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="keterangan_pelapor"
caption="Keterangan Pelapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="media"
caption="Sumber Lapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="nama_posko"
caption="Posko"
cell-template="data"
/>
<template #data="{ data }"> <template #cellCenter="{ data }">
<p class="cursor-pointer" @click="showData()"> <p class="cursor-pointer" @click="showData()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
<template #cellDefault="{ data }">
<p class="text-left cursor-pointer" @click="showData()">
{{ data.text }}
</p>
</template>
<template #data-waktu="{ data }"> <template #data-waktu="{ data }">
<p class="cursor-pointer" @click="showData()"> <p class="cursor-pointer" @click="showData()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
@ -185,11 +69,7 @@
</DxDataGrid> </DxDataGrid>
</div> </div>
<DetailDialog <DetailDialog :open="showDetail" title="Daftar Gangguan Melapor Lebih Dari 1 Kali" @on-close="closeDetail">
:open="showDetail"
title="Daftar Gangguan Melapor Lebih Dari 1 Kali"
@on-close="closeDetail"
>
<div class="w-full p-4 space-y-2 bg-white rounded-xl"> <div class="w-full p-4 space-y-2 bg-white rounded-xl">
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">No Laporan:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">No Laporan:</h3>
@ -218,28 +98,18 @@
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3>
<InputText <InputText :readonly="true" :value="parseInt(dataDetail?.durasi_response_time)
:readonly="true"
:value="
parseInt(dataDetail?.durasi_response_time)
? formatWaktu(dataDetail?.durasi_response_time) ? formatWaktu(dataDetail?.durasi_response_time)
: '-' : '-'
" " class-name="flex-1" />
class-name="flex-1"
/>
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3>
<InputText <InputText :readonly="true" class-name="flex-1" :value="parseInt(dataDetail?.durasi_recovery_time)
:readonly="true"
class-name="flex-1"
:value="
parseInt(dataDetail?.durasi_recovery_time)
? formatWaktu(dataDetail?.durasi_recovery_time) ? formatWaktu(dataDetail?.durasi_recovery_time)
: '-' : '-'
" " />
/>
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
@ -279,12 +149,7 @@
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Unit Layanan Pelanggan:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Unit Layanan Pelanggan:</h3>
<InputText <InputText :readonly="true" type="textarea" :value="dataDetail?.nama_posko" class-name="flex-1 h-[56px]" />
:readonly="true"
type="textarea"
:value="dataDetail?.nama_posko"
class-name="flex-1 h-[56px]"
/>
</div> </div>
</div> </div>
</DetailDialog> </DetailDialog>
@ -294,7 +159,7 @@
import Filters from '@/components/Form/Filters.vue' import Filters from '@/components/Form/Filters.vue'
import Type6 from '@/components/Form/FiltersType/Type6.vue' import Type6 from '@/components/Form/FiltersType/Type6.vue'
import { formatWaktu } from '@/components/Form/FiltersType/reference' import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { onMounted, ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
@ -309,6 +174,7 @@ import DetailDialog from '@/components/Dialogs/DetailDialog.vue'
import InputText from '@/components/InputText.vue' import InputText from '@/components/InputText.vue'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/graphql' import { queries } from '@/utils/graphql'
import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -366,4 +232,8 @@ const filterData = (params: any) => {
console.log(error) console.log(error)
}) })
} }
onMounted(() => {
data.value = dummyData.gangguan.daftar.melaporLebihDariSatuKali
})
</script> </script>

File diff suppressed because it is too large Load Diff

View File

@ -4,174 +4,63 @@
</Filters> </Filters>
<div id="data"> <div id="data">
<DxDataGrid <DxDataGrid class="max-h-[calc(100vh-140px)] mb-10" :data-source="data" :show-column-lines="true"
class="max-h-[calc(100vh-140px)] mb-10" :show-row-lines="false" :show-borders="true" :row-alternation-enabled="true" :hover-state-enabled="true"
:data-source="data" @selection-changed="onSelectionChanged" :column-width="100" @exporting="" :allow-column-resizing="true"
:show-column-lines="true" column-resizing-mode="widget">
:show-row-lines="false"
:show-borders="true"
:row-alternation-enabled="true"
:hover-state-enabled="true"
@selection-changed="onSelectionChanged"
:column-width="100"
@exporting=""
:allow-column-resizing="true"
column-resizing-mode="widget"
>
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="5" :enabled="true" />
<DxPager <DxPager :visible="true" :allowed-page-sizes="[5, 10, 20]" display-mode="full" :show-page-size-selector="true"
:visible="true" :show-info="true" :show-navigation-buttons="true" />
:allowed-page-sizes="[5, 10, 20]" <DxLoadPanel :position="position" :show-indicator="showIndicator" :show-pane="showPane" :shading="shading"
display-mode="full" v-if="loading" v-model:visible="loading" :enabled="true" />
:show-page-size-selector="true"
:show-info="true"
:show-navigation-buttons="true"
/>
<DxLoadPanel
:position="position"
:show-indicator="showIndicator"
:show-pane="showPane"
:shading="shading"
v-if="loading"
v-model:visible="loading"
:enabled="true"
/>
<DxSearchPanel :visible="true" :highlight-case-sensitive="true" /> <DxSearchPanel :visible="true" :highlight-case-sensitive="true" />
<DxExport <DxExport :enabled="true" :formats="['pdf', 'xlsx', 'document']" :allow-export-selected-data="false" />
:enabled="true" <DxColumn css-class="custom-table-column" :width="50" alignment="center"
:formats="['pdf', 'xlsx', 'document']" :calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" data-type="number" caption="No"
:allow-export-selected-data="false" cell-template="cellCenter" />
/>
<DxColumn
css-class="custom-table-column"
:width="50"
alignment="center"
:calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1"
data-type="number"
caption="No"
cell-template="data"
/>
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_laporan"
css-class="custom-table-column" caption="No Laporan" cell-template="cellCenter" />
:width="150" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_lapor"
alignment="center" caption="Tgl Lapor" cell-template="cellCenter" />
data-field="no_laporan" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_response"
caption="No Laporan" caption="Tgl Response" cell-template="cellCenter" />
cell-template="data" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_recovery"
/> caption="Tgl Recovery" cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_response_time"
css-class="custom-table-column" caption="Durasi Response Time" cell-template="data-waktu" />
:width="150" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_recovery_time"
alignment="center" caption="Durasi Recovery Time" cell-template="data-waktu" />
data-field="waktu_lapor" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="status_akhir"
caption="Tgl Lapor" caption="Status" cell-template="cellCenter" />
cell-template="data" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="referensi_marking"
/> caption="Referensi Marking" cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="idpel_nometer"
css-class="custom-table-column" caption="IDPEL/NO METER" cell-template="cellCenter" />
:width="150" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="nama_pelapor"
alignment="center" caption="Nama Pelapor" cell-template="cellDefault" />
data-field="waktu_response" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="alamat_pelapor"
caption="Tgl Response" caption="Alamat Pelapor" cell-template="cellDefault" />
cell-template="data" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_telp_pelapor"
/> caption="No Telp Pelapor" cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="keterangan_pelapor"
css-class="custom-table-column" caption="Keterangan Pelapor" cell-template="cellDefault" />
:width="150" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko" caption="Posko"
alignment="center" cell-template="cellDefault" />
data-field="waktu_recovery"
caption="Tgl Recovery"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="durasi_response_time"
caption="Durasi Response Time"
cell-template="data-waktu"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="durasi_recovery_time"
caption="Durasi Recovery Time"
cell-template="data-waktu"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="status_akhir"
caption="Status"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="referensi_marking"
caption="Referensi Marking"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="idpel_nometer"
caption="IDPEL/NO METER"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="nama_pelapor"
caption="Nama Pelapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="alamat_pelapor"
caption="Alamat Pelapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="no_telp_pelapor"
caption="No Telp Pelapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="keterangan_pelapor"
caption="Keterangan Pelapor"
cell-template="data"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="nama_posko"
caption="Posko"
cell-template="data"
/>
<template #data="{ data }"> <template #cellCenter="{ data }">
<p class="cursor-pointer" @click="showData()"> <p class="cursor-pointer" @click="showData()">
{{ data.text }} {{ data.text }}
</p> </p>
</template> </template>
<template #cellDefault="{ data }">
<p class="text-left cursor-pointer" @click="showData()">
{{ data.text }}
</p>
</template>
<template #data-waktu="{ data }"> <template #data-waktu="{ data }">
<p class="cursor-pointer" @click="showData()"> <p class="cursor-pointer" @click="showData()">
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
@ -204,28 +93,18 @@
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3>
<InputText <InputText :readonly="true" :value="parseInt(dataDetail?.durasi_response_time)
:readonly="true"
:value="
parseInt(dataDetail?.durasi_response_time)
? formatWaktu(dataDetail?.durasi_response_time) ? formatWaktu(dataDetail?.durasi_response_time)
: '-' : '-'
" " class-name="flex-1" />
class-name="flex-1"
/>
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3>
<InputText <InputText :readonly="true" class-name="flex-1" :value="parseInt(dataDetail?.durasi_recovery_time)
:readonly="true"
class-name="flex-1"
:value="
parseInt(dataDetail?.durasi_recovery_time)
? formatWaktu(dataDetail?.durasi_recovery_time) ? formatWaktu(dataDetail?.durasi_recovery_time)
: '-' : '-'
" " />
/>
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
@ -265,32 +144,17 @@
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Unit Layanan Pelanggan:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Unit Layanan Pelanggan:</h3>
<InputText <InputText :readonly="true" type="textarea" :value="dataDetail?.nama_posko" class-name="flex-1 h-[56px]" />
:readonly="true"
type="textarea"
:value="dataDetail?.nama_posko"
class-name="flex-1 h-[56px]"
/>
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Penyebab:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Penyebab:</h3>
<InputText <InputText :readonly="true" type="textarea" :value="dataDetail?.penyebab" class-name="flex-1 h-[56px]" />
:readonly="true"
type="textarea"
:value="dataDetail?.penyebab"
class-name="flex-1 h-[56px]"
/>
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[170px] text-gray-800">Tindakan:</h3> <h3 class="text-sm font-medium w-[170px] text-gray-800">Tindakan:</h3>
<InputText <InputText :readonly="true" type="textarea" :value="dataDetail?.tindakan" class-name="flex-1 h-[56px]" />
:readonly="true"
type="textarea"
:value="dataDetail?.tindakan"
class-name="flex-1 h-[56px]"
/>
</div> </div>
</div> </div>
</DetailDialog> </DetailDialog>
@ -300,7 +164,7 @@
import Filters from '@/components/Form/Filters.vue' import Filters from '@/components/Form/Filters.vue'
import Type7 from '@/components/Form/FiltersType/Type7.vue' import Type7 from '@/components/Form/FiltersType/Type7.vue'
import { formatWaktu } from '@/components/Form/FiltersType/reference' import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { onMounted, ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
@ -315,6 +179,7 @@ import DetailDialog from '@/components/Dialogs/DetailDialog.vue'
import InputText from '@/components/InputText.vue' import InputText from '@/components/InputText.vue'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/graphql' import { queries } from '@/utils/graphql'
import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -372,4 +237,7 @@ const { onResult, onError, loading, refetch } = useQuery(queries.gangguan.daftar
}) })
const filters = ref() const filters = ref()
onMounted(() => {
data.value = dummyData.gangguan.daftar.gangguanResponseTime
})
</script> </script>

View File

@ -4,154 +4,61 @@
</Filters> </Filters>
<div id="data"> <div id="data">
<DxDataGrid <DxDataGrid class="max-h-[calc(100vh-140px)] mb-10" :data-source="data" :show-column-lines="true"
class="max-h-[calc(100vh-140px)] mb-10" :show-row-lines="false" :show-borders="true" :row-alternation-enabled="true" :hover-state-enabled="true"
:data-source="data" @selection-changed="" :column-width="100" @exporting="" :allow-column-resizing="true"
:show-column-lines="true" column-resizing-mode="widget">
:show-row-lines="false"
:show-borders="true"
:row-alternation-enabled="true"
:hover-state-enabled="true"
@selection-changed=""
:column-width="100"
@exporting=""
:allow-column-resizing="true"
column-resizing-mode="widget"
>
<DxSelection mode="single" /> <DxSelection mode="single" />
<DxPaging :page-size="5" :enabled="true" /> <DxPaging :page-size="5" :enabled="true" />
<DxPager <DxPager :visible="true" :allowed-page-sizes="[5, 10, 20]" display-mode="full" :show-page-size-selector="true"
:visible="true" :show-info="true" :show-navigation-buttons="true" />
:allowed-page-sizes="[5, 10, 20]" <DxLoadPanel :position="position" :show-indicator="showIndicator" :show-pane="showPane" :shading="shading"
display-mode="full" v-if="loading" v-model:visible="loading" :enabled="true" />
:show-page-size-selector="true"
:show-info="true"
:show-navigation-buttons="true"
/>
<DxLoadPanel
:position="position"
:show-indicator="showIndicator"
:show-pane="showPane"
:shading="shading"
v-if="loading"
v-model:visible="loading"
:enabled="true"
/>
<DxSearchPanel :visible="true" :highlight-case-sensitive="true" /> <DxSearchPanel :visible="true" :highlight-case-sensitive="true" />
<DxExport <DxExport :enabled="true" :formats="['pdf', 'xlsx', 'document']" :allow-export-selected-data="false" />
:enabled="true" <DxColumn css-class="custom-table-column" :width="50" alignment="center"
:formats="['pdf', 'xlsx', 'document']" :calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1" data-type="number" caption="No" />
:allow-export-selected-data="false"
/>
<DxColumn
css-class="custom-table-column"
:width="50"
alignment="center"
:calculateCellValue="(item: any) => data.findIndex((i) => i == item) + 1"
data-type="number"
caption="No"
/>
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_laporan"
css-class="custom-table-column" caption="No Laporan" cell-template="cellCenter" />
:width="150" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_lapor"
alignment="center" caption="Tgl Lapor" cell-template="cellCenter" />
data-field="no_laporan" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_response"
caption="No Laporan" caption="Tgl Response" cell-template="cellCenter" />
/> <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="waktu_recovery"
<DxColumn caption="Tgl Recovery" cell-template="cellCenter" />
css-class="custom-table-column" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_response_time"
:width="150" caption="Durasi Response Time" cell-template="data-waktu" />
alignment="center" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="durasi_recovery_time"
data-field="waktu_lapor" caption="Durasi Recovery Time" cell-template="data-waktu" />
caption="Tgl Lapor" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="status_akhir"
/> caption="Status" cell-template="cellCenter" />
<DxColumn <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="idpel_nometer"
css-class="custom-table-column" caption="IDPEL/NO METER" cell-template="cellCenter" />
:width="150" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="nama_pelapor"
alignment="center" caption="Nama Pelapor" cell-template="cellDefault" />
data-field="waktu_response" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="alamat_pelapor"
caption="Tgl Response" caption="Alamat Pelapor" cell-template="cellDefault" />
/> <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="no_telp_pelapor"
<DxColumn caption="No Telp Pelapor" cell-template="cellCenter" />
css-class="custom-table-column" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="keterangan_pelapor"
:width="150" caption="Keterangan Pelapor" cell-template="cellDefault" />
alignment="center" <DxColumn css-class="custom-table-column" :width="150" alignment="center" data-field="media"
data-field="waktu_recovery" caption="Sumber Lapor" cell-template="cellCenter" />
caption="Tgl Recovery" <DxColumn css-class="custom-table-column" :width="170" alignment="center" data-field="nama_posko" caption="Posko"
/> cell-template="cellDefault" />
<DxColumn
css-class="custom-table-column" <template #cellCenter="{ data }">
:width="170" <p class="cursor-pointer">
alignment="center" {{ data.text }}
data-field="durasi_response_time" </p>
caption="Durasi Response Time" </template>
cell-template="data-waktu"
/> <template #cellDefault="{ data }">
<DxColumn <p class="text-left cursor-pointer">
css-class="custom-table-column" {{ data.text }}
:width="170" </p>
alignment="center" </template>
data-field="durasi_recovery_time"
caption="Durasi Recovery Time"
cell-template="data-waktu"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="status_akhir"
caption="Status"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="idpel_nometer"
caption="IDPEL/NO METER"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="nama_pelapor"
caption="Nama Pelapor"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="alamat_pelapor"
caption="Alamat Pelapor"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="no_telp_pelapor"
caption="No Telp Pelapor"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="keterangan_pelapor"
caption="Keterangan Pelapor"
/>
<DxColumn
css-class="custom-table-column"
:width="150"
alignment="center"
data-field="media"
caption="Sumber Lapor"
/>
<DxColumn
css-class="custom-table-column"
:width="170"
alignment="center"
data-field="nama_posko"
caption="Posko"
/>
<template #data-waktu="{ data }"> <template #data-waktu="{ data }">
<p> <p>
@ -161,11 +68,12 @@
</DxDataGrid> </DxDataGrid>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import Filters from '@/components/Form/Filters.vue' import Filters from '@/components/Form/Filters.vue'
import Type1 from '@/components/Form/FiltersType/Type1.vue' import Type1 from '@/components/Form/FiltersType/Type1.vue'
import { formatWaktu } from '@/components/Form/FiltersType/reference' import { formatWaktu } from '@/components/Form/FiltersType/reference'
import { ref } from 'vue' import { onMounted, ref } from 'vue'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { import {
DxColumn, DxColumn,
@ -178,6 +86,7 @@ import {
} from 'devextreme-vue/data-grid' } from 'devextreme-vue/data-grid'
import { useQuery } from '@vue/apollo-composable' import { useQuery } from '@vue/apollo-composable'
import { queries } from '@/utils/graphql' import { queries } from '@/utils/graphql'
import { dummyData } from '@/utils/dummy'
const position = { of: '#data' } const position = { of: '#data' }
const showIndicator = ref(true) const showIndicator = ref(true)
@ -221,4 +130,7 @@ const filterData = (params: any) => {
} }
const filters = ref() const filters = ref()
onMounted(() => {
data.value = dummyData.gangguan.daftar.daftarGangguanSelesaiTanpaIdPelanggan
})
</script> </script>