From 9cd11db6e630cab70eb7ef839ec69d382e032081 Mon Sep 17 00:00:00 2001 From: probdg Date: Fri, 9 Feb 2024 18:37:00 +0700 Subject: [PATCH 01/17] Fix select options in Filters.vue component --- src/components/Form/Filters.vue | 1 + src/components/Form/FiltersType/Type1.vue | 48 +++++--------------- src/components/Form/FiltersType/reference.ts | 12 ++--- 3 files changed, 17 insertions(+), 44 deletions(-) diff --git a/src/components/Form/Filters.vue b/src/components/Form/Filters.vue index 55619b2..8adf19a 100644 --- a/src/components/Form/Filters.vue +++ b/src/components/Form/Filters.vue @@ -1,3 +1,4 @@ + diff --git a/src/components/Form/FiltersType/reference.ts b/src/components/Form/FiltersType/reference.ts index edc87e8..8636f13 100644 --- a/src/components/Form/FiltersType/reference.ts +++ b/src/components/Form/FiltersType/reference.ts @@ -30,18 +30,17 @@ const years = ref([]); for (let i = 0; i < 5; i++) { years.value.push({ id: year - i, name: year - i }) } -const timeout = ref() -const items = ref([]); +const itemsUid = ref([]); const itemsUp3 = ref([]); const itemsPosko = ref([]); const itemsUlp = ref([]); const itemsRegional = ref([]); const itemsMedia = ref([]); // Fetch data from the API using Axios -const fetchData = async () => { +const fetchUid = async () => { try { const res = await getUid() - items.value = res.data.map((item: any) => ( + itemsUid.value = res.data.map((item: any) => ( { id: item.id, name: item.nama, @@ -82,8 +81,6 @@ const fetchDataUlp = async (up3: number) => { } } const fetchDataPosko = async (up3: number) => { - clearTimeout(timeout.value) - timeout.value = setTimeout(async () => { try { const res = await getPosko(up3) itemsPosko.value = res.data.map((item: any) => ( @@ -95,7 +92,6 @@ const fetchDataPosko = async (up3: number) => { } catch (error) { console.error('Error fetching data:', error); } - }, 300); }; const fetchMedia = () => { itemsMedia.value = [ @@ -152,4 +148,4 @@ const selectedUlp = (value: any) => { -export { selectedUid, selectedUp3Posko, selectedUp3Ulp, selectedPosko, selectedUlp, fetchData,fetchMedia,fetchStatus, items, itemsUp3, itemsPosko, itemsRegional, itemsMedia, itemsUlp, months, years }; +export { selectedUid, selectedUp3Posko, selectedUp3Ulp, selectedPosko, selectedUlp, fetchUid,fetchMedia,fetchStatus, itemsUid, itemsUp3, itemsPosko, itemsRegional, itemsMedia, itemsUlp, months, years }; From 6296078f2bb10d3ac302018c44133fc28c3eceb4 Mon Sep 17 00:00:00 2001 From: probdg Date: Fri, 9 Feb 2024 19:33:24 +0700 Subject: [PATCH 02/17] Refactor data fetching in Type1.vue component --- src/components/Form/FiltersType/Type1.vue | 1 - src/components/Form/FiltersType/reference.ts | 21 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/components/Form/FiltersType/Type1.vue b/src/components/Form/FiltersType/Type1.vue index 0e75dc9..8c0adbd 100644 --- a/src/components/Form/FiltersType/Type1.vue +++ b/src/components/Form/FiltersType/Type1.vue @@ -51,7 +51,6 @@ const setPosko = (value: any) => { } onMounted(() => { - fetchUid(); emit('update:filters', data.value) fetchUid() }) diff --git a/src/components/Form/FiltersType/reference.ts b/src/components/Form/FiltersType/reference.ts index c4da6bb..c5f959f 100644 --- a/src/components/Form/FiltersType/reference.ts +++ b/src/components/Form/FiltersType/reference.ts @@ -30,17 +30,17 @@ for (let i = 0; i < 5; i++) { years.value.push({id:year-i, name: year-i}) } const timeout = ref() -const items = ref([]); +const itemsUid = ref([]); const itemsUp3 = ref([]); const itemsPosko = ref([]); const itemsUlp = ref([]); const itemsRegional = ref([]); const itemsMedia = ref([]); // Fetch data from the API using Axios -const fetchData = async () => { +const fetchUid = async () => { try { const res = await getUid() - items.value = res.data.map((item: any) => ( + itemsUid.value = res.data.map((item: any) => ( { id: item.id, name: item.nama, @@ -50,6 +50,19 @@ const fetchData = async () => { console.error('Error fetching data:', error); } }; +const fetchMedia = async () => { + try { + const res = await getUid() + itemsMedia.value = res.data.map((item: any) => ( + { + id: item.id, + name: item.nama, + } + )); + } catch (error) { + console.error('Error fetching data:', error); + } +} const fetchDataUp3 = async (uid: number) => { try { @@ -112,4 +125,4 @@ const selectedUlp = (value: any) => { useUlpStore().setData(value.id) } -export { selectedUid, selectedUp3Posko ,selectedUp3Ulp, selectedPosko,selectedUlp, fetchData, items, itemsUp3, itemsPosko,itemsRegional,itemsMedia,itemsUlp ,months ,years}; +export { selectedUid, selectedUp3Posko ,selectedUp3Ulp, selectedPosko,selectedUlp,fetchMedia, fetchUid, itemsUid, itemsUp3, itemsPosko,itemsRegional,itemsMedia,itemsUlp ,months ,years}; From 704cf747202d9fe88acba474541060f19369228d Mon Sep 17 00:00:00 2001 From: probdg Date: Fri, 9 Feb 2024 19:54:20 +0700 Subject: [PATCH 03/17] Refactor filterData function in Table_1.vue --- src/components/Pages/Gangguan/Table_1.vue | 69 +++++++++++------------ 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/src/components/Pages/Gangguan/Table_1.vue b/src/components/Pages/Gangguan/Table_1.vue index 1e0c0df..42788a6 100644 --- a/src/components/Pages/Gangguan/Table_1.vue +++ b/src/components/Pages/Gangguan/Table_1.vue @@ -1,5 +1,5 @@ - diff --git a/src/components/Form/FiltersType/Type3.vue b/src/components/Form/FiltersType/Type3.vue index 356b9fa..eb9f57c 100644 --- a/src/components/Form/FiltersType/Type3.vue +++ b/src/components/Form/FiltersType/Type3.vue @@ -1,31 +1,39 @@ - - + diff --git a/src/components/Form/FiltersType/Type6.vue b/src/components/Form/FiltersType/Type6.vue index 1aaa92b..ccd6119 100644 --- a/src/components/Form/FiltersType/Type6.vue +++ b/src/components/Form/FiltersType/Type6.vue @@ -1,31 +1,51 @@ - + - diff --git a/src/components/Form/FiltersType/reference.ts b/src/components/Form/FiltersType/reference.ts index c5f959f..1635ada 100644 --- a/src/components/Form/FiltersType/reference.ts +++ b/src/components/Form/FiltersType/reference.ts @@ -6,54 +6,85 @@ import { useRegionStore } from '@/stores/region' import { useUlpStore } from '@/stores/ulp' interface Item { - id: number; + id: any; name: any; } -const months =[ - {id:1, name: 'Januari'}, - {id:2, name: 'Februari'}, - {id:3, name: 'Maret'}, - {id:4, name: 'April'}, - {id:5, name: 'Mei'}, - {id:6, name: 'Juni'}, - {id:7, name: 'Juli'}, - {id:8, name: 'Agustus'}, - {id:9, name: 'September'}, - {id:10, name: 'Oktober'}, - {id:11, name: 'November'}, - {id:12, name: 'Desember'}, +const months = [ + { id: 1, name: 'Januari' }, + { id: 2, name: 'Februari' }, + { id: 3, name: 'Maret' }, + { id: 4, name: 'April' }, + { id: 5, name: 'Mei' }, + { id: 6, name: 'Juni' }, + { id: 7, name: 'Juli' }, + { id: 8, name: 'Agustus' }, + { id: 9, name: 'September' }, + { id: 10, name: 'Oktober' }, + { id: 11, name: 'November' }, + { id: 12, name: 'Desember' }, ] // create 4 year back array const year = new Date().getFullYear(); -const years =ref([]); +const years = ref([]); for (let i = 0; i < 5; i++) { - years.value.push({id:year-i, name: year-i}) + years.value.push({ id: year - i, name: year - i }) } const timeout = ref() const itemsUid = ref([]); const itemsUp3 = ref([]); const itemsPosko = ref([]); -const itemsUlp = ref([]); +const itemsUlp = ref([]); const itemsRegional = ref([]); const itemsMedia = ref([]); +const fetchRegional = () => { + itemsRegional.value = [ + { id: "1", name: "Wilayah Sumatera" }, + { id: "2", name: "Wilayah Jawa Bali" }, + { id: "3", name: "Wilayah Kalimantan" }, + { id: "4", name: "Wilayah Sulawesi" }, + { id: "5", name: "Wilayah Nusa Tenggara" }, + { id: "6", name: "Wilayah Maluku Papua" }, + ] +} +const fetchStatus = (data : any) => { + + const status = [ + {"id": "8", "name": "Selesai"}, + {"id": "7", "name": "Nyala"}, + {"id": "6", "name": "Pengalihan"}, + {"id": "5", "name": "Dialihkan"}, + {"id": "4", "name": "Dalam Pengerjaan"}, + {"id": "3", "name": "Dalam Perjalanan"}, + {"id": "2", "name": "Penugasan Regu"}, + {"id": "1", "name": "lapor"} + ] + const filteredStatus = status.find(item => item.id == data); + const name = filteredStatus ? filteredStatus.name : null; + return name; +} +const fetchMedia = () => { + itemsMedia.value = [ + { id: "Ulasan Aplikasi PLN Mobile", name: "Ulasan Aplikasi PLN Mobile" }, + { id: "Twitter", name: "Twitter" }, + { id: "PLN Mobile", name: "PLN Mobile" }, + { id: "Media Massa", name: "Media Massa" }, + { id: "Live Chat Website", name: "Live Chat Website" }, + { id: "Live Chat PLN Mobile", name: "Live Chat PLN Mobile" }, + { id: "Instagram", name: "Instagram" }, + { id: "Facebook", name: "Facebook" }, + { id: "Email", name: "Email" }, + { id: "EMS", name: "EMS" }, + { id: "Datang ke Kantor", name: "Datang ke Kantor" }, + { id: "Call ke Kantor Unit", name: "Call ke Kantor Unit" }, + { id: "Call PLN 123", name: "Call PLN 123" }, + ] + +} // Fetch data from the API using Axios const fetchUid = async () => { - try { - const res = await getUid() - itemsUid.value = res.data.map((item: any) => ( - { - id: item.id, - name: item.nama, - } - )); - } catch (error) { - console.error('Error fetching data:', error); - } -}; -const fetchMedia = async () => { try { const res = await getUid() - itemsMedia.value = res.data.map((item: any) => ( + itemsUid.value = res.data.map((item: any) => ( { id: item.id, name: item.nama, @@ -62,7 +93,7 @@ const fetchMedia = async () => { } catch (error) { console.error('Error fetching data:', error); } -} +}; const fetchDataUp3 = async (uid: number) => { try { @@ -91,18 +122,18 @@ const fetchDataUlp = async (up3: number) => { const fetchDataPosko = async (up3: number) => { clearTimeout(timeout.value) timeout.value = setTimeout(async () => { - try { - const res = await getPosko(up3) - itemsPosko.value = res.data.map((item: any) => ( - { - id: item.id, - name: item.nama, - } - )); - } catch (error) { - console.error('Error fetching data:', error); - } -},300); + try { + const res = await getPosko(up3) + itemsPosko.value = res.data.map((item: any) => ( + { + id: item.id, + name: item.nama, + } + )); + } catch (error) { + console.error('Error fetching data:', error); + } + }, 300); }; const selectedUid = (value: any) => { useRegionStore().setData(value.id) @@ -125,4 +156,4 @@ const selectedUlp = (value: any) => { useUlpStore().setData(value.id) } -export { selectedUid, selectedUp3Posko ,selectedUp3Ulp, selectedPosko,selectedUlp,fetchMedia, fetchUid, itemsUid, itemsUp3, itemsPosko,itemsRegional,itemsMedia,itemsUlp ,months ,years}; +export { selectedUid, selectedUp3Posko, selectedUp3Ulp, selectedPosko, selectedUlp, fetchMedia,fetchStatus,fetchRegional, fetchUid, itemsUid, itemsUp3, itemsPosko, itemsRegional, itemsMedia, itemsUlp, months, years }; diff --git a/src/components/Pages/Gangguan/Table_1.vue b/src/components/Pages/Gangguan/Table_1.vue index 42788a6..232faf8 100644 --- a/src/components/Pages/Gangguan/Table_1.vue +++ b/src/components/Pages/Gangguan/Table_1.vue @@ -381,7 +381,5 @@ const onSelectionChanged = ({ selectedRowsData }: any) => { const showData = () => { showDetail.value = true } - -// filters handler const filters = ref() diff --git a/src/components/Pages/Gangguan/Table_10.vue b/src/components/Pages/Gangguan/Table_10.vue index 52dd7f9..a4d33ee 100644 --- a/src/components/Pages/Gangguan/Table_10.vue +++ b/src/components/Pages/Gangguan/Table_10.vue @@ -77,6 +77,8 @@ \ No newline at end of file diff --git a/src/components/Pages/Gangguan/Table_20.vue b/src/components/Pages/Gangguan/Table_20.vue index a5b03ed..1ee68bf 100644 --- a/src/components/Pages/Gangguan/Table_20.vue +++ b/src/components/Pages/Gangguan/Table_20.vue @@ -44,6 +44,8 @@ \ No newline at end of file diff --git a/src/components/Pages/Gangguan/Table_4.vue b/src/components/Pages/Gangguan/Table_4.vue index 0db1f34..037c461 100644 --- a/src/components/Pages/Gangguan/Table_4.vue +++ b/src/components/Pages/Gangguan/Table_4.vue @@ -49,6 +49,8 @@ diff --git a/src/components/Form/FiltersType/Type3.vue b/src/components/Form/FiltersType/Type3.vue index eb9f57c..199e63b 100644 --- a/src/components/Form/FiltersType/Type3.vue +++ b/src/components/Form/FiltersType/Type3.vue @@ -2,7 +2,7 @@ import Select from '@/components/Select.vue' import DatePicker from '@/components/DatePicker.vue' import { selectedUid, selectedUp3Ulp,selectedUlp, fetchUid, itemsUid, itemsUp3, itemsUlp } from './reference'; -import { ref } from 'vue'; +import { onMounted, ref } from 'vue'; const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah'; const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan'; const ulpPlaceholder = 'Semua Unit Layanan Pelanggan'; @@ -35,6 +35,10 @@ const setUlp = (value: any) => { selectedUlp(value); data.value.posko = value; }; +onMounted(() => { + emit('update:filters', data.value) + fetchUid() +})