From 0fb6b50272f9db35074599aee78326e3e73204e6 Mon Sep 17 00:00:00 2001 From: kur0nek-o Date: Thu, 25 Apr 2024 10:24:42 +0700 Subject: [PATCH] feat: create login filterPresets --- src/components/Form/FiltersType/Type1.vue | 98 +++++++++---- src/components/Form/FiltersType/Type10.vue | 94 +++++++++---- src/components/Form/FiltersType/Type11.vue | 93 +++++++++---- src/components/Form/FiltersType/Type12.vue | 97 +++++++++---- src/components/Form/FiltersType/Type13.vue | 94 +++++++++---- src/components/Form/FiltersType/Type14.vue | 96 +++++++++---- src/components/Form/FiltersType/Type16.vue | 93 +++++++++---- .../Form/FiltersType/Type17Gangguan.vue | 94 +++++++++---- .../Form/FiltersType/Type17Keluhan.vue | 95 +++++++++---- src/components/Form/FiltersType/Type18.vue | 86 ++++++++---- src/components/Form/FiltersType/Type2.vue | 129 ++++++++++++------ src/components/Form/FiltersType/Type3.vue | 93 +++++++++---- src/components/Form/FiltersType/Type4.vue | 96 +++++++++---- src/components/Form/FiltersType/Type5.vue | 92 +++++++++---- src/components/Form/FiltersType/Type6.vue | 91 ++++++++---- src/components/Form/FiltersType/Type7.vue | 90 ++++++++---- src/components/Form/FiltersType/Type8.vue | 64 +++++++-- src/components/Form/FiltersType/Type9.vue | 90 ++++++++---- src/components/Form/InputReadonly.vue | 19 +++ .../Pages/Gangguan/Daftar/DGangguan_DKPL.vue | 6 +- src/stores/auth.ts | 27 +++- 21 files changed, 1250 insertions(+), 487 deletions(-) create mode 100644 src/components/Form/InputReadonly.vue diff --git a/src/components/Form/FiltersType/Type1.vue b/src/components/Form/FiltersType/Type1.vue index a8efbe4..c0401d9 100755 --- a/src/components/Form/FiltersType/Type1.vue +++ b/src/components/Form/FiltersType/Type1.vue @@ -1,6 +1,7 @@ @@ -104,47 +127,62 @@ onMounted(() => {
- + +
- - +
+ +
- - +
+ +
diff --git a/src/components/Form/FiltersType/Type10.vue b/src/components/Form/FiltersType/Type10.vue index 7576644..2b1d7fd 100755 --- a/src/components/Form/FiltersType/Type10.vue +++ b/src/components/Form/FiltersType/Type10.vue @@ -1,4 +1,5 @@ @@ -81,43 +108,58 @@ onMounted(() => {
- + +
- - +
+ +
- - +
+ +
diff --git a/src/components/Form/FiltersType/Type11.vue b/src/components/Form/FiltersType/Type11.vue index 45c70b7..980e457 100755 --- a/src/components/Form/FiltersType/Type11.vue +++ b/src/components/Form/FiltersType/Type11.vue @@ -6,6 +6,7 @@ interface SlaOption { max: string } +import InputReadonly from '@/components/Form/InputReadonly.vue' import { onMounted, ref, watch } from 'vue' import { selectedUid, @@ -19,6 +20,7 @@ import { import Select from '@/components/Select.vue' import DatePicker from '@/components/DatePicker.vue' import InputWithSuffix from '@/components/Form/InputWithSuffix.vue' +import { readDataJson } from '@/utils/storage' const props = defineProps({ slaOptions: { @@ -147,9 +149,33 @@ const changeDuration = (value: any) => { } } +const presetUID: any = ref(null) +const presetUP3: any = ref(null) +const presetULP: any = ref(null) +const filterPresets: any = ref() + +const keys: any = ['uid', 'up3', 'ulp'] +const presetValues: any = [presetUID, presetUP3, presetULP] +const setFunctions: any = [setUid, setUp3, setUlp] + onMounted(() => { - emit('update:filters', data.value) + filterPresets.value = readDataJson('filterPresets') || null + + if (filterPresets.value) { + keys.forEach((key: any, index: any) => { + if (filterPresets.value[key]) { + presetValues[index].value = filterPresets.value[key] + + if (key !== 'uid') { + setFunctions[index](filterPresets.value[key]) + } + } + }) + } + fetchUid() + + emit('update:filters', data.value) }) @@ -158,43 +184,58 @@ onMounted(() => {
- + +
- - +
+ +
- - +
+ +
diff --git a/src/components/Form/FiltersType/Type12.vue b/src/components/Form/FiltersType/Type12.vue index 10dc480..37db3d8 100755 --- a/src/components/Form/FiltersType/Type12.vue +++ b/src/components/Form/FiltersType/Type12.vue @@ -1,4 +1,5 @@ @@ -113,41 +141,58 @@ onMounted(() => {
- + +
- +
+ +
+ +
- +
+ +
+ +
diff --git a/src/components/Form/FiltersType/Type13.vue b/src/components/Form/FiltersType/Type13.vue index f277a42..b675bbc 100755 --- a/src/components/Form/FiltersType/Type13.vue +++ b/src/components/Form/FiltersType/Type13.vue @@ -1,4 +1,5 @@ @@ -83,42 +109,58 @@ onMounted(() => {
- + +
- - +
+ +
- +
+ +
+ +
diff --git a/src/components/Form/FiltersType/Type14.vue b/src/components/Form/FiltersType/Type14.vue index b2d5eb8..6a45f0d 100755 --- a/src/components/Form/FiltersType/Type14.vue +++ b/src/components/Form/FiltersType/Type14.vue @@ -1,4 +1,5 @@ @@ -75,39 +99,59 @@ onMounted(() => {
- + +
- + +
+ +
+ +
- + +
+ +
+ +
diff --git a/src/components/Form/FiltersType/Type16.vue b/src/components/Form/FiltersType/Type16.vue index 32eb13a..dadbd6a 100755 --- a/src/components/Form/FiltersType/Type16.vue +++ b/src/components/Form/FiltersType/Type16.vue @@ -1,4 +1,5 @@ @@ -94,43 +118,58 @@ onMounted(() => {
- + +
- - +
+ +
- - +
+ +
diff --git a/src/components/Form/FiltersType/Type17Gangguan.vue b/src/components/Form/FiltersType/Type17Gangguan.vue index b2638bb..0929331 100755 --- a/src/components/Form/FiltersType/Type17Gangguan.vue +++ b/src/components/Form/FiltersType/Type17Gangguan.vue @@ -1,4 +1,5 @@ @@ -167,33 +191,51 @@ onMounted(() => {
- + +
- - +
+ +
+ + + +
+ +
+ +
diff --git a/src/components/Form/FiltersType/Type17Keluhan.vue b/src/components/Form/FiltersType/Type17Keluhan.vue index 0ce8063..9612260 100755 --- a/src/components/Form/FiltersType/Type17Keluhan.vue +++ b/src/components/Form/FiltersType/Type17Keluhan.vue @@ -1,4 +1,5 @@ @@ -172,33 +199,51 @@ onMounted(() => {
- + +
- - +
+ +
+ + + +
+ +
+ +
diff --git a/src/components/Form/FiltersType/Type18.vue b/src/components/Form/FiltersType/Type18.vue index bcfcf26..ed3bc16 100755 --- a/src/components/Form/FiltersType/Type18.vue +++ b/src/components/Form/FiltersType/Type18.vue @@ -1,4 +1,5 @@ @@ -97,46 +120,57 @@ onMounted(() => { +
+ + +
+ + + +
- - +
+ +
- - +
+ +
- - +
+ +
diff --git a/src/components/Form/FiltersType/Type3.vue b/src/components/Form/FiltersType/Type3.vue index 6921aba..e157781 100755 --- a/src/components/Form/FiltersType/Type3.vue +++ b/src/components/Form/FiltersType/Type3.vue @@ -1,6 +1,7 @@ @@ -81,41 +107,58 @@ onMounted(() => {
- + +
- +
+ +
+ +
- +
+ +
+ +
diff --git a/src/components/Form/FiltersType/Type4.vue b/src/components/Form/FiltersType/Type4.vue index fed4670..ef68e9a 100755 --- a/src/components/Form/FiltersType/Type4.vue +++ b/src/components/Form/FiltersType/Type4.vue @@ -1,5 +1,6 @@ @@ -91,41 +118,58 @@ onMounted(() => {
- + +
- +
+ +
+ +
- +
+ +
+ +
diff --git a/src/components/Form/FiltersType/Type5.vue b/src/components/Form/FiltersType/Type5.vue index 9ec8559..486ae0c 100755 --- a/src/components/Form/FiltersType/Type5.vue +++ b/src/components/Form/FiltersType/Type5.vue @@ -1,4 +1,5 @@ @@ -78,41 +101,58 @@ onMounted(() => {
- + +
- +
+ +
+ +
- +
+ +
+ +
diff --git a/src/components/Form/FiltersType/Type6.vue b/src/components/Form/FiltersType/Type6.vue index 703cf82..6459f96 100755 --- a/src/components/Form/FiltersType/Type6.vue +++ b/src/components/Form/FiltersType/Type6.vue @@ -1,4 +1,5 @@ @@ -82,42 +105,58 @@ onMounted(() => {
- + +
- +
+ +
+ +
- - +
+ +
diff --git a/src/components/Form/FiltersType/Type7.vue b/src/components/Form/FiltersType/Type7.vue index fb03bd9..9983338 100755 --- a/src/components/Form/FiltersType/Type7.vue +++ b/src/components/Form/FiltersType/Type7.vue @@ -6,6 +6,7 @@ interface SlaOption { max: string } +import InputReadonly from '@/components/Form/InputReadonly.vue' import Select from '@/components/Select.vue' import DatePicker from '@/components/DatePicker.vue' import InputWithSuffix from '../InputWithSuffix.vue' @@ -19,6 +20,7 @@ import { itemsPosko } from './reference' import { onMounted, ref, watch } from 'vue' +import { readDataJson } from '@/utils/storage' const props = defineProps({ slaOptions: { @@ -143,8 +145,29 @@ const changeDuration = (value: any) => { } } +const presetUID: any = ref(null) +const presetUP3: any = ref(null) +const presetPosko: any = ref(null) +const filterPresets: any = ref() + +const keys: any = ['uid', 'up3', 'posko'] +const presetValues: any = [presetUID, presetUP3, presetPosko] +const setFunctions: any = [setUid, setUp3, setPosko] + onMounted(() => { - fetchUid() + filterPresets.value = readDataJson('filterPresets') || null + + if (filterPresets.value) { + keys.forEach((key: any, index: any) => { + if (filterPresets.value[key]) { + presetValues[index].value = filterPresets.value[key] + setFunctions[index](filterPresets.value[key]) + } + }) + } else { + fetchUid() + } + emit('update:filters', data.value) }) @@ -154,43 +177,58 @@ onMounted(() => {
- + +
- - +
+ +
- - +
+ +
diff --git a/src/components/Form/FiltersType/Type8.vue b/src/components/Form/FiltersType/Type8.vue index 8e512a0..023e3fc 100755 --- a/src/components/Form/FiltersType/Type8.vue +++ b/src/components/Form/FiltersType/Type8.vue @@ -1,9 +1,11 @@ @@ -54,25 +79,36 @@ onMounted(() => {
- + +
- - +
+ +
diff --git a/src/components/Form/FiltersType/Type9.vue b/src/components/Form/FiltersType/Type9.vue index 845b58b..12a32a4 100755 --- a/src/components/Form/FiltersType/Type9.vue +++ b/src/components/Form/FiltersType/Type9.vue @@ -1,4 +1,5 @@ @@ -82,43 +105,58 @@ onMounted(() => {
- + +
- - +
+ +
- - +
+ +
diff --git a/src/components/Form/InputReadonly.vue b/src/components/Form/InputReadonly.vue new file mode 100644 index 0000000..8ee4774 --- /dev/null +++ b/src/components/Form/InputReadonly.vue @@ -0,0 +1,19 @@ + + + diff --git a/src/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue b/src/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue index 0236002..81d0fce 100755 --- a/src/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue +++ b/src/components/Pages/Gangguan/Daftar/DGangguan_DKPL.vue @@ -363,7 +363,6 @@ import InputText from '@/components/InputText.vue' import { queries, requestGraphQl } from '@/utils/api/api.graphql' import { exportToPDF, exportToXLSX, exportToDOCX } from '@/report/Gangguan/Daftar/DGangguan_DKPL' import BufferDialog from '@/components/Dialogs/BufferDialog.vue' -import { readDataJson } from '@/utils/storage' const data = ref([]) const dataSelected = ref() @@ -391,6 +390,9 @@ const filterData = async (params: any) => { idUid: uid ? uid.id : 0, idUp3: up3 ? up3.id : 0 } + + console.log(query) + loading.value = true await requestGraphQl(queries.gangguan.daftar.dataDialihkanKePoskoLain, query) .then((result) => { @@ -435,8 +437,6 @@ const reportMeta = ref({ }) onMounted(() => { - // console.log(readDataJson('filterPresets')) - if (import.meta.env.DEV) { data.value = [ { diff --git a/src/stores/auth.ts b/src/stores/auth.ts index 99fe5b1..1f4b5c6 100755 --- a/src/stores/auth.ts +++ b/src/stores/auth.ts @@ -12,12 +12,7 @@ export const useAuthStore = defineStore('auth', () => { const password = ref('') const isLoading = ref(false) const isLoggedIn = computed(() => token.value !== '') - const filterPresets = { - uid: { - id: 2, - name: 'DISTRIBUSI JAKARTA RAYA' - } - } + const filterPresets: any = ref({}) // define your actions const login = () => { @@ -28,13 +23,31 @@ export const useAuthStore = defineStore('auth', () => { type: 'warning' }) } else { + // filterPresets.value = { + // uid: { + // id: 2, + // name: 'DISTRIBUSI JAKARTA RAYA' + // }, + // up3: { + // id: 4, + // name: 'UP3 MENTENG' + // }, + // posko: { + // id: 541101, + // name: 'POSKO MENTENG' + // } + // } + isLoading.value = true setTimeout(() => { isLoading.value = false if (username.value == 'demo' && password.value == 'demo') { // store token in localStorage writeData('token', 'secret-token') - writeDataJson('filterPresets', filterPresets) + + if (Object.keys(filterPresets.value).length > 0) { + writeDataJson('filterPresets', filterPresets.value) + } dispatchNotification({ title: 'Berhasil',