Add Filters and Type components to Table_45.vue, Table_21.vue, Table_25.vue, Table_26.vue, Table_27.vue, Table_28.vue, Table_30.vue, Table_33.vue, Table_34.vue, Table_35.vue, Table_22.vue, Table_23.vue, Table_24.vue, Table_29.vue, and Table_31.vue

This commit is contained in:
probdg
2024-02-09 20:41:06 +07:00
parent 704cf74720
commit 2e4eb3b6b2
50 changed files with 278 additions and 135 deletions

View File

@ -1,7 +1,7 @@
<!-- <script setup lang="ts">
<script setup lang="ts">
import Select from '@/components/Select.vue'
import { selectedUid, selectedUp3Ulp, fetchUid, itemsUid, itemsUp3, itemsUlp,itemsRegional ,months, years} from './reference';
import { ref } from 'vue';
import { onMounted, ref } from 'vue';
const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah';
const up3Placholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
@ -10,29 +10,45 @@ const uppp = ref({ id: 0, name: up3Placholder });
const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder });
const regional = ref({ id: 0, name: regionalPlaceholder });
const emit = defineEmits(['update:filters'])
const data = ref({
regional: regional.value,
uid: uid.value,
up3: uppp.value,
posko: ulp.value,
periode: ''
})
const setRegional = (value: any) => {
regional.value = value;
selectedUid(value);
uid.value = { id: 0, name: uidPlaceholder };
data.value.regional = value;
};
const setUid = (value: any) => {
uid.value = value;
selectedUid(value);
uppp.value = { id: 0, name: up3Placholder };
data.value.uid = value;
};
const setUp3 = (value: any) => {
uppp.value = value;
selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder };
data.value.up3 = value;
};
const setUlp = (value: any) => {
ulp.value = value;
selectedUp3Ulp(value);
data.value.posko = value;
};
onMounted(() => {
emit('update:filters', data.value)
fetchUid()
})
</script>
<template>
@ -68,6 +84,5 @@ const setUlp = (value: any) => {
<Select :data="years" placeholder="Pilih Tahun" />
</div>
</div>
</template> -->
</template>
<template></template>

View File

@ -1,31 +1,39 @@
<!-- <script setup lang="ts">
<script setup lang="ts">
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';
fetchData();
const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah';
const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
const uppp = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder });
const emit = defineEmits(['update:filters'])
const data = ref({
uid: uid.value,
up3: uppp.value,
posko: ulp.value,
periode: ''
})
const setUid = (value: any) => {
uid.value = value;
selectedUid(value);
uppp.value = { id: 0, name: up3Placeholder };
data.value.uid = value;
};
const setUp3 = (value: any) => {
uppp.value = value;
selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder };
data.value.up3 = value;
};
const setUlp = (value: any) => {
ulp.value = value;
selectedUlp(value);
data.value.posko = value;
};
</script>
@ -56,5 +64,4 @@ const setUlp = (value: any) => {
}
" />
</div>
</template> -->
<template></template>
</template>

View File

@ -1,31 +1,51 @@
<!-- <script setup lang="ts">
import InputNumber from '@/components/Form/InputNumber.vue'
import Select from '@/components/Select.vue'
import DatePicker from '@/components/DatePicker.vue'
import { selectedUid, selectedUp3Posko, selectedPosko ,fetchUid, itemsUid,itemsUp3, itemsPosko} from './reference';
<script setup lang="ts">
import InputNumber from '@/components/Form/InputNumber.vue'
import Select from '@/components/Select.vue'
import DatePicker from '@/components/DatePicker.vue'
import { selectedUid, selectedUp3Posko, selectedPosko, fetchUid, itemsUid, itemsUp3, itemsPosko } from './reference';
import { useTotalReport } from '@/stores/totalReport';
fetchData();
const changeMinReport = (value: any) => {
useTotalReport().setDataMin(value)
}
const changeMaxReport = (value: any) => {
useTotalReport().setDataMax(value)
}
import { onMounted, ref } from 'vue';
const emit = defineEmits(['update:filters'])
const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah';
const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
const uppp = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder });
const data = ref({
uid: uid.value,
up3: uppp.value,
posko: ulp.value,
periode: '',
minReport: useTotalReport().getDataMin() ? useTotalReport().getDataMin() : 1,
maxReport: useTotalReport().getDataMax()? useTotalReport().getDataMax() : 1
})
///Can di ganti masih ka store
const changeMinReport = (value: any) => {
useTotalReport().setDataMin(value)
}
const changeMaxReport = (value: any) => {
useTotalReport().setDataMax(value)
}
onMounted(() => {
emit('update:filters', data.value)
fetchUid()
})
</script>
<template>
<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 Induk Distribusi/Wilayah:</label>
<Select @update:selected="selectedUid($event)" :data="itemsUid" placeholder="Semua Unit Induk Distribusi/Wilayah"/>
<Select @update:selected="selectedUid($event)" :data="itemsUid" placeholder="Semua Unit Induk Distribusi/Wilayah" />
</div>
<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 Pelaksanaan Pelayanan Pelanggan:</label
>
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Unit Pelaksanaan Pelayanan Pelanggan:</label>
<Select @update:selected="selectedUp3Posko($event)" :data="itemsUp3" placeholder="Semua Unit Pelaksanaan Pelayanan Pelanggan" />
<Select @update:selected="selectedUp3Posko($event)" :data="itemsUp3"
placeholder="Semua Unit Pelaksanaan Pelayanan Pelanggan" />
</div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
@ -33,13 +53,13 @@ import { useTotalReport } from '@/stores/totalReport';
<Select @update:selected="selectedPosko($event)" :data="itemsPosko" placeholder="Semua Posko" />
</div>
<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>
<DatePicker @update:date-value="(value) => {
data.periode = value
}
<DatePicker @update:date-value="(value) => {
data.periode = value
}
" />
</div>
@ -49,9 +69,8 @@ import { useTotalReport } from '@/stores/totalReport';
<div class="grid grid-flow-col auto-cols-auto gap-x-1.5">
<InputNumber :value="1" @change="changeMinReport($event.target.value)" />
<small class="flex items-center">s/d</small>
<InputNumber :value="1" @change="changeMaxReport($event.target.value)"/>
<InputNumber :value="1" @change="changeMaxReport($event.target.value)" />
</div>
</div>
</template> -->
</template>
<template></template>

View File

@ -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<Item[]>([]);
const years = ref<Item[]>([]);
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<Item[]>([]);
const itemsUp3 = ref<Item[]>([]);
const itemsPosko = ref<Item[]>([]);
const itemsUlp = ref<Item[]>([]);
const itemsUlp = ref<Item[]>([]);
const itemsRegional = ref<Item[]>([]);
const itemsMedia = ref<Item[]>([]);
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 };