Update version.json to 0.0.130-vm

This commit is contained in:
Dede Fuji Abdul
2024-04-22 10:41:20 +07:00
parent 35746ab297
commit c1f62c75d1
4 changed files with 488 additions and 65 deletions

View File

@ -1 +1 @@
{"name":"eis","version":"0.0.129-vm","private":true,"scripts":{"dev":"vite","host":"vite --host","tailwind":"tailwindcss -i ./src/assets/css/tailwind.css -o ./src/assets/css/style.css --watch","build":"run-p type-check build-only","preview":"vite preview --host","test:unit":"vitest","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","format":"prettier --write src/","deploy":"node deploy.js"},"dependencies":{"@apollo/client":"^3.8.10","@apollo/link-context":"^2.0.0-beta.3","@flavorly/vanilla-components":"^0.7.65","@headlessui/tailwindcss":"^0.2.0","@headlessui/vue":"^1.7.19","@heroicons/vue":"^2.0.18","@lottiefiles/lottie-player":"^2.0.4","@phosphor-icons/vue":"^2.1.6","@types/qs":"^6.9.12","@types/uuid":"^9.0.8","@types/vue-select":"^3.16.8","@vue/apollo-components":"^4.0.0","@vue/apollo-composable":"^4.0.1","@vue/apollo-option":"^4.0.0","axios":"^1.6.7","devextreme":"23.2.4","devextreme-vue":"23.2.4","docx":"^8.5.0","dotenv":"^16.3.1","encrypt-storage":"^2.12.22","exceljs":"^4.4.0","file-saver":"^2.0.5","graphql":"^16.8.1","graphql-tag":"^2.12.6","jspdf":"^2.5.1","jspdf-autotable":"^3.8.2","pinia":"^2.1.3","qs":"^6.11.2","uuid":"^9.0.1","vue":"^3.3.4","vue-html-to-paper":"^2.0.3","vue-router":"^4.2.2","vue-tailwind-datepicker":"^1.6.1","vue3-star-ratings":"^3.0.5"},"devDependencies":{"@rushstack/eslint-patch":"^1.5.1","@tailwindcss/aspect-ratio":"^0.4.2","@tailwindcss/container-queries":"^0.1.1","@tailwindcss/forms":"^0.5.7","@tailwindcss/typography":"^0.5.10","@tsconfig/node18":"^2.0.1","@types/file-saver":"^2.0.6","@types/jsdom":"^21.1.1","@types/node":"^18.16.17","@vitejs/plugin-vue":"^4.2.3","@vitejs/plugin-vue-jsx":"^3.0.1","@vue/eslint-config-prettier":"^8.0.0","@vue/eslint-config-typescript":"^12.0.0","@vue/test-utils":"^2.3.2","@vue/tsconfig":"^0.4.0","autoprefixer":"^10.4.14","eslint":"^8.39.0","eslint-plugin-vue":"^9.11.0","jsdom":"^22.1.0","npm-run-all":"^4.1.5","postcss":"^8.4.24","prettier":"^3.0.3","tailwindcss":"^3.3.2","typescript":"~5.2.2","vite":"^4.3.9","vitest":"^1.3.1","vue-tsc":"^2.0.5"}} {"name":"eis","version":"0.0.130-vm","private":true,"scripts":{"dev":"vite","host":"vite --host","tailwind":"tailwindcss -i ./src/assets/css/tailwind.css -o ./src/assets/css/style.css --watch","build":"run-p type-check build-only","preview":"vite preview --host","test:unit":"vitest","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","format":"prettier --write src/","deploy":"node deploy.js"},"dependencies":{"@apollo/client":"^3.8.10","@apollo/link-context":"^2.0.0-beta.3","@flavorly/vanilla-components":"^0.7.65","@headlessui/tailwindcss":"^0.2.0","@headlessui/vue":"^1.7.19","@heroicons/vue":"^2.0.18","@lottiefiles/lottie-player":"^2.0.4","@phosphor-icons/vue":"^2.1.6","@types/qs":"^6.9.12","@types/uuid":"^9.0.8","@types/vue-select":"^3.16.8","@vue/apollo-components":"^4.0.0","@vue/apollo-composable":"^4.0.1","@vue/apollo-option":"^4.0.0","axios":"^1.6.7","devextreme":"23.2.4","devextreme-vue":"23.2.4","docx":"^8.5.0","dotenv":"^16.3.1","encrypt-storage":"^2.12.22","exceljs":"^4.4.0","file-saver":"^2.0.5","graphql":"^16.8.1","graphql-tag":"^2.12.6","jspdf":"^2.5.1","jspdf-autotable":"^3.8.2","pinia":"^2.1.3","qs":"^6.11.2","uuid":"^9.0.1","vue":"^3.3.4","vue-html-to-paper":"^2.0.3","vue-router":"^4.2.2","vue-tailwind-datepicker":"^1.6.1","vue3-star-ratings":"^3.0.5"},"devDependencies":{"@rushstack/eslint-patch":"^1.5.1","@tailwindcss/aspect-ratio":"^0.4.2","@tailwindcss/container-queries":"^0.1.1","@tailwindcss/forms":"^0.5.7","@tailwindcss/typography":"^0.5.10","@tsconfig/node18":"^2.0.1","@types/file-saver":"^2.0.6","@types/jsdom":"^21.1.1","@types/node":"^18.16.17","@vitejs/plugin-vue":"^4.2.3","@vitejs/plugin-vue-jsx":"^3.0.1","@vue/eslint-config-prettier":"^8.0.0","@vue/eslint-config-typescript":"^12.0.0","@vue/test-utils":"^2.3.2","@vue/tsconfig":"^0.4.0","autoprefixer":"^10.4.14","eslint":"^8.39.0","eslint-plugin-vue":"^9.11.0","jsdom":"^22.1.0","npm-run-all":"^4.1.5","postcss":"^8.4.24","prettier":"^3.0.3","tailwindcss":"^3.3.2","typescript":"~5.2.2","vite":"^4.3.9","vitest":"^1.3.1","vue-tsc":"^2.0.5"}}

View File

@ -1 +1 @@
{"version":"0.0.129-vm"} {"version":"0.0.130-vm"}

View File

@ -12,6 +12,7 @@
<div id="data"> <div id="data">
<DxDataGrid <DxDataGrid
ref="dataGridRef" ref="dataGridRef"
@cell-click="onCellClicked"
:allow-column-reordering="true" :allow-column-reordering="true"
class="max-h-[calc(100vh-140px)] mb-10" class="max-h-[calc(100vh-140px)] mb-10"
:data-source="data" :data-source="data"
@ -258,42 +259,38 @@
<DxColumn <DxColumn
:width="150" :width="150"
alignment="center" alignment="center"
data-field="media" data-field="no_tugas"
caption="Sumber Lapor" caption="No Tugas"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="!isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
alignment="center" alignment="center"
data-field="pembuat_laporan" data-field="nama_tugas"
caption="Created By" caption="Jenis Penugasan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="!isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
alignment="center" alignment="center"
data-field="dispatch_by" data-field="keterangan"
caption="Dispatch By" caption="Keterangan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="!isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
alignment="center" alignment="center"
data-field="waktu_dispatch" data-field="nama_catat_oleh"
caption="Dispatch Time" caption="Petugas Catat"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
:width="150"
alignment="center"
data-field="user_regu"
caption="User Regu"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="!isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -302,6 +299,79 @@
caption="Nama Regu" caption="Nama Regu"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="!isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="no_referensi"
caption="No Referensi"
css-class="custom-table-column"
cell-template="formatText"
v-if="!isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="personil_yantek"
caption="Personil Yantek"
css-class="custom-table-column"
cell-template="formatText"
v-if="!isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="media"
caption="Sumber Lapor"
css-class="custom-table-column"
cell-template="formatText"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="pembuat_laporan"
caption="Created By"
css-class="custom-table-column"
cell-template="formatText"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="dispatch_by"
caption="Dispatch By"
css-class="custom-table-column"
cell-template="formatText"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="waktu_dispatch"
caption="Dispatch Time"
css-class="custom-table-column"
cell-template="formatNumber"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="user_regu"
caption="User Regu"
css-class="custom-table-column"
cell-template="formatText"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="nama_regu"
caption="Nama Regu"
css-class="custom-table-column"
cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -310,6 +380,7 @@
caption="Nama Petugas" caption="Nama Petugas"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -320,6 +391,7 @@
cell-template="formatText" cell-template="formatText"
/> />
<DxColumn <DxColumn
v-if="isGangguanIndividual"
:width="150" :width="150"
alignment="center" alignment="center"
data-field="check_in_petugas" data-field="check_in_petugas"
@ -327,6 +399,25 @@
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
/> />
<DxColumn
v-if="!isGangguanIndividual"
:width="150"
alignment="center"
data-field="waktu_login"
caption="Check In Petugas"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="waktu_catat"
caption="Tgl Catat"
css-class="custom-table-column"
cell-template="formatText"
v-if="!isGangguanIndividual"
/>
<DxColumn <DxColumn
:width="150" :width="150"
alignment="center" alignment="center"
@ -334,6 +425,7 @@
caption="No Laporan" caption="No Laporan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -342,6 +434,7 @@
caption="Tgl Lapor" caption="Tgl Lapor"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -350,6 +443,7 @@
caption="Tgl Penugasan Baru" caption="Tgl Penugasan Baru"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -358,6 +452,16 @@
caption="Tgl Dalam Perjalanan" caption="Tgl Dalam Perjalanan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="waktu_perjalanan"
caption="Tgl Perjalanan"
css-class="custom-table-column"
cell-template="formatText"
v-if="!isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -384,6 +488,7 @@
cell-template="formatText" cell-template="formatText"
/> />
<DxColumn <DxColumn
v-if="isGangguanIndividual"
:width="150" :width="150"
alignment="center" alignment="center"
data-field="waktu_selesai" data-field="waktu_selesai"
@ -392,12 +497,22 @@
cell-template="formatText" cell-template="formatText"
/> />
<DxColumn <DxColumn
v-if="!isGangguanIndividual"
:width="150" :width="150"
alignment="center" alignment="center"
data-field="durasi_waktu_response" data-field="waktu_recovery"
caption="Tgl Selesai"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="waktu_perjalanan"
caption="Durasi Perjalanan" caption="Durasi Perjalanan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -406,6 +521,16 @@
caption="Durasi WO" caption="Durasi WO"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="durasi_wo_time"
caption="Durasi WO Penugasan Khusus"
css-class="custom-table-column"
cell-template="formatText"
v-if="!isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -414,6 +539,16 @@
caption="Check Out Petugas" caption="Check Out Petugas"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="waktu_logout"
caption="Check Out Petugas"
css-class="custom-table-column"
cell-template="formatText"
v-if="!isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -422,6 +557,7 @@
caption="RPT" caption="RPT"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatNumber" cell-template="formatNumber"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -430,6 +566,7 @@
caption="RCT" caption="RCT"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatNumber" cell-template="formatNumber"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -438,6 +575,7 @@
caption="Rating" caption="Rating"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatNumber" cell-template="formatNumber"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -446,6 +584,7 @@
caption="Jml Pelanggan Padam" caption="Jml Pelanggan Padam"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatNumber" cell-template="formatNumber"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -454,6 +593,7 @@
caption="Fasilitas" caption="Fasilitas"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -462,6 +602,7 @@
caption="Sub Fasilitas" caption="Sub Fasilitas"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -470,6 +611,7 @@
caption="Peralatan" caption="Peralatan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -478,6 +620,7 @@
caption="Dampak Kerusakan" caption="Dampak Kerusakan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -486,6 +629,7 @@
caption="Penyebab" caption="Penyebab"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -494,6 +638,7 @@
caption="Kelompok Penyebab" caption="Kelompok Penyebab"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -502,6 +647,7 @@
caption="Cuaca" caption="Cuaca"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -510,6 +656,7 @@
caption="Keterangan Pelapor" caption="Keterangan Pelapor"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -518,6 +665,7 @@
caption="Keterangan" caption="Keterangan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -527,6 +675,7 @@
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
:calculate-display-value="(item: any) => `${item.penyebab} - ${item.kelompok_penyebab}`" :calculate-display-value="(item: any) => `${item.penyebab} - ${item.kelompok_penyebab}`"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -535,6 +684,7 @@
caption="Tindakan" caption="Tindakan"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -543,6 +693,7 @@
caption="APKT Status" caption="APKT Status"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -551,6 +702,7 @@
caption="Referensi Marking" caption="Referensi Marking"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatText" cell-template="formatText"
v-if="isGangguanIndividual"
/> />
<DxColumn <DxColumn
:width="150" :width="150"
@ -559,6 +711,34 @@
caption="BLTH" caption="BLTH"
css-class="custom-table-column" css-class="custom-table-column"
cell-template="formatNumber" cell-template="formatNumber"
v-if="isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="status_akhir"
caption="Status"
css-class="custom-table-column"
cell-template="formatNumber"
v-if="!isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="nama_selesai_oleh"
caption="Selesai Oleh"
css-class="custom-table-column"
cell-template="formatText"
v-if="!isGangguanIndividual"
/>
<DxColumn
:width="150"
alignment="center"
data-field="keterangan_selesai"
caption="Keterangan Selesai"
css-class="custom-table-column"
cell-template="formatText"
v-if="!isGangguanIndividual"
/> />
<template #formatText="{ data }"> <template #formatText="{ data }">
@ -572,6 +752,18 @@
{{ parseInt(data.text) ? formatWaktu(data.text) : '-' }} {{ parseInt(data.text) ? formatWaktu(data.text) : '-' }}
</p> </p>
</template> </template>
<template #formatNumber="{ data }">
<p class="text-right cursor-pointer">
{{
isNumber(data.text)
? data.column.caption == '%'
? formatPercentage(data.text)
: formatNumber(data.text)
: data.text
}}
</p>
</template>
</DxDataGrid> </DxDataGrid>
</div> </div>
</div> </div>
@ -592,12 +784,55 @@
<InputText :readonly="true" :value="dataSubSelected?.nama_posko" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.nama_posko" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">No Tugas:</h3>
<InputText :readonly="true" :value="dataSubSelected?.no_tugas" class-name="flex-1" />
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Jenis Penugasan:</h3>
<InputText :readonly="true" :value="dataSubSelected?.nama_tugas" class-name="flex-1" />
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Keterangan:</h3>
<InputText :readonly="true" :value="dataSubSelected?.keterangan" class-name="flex-1" />
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Petugas Catat:</h3>
<InputText
:readonly="true"
:value="dataSubSelected?.nama_catat_oleh"
class-name="flex-1"
/>
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Nama Regu:</h3>
<InputText :readonly="true" :value="dataSubSelected?.nama_regu" class-name="flex-1" />
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">No Referensi:</h3>
<InputText :readonly="true" :value="dataSubSelected?.no_referensi" class-name="flex-1" />
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Personil Yantek:</h3>
<InputText
:readonly="true"
:value="dataSubSelected?.personil_yantek"
class-name="flex-1"
/>
</div>
<div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Sumber Lapor:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Sumber Lapor:</h3>
<InputText :readonly="true" :value="dataSubSelected?.media" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.media" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Created By:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Created By:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -606,12 +841,12 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Dispatch By:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Dispatch By:</h3>
<InputText :readonly="true" :value="dataSubSelected?.dispatch_by" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.dispatch_by" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Dispatch Time:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Dispatch Time:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -620,17 +855,17 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">User Regu:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">User Regu:</h3>
<InputText :readonly="true" :value="dataSubSelected?.user_regu" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.user_regu" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Nama Regu:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Nama Regu:</h3>
<InputText :readonly="true" :value="dataSubSelected?.nama_regu" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.nama_regu" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Nama Petugas:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Nama Petugas:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -644,7 +879,7 @@
<InputText :readonly="true" :value="dataSubSelected?.shift" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.shift" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Check In Petugas:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Check In Petugas:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -653,17 +888,27 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Check In Petugas:</h3>
<InputText :readonly="true" :value="dataSubSelected?.waktu_login" class-name="flex-1" />
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Catat:</h3>
<InputText :readonly="true" :value="dataSubSelected?.waktu_catat" class-name="flex-1" />
</div>
<div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">No Laporan:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">No Laporan:</h3>
<InputText :readonly="true" :value="dataSubSelected?.no_laporan" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.no_laporan" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Lapor:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Lapor:</h3>
<InputText :readonly="true" :value="dataSubSelected?.waktu_lapor" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.waktu_lapor" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Penugasan Regu:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Penugasan Regu:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -672,7 +917,7 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Dalam Perjalanan:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Dalam Perjalanan:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -685,7 +930,7 @@
<h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Pengerjaan:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Pengerjaan:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
:value="dataSubSelected?.waktu_perjalanan" :value="dataSubSelected?.waktu_response"
class-name="flex-1" class-name="flex-1"
/> />
</div> </div>
@ -704,26 +949,44 @@
<InputText :readonly="true" :value="dataSubSelected?.waktu_nyala" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.waktu_nyala" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Selesai:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Selesai:</h3>
<InputText :readonly="true" :value="dataSubSelected?.waktu_selesai" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.waktu_selesai" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Durasi Perjalanan:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Tgl Selesai:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
:value="dataSubSelected?.durasi_waktu_response" :value="dataSubSelected?.waktu_recovery"
class-name="flex-1" class-name="flex-1"
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Durasi Perjalanan:</h3>
<InputText
:readonly="true"
:value="dataSubSelected?.waktu_perjalanan"
class-name="flex-1"
/>
</div>
<div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Durasi WO:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Durasi WO:</h3>
<InputText :readonly="true" :value="dataSubSelected?.durasi_wo" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.durasi_wo" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Durasi WO Penugasan Khusus:</h3>
<InputText
:readonly="true"
:value="dataSubSelected?.durasi_wo_time"
class-name="flex-1"
/>
</div>
<div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Check Out Petugas:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Check Out Petugas:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -732,7 +995,12 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Check Out Petugas:</h3>
<InputText :readonly="true" :value="dataSubSelected?.waktu_logout" class-name="flex-1" />
</div>
<div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">RPT</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">RPT</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -741,7 +1009,7 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">RCT</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">RCT</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -750,12 +1018,12 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Rating</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Rating</h3>
<InputText :readonly="true" :value="dataSubSelected?.rating" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.rating" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Jml Pelanggan Padam:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Jml Pelanggan Padam:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -764,22 +1032,22 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Fasilitas:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Fasilitas:</h3>
<InputText :readonly="true" :value="dataSubSelected?.fasilitas" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.fasilitas" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Sub Fasilitas:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Sub Fasilitas:</h3>
<InputText :readonly="true" :value="dataSubSelected?.sub_fasilitas" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.sub_fasilitas" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Peralatan:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Peralatan:</h3>
<InputText :readonly="true" :value="dataSubSelected?.peralatan" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.peralatan" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Dampak Kerusakan:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Dampak Kerusakan:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -788,12 +1056,12 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Penyebab:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Penyebab:</h3>
<InputText :readonly="true" :value="dataSubSelected?.penyebab" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.penyebab" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Kelompok Penyebab:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Kelompok Penyebab:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -802,12 +1070,12 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Cuaca:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Cuaca:</h3>
<InputText :readonly="true" :value="dataSubSelected?.cuaca" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.cuaca" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Keterangan Pelapor:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Keterangan Pelapor:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -816,12 +1084,12 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Keterangan:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Keterangan:</h3>
<InputText :readonly="true" :value="dataSubSelected?.keterangan" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.keterangan" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Penyebab Padam:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Penyebab Padam:</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -830,17 +1098,17 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Tindakan:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Tindakan:</h3>
<InputText :readonly="true" :value="dataSubSelected?.tindakan" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.tindakan" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">APKT Status:</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">APKT Status:</h3>
<InputText :readonly="true" :value="dataSubSelected?.status_akhir" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.status_akhir" class-name="flex-1" />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Referensi Marking</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">Referensi Marking</h3>
<InputText <InputText
:readonly="true" :readonly="true"
@ -849,10 +1117,33 @@
/> />
</div> </div>
<div class="flex flex-row items-center justify-between w-full"> <div v-if="isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">BLTH</h3> <h3 class="text-sm font-medium w-[135px] text-gray-800">BLTH</h3>
<InputText :readonly="true" :value="dataSubSelected?.blth" class-name="flex-1" /> <InputText :readonly="true" :value="dataSubSelected?.blth" class-name="flex-1" />
</div> </div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Status</h3>
<InputText :readonly="true" :value="dataSubSelected?.status_akhir" class-name="flex-1" />
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Selesai Oleh</h3>
<InputText
:readonly="true"
:value="dataSubSelected?.nama_selesai_oleh"
class-name="flex-1"
/>
</div>
<div v-if="!isGangguanIndividual" class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Keterangan Selesai</h3>
<InputText
:readonly="true"
:value="dataSubSelected?.keterangan_selesai"
class-name="flex-1"
/>
</div>
</div> </div>
</div> </div>
</DetailDialog> </DetailDialog>
@ -895,11 +1186,6 @@ import {
const client = apolloClient() const client = apolloClient()
provideApolloClient(client) provideApolloClient(client)
const position = { of: '#data' }
const showIndicator = ref(true)
const shading = ref(true)
const showPane = ref(true)
const dataSelected = ref<any>() const dataSelected = ref<any>()
const dataSubSelected = ref<any>() const dataSubSelected = ref<any>()
const data = ref<any[]>([]) const data = ref<any[]>([])
@ -913,6 +1199,24 @@ const reportMeta = ref({
posko: { id: 0, name: 'Semua Posko' }, posko: { id: 0, name: 'Semua Posko' },
periode: '' periode: ''
}) })
const isTotal = ref(false)
const isGangguanIndividual = ref(false)
const isDialogEnabled = ref(false)
const onCellClicked = (e: any) => {
if (e.rowType == 'data' || e.rowType == 'totalFooter') {
isTotal.value = e.rowType == 'totalFooter'
if (
e.column.dataField == 'jumlah_wo_gangguan_individual' ||
e.column.dataField == 'jumlah_wo_penugasan_khusus'
) {
isGangguanIndividual.value = e.column.dataField == 'jumlah_wo_gangguan_individual'
isDialogEnabled.value = true
} else {
isDialogEnabled.value = false
}
}
}
const closedialogDetail = () => (dialogDetail.value = false) const closedialogDetail = () => (dialogDetail.value = false)
@ -930,14 +1234,23 @@ const getDetail = async () => {
idPosko: selected?.id_posko ? selected?.id_posko : 0, idPosko: selected?.id_posko ? selected?.id_posko : 0,
idUid: selected?.id_uid ? selected?.id_uid : 0, idUid: selected?.id_uid ? selected?.id_uid : 0,
idUp3: selected?.id_up3 ? selected?.id_up3 : 0, idUp3: selected?.id_up3 ? selected?.id_up3 : 0,
personilYantek: selected?.personil_yantek ? selected?.personil_yantek : '' personilYantek: isTotal.value ? '' : selected?.personil_yantek ? selected?.personil_yantek : ''
} }
loadingSubData.value = true loadingSubData.value = true
await requestGraphQl(queries.cico.laporanCheckInCheckOutDetail, query) await requestGraphQl(
isGangguanIndividual.value
? queries.cico.laporanCheckInCheckOutDetailIndividual
: queries.cico.laporanCheckInCheckOutDetailKhusus,
query
)
.then((result) => { .then((result) => {
if (result.data.data != undefined) { if (result.data.data != undefined) {
dataSub.value = result.data.data.detailCheckInCheckOut if (isGangguanIndividual.value) {
dataSub.value = result.data.data.detailCheckInCheckOutIndividu
} else {
dataSub.value = result.data.data.detailCheckInCheckOutKhusus
}
} else { } else {
dataSub.value = [] dataSub.value = []
} }
@ -960,7 +1273,9 @@ const showDetail = () => {
clearSelection() clearSelection()
dataSub.value = [] dataSub.value = []
dataSubSelected.value = null dataSubSelected.value = null
getDetail() if (isDialogEnabled.value) {
getDetail()
}
} }
const onExporting = (e: any) => { const onExporting = (e: any) => {

View File

@ -3783,6 +3783,114 @@ export const queries = {
} }
}, },
cico: { cico: {
laporanCheckInCheckOutDetailIndividual: gql`
query detailCheckInCheckOutIndividu(
$dateFrom: Date!
$dateTo: Date!
$idPosko: Int!
$idUid: Int!
$idUp3: Int!
$personilYantek: String!
) {
detailCheckInCheckOutIndividu(
dateFrom: $dateFrom
dateTo: $dateTo
idPosko: $idPosko
idUid: $idUid
idUp3: $idUp3
personilYantek: $personilYantek
) {
id
id_uid
nama_uid
id_up3
nama_up3
id_posko
nama_posko
media
pembuat_laporan
dispatch_by
durasi_waktu_dispatch
user_regu
nama_regu
personil_yantek
shift
check_in_petugas
no_laporan
durasi_wo
waktu_lapor
waktu_dispatch
waktu_perjalanan
waktu_nyala_sementara
waktu_nyala
waktu_selesai
waktu_response
check_out_petugas
durasi_menit_response
durasi_menit_recovery
rating
jml_pelanggan_padam
fasilitas
sub_fasilitas
peralatan
dampak_kerusakan
kelompok_penyebab
cuaca
keterangan_pelapor
keterangan
penyebab
tindakan
status_akhir
referensi_marking
blth
}
}
`,
laporanCheckInCheckOutDetailKhusus: gql`
query detailCheckInCheckOutKhusus(
$dateFrom: Date!
$dateTo: Date!
$idPosko: Int!
$idUid: Int!
$idUp3: Int!
$personilYantek: String!
) {
detailCheckInCheckOutKhusus(
dateFrom: $dateFrom
dateTo: $dateTo
idPosko: $idPosko
idUid: $idUid
idUp3: $idUp3
personilYantek: $personilYantek
) {
id
nama_uid
nama_up3
nama_posko
no_tugas
nama_tugas
keterangan
nama_catat_oleh
nama_regu
no_referensi
personil_yantek
shift
waktu_login
waktu_catat
waktu_perjalanan
waktu_response
waktu_nyala
waktu_nyala_sementara
waktu_recovery
durasi_wo_time
durasi_wo
waktu_logout
status_akhir
nama_selesai_oleh
keterangan_selesai
}
}
`,
laporanCheckInCheckOutDetail: gql` laporanCheckInCheckOutDetail: gql`
query detailCheckInCheckOut( query detailCheckInCheckOut(
$dateFrom: Date! $dateFrom: Date!