diff --git a/package.json b/package.json index 338827b..9f85ad8 100755 --- a/package.json +++ b/package.json @@ -1 +1 @@ -{"name":"eis","version":"0.0.138-vm","private":true,"scripts":{"dev":"vite","host":"vite --host","tailwind":"tailwindcss -i ./src/assets/css/tailwind.css -o ./src/assets/css/style.css --watch","build":"run-p type-check build-only","preview":"vite preview --host","test:unit":"vitest","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","format":"prettier --write src/","deploy":"node deploy.js"},"dependencies":{"@apollo/client":"^3.8.10","@apollo/link-context":"^2.0.0-beta.3","@flavorly/vanilla-components":"^0.7.65","@headlessui/tailwindcss":"^0.2.0","@headlessui/vue":"^1.7.19","@heroicons/vue":"^2.0.18","@lottiefiles/lottie-player":"^2.0.4","@phosphor-icons/vue":"^2.1.6","@types/qs":"^6.9.12","@types/uuid":"^9.0.8","@types/vue-select":"^3.16.8","@vue/apollo-components":"^4.0.0","@vue/apollo-composable":"^4.0.1","@vue/apollo-option":"^4.0.0","axios":"^1.6.7","devextreme":"23.2.4","devextreme-vue":"23.2.4","docx":"^8.5.0","dotenv":"^16.3.1","encrypt-storage":"^2.12.22","exceljs":"^4.4.0","file-saver":"^2.0.5","graphql":"^16.8.1","graphql-tag":"^2.12.6","jspdf":"^2.5.1","jspdf-autotable":"^3.8.2","pinia":"^2.1.3","qs":"^6.11.2","uuid":"^9.0.1","vue":"^3.3.4","vue-html-to-paper":"^2.0.3","vue-router":"^4.2.2","vue-tailwind-datepicker":"^1.6.1","vue3-star-ratings":"^3.0.5"},"devDependencies":{"@rushstack/eslint-patch":"^1.5.1","@tailwindcss/aspect-ratio":"^0.4.2","@tailwindcss/container-queries":"^0.1.1","@tailwindcss/forms":"^0.5.7","@tailwindcss/typography":"^0.5.10","@tsconfig/node18":"^2.0.1","@types/file-saver":"^2.0.6","@types/jsdom":"^21.1.1","@types/node":"^18.16.17","@vitejs/plugin-vue":"^4.2.3","@vitejs/plugin-vue-jsx":"^3.0.1","@vue/eslint-config-prettier":"^8.0.0","@vue/eslint-config-typescript":"^12.0.0","@vue/test-utils":"^2.3.2","@vue/tsconfig":"^0.4.0","autoprefixer":"^10.4.14","eslint":"^8.39.0","eslint-plugin-vue":"^9.11.0","jsdom":"^22.1.0","npm-run-all":"^4.1.5","postcss":"^8.4.24","prettier":"^3.0.3","tailwindcss":"^3.3.2","typescript":"~5.2.2","vite":"^4.3.9","vitest":"^1.3.1","vue-tsc":"^2.0.5"}} \ No newline at end of file +{"name":"eis","version":"0.0.144-vm","private":true,"scripts":{"dev":"vite","host":"vite --host","tailwind":"tailwindcss -i ./src/assets/css/tailwind.css -o ./src/assets/css/style.css --watch","build":"run-p type-check build-only","preview":"vite preview --host","test:unit":"vitest","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore","format":"prettier --write src/","deploy":"node deploy.js"},"dependencies":{"@apollo/client":"^3.8.10","@apollo/link-context":"^2.0.0-beta.3","@flavorly/vanilla-components":"^0.7.65","@headlessui/tailwindcss":"^0.2.0","@headlessui/vue":"^1.7.19","@heroicons/vue":"^2.0.18","@lottiefiles/lottie-player":"^2.0.4","@phosphor-icons/vue":"^2.1.6","@types/qs":"^6.9.12","@types/uuid":"^9.0.8","@types/vue-select":"^3.16.8","@vue/apollo-components":"^4.0.0","@vue/apollo-composable":"^4.0.1","@vue/apollo-option":"^4.0.0","axios":"^1.6.7","devextreme":"23.2.4","devextreme-vue":"23.2.4","docx":"^8.5.0","dotenv":"^16.3.1","encrypt-storage":"^2.12.22","exceljs":"^4.4.0","file-saver":"^2.0.5","graphql":"^16.8.1","graphql-tag":"^2.12.6","jspdf":"^2.5.1","jspdf-autotable":"^3.8.2","pinia":"^2.1.3","qs":"^6.11.2","uuid":"^9.0.1","vue":"^3.3.4","vue-html-to-paper":"^2.0.3","vue-router":"^4.2.2","vue-tailwind-datepicker":"^1.6.1","vue3-star-ratings":"^3.0.5"},"devDependencies":{"@rushstack/eslint-patch":"^1.5.1","@tailwindcss/aspect-ratio":"^0.4.2","@tailwindcss/container-queries":"^0.1.1","@tailwindcss/forms":"^0.5.7","@tailwindcss/typography":"^0.5.10","@tsconfig/node18":"^2.0.1","@types/file-saver":"^2.0.6","@types/jsdom":"^21.1.1","@types/node":"^18.16.17","@vitejs/plugin-vue":"^4.2.3","@vitejs/plugin-vue-jsx":"^3.0.1","@vue/eslint-config-prettier":"^8.0.0","@vue/eslint-config-typescript":"^12.0.0","@vue/test-utils":"^2.3.2","@vue/tsconfig":"^0.4.0","autoprefixer":"^10.4.14","eslint":"^8.39.0","eslint-plugin-vue":"^9.11.0","jsdom":"^22.1.0","npm-run-all":"^4.1.5","postcss":"^8.4.24","prettier":"^3.0.3","tailwindcss":"^3.3.2","typescript":"~5.2.2","vite":"^4.3.9","vitest":"^1.3.1","vue-tsc":"^2.0.5"}} \ No newline at end of file diff --git a/public/version.json b/public/version.json index f5d6f51..1160cd8 100644 --- a/public/version.json +++ b/public/version.json @@ -1 +1 @@ -{"version":"0.0.138-vm"} \ No newline at end of file +{"version":"0.0.144-vm"} \ No newline at end of file diff --git a/src/components/Form/FiltersType/Type1.vue b/src/components/Form/FiltersType/Type1.vue index 306a726..a8efbe4 100755 --- a/src/components/Form/FiltersType/Type1.vue +++ b/src/components/Form/FiltersType/Type1.vue @@ -38,40 +38,59 @@ const props = defineProps({ } }) -const up3 = ref(props.up3) -const uid = ref(props.uid) -const posko = ref(props.posko) +const renderUp3 = ref(false) +const renderPosko = ref(false) + const emit = defineEmits(['update:filters']) const data = ref({ - uid: uid.value, - up3: up3.value, - posko: posko.value, + uid: props.uid, + up3: props.up3, + posko: props.posko, periode: props.periode }) -watch(data.value, (value) => { +watch(data, (value) => { emit('update:filters', value) }) const setUid = (value: any) => { - uid.value = value selectedUid(value) - up3.value = { id: 0, name: up3placeholder } + data.value = { + ...data.value, + uid: value, + up3: { id: 0, name: up3placeholder }, + posko: { id: 0, name: poskoPlaceholder } + } data.value.uid = value + + renderUp3.value = true + renderPosko.value = true + setTimeout(() => { + renderUp3.value = false + renderPosko.value = false + }, 100) } const setUp3 = (value: any) => { - up3.value = value selectedUp3Posko(value) - console.log(itemsPosko) - posko.value = { id: 0, name: poskoPlaceholder } - data.value.up3 = value + data.value = { + ...data.value, + up3: value, + posko: { id: 0, name: poskoPlaceholder } + } + + renderPosko.value = true + setTimeout(() => { + renderPosko.value = false + }, 100) } const setPosko = (value: any) => { - posko.value = value selectedPosko(value) - data.value.posko = value + data.value = { + ...data.value, + posko: value + } } onMounted(() => { @@ -92,6 +111,15 @@ onMounted(() => { { -import { onMounted, ref } from 'vue' +import { onMounted, ref, watch } from 'vue' import { selectedUid, selectedUp3Ulp, @@ -16,37 +16,59 @@ import InputNumber from '@/components/Form/InputNumber.vue' const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah' const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan' const ulpPlaceholder = 'Semua Unit Layanan Pelanggan' -const up3 = 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: up3.value, - ulp: ulp.value, + uid: { id: 0, name: uidPlaceholder }, + up3: { id: 0, name: up3Placeholder }, + ulp: { id: 0, name: ulpPlaceholder }, periode: '', minJmlLapor: 1, maxJmlLapor: 1 }) +watch(data, (value) => { + emit('update:filters', value) +}) + +const renderUp3 = ref(false) +const renderUlp = ref(false) const setUid = (value: any) => { - uid.value = value selectedUid(value) - up3.value = { id: 0, name: up3Placeholder } - data.value.uid = value + data.value = { + ...data.value, + uid: value, + up3: { id: 0, name: up3Placeholder }, + ulp: { id: 0, name: ulpPlaceholder } + } + + renderUp3.value = true + renderUlp.value = true + setTimeout(() => { + renderUp3.value = false + renderUlp.value = false + }, 200) } const setUp3 = (value: any) => { - up3.value = value selectedUp3Ulp(value) - ulp.value = { id: 0, name: ulpPlaceholder } - data.value.up3 = value + data.value = { + ...data.value, + up3: value, + ulp: { id: 0, name: ulpPlaceholder } + } + + renderUlp.value = true + setTimeout(() => { + renderUlp.value = false + }, 200) } const setUlp = (value: any) => { - ulp.value = value selectedUlp(value) - data.value.ulp = value + data.value = { + ...data.value, + ulp: value + } } onMounted(() => { emit('update:filters', data.value) @@ -65,13 +87,37 @@ onMounted(() => {
- + + +
@@ -84,11 +130,16 @@ onMounted(() => {
- + s/d - +
- diff --git a/src/components/Form/FiltersType/Type11.vue b/src/components/Form/FiltersType/Type11.vue index 1fc8135..45c70b7 100755 --- a/src/components/Form/FiltersType/Type11.vue +++ b/src/components/Form/FiltersType/Type11.vue @@ -6,7 +6,7 @@ interface SlaOption { max: string } -import { onMounted, ref } from 'vue' +import { onMounted, ref, watch } from 'vue' import { selectedUid, selectedUp3Ulp, @@ -52,9 +52,6 @@ const totalMax = ref('5 Menit') const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah' const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan' const ulpPlaceholder = 'Semua Unit Layanan Pelanggan' -const up3 = 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 isHidden = ref(false) @@ -64,32 +61,57 @@ const setDataMax = (value: any) => (totalMax.value = value) const getDataMax = () => totalMax.value const data = ref({ - uid: uid.value, - up3: up3.value, - ulp: ulp.value, + uid: { id: 0, name: uidPlaceholder }, + up3: { id: 0, name: up3Placeholder }, + ulp: { id: 0, name: ulpPlaceholder }, periode: '', minTime: getDataMin().split(' ')[0], maxTime: getDataMax().split(' ')[0] }) +watch(data, (value) => { + emit('update:filters', value) +}) + +const renderUp3 = ref(false) +const renderUlp = ref(false) const setUid = (value: any) => { - uid.value = value selectedUid(value) - up3.value = { id: 0, name: up3Placeholder } - data.value.uid = value + data.value = { + ...data.value, + uid: value, + up3: { id: 0, name: up3Placeholder }, + ulp: { id: 0, name: ulpPlaceholder } + } + + renderUp3.value = true + renderUlp.value = true + setTimeout(() => { + renderUp3.value = false + renderUlp.value = false + }, 200) } const setUp3 = (value: any) => { - up3.value = value selectedUp3Ulp(value) - ulp.value = { id: 0, name: ulpPlaceholder } - data.value.up3 = value + data.value = { + ...data.value, + up3: value, + ulp: { id: 0, name: ulpPlaceholder } + } + + renderUlp.value = true + setTimeout(() => { + renderUlp.value = false + }, 200) } const setUlp = (value: any) => { - ulp.value = value selectedUlp(value) - data.value.ulp = value + data.value = { + ...data.value, + ulp: value + } } const setMin = (value: any) => { @@ -143,9 +165,16 @@ onMounted(() => { @@ -154,10 +183,17 @@ onMounted(() => { diff --git a/src/components/Form/FiltersType/Type12.vue b/src/components/Form/FiltersType/Type12.vue index fc052e2..10dc480 100755 --- a/src/components/Form/FiltersType/Type12.vue +++ b/src/components/Form/FiltersType/Type12.vue @@ -1,43 +1,74 @@ - diff --git a/src/components/Form/FiltersType/Type16.vue b/src/components/Form/FiltersType/Type16.vue index 2f0f4e8..32eb13a 100755 --- a/src/components/Form/FiltersType/Type16.vue +++ b/src/components/Form/FiltersType/Type16.vue @@ -1,6 +1,6 @@ + + diff --git a/src/components/Form/FiltersType/Type17.vue b/src/components/Form/FiltersType/Type17Keluhan.vue similarity index 51% rename from src/components/Form/FiltersType/Type17.vue rename to src/components/Form/FiltersType/Type17Keluhan.vue index 9a8f212..406b1e8 100755 --- a/src/components/Form/FiltersType/Type17.vue +++ b/src/components/Form/FiltersType/Type17Keluhan.vue @@ -11,113 +11,148 @@ import { itemsUp3, itemsUlp } from './reference' -import { onMounted, ref, watch } from 'vue' +import { onMounted, ref, watch, type PropType } from 'vue' const uidPlaceholder = 'Pilih Unit' const up3Placeholder = 'Pilih Area' const ulpPlaceholder = 'Pilih Rayon' const statusPlaceholder = 'Pilih Status' const slaPlaceholder = 'Pilih Durasi SLA' -const up3 = ref({ id: 0, name: up3Placeholder }) -const uid = ref({ id: 0, name: uidPlaceholder }) -const ulp = ref({ id: 0, name: ulpPlaceholder }) - const keyword = ref('') -const reportType = [ - { id: 1, title: 'No Lapor' }, - { id: 2, title: 'Nama Pelapor' }, - { id: 3, title: 'Permasalahan' } -] -const searchBy = ref(reportType[0].title) -const statusType = [ - { id: 1, name: 'Menunggu Tanggapan Supervisor CC' }, - { id: 2, name: 'Dalam Proses Manager Unit' }, - { id: 3, name: 'Dalam Proses Bidang Unit' }, - { id: 4, name: 'Selesai Dijawab Bidang Unit' }, - { id: 5, name: 'Konfirmasi' } -] -const status = ref(statusType[0]) - -const slaType = [ - { - id: 1, - name: '45 Menit', - time: 45 - }, - { - id: 2, - name: '3 Jam', - time: 180 - }, - { - id: 3, - name: '1 Hari', - time: 1440 - }, - { - id: 4, - name: '3 Hari', - time: 4320 - } -] -const sla = ref(slaType[0]) const emit = defineEmits(['update:filters']) - -const data = ref({ - uid: uid.value, - up3: up3.value, - ulp: ulp.value, - status: status.value, - keyword: keyword.value, - searchBy: searchBy.value, - sla: sla.value, - periode: '' +const props = defineProps({ + reportType: { + type: Array as PropType, + default: [ + { id: 1, title: 'No Lapor' }, + { id: 2, title: 'Nama Pelapor' }, + { id: 3, title: 'Permasalahan' } + ] + }, + statusType: { + type: Array as PropType, + default: [ + { id: 0, name: '' }, + { id: 1, name: 'Menunggu Tanggapan Supervisor CC' }, + { id: 2, name: 'Dalam Proses Manager Unit' }, + { id: 3, name: 'Dalam Proses Bidang Unit' }, + { id: 4, name: 'Selesai Dijawab Bidang Unit' }, + { id: 5, name: 'Konfirmasi' } + ] + }, + slaType: { + type: Array as PropType, + default: [ + { + id: 1, + name: '45 Menit', + time: 45 + }, + { + id: 2, + name: '3 Jam', + time: 180 + }, + { + id: 3, + name: '1 Hari', + time: 1440 + }, + { + id: 4, + name: '3 Hari', + time: 4320 + } + ] + } }) -watch(data.value, (value) => { +const data = ref({ + uid: { id: 0, name: uidPlaceholder }, + up3: { id: 0, name: up3Placeholder }, + ulp: { id: 0, name: ulpPlaceholder }, + status: props.statusType[0], + keyword: keyword.value, + searchBy: props.reportType[0].title, + sla: props.slaType[0], + periode: '' +}) +const renderUp3 = ref(false) +const renderUlp = ref(false) + +watch(data, (value) => { emit('update:filters', value) }) const setUid = (value: any) => { - uid.value = value selectedUid(value) - up3.value = { id: 0, name: up3Placeholder } - data.value.uid = value + data.value = { + ...data.value, + uid: value, + up3: { + id: 0, + name: up3Placeholder + }, + ulp: { id: 0, name: ulpPlaceholder } + } + + renderUp3.value = true + renderUlp.value = true + setTimeout(() => { + renderUp3.value = false + renderUlp.value = false + }, 200) } const setUp3 = (value: any) => { - up3.value = value selectedUp3Ulp(value) - ulp.value = { id: 0, name: ulpPlaceholder } - data.value.up3 = value - console.log(itemsUlp) + data.value = { + ...data.value, + up3: value, + ulp: { id: 0, name: ulpPlaceholder } + } + + renderUlp.value = true + setTimeout(() => { + renderUlp.value = false + }, 200) } const setUlp = (value: any) => { - ulp.value = value selectedUlp(value) - data.value.ulp = value + data.value = { + ...data.value, + ulp: value + } } const setStatus = (value: any) => { - status.value = value - data.value.status = value + data.value = { + ...data.value, + status: value + } } const changeKeyword = (value: string) => { - keyword.value = value - data.value.keyword = value + data.value = { + ...data.value, + keyword: value + } } const changeReportTypeSelected = (id: any) => { - searchBy.value = reportType.find((item) => item.id == id)?.title - data.value.searchBy = searchBy.value + data.value = { + ...data.value, + searchBy: props.reportType.find((item) => item.id == id)?.title + } } const setSla = (value: any) => { - sla.value = value - data.value.sla = value + data.value = { + ...data.value, + sla: value + } } onMounted(() => { @@ -142,15 +177,27 @@ onMounted(() => {
+
@@ -163,7 +210,6 @@ onMounted(() => { + + + + + + + + + + +