+
+
Open sidebar
-
-
+
-
+
-
FAQ
@@ -113,16 +99,25 @@ onUnmounted(() => {
class="p-1 text-gray-400 bg-white rounded-full hover:text-primary-500 focus:outline-none focus:ring-0">
Message
+ -->
+
+ Search
+
+ Cari menu
-
+
+ class="flex items-center max-w-xs px-1 py-1 text-sm rounded-full bg-secondary-100 md:bg-primary-500 focus:outline-none focus:ring-0 line-clamp-1">
Open user menu
-
+
+
+ {{ userStore.user_name }}
+
{
-
diff --git a/src/components/Menus/MenuProvider.vue b/src/components/Menus/MenuProvider.vue
index 9cd3107..6f314ac 100644
--- a/src/components/Menus/MenuProvider.vue
+++ b/src/components/Menus/MenuProvider.vue
@@ -1,5 +1,6 @@
-
+
{{ currentRouteName }}
diff --git a/src/components/Navigation.vue b/src/components/Navigation.vue
index 09883ce..01908b9 100644
--- a/src/components/Navigation.vue
+++ b/src/components/Navigation.vue
@@ -1,16 +1,9 @@
-
-
+
+
\ No newline at end of file
diff --git a/src/stores/dialog.ts b/src/stores/dialog.ts
new file mode 100644
index 0000000..8207288
--- /dev/null
+++ b/src/stores/dialog.ts
@@ -0,0 +1,49 @@
+
+import { defineStore } from 'pinia'
+import { ref, watch } from 'vue'
+
+export const useDialogStore = defineStore('dialog', () => {
+ const onConfirm = ref()
+ const onCancel = ref()
+ const confirmText = ref('')
+ const cancelText = ref('')
+ const open = ref(false)
+ const title = ref('')
+ const content = ref('')
+ const type = ref('normal')
+ const showCancelButton = ref(true)
+ const dismissOnAction = ref(true)
+ const timer = ref()
+ watch(open, (value) => {
+ if (!value) {
+ // check if timer is set
+ if (timer.value) {
+ clearTimeout(timer.value)
+ }
+
+ timer.value = setTimeout(() => {
+ onConfirm.value = () => { }
+ onCancel.value = () => { }
+ dismissOnAction.value = true
+ showCancelButton.value = true
+ }, 2000)
+ } else {
+ if (timer.value) {
+ clearTimeout(timer.value)
+ }
+ }
+ })
+
+ return {
+ showCancelButton,
+ dismissOnAction,
+ onConfirm,
+ onCancel,
+ title,
+ content,
+ type,
+ open,
+ confirmText,
+ cancelText,
+ }
+})
\ No newline at end of file
diff --git a/src/stores/menu.ts b/src/stores/menu.ts
index 4faeaee..5fa9dee 100644
--- a/src/stores/menu.ts
+++ b/src/stores/menu.ts
@@ -1,259 +1,471 @@
-import { ref, computed } from 'vue'
+import { ref } from 'vue'
import { defineStore } from 'pinia'
-import {
- BoltIcon,
- Cog6ToothIcon,
- ComputerDesktopIcon,
- DocumentDuplicateIcon,
- DocumentTextIcon,
- FolderArrowDownIcon,
- FolderOpenIcon,
- ShieldCheckIcon,
-} from '@heroicons/vue/24/outline'
+import {
+ LightningSlash,
+ Monitor,
+ SmileySad,
+ Swap
+} from '@/utils/icons'
+import type { MenuItemModel } from '@/utils/interfaces'
export const useMenuStore = defineStore('menu', () => {
- const navigation = [
+ const navigation: MenuItemModel[] = [
{
- name: 'Daftar Transaksi',
- icon: DocumentDuplicateIcon,
- href: '/daftar-transaksi',
- children: [
- { name: 'Transaksi Aktif Individual', href: '/daftar-transaksi/aktif-individual', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Transaksi Aktif PLN Mobile', href: '/daftar-transaksi/aktif-pln-mobile', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Transaksi Aktif Periksa dan Return Order', href: '/daftar-transaksi/periksa-return-order', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Transaksi Aktif TM', href: '/daftar-transaksi/aktif-tm', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Transaksi Aktif Historis', href: '/daftar-transaksi/aktif-historis', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring Alih Unit', href: '/daftar-transaksi/monitoring-alih-unit', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring All', href: '/daftar-transaksi/monitoring-all', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring Tiket', href: '/daftar-transaksi/monitoring-tiket', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring History', href: '/daftar-transaksi/monitoring-history', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring Aktif', href: '/daftar-transaksi/monitoring-aktif', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring Close di CC', href: '/daftar-transaksi/monitoring-close-cc', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring Log AutoDispatch', href: '/daftar-transaksi/monitoring-log-autodispatch', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring Yang Perlu Diperhatikan', href: '/daftar-transaksi/monitoring-perlu-diperhatikan', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring Log Break Regu', href: '/daftar-transaksi/monitoring-log-break-regu', icon: DocumentDuplicateIcon, children: [], },
- { name: 'Monitoring Log Alih Regu', href: '/daftar-transaksi/monitoring-log-alih-regu', icon: DocumentDuplicateIcon, children: [], },
- ],
- },
- {
- name: 'Administration',
- icon: ShieldCheckIcon,
- href: '/administration',
+ name: 'Gangguan',
+ href: '/gangguan',
+ icon: LightningSlash,
children: [
{
- name: 'Audit Trails',
- icon: ShieldCheckIcon,
- href: '/administration/audit-trails',
+ name: 'Daftar',
+ href: '/gangguan/1',
+ icon: LightningSlash,
children: [
{
- name: 'Log Login',
- href: '/administration/audit-trails/log-login',
- icon: ShieldCheckIcon,
+ name: 'Daftar Keluhan Dialihkan Ke Posko Lain',
+ href: '/gangguan/1/1',
+ icon: LightningSlash,
children: [],
},
{
- name: 'Log Activity',
- href: '/administration/audit-trails/log-aktivity',
- icon: ShieldCheckIcon,
+ name: 'Daftar Gangguan Melapor Lebih Dari 1 Kali',
+ href: '/gangguan/1/2',
+ icon: LightningSlash,
children: [],
},
{
- name: 'Log Error',
- href: '/administration/audit-trails/log-error',
- icon: ShieldCheckIcon,
+ name: 'Daftar Gangguan Response Time',
+ href: '/gangguan/1/3',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Daftar Gangguan Recovery Time',
+ href: '/gangguan/1/4',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Daftar Gangguan Selesai Tanpa ID Pelanggan',
+ href: '/gangguan/1/5',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Daftar Gangguan Berdasarkan Media',
+ href: '/gangguan/1/6',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Daftar Gangguan Diselesaikan Mobile APKT',
+ href: '/gangguan/1/7',
+ icon: LightningSlash,
children: [],
},
],
},
{
- name: 'Task Management',
- icon: ShieldCheckIcon,
- href: '/administration/task-management',
+ name: 'Rekapitulasi',
+ href: '/gangguan/2',
+ icon: LightningSlash,
children: [
- { name: 'Menu Management', href: '/administration/task-management/menu-management', icon: ShieldCheckIcon, children: [], },
- { name: 'System Parameter', href: '/administration/task-management/system-parameter', icon: ShieldCheckIcon, children: [], },
- { name: 'User Profile Manager', href: '/administration/task-management/ubah-profile-manager', icon: ShieldCheckIcon, children: [], },
- { name: 'Security Projek', href: '/administration/task-management/security-projek', icon: ShieldCheckIcon, children: [], },
- { name: 'User Role Manager', href: '/administration/task-management/user-role-manager', icon: ShieldCheckIcon, children: [], },
- { name: 'Menu Authorization', href: '/administration/task-management/menu-authorization', icon: ShieldCheckIcon, children: [], },
- { name: 'Workflow Designer', href: '/administration/task-management/workflow-designer', icon: ShieldCheckIcon, children: [], },
- { name: 'APKT News', href: '/administration/task-management/apkt-news', icon: ShieldCheckIcon, children: [], },
- ],
- },
- {
- name: 'Master Borderless',
- icon: ShieldCheckIcon,
- href: '/administration/master-borderless',
- children: [
- { name: 'Zone Borderless', href: '/administration/master-borderless/zone-borderless', icon: ShieldCheckIcon, children: [], },
- { name: 'User Zone Borderless', href: '/administration/master-borderless/user-zone-borderless', icon: ShieldCheckIcon, children: [], },
+ {
+ name: 'Rekapitulasi Gangguan All',
+ href: '/gangguan/2/1',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Per Jenis Gangguan',
+ href: '/gangguan/2/2',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Per Jenis Gangguan SE 004',
+ href: '/gangguan/2/3',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Per Posko',
+ href: '/gangguan/2/4',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Per Regu',
+ href: '/gangguan/2/5',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Per Tanggal',
+ href: '/gangguan/2/6',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Berdasarkan Media',
+ href: '/gangguan/2/7',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Alih Posko',
+ href: '/gangguan/2/8',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Per Status',
+ href: '/gangguan/2/9',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Diselesaikan Mobile APKT',
+ href: '/gangguan/2/10',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Rating Per Posko',
+ href: '/gangguan/2/11',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Rating Per Regu',
+ href: '/gangguan/2/12',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Koreksi Transaksi Individual',
+ href: '/gangguan/2/13',
+ icon: LightningSlash,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Cleansing Transaksi TM',
+ href: '/gangguan/2/14',
+ icon: LightningSlash,
+ children: [],
+ },
],
},
],
},
{
- name: 'Master Yantek',
- icon: FolderOpenIcon,
- href: '/master-yantek',
- children: [
- { name: 'Unit', href: '/master-yantek/unit', icon: FolderOpenIcon, children: [], },
- { name: 'Unit Jaringan', href: '/master-yantek/unit-jaringan', icon: FolderOpenIcon, children: [], },
- { name: 'Unit Pelayanan', href: '/master-yantek/unit-pelayanan', icon: FolderOpenIcon, children: [], },
- { name: 'Regu Yantek', href: '/master-yantek/regu-yantek', icon: FolderOpenIcon, children: [], },
- { name: 'Gardu Induk', href: '/master-yantek/gardu-induk', icon: FolderOpenIcon, children: [], },
- { name: 'Gardu Penyulang TM', href: '/master-yantek/gardu-penyulang-tm', icon: FolderOpenIcon, children: [], },
- { name: 'Gardu Distribusi', href: '/master-yantek/gardu-distribusi', icon: FolderOpenIcon, children: [], },
- { name: 'Group Gangguan', href: '/master-yantek/group-gangguan', icon: FolderOpenIcon, children: [], },
- { name: 'Wilayah Yantek', href: '/master-yantek/wilayah-yantek', icon: FolderOpenIcon, children: [], },
- { name: 'Material', href: '/master-yantek/material', icon: FolderOpenIcon, children: [], },
- ],
- },
- {
- name: 'Transaksi',
- icon: DocumentTextIcon,
- href: '/transaksi',
- children: [
- { name: 'Gangguan dan Keluhan', href: '/transaksi/gangguan-dan-keluhan', icon: DocumentTextIcon, children: [], },
- { name: 'Gangguan Tegangan Menengah', href: '/transaksi/gangguan-tegangan-menengah', icon: DocumentTextIcon, children: [], },
- { name: 'Pemadaman Terencana', href: '/transaksi/pemadaman-terencana', icon: DocumentTextIcon, children: [], },
- { name: 'Aplikasi Off-Line', href: '/transaksi/aplikasi-off-line', icon: DocumentTextIcon, children: [], },
- { name: 'Penugasan Khusus', href: '/transaksi/penugasan-khusus', icon: DocumentTextIcon, children: [], },
- { name: 'Mutasi Pengaduan', href: '/transaksi/mutasi-pengaduan', icon: DocumentTextIcon, children: [], },
- ],
- },
- {
- name: 'Saidi Saifi',
- icon: ComputerDesktopIcon,
- href: '/saidi-saifi',
+ name: 'Keluhan',
+ href: '/keluhan',
+ icon: SmileySad,
children: [
{
- name: 'Monitor Jaringan',
- icon: ComputerDesktopIcon,
- href: '/saidi-saifi/monitor-jaringan',
+ name: 'Daftar',
+ icon: SmileySad,
+ href: '/keluhan/1',
children: [
{
- name: 'Dashboard Asset',
- href: '/saidi-saifi/monitor-jaringan/dashboard-asset',
- icon: ComputerDesktopIcon,
+ name: 'Daftar Keluhan Dialihkan Ke Unit Lain',
+ href: '/keluhan/1/1',
+ icon: SmileySad,
children: [],
},
{
- name: 'Manuver Topologi Jaringan',
- href: '/saidi-saifi/monitor-jaringan/manuver-topologi-jaringan',
- icon: ComputerDesktopIcon,
+ name: 'Daftar Keluhan Pelanggan Lebih Dari 1 Kali',
+ href: '/keluhan/1/2',
+ icon: SmileySad,
children: [],
},
{
- name: 'Pencarian Segment Jaringan',
- href: '/saidi-saifi/monitor-jaringan/pencarian-segment-jaringan',
- icon: ComputerDesktopIcon,
+ name: 'Daftar Keluhan Response Time',
+ href: '/keluhan/1/3',
+ icon: SmileySad,
children: [],
},
{
- name: 'Penormalan Manuver Jaringan',
- href: '/saidi-saifi/monitor-jaringan/penormalan-manuver-jaringan',
- icon: ComputerDesktopIcon,
+ name: 'Daftar Keluhan Recovery Time',
+ href: '/keluhan/1/4',
+ icon: SmileySad,
children: [],
},
{
- name: 'Pindah Jaringan',
- href: '/saidi-saifi/monitor-jaringan/pindah-jaringan',
- icon: ComputerDesktopIcon,
+ name: 'Daftar Keluhan Selesai Tanpa ID Pelanggan',
+ href: '/keluhan/1/5',
+ icon: SmileySad,
+ children: [],
+ },
+ {
+ name: 'Daftar Keluhan Berdasarkan Media',
+ href: '/keluhan/1/6',
+ icon: SmileySad,
+ children: [],
+ },
+ {
+ name: 'Daftar Keluhan Selesai di CC123',
+ href: '/keluhan/1/7',
+ icon: SmileySad,
children: [],
},
],
},
{
- name: 'Monitoring SCADA',
- icon: ComputerDesktopIcon,
- href: '/saidi-saifi/monitor-scada/',
+ name: 'Rekapitulasi',
+ icon: SmileySad,
+ href: '/keluhan/2',
children: [
- { name: 'Monitoring Mapping Database', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Monitoring Log SCADA', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Gardu Induk', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Feeder', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Zona', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Lateral', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Section', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Segment', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Sub Lateral', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Gardu Distribusi', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Trafo', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Mapping Jurusan', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Monitoring Integrasi ????', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Monitoring Integrasi per No Tiang', href: '/saidi-saifi/monitor-scada/', icon: ComputerDesktopIcon, children: [], },
- ],
- },
- {
- name: 'Master Jaringan',
- icon: ComputerDesktopIcon,
- href: '/saidi-saifi/master-jaringan/',
- children: [
- { name: 'Master Gardu Induk', href: '/saidi-saifi/master-jaringan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Feeder', href: '/saidi-saifi/master-jaringan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Zona', href: '/saidi-saifi/master-jaringan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Section', href: '/saidi-saifi/master-jaringan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Segement', href: '/saidi-saifi/master-jaringan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Lateral', href: '/saidi-saifi/master-jaringan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Gardu Distribusi', href: '/saidi-saifi/master-jaringan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Switch', href: '/saidi-saifi/master-jaringan/', icon: ComputerDesktopIcon, children: [], },
- ],
- },
- {
- name: 'Master Perhitungan',
- icon: ComputerDesktopIcon,
- href: '/saidi-saifi/master-perhitungan/',
- children: [
- { name: 'Master Asumsi', href: '/saidi-saifi/master-perhitungan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Asumsi Salatiga', href: '/saidi-saifi/master-perhitungan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Master Faktor Daya & Beban', href: '/saidi-saifi/master-perhitungan/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Data III-09', href: '/saidi-saifi/master-perhitungan/', icon: ComputerDesktopIcon, children: [], },
- ],
- },
- {
- name: 'Laporan Saidi Saifi',
- icon: ComputerDesktopIcon,
- href: '/saidi-saifi/laporan-saidi-saifi/',
- children: [
- { name: 'Laporan Saidi Saifi per Penyulang', href: '/saidi-saifi/laporan-saidi-saifi/', icon: ComputerDesktopIcon, children: [], },
- ],
- },
- {
- name: 'Pelanggan Prioritas',
- icon: ComputerDesktopIcon,
- href: '/saidi-saifi/pelanggan-prioritas/',
- children: [
- { name: 'Daftar Pelanggan Prioritas', href: '/saidi-saifi/pelanggan-prioritas/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Monitoring Pelanggan Prioritas', href: '/saidi-saifi/pelanggan-prioritas/', icon: ComputerDesktopIcon, children: [], },
- ],
- },
- {
- name: 'Koreksi dan Cleansing',
- icon: ComputerDesktopIcon,
- href: '/saidi-saifi/koreksi-dan-cleansing/',
- children: [
- { name: 'Monitoring Koreksi dan Cleansing', href: '/saidi-saifi/koreksi-dan-cleansing/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Koreksi Transaksi Individual', href: '/saidi-saifi/koreksi-dan-cleansing/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Koreksi dan Cleansing TM', href: '/saidi-saifi/koreksi-dan-cleansing/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Koreksi Kode Gangguan dan ANEV', href: '/saidi-saifi/koreksi-dan-cleansing/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Laporan Koreksi dan Cleansing', href: '/saidi-saifi/koreksi-dan-cleansing/', icon: ComputerDesktopIcon, children: [], },
- { name: 'Delegasi Koreksi dan Cleansing', href: '/saidi-saifi/koreksi-dan-cleansing/', icon: ComputerDesktopIcon, children: [], },
+ {
+ name: 'Rekapitulasi Keluhan All',
+ href: '/keluhan/2/1',
+ icon: SmileySad,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Keluhan Per Fungsi Bidang',
+ href: '/keluhan/2/2',
+ icon: SmileySad,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Keluhan Per Jenis Keluhan',
+ href: '/keluhan/2/3',
+ icon: SmileySad,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Keluhan Per Tanggal',
+ href: '/keluhan/2/4',
+ icon: SmileySad,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Keluhan Per Unit',
+ href: '/keluhan/2/5',
+ icon: SmileySad,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Keluhan Berdasarkan Media',
+ href: '/keluhan/2/6',
+ icon: SmileySad,
+ children: [],
+ },
],
},
],
},
{
- name: 'Utility',
- icon: BoltIcon,
- href: '/utility',
+ name: 'Monalisa',
+ href: '/monalisa',
+ icon: Monitor,
children: [
- { name: 'Piket Obank', href: '/utility/piket-obank', icon: BoltIcon, children: [], },
+ {
+ name: 'Gangguan',
+ icon: Monitor,
+ href: '/monalisa/1',
+ children: [
+ {
+ name: 'Rekapitulasi',
+ href: '/monalisa/1/1',
+ icon: Monitor,
+ children: [
+ {
+ name: 'Jumlah Kali Gangguan',
+ href: '/monalisa/1/1/1',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Recovery Time (RCT) Gangguan',
+ href: '/monalisa/1/1/2',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Response Time (RPT) Gangguan',
+ href: '/monalisa/1/1/3',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Per Jenis Gangguan',
+ href: '/monalisa/1/1/4',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Lapor Ulang Gangguan',
+ href: '/monalisa/1/1/5',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi ENS Gangguan',
+ href: '/monalisa/1/1/6',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Belum Selesai',
+ href: '/monalisa/1/1/7',
+ icon: Monitor,
+ children: [],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ name: 'Keluhan',
+ icon: Monitor,
+ href: '/monalisa/2',
+ children: [
+ {
+ name: 'Rekapitulasi',
+ href: '/monalisa/2/1',
+ icon: Monitor,
+ children: [
+ {
+ name: 'Jumlah Kali Keluhan',
+ href: '/monalisa/2/1/1',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Recovery Time (RCT) Keluhan',
+ href: '/monalisa/2/1/2',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Response Time (RPT) Keluhan',
+ href: '/monalisa/2/1/3',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Gangguan Per Jenis Keluhan',
+ href: '/monalisa/2/1/4',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Lapor Ulang Keluhan',
+ href: '/monalisa/2/1/5',
+ icon: Monitor,
+ children: [],
+ },
+ {
+ name: 'Rekapitulasi Keluhan Belum Selesai',
+ href: '/monalisa/2/1/6',
+ icon: Monitor,
+ children: [],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ name: 'Laporan KPI',
+ icon: Monitor,
+ href: '/monalisa/3',
+ children: [
+ {
+ name: 'Bulanan',
+ icon: Monitor,
+ href: '/monalisa/3/1',
+ children: [
+ {
+ name: 'Penurunan Jumlah Komplain',
+ icon: Monitor,
+ href: '/monalisa/3/1/1',
+ children: [],
+ },
+ {
+ name: 'Aging Complaint',
+ icon: Monitor,
+ href: '/monalisa/3/1/2',
+ children: [],
+ },
+ {
+ name: 'Energy Not Sales (ENS)',
+ icon: Monitor,
+ href: '/monalisa/3/1/3',
+ children: [],
+ },
+ {
+ name: 'Kepatuhan dan Akurasi Dalam Pelaporan',
+ icon: Monitor,
+ href: '/monalisa/3/1/4',
+ children: [],
+ },
+ ],
+ },
+ {
+ name: 'Kumulatif',
+ icon: Monitor,
+ href: '/monalisa/3/2',
+ children: [
+ {
+ name: 'Penurunan Jumlah Komplain',
+ icon: Monitor,
+ href: '/monalisa/3/2/1',
+ children: [],
+ },
+ {
+ name: 'Aging Complaint',
+ icon: Monitor,
+ href: '/monalisa/3/2/2',
+ children: [],
+ },
+ {
+ name: 'Energy Not Sales (ENS)',
+ icon: Monitor,
+ href: '/monalisa/3/2/3',
+ children: [],
+ },
+ {
+ name: 'Kepatuhan dan Akurasi Dalam Pelaporan',
+ icon: Monitor,
+ href: '/monalisa/3/2/4',
+ children: [],
+ }
+ ],
+ }
+ ],
+ },
+ ],
+ },
+ {
+ name: 'Check In Dan Check Out',
+ href: '/check-in-out',
+ icon: Swap,
+ children: [
+ {
+ name: 'Laporan Check In /Check Out (CICO)',
+ href: '/check-in-out/1',
+ icon: Swap,
+ children: [
+ {
+ name: 'Laporan Check In /Check Out (CICO)',
+ href: '/check-in-out/1/1',
+ icon: Swap,
+ children: [],
+ },
+ ],
+ },
],
},
]
+ const sidebarOpen = ref(false)
+ const toggleSidebar = () => (sidebarOpen.value = !sidebarOpen.value)
-
- // expose everything
- return { navigation }
+ return {
+ navigation,
+ toggleSidebar,
+ sidebarOpen
+ }
})
\ No newline at end of file
diff --git a/src/utils/icons.ts b/src/utils/icons.ts
new file mode 100644
index 0000000..0cfcad3
--- /dev/null
+++ b/src/utils/icons.ts
@@ -0,0 +1,6 @@
+export { default as LightningSlash } from '@/assets/icons/lightning-slash.svg'
+export { default as SmileySad } from '@/assets/icons/smiley-sad.svg'
+export { default as Monitor } from '@/assets/icons/monitor.svg'
+export { default as Swap } from '@/assets/icons/swap.svg'
+export { default as DotOutline } from '@/assets/icons/dot-outline.svg'
+export { default as IconApp } from '@/assets/images/pln-with-text.png'
\ No newline at end of file
diff --git a/src/utils/interfaces.ts b/src/utils/interfaces.ts
new file mode 100644
index 0000000..d169c44
--- /dev/null
+++ b/src/utils/interfaces.ts
@@ -0,0 +1,8 @@
+interface MenuItemModel {
+ name: string;
+ href: string;
+ icon: any;
+ children: MenuItemModel[];
+}
+
+export type { MenuItemModel }
\ No newline at end of file
diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue
index 7a4b5d7..a096874 100644
--- a/src/views/HomeView.vue
+++ b/src/views/HomeView.vue
@@ -1,6 +1,6 @@
-