DOCUMENT rekapitulasi

This commit is contained in:
Eko Haryadi
2024-04-05 17:01:31 +07:00
parent db757a65bb
commit 444c59d0b5
44 changed files with 6420 additions and 6572 deletions

View File

@@ -1,149 +1,50 @@
<template>
<Filters
@run-report="() => exportToPDF(reportMeta, data, true)"
@reset-form="data = []"
@run-search="() => filterData(filters)"
:report-button="true"
class="mb-4"
>
<Filters @run-report="() => exportToPDF(reportMeta, data, true)" @reset-form="data = []"
@run-search="() => filterData(filters)" :report-button="true" class="mb-4">
<Type1 @update:filters="(value) => (filters = value)" />
</Filters>
<div id="data">
<DxDataGrid
ref="dataGridRef"
:allow-column-reordering="true"
class="max-h-[calc(100vh-140px)] mb-10"
:data-source="data"
:show-column-lines="true"
:show-row-lines="false"
:show-borders="true"
:row-alternation-enabled="true"
:hover-state-enabled="true"
@selection-changed="onDataSelectionChanged"
@exporting="onExporting"
:allow-column-resizing="true"
column-resizing-mode="widget"
:word-wrap-enabled="true"
>
<DxDataGrid ref="dataGridRef" :allow-column-reordering="true" class="max-h-[calc(100vh-140px)] mb-10"
:data-source="data" :show-column-lines="true" :show-row-lines="false" :show-borders="true"
:row-alternation-enabled="true" :hover-state-enabled="true" @selection-changed="onDataSelectionChanged"
@exporting="onExporting" :allow-column-resizing="true" column-resizing-mode="widget" :word-wrap-enabled="true">
<DxSelection mode="single" />
<DxPaging :enabled="false" />
<DxScrolling column-rendering-mode="virtual" mode="virtual" />
<!-- -->
<DxSearchPanel :visible="true" :highlight-case-sensitive="true" />
<DxExport
:enabled="true"
:formats="['pdf', 'xlsx', 'document']"
:allow-export-selected-data="false"
/>
<DxExport :enabled="true" :formats="['pdf', 'xlsx', 'document']" :allow-export-selected-data="false" />
<DxColumnFixing :enabled="true" />
<DxColumn
width="200"
alignment="center"
data-field="nama_ulp"
caption="Nama Unit"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn width="200" alignment="center" data-field="nama_ulp" caption="Nama Unit" css-class="custom-table-column"
cell-template="formatText" />
<DxColumn alignment="center" caption="Bulan" css-class="custom-table-column">
<DxColumn
alignment="center"
data-field="month1"
data-type="number"
caption="Januari"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month2"
data-type="number"
caption="Februari"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month3"
data-type="number"
caption="Maret"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month4"
data-type="number"
caption="April"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month5"
data-type="number"
caption="Mei"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month6"
data-type="number"
caption="Juni"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month7"
data-type="number"
caption="Juli"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month8"
data-type="number"
caption="Agustus"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month9"
data-type="number"
caption="September"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month10"
data-type="number"
caption="Oktober"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month11"
data-type="number"
caption="November"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn
alignment="center"
data-field="month12"
data-type="number"
caption="Desember"
css-class="custom-table-column"
cell-template="formatNumber"
/>
<DxColumn alignment="center" data-field="month1" data-type="number" caption="Januari"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month2" data-type="number" caption="Februari"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month3" data-type="number" caption="Maret"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month4" data-type="number" caption="April"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month5" data-type="number" caption="Mei"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month6" data-type="number" caption="Juni"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month7" data-type="number" caption="Juli"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month8" data-type="number" caption="Agustus"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month9" data-type="number" caption="September"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month10" data-type="number" caption="Oktober"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month11" data-type="number" caption="November"
css-class="custom-table-column" cell-template="formatNumber" />
<DxColumn alignment="center" data-field="month12" data-type="number" caption="Desember"
css-class="custom-table-column" cell-template="formatNumber" />
</DxColumn>
<template #formatText="{ data }">
@@ -155,153 +56,56 @@
<template #formatNumber="{ data }">
<p class="text-right cursor-pointer" @click="setMonth(data.column.caption)">
{{
isNumber(data.text)
? data.column.caption == '%'
? formatPercentage(data.text)
: formatNumber(data.text)
: data.text
}}
isNumber(data.text)
? data.column.caption == '%'
? formatPercentage(data.text)
: formatNumber(data.text)
: data.text
}}
</p>
</template>
</DxDataGrid>
</div>
<DetailDialog
:open="dialogDetail"
title="Data Detail Cleansing Transaksi TM"
@on-close="closedialogDetail"
:full-width="true"
>
<DetailDialog :open="dialogDetail" title="Data Detail Cleansing Transaksi TM" @on-close="closedialogDetail"
:full-width="true">
<div class="w-full mb-4 lg:w-[70%] lg:float-left">
<div class="p-4 bg-white rounded-xl lg:mr-4">
<DxDataGrid
:allow-column-reordering="true"
class="max-h-[calc(100vh-140px)]"
:data-source="dataSub"
:show-column-lines="true"
:show-row-lines="false"
:show-borders="true"
:row-alternation-enabled="true"
:hover-state-enabled="true"
@selection-changed="onDataSubSelectionChanged"
:column-width="100"
@exporting="onExportingDetail"
:allow-column-resizing="true"
column-resizing-mode="widget"
>
<DxDataGrid :allow-column-reordering="true" class="max-h-[calc(100vh-140px)]" :data-source="dataSub"
:show-column-lines="true" :show-row-lines="false" :show-borders="true" :row-alternation-enabled="true"
:hover-state-enabled="true" @selection-changed="onDataSubSelectionChanged" :column-width="100"
@exporting="onExportingDetail" :allow-column-resizing="true" column-resizing-mode="widget">
<DxSelection mode="single" />
<DxPaging :page-size="20" :enabled="true" />
<DxPager
:visible="true"
:allowed-page-sizes="[20, 50, 100]"
display-mode="full"
:show-page-size-selector="true"
:show-info="true"
:show-navigation-buttons="true"
/>
<DxPager :visible="true" :allowed-page-sizes="[20, 50, 100]" display-mode="full"
:show-page-size-selector="true" :show-info="true" :show-navigation-buttons="true" />
<!-- -->
<DxSearchPanel :visible="true" :highlight-case-sensitive="true" />
<DxExport
:enabled="true"
:formats="['pdf', 'xlsx', 'document']"
:allow-export-selected-data="false"
/>
<DxExport :enabled="true" :formats="['pdf', 'xlsx', 'document']" :allow-export-selected-data="false" />
<DxColumn
css-class="custom-table-column"
:width="50"
alignment="center"
:calculate-display-value="(item: any) => dataSub.findIndex((i) => i == item) + 1"
data-type="number"
caption="No"
cell-template="formatNumber"
/>
<DxColumn
:width="150"
alignment="center"
data-field="no_laporan"
caption="No Laporan"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="tgl_catat"
caption="Tgl Catat"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="tgl_pekerjaan"
caption="Tgl Pekerjaan"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="tgl_nyala"
caption="Tgl Nyala"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="durasi_pencatatan"
caption="Durasi Pencatatan"
:allow-resizing="false"
css-class="custom-table-column"
cell-template="formatTime"
/>
<DxColumn
:width="150"
alignment="center"
data-field="durasi_recovery_time"
caption="Durasi Recovery Time"
:allow-resizing="false"
css-class="custom-table-column"
cell-template="formatTime"
/>
<DxColumn
:width="150"
alignment="center"
data-field="keterangan_cleansing"
caption="Keterangan Cleansing"
:allow-resizing="false"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="nama_posko"
caption="Posko"
:allow-resizing="false"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="tindakan"
caption="Tindakan"
:allow-resizing="false"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn
:width="150"
alignment="center"
data-field="penyebab"
caption="Penyebab"
:allow-resizing="false"
css-class="custom-table-column"
cell-template="formatText"
/>
<DxColumn css-class="custom-table-column" :width="50" alignment="center"
:calculate-display-value="(item: any) => dataSub.findIndex((i) => i == item) + 1" data-type="number"
caption="No" cell-template="formatNumber" />
<DxColumn :width="150" alignment="center" data-field="no_laporan" caption="No Laporan"
css-class="custom-table-column" cell-template="formatText" />
<DxColumn :width="150" alignment="center" data-field="tgl_catat" caption="Tgl Catat"
css-class="custom-table-column" cell-template="formatText" />
<DxColumn :width="150" alignment="center" data-field="tgl_pekerjaan" caption="Tgl Pekerjaan"
css-class="custom-table-column" cell-template="formatText" />
<DxColumn :width="150" alignment="center" data-field="tgl_nyala" caption="Tgl Nyala"
css-class="custom-table-column" cell-template="formatText" />
<DxColumn :width="150" alignment="center" data-field="durasi_pencatatan" caption="Durasi Pencatatan"
:allow-resizing="false" css-class="custom-table-column" cell-template="formatTime" />
<DxColumn :width="150" alignment="center" data-field="durasi_recovery_time" caption="Durasi Recovery Time"
:allow-resizing="false" css-class="custom-table-column" cell-template="formatTime" />
<DxColumn :width="150" alignment="center" data-field="keterangan_cleansing" caption="Keterangan Cleansing"
:allow-resizing="false" css-class="custom-table-column" cell-template="formatText" />
<DxColumn :width="150" alignment="center" data-field="nama_posko" caption="Posko" :allow-resizing="false"
css-class="custom-table-column" cell-template="formatText" />
<DxColumn :width="150" alignment="center" data-field="tindakan" caption="Tindakan" :allow-resizing="false"
css-class="custom-table-column" cell-template="formatText" />
<DxColumn :width="150" alignment="center" data-field="penyebab" caption="Penyebab" :allow-resizing="false"
css-class="custom-table-column" cell-template="formatText" />
<template #formatText="{ data }">
<p class="text-left cursor-pointer">
@@ -348,37 +152,23 @@
<div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Durasi Pencatatan:</h3>
<InputText
:readonly="true"
:value="
parseInt(dataSubSelected?.durasi_pencatatan)
? formatWaktu(dataSubSelected?.durasi_pencatatan)
: '-'
"
class-name="flex-1"
/>
<InputText :readonly="true" :value="parseInt(dataSubSelected?.durasi_pencatatan)
? formatWaktu(dataSubSelected?.durasi_pencatatan)
: '-'
" class-name="flex-1" />
</div>
<div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Durasi Recovery Time:</h3>
<InputText
:readonly="true"
:value="
parseInt(dataSubSelected?.durasi_recovery_time)
? formatWaktu(dataSubSelected?.durasi_recovery_time)
: '-'
"
class-name="flex-1"
/>
<InputText :readonly="true" :value="parseInt(dataSubSelected?.durasi_recovery_time)
? formatWaktu(dataSubSelected?.durasi_recovery_time)
: '-'
" class-name="flex-1" />
</div>
<div class="flex flex-row items-center justify-between w-full">
<h3 class="text-sm font-medium w-[135px] text-gray-800">Keterangan CLeansing:</h3>
<InputText
:readonly="true"
:value="dataSubSelected?.keterangan_cleansing"
class-name="flex-1"
/>
<InputText :readonly="true" :value="dataSubSelected?.keterangan_cleansing" class-name="flex-1" />
</div>
<div class="flex flex-row items-center justify-between w-full">
@@ -429,7 +219,9 @@ import {
exportToPDF,
exportToXLSX,
exportDetailToPDF,
exportDetailToXLSX
exportDetailToXLSX,
exportToDOCX,
exportDetailToDOCX
} from '@/report/Gangguan/Rekap/RGangguan_CTTM'
import BufferDialog from '@/components/Dialogs/BufferDialog.vue'
@@ -567,6 +359,7 @@ const onExporting = (e: any) => {
} else if (e.format === 'xlsx') {
exportToXLSX(reportMeta.value, e)
} else {
exportToDOCX(reportMeta.value, data.value)
}
}
@@ -576,6 +369,7 @@ const onExportingDetail = (e: any) => {
} else if (e.format === 'xlsx') {
exportDetailToXLSX(reportMeta.value, e)
} else {
exportDetailToDOCX(reportMeta.value, dataSub.value)
}
}