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

This commit is contained in:
kur0nek-o 2024-02-29 14:11:04 +07:00
commit ecf72b238a
26 changed files with 94 additions and 136 deletions

View File

@ -1,6 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import { onMounted, ref } from 'vue' import { onMounted, ref } from 'vue'
import { useTotalDuration } from '@/stores/totalDuration'
import { import {
selectedUid, selectedUid,
selectedUp3Ulp, selectedUp3Ulp,
@ -13,7 +12,10 @@ import {
import Select from '@/components/Select.vue' import Select from '@/components/Select.vue'
import DatePicker from '@/components/DatePicker.vue' import DatePicker from '@/components/DatePicker.vue'
import InputWithSuffix from '@/components/Form/InputWithSuffix.vue' import InputWithSuffix from '@/components/Form/InputWithSuffix.vue'
const totalMin = ref("1 Menit")
const totalMax = ref("5 Menit")
const setDataMin = (value: any) => totalMin.value = value
const setDataMax = (value: any) => totalMax.value = value
const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah' const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah'
const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan' const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan'
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan' const ulpPlaceholder = 'Semua Unit Layanan Pelanggan'
@ -65,12 +67,12 @@ const setUlp = (value: any) => {
const setMin = (value: any) => { const setMin = (value: any) => {
console.log(value) console.log(value)
data.value.minTime = value data.value.minTime = value
useTotalDuration().setDataMin(value) setDataMin(value)
} }
const setMax = (value: any) => { const setMax = (value: any) => {
data.value.maxTime = value data.value.maxTime = value
useTotalDuration().setDataMax(value) setDataMax(value)
} }
const triggerInput = ref(false) const triggerInput = ref(false)
@ -101,45 +103,31 @@ onMounted(() => {
<template> <template>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block" <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Unit Induk Distribusi/Wilayah:</label>
>Unit Induk Distribusi/Wilayah:</label
>
<Select @update:selected="setUid($event)" :data="itemsUid" :placeholder="uidPlaceholder" /> <Select @update:selected="setUid($event)" :data="itemsUid" :placeholder="uidPlaceholder" />
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block" <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Unit Pelaksanaan Pelayanan Pelanggan:</label>
>Unit Pelaksanaan Pelayanan Pelanggan:</label
>
<Select <Select @update:selected="setUp3($event)" :data="itemsUp3" :selected="up3" :placeholder="up3Placeholder" />
@update:selected="setUp3($event)"
:data="itemsUp3"
:selected="up3"
:placeholder="up3Placeholder"
/>
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Unit Layanan Pelanggan:</label> <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Unit Layanan Pelanggan:</label>
<Select <Select @update:selected="setUlp($event)" :data="itemsUlp" :placeholder="ulpPlaceholder" :selected="ulp" />
@update:selected="setUlp($event)"
:data="itemsUlp"
:placeholder="ulpPlaceholder"
:selected="ulp"
/>
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Periode Tanggal:</label> <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Periode Tanggal:</label>
<DatePicker @update:date-value="(value) => (data.periode = value)" /> <DatePicker @update:date-value="(value) => (data.periode = value)" />
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Durasi:</label> <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Durasi:</label>
<div class="flex flex-col gap-y-1"> <div class="flex flex-col gap-y-1">
<Select @update:selected="changeDuration($event)" :data="sla" placeholder="Durasi Menit" /> <Select @update:selected="changeDuration($event)" :data="sla" placeholder="Durasi Menit" />

View File

@ -2,7 +2,6 @@
import Select from '@/components/Select.vue' import Select from '@/components/Select.vue'
import DatePicker from '@/components/DatePicker.vue' import DatePicker from '@/components/DatePicker.vue'
import InputWithSuffix from '../InputWithSuffix.vue' import InputWithSuffix from '../InputWithSuffix.vue'
import { useTotalDuration } from '@/stores/totalDuration'
import { import {
selectedUid, selectedUid,
selectedUp3Posko, selectedUp3Posko,
@ -21,15 +20,25 @@ const poskoPlaceholder = 'Semua Unit Layanan Pelanggan'
const up3 = ref({ id: 0, name: up3Placeholder }) const up3 = ref({ id: 0, name: up3Placeholder })
const uid = ref({ id: 0, name: uidPlaceholder }) const uid = ref({ id: 0, name: uidPlaceholder })
const posko = ref({ id: 0, name: poskoPlaceholder }) const posko = ref({ id: 0, name: poskoPlaceholder })
const totalMin = ref("1 Menit")
const totalMax = ref("5 Menit")
const setDataMin = (value: any) => totalMin.value = value
const getDataMin = () => totalMin.value
const setDataMax = (value: any) => totalMax.value = value
const getDataMax = () => totalMax.value
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
up3: up3.value, up3: up3.value,
posko: posko.value, posko: posko.value,
periode: '', periode: '',
minTime: useTotalDuration().getDataMin().split(' ')[0], minTime: getDataMin().split(' ')[0],
maxTime: useTotalDuration().getDataMax().split(' ')[0] maxTime: getDataMax().split(' ')[0]
}) })
const setUid = (value: any) => { const setUid = (value: any) => {
uid.value = value uid.value = value
selectedUid(value) selectedUid(value)
@ -63,11 +72,11 @@ const sla = [
const setMin = (value: any) => { const setMin = (value: any) => {
console.log(value) console.log(value)
data.value.minTime = value data.value.minTime = value
useTotalDuration().setDataMin(value) setDataMin(value)
} }
const setMax = (value: any) => { const setMax = (value: any) => {
data.value.maxTime = value data.value.maxTime = value
useTotalDuration().setDataMax(value) setDataMax(value)
} }
const triggerInput = ref(false) const triggerInput = ref(false)
const changeDuration = (value: any) => { const changeDuration = (value: any) => {
@ -100,45 +109,31 @@ onMounted(() => {
<template> <template>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block" <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Unit Induk Distribusi/Wilayah:</label>
>Unit Induk Distribusi/Wilayah:</label
>
<Select @update:selected="setUid($event)" :data="itemsUid" :placeholder="uidPlaceholder" /> <Select @update:selected="setUid($event)" :data="itemsUid" :placeholder="uidPlaceholder" />
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block" <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Unit Pelaksanaan Pelayanan Pelanggan:</label>
>Unit Pelaksanaan Pelayanan Pelanggan:</label
>
<Select <Select @update:selected="setUp3($event)" :data="itemsUp3" :selected="up3" :placeholder="up3Placeholder" />
@update:selected="setUp3($event)"
:data="itemsUp3"
:selected="up3"
:placeholder="up3Placeholder"
/>
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Posko:</label> <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Posko:</label>
<Select <Select @update:selected="setPosko($event)" :data="itemsPosko" :selected="posko" :placeholder="poskoPlaceholder" />
@update:selected="setPosko($event)"
:data="itemsPosko"
:selected="posko"
:placeholder="poskoPlaceholder"
/>
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Periode Tanggal:</label> <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Periode Tanggal:</label>
<DatePicker @update:date-value="(value) => (data.periode = value)" /> <DatePicker @update:date-value="(value) => (data.periode = value)" />
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Durasi:</label> <label class="block mb-2 font-semibold text-gray-800 sm:mb-0">Durasi:</label>
<div class="flex flex-col gap-y-1"> <div class="flex flex-col gap-y-1">
<Select @update:selected="changeDuration($event)" :data="sla" placeholder="Durasi Menit" /> <Select @update:selected="changeDuration($event)" :data="sla" placeholder="Durasi Menit" />

View File

@ -1,20 +1,20 @@
export { default as GangguanTable1 } from '@/components/Pages/Gangguan/Table_1.vue' export { default as DaftarGangguanDKPL } from '@/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue'
export { default as GangguanTable2 } from '@/components/Pages/Gangguan/Table_2.vue' export { default as DaftarGangguanMLD1K } from '@/components/Pages/Gangguan/Daftar/DGangguan_MLD1K.vue'
export { default as GangguanTable3 } from '@/components/Pages/Gangguan/Table_3.vue' export { default as DaftarGangguanResponseTime } from '@/components/Pages/Gangguan/Daftar/DGangguan_ResponseTime.vue'
export { default as GangguanTable4 } from '@/components/Pages/Gangguan/Table_4.vue' export { default as DaftarGangguanRecoveryTime } from '@/components/Pages/Gangguan/Daftar/DGangguan_RecoveryTime.vue'
export { default as GangguanTable5 } from '@/components/Pages/Gangguan/Table_5.vue' export { default as DaftarGangguanSTIDP } from '@/components/Pages/Gangguan/Daftar/DGangguan_STIDP.vue'
export { default as GangguanTable6 } from '@/components/Pages/Gangguan/Table_6.vue' export { default as DaftarGangguanBM } from '@/components/Pages/Gangguan/Daftar/DGangguan_BM.vue'
export { default as GangguanTable7 } from '@/components/Pages/Gangguan/Table_7.vue' export { default as DaftarGangguanDMAPKT } from '@/components/Pages/Gangguan/Daftar/DGangguan_DMAPKT.vue'
export { default as GangguanTable8 } from '@/components/Pages/Gangguan/Table_8.vue' export { default as RekapGangguanALL } from '@/components/Pages/Gangguan/Rekap/RGangguan_ALL.vue'
export { default as GangguanTable9 } from '@/components/Pages/Gangguan/Table_9.vue' export { default as RekapGangguanJenisGangguan } from '@/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue'
export { default as GangguanTable10 } from '@/components/Pages/Gangguan/Table_10.vue' export { default as RekapGangguanJenisGangguanSE } from '@/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguanSE.vue'
export { default as GangguanTable11 } from '@/components/Pages/Gangguan/Table_11.vue' export { default as RekapGangguanPerPosko } from '@/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue'
export { default as GangguanTable12 } from '@/components/Pages/Gangguan/Table_12.vue' export { default as RekapGangguanPerRegu } from '@/components/Pages/Gangguan/Rekap/RGangguan_PerRegu.vue'
export { default as GangguanTable13 } from '@/components/Pages/Gangguan/Table_13.vue' export { default as RekapGangguanPerTanggal } from '@/components/Pages/Gangguan/Rekap/RGangguan_PerTanggal.vue'
export { default as GangguanTable14 } from '@/components/Pages/Gangguan/Table_14.vue' export { default as RekapGangguanBerdasarMedia } from '@/components/Pages/Gangguan/Rekap/RGangguan_BerdasarMedia.vue'
export { default as GangguanTable15 } from '@/components/Pages/Gangguan/Table_15.vue' export { default as RekapGangguanAlihPosko } from '@/components/Pages/Gangguan/Rekap/RGangguan_AlihPosko.vue'
export { default as GangguanTable16 } from '@/components/Pages/Gangguan/Table_16.vue' export { default as RekapGangguanDMAPKT } from '@/components/Pages/Gangguan/Rekap/RGangguan_DMAPKT.vue'
export { default as GangguanTable17 } from '@/components/Pages/Gangguan/Table_17.vue' export { default as RekapGangguanRatingPerPosko } from '@/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue'
export { default as GangguanTable18 } from '@/components/Pages/Gangguan/Table_18.vue' export { default as RekapGangguanRatingPerRegu } from '@/components/Pages/Gangguan/Rekap/RGangguan_RatingPerRegu.vue'
export { default as GangguanTable19 } from '@/components/Pages/Gangguan/Table_19.vue' export { default as RekapGangguanKTI } from '@/components/Pages/Gangguan/Rekap/RGangguan_KTI.vue'
export { default as GangguanTable20 } from '@/components/Pages/Gangguan/Table_20.vue' export { default as RekapGangguanCTTM } from '@/components/Pages/Gangguan/Rekap/RGangguan_CTTM.vue'

View File

@ -7,26 +7,26 @@ import WelcomePage from '@/components/Pages/Welcome.vue'
import EmptyPage from '@/components/Pages/EmptyPage.vue' import EmptyPage from '@/components/Pages/EmptyPage.vue'
import qs from 'qs' import qs from 'qs'
import { import {
GangguanTable1, DaftarGangguanDKPL,
GangguanTable2, DaftarGangguanMLD1K,
GangguanTable3, DaftarGangguanResponseTime,
GangguanTable4, DaftarGangguanRecoveryTime,
GangguanTable5, DaftarGangguanSTIDP,
GangguanTable6, DaftarGangguanBM,
GangguanTable7, DaftarGangguanDMAPKT,
GangguanTable8, RekapGangguanALL,
GangguanTable9, RekapGangguanJenisGangguan,
GangguanTable10, RekapGangguanJenisGangguanSE,
GangguanTable11, RekapGangguanPerPosko,
GangguanTable12, RekapGangguanPerRegu,
GangguanTable13, RekapGangguanPerTanggal,
GangguanTable14, RekapGangguanBerdasarMedia,
GangguanTable15, RekapGangguanAlihPosko,
GangguanTable16, RekapGangguanDMAPKT,
GangguanTable17, RekapGangguanRatingPerPosko,
GangguanTable18, RekapGangguanRatingPerRegu,
GangguanTable19, RekapGangguanKTI,
GangguanTable20 RekapGangguanCTTM
} from '@/components/Pages/Gangguan' } from '@/components/Pages/Gangguan'
import { import {
KeluhanTable1, KeluhanTable1,
@ -100,37 +100,37 @@ export const routes: RouteRecordRaw[] = [
{ {
path: '1', path: '1',
name: 'Daftar Gangguan Dialihkan Ke Posko Lain', name: 'Daftar Gangguan Dialihkan Ke Posko Lain',
component: GangguanTable1 component: DaftarGangguanDKPL
}, },
{ {
path: '2', path: '2',
name: 'Daftar Gangguan Melapor Lebih Dari 1 Kali', name: 'Daftar Gangguan Melapor Lebih Dari 1 Kali',
component: GangguanTable2 component: DaftarGangguanMLD1K
}, },
{ {
path: '3', path: '3',
name: 'Daftar Gangguan Response Time', name: 'Daftar Gangguan Response Time',
component: GangguanTable3 component: DaftarGangguanResponseTime
}, },
{ {
path: '4', path: '4',
name: 'Daftar Gangguan Recovery Time', name: 'Daftar Gangguan Recovery Time',
component: GangguanTable4 component: DaftarGangguanRecoveryTime
}, },
{ {
path: '5', path: '5',
name: 'Daftar Gangguan Selesai Tanpa ID Pelanggan', name: 'Daftar Gangguan Selesai Tanpa ID Pelanggan',
component: GangguanTable5 component: DaftarGangguanSTIDP
}, },
{ {
path: '6', path: '6',
name: 'Daftar Gangguan Berdasarkan Media', name: 'Daftar Gangguan Berdasarkan Media',
component: GangguanTable6 component: DaftarGangguanBM
}, },
{ {
path: '7', path: '7',
name: 'Daftar Gangguan Diselesaikan Mobile APKT', name: 'Daftar Gangguan Diselesaikan Mobile APKT',
component: GangguanTable7 component: DaftarGangguanDMAPKT
}, },
{ {
path: ':pathMatch(.*)*', path: ':pathMatch(.*)*',
@ -145,67 +145,67 @@ export const routes: RouteRecordRaw[] = [
{ {
path: '1', path: '1',
name: 'Rekapitulasi Gangguan All', name: 'Rekapitulasi Gangguan All',
component: GangguanTable8 component: RekapGangguanALL
}, },
{ {
path: '2', path: '2',
name: 'Rekapitulasi Gangguan/Jenis Gangguan', name: 'Rekapitulasi Gangguan/Jenis Gangguan',
component: GangguanTable9 component: RekapGangguanJenisGangguan
}, },
{ {
path: '3', path: '3',
name: 'Rekapitulasi Gangguan/Jenis Gangguan SE 004', name: 'Rekapitulasi Gangguan/Jenis Gangguan SE 004',
component: GangguanTable10 component: RekapGangguanJenisGangguanSE
}, },
{ {
path: '4', path: '4',
name: 'Rekapitulasi Gangguan Per Posko', name: 'Rekapitulasi Gangguan Per Posko',
component: GangguanTable11 component: RekapGangguanPerPosko
}, },
{ {
path: '5', path: '5',
name: 'Rekapitulasi Gangguan Per Regu', name: 'Rekapitulasi Gangguan Per Regu',
component: GangguanTable12 component: RekapGangguanPerRegu
}, },
{ {
path: '6', path: '6',
name: 'Rekapitulasi Gangguan Per Tanggal', name: 'Rekapitulasi Gangguan Per Tanggal',
component: GangguanTable13 component: RekapGangguanPerTanggal
}, },
{ {
path: '7', path: '7',
name: 'Rekapitulasi Gangguan Berdasarkan Media', name: 'Rekapitulasi Gangguan Berdasarkan Media',
component: GangguanTable14 component: RekapGangguanBerdasarMedia
}, },
{ {
path: '8', path: '8',
name: 'Rekapitulasi Gangguan Alih Posko', name: 'Rekapitulasi Gangguan Alih Posko',
component: GangguanTable15 component: RekapGangguanAlihPosko
}, },
{ {
path: '9', path: '9',
name: 'Rekapitulasi Gangguan Diselesaikan Mobile APKT', name: 'Rekapitulasi Gangguan Diselesaikan Mobile APKT',
component: GangguanTable16 component: RekapGangguanDMAPKT
}, },
{ {
path: '10', path: '10',
name: 'Rekapitulasi Rating Per Posko', name: 'Rekapitulasi Rating Per Posko',
component: GangguanTable17 component: RekapGangguanRatingPerPosko
}, },
{ {
path: '11', path: '11',
name: 'Rekapitulasi Rating Per Regu', name: 'Rekapitulasi Rating Per Regu',
component: GangguanTable18 component: RekapGangguanRatingPerRegu
}, },
{ {
path: '12', path: '12',
name: 'Rekapitulasi Koreksi Transaksi Individual', name: 'Rekapitulasi Koreksi Transaksi Individual',
component: GangguanTable19 component: RekapGangguanKTI
}, },
{ {
path: '13', path: '13',
name: 'Rekapitulasi Cleansing Transaksi TM', name: 'Rekapitulasi Cleansing Transaksi TM',
component: GangguanTable20 component: RekapGangguanCTTM
}, },
{ {
path: ':pathMatch(.*)*', path: ':pathMatch(.*)*',

View File

@ -1,25 +0,0 @@
import { ref } from 'vue'
import { defineStore } from 'pinia'
export const useTotalDuration = defineStore('totalDuration', () => {
const totalMin = ref("1 Menit")
const totalMax = ref("5 Menit")
const setDataMin = (value: any) => {
totalMin.value = value
}
const getDataMin = () => {
return totalMin.value
}
const setDataMax = (value: any) => {
totalMax.value = value
}
const getDataMax = () => {
return totalMax.value
}
return {
setDataMin,
getDataMin,
setDataMax,
getDataMax,
}
})