Merge branch 'IntegrationTableWithFilter' of https://gitea.callysta-engineering.com/APKT/eis into development

This commit is contained in:
Dede Fuji Abdul 2024-02-19 09:10:38 +07:00
commit ffacc8777e
239 changed files with 1433 additions and 928 deletions

0
.env.development Normal file → Executable file
View File

0
.env.production Normal file → Executable file
View File

0
.eslintrc.cjs Normal file → Executable file
View File

0
.github/workflows/docker-image-development.yml vendored Normal file → Executable file
View File

0
.github/workflows/docker-image-release.yml vendored Normal file → Executable file
View File

0
.gitignore vendored Normal file → Executable file
View File

0
.prettierrc.json Normal file → Executable file
View File

0
.tw-patch/tw-class-list.json Normal file → Executable file
View File

0
.vscode/extensions.json vendored Normal file → Executable file
View File

0
Dockerfile Normal file → Executable file
View File

0
README.md Normal file → Executable file
View File

0
deployment.yaml Normal file → Executable file
View File

0
env.d.ts vendored Normal file → Executable file
View File

0
index.html Normal file → Executable file
View File

0
nginx.conf Normal file → Executable file
View File

10
package-lock.json generated Normal file → Executable file
View File

@ -30,6 +30,7 @@
"graphql": "^16.8.1", "graphql": "^16.8.1",
"graphql-tag": "^2.12.6", "graphql-tag": "^2.12.6",
"jspdf": "^2.5.1", "jspdf": "^2.5.1",
"nvm": "^0.0.4",
"pinia": "^2.1.3", "pinia": "^2.1.3",
"qs": "^6.11.2", "qs": "^6.11.2",
"react": "^18.2.0", "react": "^18.2.0",
@ -6905,6 +6906,15 @@
"url": "https://github.com/fb55/nth-check?sponsor=1" "url": "https://github.com/fb55/nth-check?sponsor=1"
} }
}, },
"node_modules/nvm": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/nvm/-/nvm-0.0.4.tgz",
"integrity": "sha512-jvmyELykYcdyd0VCGY0E8Aqe5MngEasVvlPvrcJHbwBMUbVqa72mPdQuPzyTcykEtEx7jDrMY0QA5MoV+8EhgA==",
"deprecated": "This is NOT the correct nvm. Visit https://nvm.sh and use the curl command to install it.",
"bin": {
"nvm": "bin/nvm"
}
},
"node_modules/nwsapi": { "node_modules/nwsapi": {
"version": "2.2.7", "version": "2.2.7",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz",

1
package.json Normal file → Executable file
View File

@ -37,6 +37,7 @@
"graphql": "^16.8.1", "graphql": "^16.8.1",
"graphql-tag": "^2.12.6", "graphql-tag": "^2.12.6",
"jspdf": "^2.5.1", "jspdf": "^2.5.1",
"nvm": "^0.0.4",
"pinia": "^2.1.3", "pinia": "^2.1.3",
"qs": "^6.11.2", "qs": "^6.11.2",
"react": "^18.2.0", "react": "^18.2.0",

0
postcss.config.js Normal file → Executable file
View File

0
public/assets/css/loader.css Normal file → Executable file
View File

0
public/assets/images/favicon.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

0
public/assets/images/pln.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

0
src/App.vue Normal file → Executable file
View File

0
src/assets/css/base.css Normal file → Executable file
View File

0
src/assets/css/main.css Normal file → Executable file
View File

0
src/assets/css/style.css Normal file → Executable file
View File

0
src/assets/css/tailwind.css Normal file → Executable file
View File

0
src/assets/icons/dot-outline.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

0
src/assets/icons/gauge.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

0
src/assets/icons/lightning-slash.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

0
src/assets/icons/monitor.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

0
src/assets/icons/plugs.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

0
src/assets/icons/smiley-sad.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

0
src/assets/icons/swap.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

0
src/assets/images/hero.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

0
src/assets/images/pln-with-text.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

0
src/assets/images/pln.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

0
src/components/Button.vue Normal file → Executable file
View File

0
src/components/Buttons/ButtonDropdown.vue Normal file → Executable file
View File

0
src/components/Buttons/ButtonPrimary.vue Normal file → Executable file
View File

0
src/components/CommandPalettes.vue Normal file → Executable file
View File

0
src/components/DatePicker.vue Normal file → Executable file
View File

0
src/components/Dialogs/ActionDialog.vue Normal file → Executable file
View File

0
src/components/Dialogs/DetailDialog.vue Normal file → Executable file
View File

0
src/components/Form/Filters.vue Normal file → Executable file
View File

4
src/components/Form/FiltersType/Type1.vue Normal file → Executable file
View File

@ -17,7 +17,7 @@ const uppPlaceholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan'
const poskoPlaceholder = 'Semua Posko' const poskoPlaceholder = 'Semua Posko'
const uppp = ref({ id: 0, name: uppPlaceholder }) const uppp = ref({ id: 0, name: uppPlaceholder })
const uid = ref({ id: 0, name: uidPlaceholder }) const uid = ref({ id: 0, name: uidPlaceholder })
const posko = ref({ id: 0, name: poskoPlaceholder }) const posko = ref({ id: "", name: poskoPlaceholder })
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
@ -40,7 +40,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value uppp.value = value
selectedUp3Posko(value) selectedUp3Posko(value)
posko.value = { id: 0, name: poskoPlaceholder } posko.value = { id: "", name: poskoPlaceholder }
data.value.up3 = value data.value.up3 = value
} }

4
src/components/Form/FiltersType/Type10.vue Normal file → Executable file
View File

@ -20,7 +20,7 @@ const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan'; const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
const uppp = ref({ id: 0, name: up3Placeholder }); const uppp = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder }); const ulp = ref({ id: "", name: ulpPlaceholder });
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
@ -40,7 +40,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value; uppp.value = value;
selectedUp3Ulp(value); selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder }; ulp.value = { id: "", name: ulpPlaceholder };
data.value.up3 = value; data.value.up3 = value;
}; };

5
src/components/Form/FiltersType/Type11.vue Normal file → Executable file
View File

@ -13,14 +13,13 @@ import {
import Select from '@/components/Select.vue' import Select from '@/components/Select.vue'
import DatePicker from '@/components/DatePicker.vue' import DatePicker from '@/components/DatePicker.vue'
import InputNumber from '@/components/Form/InputNumber.vue'
const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah'; const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah';
const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan'; const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan'; const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
const uppp = ref({ id: 0, name: up3Placeholder }); const uppp = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder }); const ulp = ref({ id: "", name: ulpPlaceholder });
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const sla = [ const sla = [
{ {
@ -50,7 +49,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value; uppp.value = value;
selectedUp3Ulp(value); selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder }; ulp.value = { id: "", name: ulpPlaceholder };
data.value.up3 = value; data.value.up3 = value;
}; };

66
src/components/Form/FiltersType/Type12.vue Normal file → Executable file
View File

@ -9,13 +9,15 @@ const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan'; const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
const uppp = ref({ id: 0, name: up3Placeholder }); const uppp = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder }); const ulp = ref({ id: "", name: ulpPlaceholder });
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
up3: uppp.value, up3: uppp.value,
posko: ulp.value, posko: ulp.value,
periode: '' periode: '',
minDurasiResponseTime: 1,
maxDurasiResponseTime: 1
}) })
const setUid = (value: any) => { const setUid = (value: any) => {
uid.value = value; uid.value = value;
@ -27,7 +29,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value; uppp.value = value;
selectedUp3Ulp(value); selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder }; ulp.value = { id: "", name: ulpPlaceholder };
data.value.up3 = value; data.value.up3 = value;
}; };
@ -36,6 +38,40 @@ const setUlp = (value: any) => {
selectedUlp(value); selectedUlp(value);
data.value.posko = value; data.value.posko = value;
}; };
const triggerInput = ref(false)
const sla = [
{
id: 0,
name: 'Durasi Menit'
},
{
id: 1,
name: 'Dibawah / Sesuai SLA (<= 45 menit)'
},
{
id: 2,
name: 'Melebihi SLA (> 45 menit)'
}
];
const changeDuration = (value: any) => {
if (value.id === 0) {
console.log('Durasi Menit')
data.value.minDurasiResponseTime = 0
data.value.maxDurasiResponseTime = 5
triggerInput.value = false
} else if (value.id === 1) {
data.value.minDurasiResponseTime = 0
data.value.maxDurasiResponseTime = 45
console.log('Dibawah / Sesuai SLA (<= 45 menit)')
triggerInput.value = true
} else {
data.value.minDurasiResponseTime = 46
data.value.maxDurasiResponseTime = 99999 * 60 * 24
triggerInput.value = true
console.log('Melebihi SLA (> 45 menit)')
}
}
onMounted(() => { onMounted(() => {
emit('update:filters', data.value) emit('update:filters', data.value)
fetchUid() fetchUid()
@ -90,12 +126,30 @@ onMounted(() => {
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Durasi:</label> <label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Durasi:</label>
<div class="flex flex-col gap-y-1"> <div class="flex flex-col gap-y-1">
<Select placeholder="Durasi Menit" /> <Select
@update:selected="changeDuration($event)"
:data="sla"
placeholder="Durasi Menit"
/>
<div class="grid grid-flow-col auto-cols-auto gap-x-1.5"> <div class="grid grid-flow-col auto-cols-auto gap-x-1.5">
<InputWithSuffix /> <InputWithSuffix
@update:minute-value="
(value :any)=> {
data.minDurasiResponseTime =value
}
"
@value="data.minDurasiResponseTime"
:disabled=triggerInput />
<small class="flex items-center">s/d</small> <small class="flex items-center">s/d</small>
<InputWithSuffix /> <InputWithSuffix
@update:minute-value="
(value :any)=> {
data.maxDurasiResponseTime = value
}
"
@value="data.maxDurasiResponseTime"
:disabled="triggerInput" />
</div> </div>
</div> </div>
</div> </div>

4
src/components/Form/FiltersType/Type13.vue Normal file → Executable file
View File

@ -9,7 +9,7 @@ const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan'; const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
const uppp = ref({ id: 0, name: up3Placeholder }); const uppp = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder }); const ulp = ref({ id: "", name: ulpPlaceholder });
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
@ -28,7 +28,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value; uppp.value = value;
selectedUp3Ulp(value); selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder }; ulp.value = { id: "", name: ulpPlaceholder };
data.value.up3 = value; data.value.up3 = value;
}; };

36
src/components/Form/FiltersType/Type14.vue Normal file → Executable file
View File

@ -1,27 +1,39 @@
<script setup lang="ts"> <script setup lang="ts">
import Select from '@/components/Select.vue' import Select from '@/components/Select.vue'
import DatePicker from '@/components/DatePicker.vue' import DatePicker from '@/components/DatePicker.vue'
import { ref } from 'vue';
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: "", name: ulpPlaceholder });
const emit = defineEmits(['update:filters'])
const data = ref({
uid: uid.value,
up3: uppp.value,
posko: ulp.value,
periode: '',
group: 1
})
</script> </script>
<template> <template>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <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">Distribusi/Wilayah:</label> <label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Distribusi/Wilayah:</label>
<Select placeholder="Semua Distribusi/Wilayah"/> <Select placeholder="Semua Distribusi/Wilayah" />
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <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" <label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Area:</label>
>Area:</label
>
<Select placeholder="Semua Area" /> <Select placeholder="Semua Area" />
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <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" <label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Posko:</label>
>Posko:</label
>
<Select placeholder="Semua Posko" /> <Select placeholder="Semua Posko" />
</div> </div>
@ -29,9 +41,9 @@
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <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> <label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Periode Tanggal:</label>
<DatePicker @update:date-value="(value) => { <DatePicker @update:date-value="(value) => {
data.periode = value data.periode = value
} }
" /> " />
</div> </div>
</template> </template>

15
src/components/Form/FiltersType/Type15.vue Normal file → Executable file
View File

@ -2,6 +2,21 @@
import InputWithFilter from '../InputWithFilter.vue' import InputWithFilter from '../InputWithFilter.vue'
import DatePicker from '@/components/DatePicker.vue' import DatePicker from '@/components/DatePicker.vue'
import InlineRadioGroup from '@/components/Form/InlineRadioGroup.vue' import InlineRadioGroup from '@/components/Form/InlineRadioGroup.vue'
import { ref } from 'vue';
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: "", name: ulpPlaceholder });
const emit = defineEmits(['update:filters'])
const data = ref({
uid: uid.value,
up3: uppp.value,
posko: ulp.value,
periode: '',
group: 1
})
</script> </script>
<template> <template>

4
src/components/Form/FiltersType/Type16.vue Normal file → Executable file
View File

@ -19,7 +19,7 @@ const poskoPlaceholder = 'Semua Posko'
const mediaPlaceholder = 'Semua Media' const mediaPlaceholder = 'Semua Media'
const up3 = ref({ id: 0, name: up3Placeholder }) const up3 = ref({ id: 0, name: up3Placeholder })
const uid = ref({ id: 0, name: uidPlaceholder }) const uid = ref({ id: 0, name: uidPlaceholder })
const posko = ref({ id: 0, name: poskoPlaceholder }) const posko = ref({ id: "", name: poskoPlaceholder })
const media = ref({ id: 0, name: mediaPlaceholder }) const media = ref({ id: 0, name: mediaPlaceholder })
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
@ -44,7 +44,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
up3.value = value up3.value = value
selectedUp3Posko(value) selectedUp3Posko(value)
posko.value = { id: 0, name: poskoPlaceholder } posko.value = { id: "", name: poskoPlaceholder }
data.value.up3 = value data.value.up3 = value
} }

0
src/components/Form/FiltersType/Type17.vue Normal file → Executable file
View File

0
src/components/Form/FiltersType/Type18.vue Normal file → Executable file
View File

10
src/components/Form/FiltersType/Type2.vue Normal file → Executable file
View File

@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import Select from '@/components/Select.vue' import Select from '@/components/Select.vue'
import { selectedUid, selectedUp3Ulp,fetchRegional, itemsUid, itemsUp3, itemsUlp,itemsRegional ,months, years} from './reference'; import { selectedUid, selectedUp3Ulp,fetchRegional,fetchUid,fetchUidWithRegional, itemsUid, itemsUp3, itemsUlp,itemsRegional ,months, years} from './reference';
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import { getMonthName } from '@/utils/texts'; import { getMonthName } from '@/utils/texts';
const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah'; const uidPlaceholder = 'Semua Unit Induk Distribusi/Wilayah';
@ -13,14 +13,14 @@ const bulanSelected = new Date().getMonth();
const tahunSelected = new Date().getFullYear(); const tahunSelected = new Date().getFullYear();
const uppp = ref({ id: 0, name: up3Placholder }); const uppp = ref({ id: 0, name: up3Placholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder }); const ulp = ref({ id: "", name: ulpPlaceholder });
const bulan = ref({ id: bulanSelected, name: bulanPlaceholder }); const bulan = ref({ id: bulanSelected, name: bulanPlaceholder });
const tahun = ref({ id: tahunSelected, name: tahunPlaceholder }); const tahun = ref({ id: tahunSelected, name: tahunPlaceholder });
const regional = ref({ id: 0, name: regionalPlaceholder }); const regional = ref({ id: 0, name: regionalPlaceholder });
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
// Find index of January // Find index of January
const bulanIndex = months.findIndex(month => month.id === bulan.value.id); const bulanIndex = months.findIndex(month => month.id === bulan.value.id);
console.log(bulanSelected)
// Remove January if found // Remove January if found
if (bulanIndex !== -1) { if (bulanIndex !== -1) {
months.splice(bulanIndex, 1); months.splice(bulanIndex, 1);
@ -42,6 +42,8 @@ const data = ref({
const setRegional = (value: any) => { const setRegional = (value: any) => {
regional.value = value; regional.value = value;
fetchUid();
// harusnya fetchUidWithRegional(value);
selectedUid(value); selectedUid(value);
uid.value = { id: 0, name: uidPlaceholder }; uid.value = { id: 0, name: uidPlaceholder };
data.value.regional = value; data.value.regional = value;
@ -57,7 +59,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value; uppp.value = value;
selectedUp3Ulp(value); selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder }; ulp.value = { id: "", name: ulpPlaceholder };
data.value.up3 = value; data.value.up3 = value;
}; };

4
src/components/Form/FiltersType/Type3.vue Normal file → Executable file
View File

@ -8,7 +8,7 @@ const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan'; const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
const uppp = ref({ id: 0, name: up3Placeholder }); const uppp = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder }); const ulp = ref({ id: "", name: ulpPlaceholder });
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
@ -26,7 +26,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value; uppp.value = value;
selectedUp3Ulp(value); selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder }; ulp.value = { id: "", name: ulpPlaceholder };
data.value.up3 = value; data.value.up3 = value;
}; };

4
src/components/Form/FiltersType/Type4.vue Normal file → Executable file
View File

@ -8,7 +8,7 @@ const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const ulpPlaceholder = 'Semua Unit Layanan Pelanggan'; const ulpPlaceholder = 'Semua Unit Layanan Pelanggan';
const uppp = ref({ id: 0, name: up3Placeholder }); const uppp = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const ulp = ref({ id: 0, name: ulpPlaceholder }); const ulp = ref({ id: "", name: ulpPlaceholder });
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
@ -27,7 +27,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value; uppp.value = value;
selectedUp3Ulp(value); selectedUp3Ulp(value);
ulp.value = { id: 0, name: ulpPlaceholder }; ulp.value = { id: "", name: ulpPlaceholder };
data.value.up3 = value; data.value.up3 = value;
}; };

4
src/components/Form/FiltersType/Type5.vue Normal file → Executable file
View File

@ -17,7 +17,7 @@ const uppPlaceholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan'
const poskoPlaceholder = 'Semua Posko' const poskoPlaceholder = 'Semua Posko'
const uppp = ref({ id: 0, name: uppPlaceholder }) const uppp = ref({ id: 0, name: uppPlaceholder })
const uid = ref({ id: 0, name: uidPlaceholder }) const uid = ref({ id: 0, name: uidPlaceholder })
const posko = ref({ id: 0, name: poskoPlaceholder }) const posko = ref({ id: "", name: poskoPlaceholder })
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
@ -40,7 +40,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value uppp.value = value
selectedUp3Posko(value) selectedUp3Posko(value)
posko.value = { id: 0, name: poskoPlaceholder } posko.value = { id: "", name: poskoPlaceholder }
data.value.up3 = value data.value.up3 = value
} }

4
src/components/Form/FiltersType/Type6.vue Normal file → Executable file
View File

@ -10,7 +10,7 @@ const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const poskoPlaceholder = 'Semua Unit Layanan Pelanggan'; const poskoPlaceholder = 'Semua Unit Layanan Pelanggan';
const up3 = ref({ id: 0, name: up3Placeholder }); const up3 = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const posko = ref({ id: 0, name: poskoPlaceholder }); const posko = ref({ id: "", name: poskoPlaceholder });
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
up3: up3.value, up3: up3.value,
@ -30,7 +30,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
up3.value = value up3.value = value
selectedUp3Posko(value) selectedUp3Posko(value)
posko.value = { id: 0, name: poskoPlaceholder } posko.value = { id: "", name: poskoPlaceholder }
data.value.up3 = value data.value.up3 = value
} }

64
src/components/Form/FiltersType/Type7.vue Normal file → Executable file
View File

@ -12,7 +12,7 @@ const up3Placeholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan';
const poskoPlaceholder = 'Semua Unit Layanan Pelanggan'; const poskoPlaceholder = 'Semua Unit Layanan Pelanggan';
const up3 = ref({ id: 0, name: up3Placeholder }); const up3 = ref({ id: 0, name: up3Placeholder });
const uid = ref({ id: 0, name: uidPlaceholder }); const uid = ref({ id: 0, name: uidPlaceholder });
const posko = ref({ id: 0, name: poskoPlaceholder }); const posko = ref({ id: "", name: poskoPlaceholder });
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
up3: up3.value, up3: up3.value,
@ -31,7 +31,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
up3.value = value up3.value = value
selectedUp3Posko(value) selectedUp3Posko(value)
posko.value = { id: 0, name: poskoPlaceholder } posko.value = { id: "", name: poskoPlaceholder }
data.value.up3 = value data.value.up3 = value
} }
@ -53,6 +53,13 @@ const sla = [
} }
] ]
const setMin = (value: any) => {
console.log(value)
data.value.minTime = value
}
const setMax = (value: any) => {
data.value.maxTime = value
}
const triggerInput = ref(false) const triggerInput = ref(false)
const changeDuration = (value: any) => { const changeDuration = (value: any) => {
if (value.id === 0) { if (value.id === 0) {
@ -63,7 +70,6 @@ const changeDuration = (value: any) => {
} else if (value.id === 1) { } else if (value.id === 1) {
data.value.minTime = 0 data.value.minTime = 0
data.value.maxTime = 45 data.value.maxTime = 45
console.log(data.value)
console.log('Dibawah / Sesuai SLA (<= 45 menit)') console.log('Dibawah / Sesuai SLA (<= 45 menit)')
triggerInput.value = true triggerInput.value = true
} else { } else {
@ -72,13 +78,8 @@ const changeDuration = (value: any) => {
triggerInput.value = true triggerInput.value = true
console.log('Melebihi SLA (> 45 menit)') console.log('Melebihi SLA (> 45 menit)')
} }
console.log('value', data.value);
} }
watch(data, (newValue) => { watch(data, (newValue) => {
console.log('newValue', newValue.maxTime)
emit('update:filters', newValue) emit('update:filters', newValue)
}) })
onMounted(() => { onMounted(() => {
@ -91,32 +92,19 @@ onMounted(() => {
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <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> <label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Unit Induk Distribusi/Wilayah:</label>
<Select <Select @update:selected="setUid($event)" :data="itemsUid" :placeholder="uidPlaceholder" />
@update:selected="setUid($event)"
:data="itemsUid"
:placeholder="uidPlaceholder"
/>
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <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 <Select @update:selected="setUp3($event)" :data="itemsUp3" :placeholder="up3Placeholder" />
@update:selected="setUp3($event)"
:data="itemsUp3"
:placeholder="up3Placeholder"
/>
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <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">Posko:</label> <label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Posko:</label>
<Select <Select @update:selected="setPosko($event)" :data="itemsPosko" :placeholder="poskoPlaceholder" />
@update:selected="setPosko($event)"
:data="itemsPosko"
:placeholder="poskoPlaceholder"
/>
</div> </div>
<div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center"> <div class="sm:grid sm:grid-cols-2 lg:grid-cols-3 sm:items-center">
@ -132,32 +120,12 @@ onMounted(() => {
<label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Durasi:</label> <label class="text-gray-800 font-semibold mb-2 sm:mb-0 block">Durasi:</label>
<div class="flex flex-col gap-y-1"> <div class="flex flex-col gap-y-1">
<Select <Select @update:selected="changeDuration($event)" :data="sla" placeholder="Durasi Menit" />
@update:selected="changeDuration($event)"
:data="sla" placeholder="Durasi Menit" />
<div class="grid grid-flow-col auto-cols-auto gap-x-1.5" > <div class="grid grid-flow-col auto-cols-auto gap-x-1.5">
<InputWithSuffix <InputWithSuffix @default-value="data.minTime" @update:menit-value="setMin($event)" />
:default-value="`${data.minTime} Menit`"
:disabled="triggerInput"
@update:minuteValue="
(value :any)=> {
data.minTime =value
}
"
/>
<small class="flex items-center">s/d</small> <small class="flex items-center">s/d</small>
<InputWithSuffix <InputWithSuffix @default-value="data.maxTime" @update:menit-value="setMax($event)" />
:default-value="`${data.maxTime} Menit`"
@update:minuteValue="
(value :any)=> {
data.maxTime = value
}
"
:disabled="triggerInput"
/>
</div> </div>
</div> </div>
</div> </div>

4
src/components/Form/FiltersType/Type8.vue Normal file → Executable file
View File

@ -16,7 +16,7 @@ const uppPlaceholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan'
const poskoPlaceholder = 'Semua Posko' const poskoPlaceholder = 'Semua Posko'
const uppp = ref({ id: 0, name: uppPlaceholder }) const uppp = ref({ id: 0, name: uppPlaceholder })
const uid = ref({ id: 0, name: uidPlaceholder }) const uid = ref({ id: 0, name: uidPlaceholder })
const posko = ref({ id: 0, name: poskoPlaceholder }) const posko = ref({ id: "", name: poskoPlaceholder })
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
@ -39,7 +39,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value uppp.value = value
selectedUp3Posko(value) selectedUp3Posko(value)
posko.value = { id: 0, name: poskoPlaceholder } posko.value = { id: "", name: poskoPlaceholder }
data.value.up3 = value data.value.up3 = value
} }

4
src/components/Form/FiltersType/Type9.vue Normal file → Executable file
View File

@ -19,7 +19,7 @@ const uppPlaceholder = 'Semua Unit Pelaksanaan Pelayanan Pelanggan'
const poskoPlaceholder = 'Semua Posko' const poskoPlaceholder = 'Semua Posko'
const uppp = ref({ id: 0, name: uppPlaceholder }) const uppp = ref({ id: 0, name: uppPlaceholder })
const uid = ref({ id: 0, name: uidPlaceholder }) const uid = ref({ id: 0, name: uidPlaceholder })
const posko = ref({ id: 0, name: poskoPlaceholder }) const posko = ref({ id: "" ,name: poskoPlaceholder })
const emit = defineEmits(['update:filters']) const emit = defineEmits(['update:filters'])
const data = ref({ const data = ref({
uid: uid.value, uid: uid.value,
@ -42,7 +42,7 @@ const setUid = (value: any) => {
const setUp3 = (value: any) => { const setUp3 = (value: any) => {
uppp.value = value uppp.value = value
selectedUp3Posko(value) selectedUp3Posko(value)
posko.value = { id: 0, name: poskoPlaceholder } posko.value = { id: "", name: poskoPlaceholder }
data.value.up3 = value data.value.up3 = value
} }

0
src/components/Form/FiltersType/index.ts Normal file → Executable file
View File

25
src/components/Form/FiltersType/reference.ts Normal file → Executable file
View File

@ -1,4 +1,4 @@
import { getUid, getUp3, getPosko, getUlp,getUidRegional } from '@/utils/network' import { getUid, getUp3, getPosko, getUlp,getUidRegional, getRegional } from '@/utils/network'
import { ref } from 'vue' import { ref } from 'vue'
import { usePostsStore } from '@/stores/posts' import { usePostsStore } from '@/stores/posts'
import { useUp3Store } from '@/stores/up3' import { useUp3Store } from '@/stores/up3'
@ -38,15 +38,18 @@ const itemsPosko = ref<Item[]>([]);
const itemsUlp = ref<Item[]>([]); const itemsUlp = ref<Item[]>([]);
const itemsRegional = ref<Item[]>([]); const itemsRegional = ref<Item[]>([]);
const itemsMedia = ref<Item[]>([]); const itemsMedia = ref<Item[]>([]);
const fetchRegional = () => { const fetchRegional =async () => {
itemsRegional.value = [ try {
{ id: "1", name: "Wilayah Sumatera" }, const res = await getRegional()
{ id: "2", name: "Wilayah Jawa Bali" }, itemsRegional.value = res.data.map((item: any) => (
{ id: "3", name: "Wilayah Kalimantan" }, {
{ id: "4", name: "Wilayah Sulawesi" }, id: item.id,
{ id: "5", name: "Wilayah Nusa Tenggara" }, name: item.nama.toUpperCase(),
{ id: "6", name: "Wilayah Maluku Papua" }, }
] ));
} catch (error) {
console.error('Error fetching data:', error);
}
} }
const fetchStatus = (data : any) => { const fetchStatus = (data : any) => {
@ -170,4 +173,4 @@ const selectedUlp = (value: any) => {
useUlpStore().setData(value.id) useUlpStore().setData(value.id)
} }
export { selectedUid, selectedUp3Posko, selectedUp3Ulp, selectedPosko, selectedUlp, fetchMedia,fetchStatus,fetchRegional, fetchUid, itemsUid, itemsUp3, itemsPosko, itemsRegional, itemsMedia, itemsUlp, months, years }; export { selectedUid, selectedUp3Posko, selectedUp3Ulp, selectedPosko, selectedUlp, fetchMedia,fetchStatus,fetchUidWithRegional,fetchRegional, fetchUid, itemsUid, itemsUp3, itemsPosko, itemsRegional, itemsMedia, itemsUlp, months, years };

0
src/components/Form/InlineRadioGroup.vue Normal file → Executable file
View File

1
src/components/Form/InputNumber.vue Normal file → Executable file
View File

@ -22,7 +22,6 @@ const props = defineProps({
const emit = defineEmits(['update:timeValue']) const emit = defineEmits(['update:timeValue'])
const timeValue = ref(1) const timeValue = ref(1)
watch(timeValue, (newValue) => { watch(timeValue, (newValue) => {
console.log('newValue', newValue)
emit('update:timeValue', newValue) emit('update:timeValue', newValue)
}) })

0
src/components/Form/InputWithFilter.vue Normal file → Executable file
View File

8
src/components/Form/InputWithSuffix.vue Normal file → Executable file
View File

@ -21,15 +21,10 @@ const props = defineProps({
}) })
const emit = defineEmits(['update:menitValue']) const emit = defineEmits(['update:menitValue'])
const menitValue = ref<any>(props.defaultValue) const menitValue = ref(props.defaultValue)
watch(menitValue, (newValue) => { watch(menitValue, (newValue) => {
console.log('newValue', newValue)
emit('update:menitValue', newValue) emit('update:menitValue', newValue)
}) })
watch(() => props.defaultValue, (newValue) => {
menitValue.value = newValue
})
</script> </script>
<template> <template>
@ -45,6 +40,7 @@ watch(() => props.defaultValue, (newValue) => {
inputmode="numeric" inputmode="numeric"
pattern="[0-9.]*" pattern="[0-9.]*"
:disabled="disabled" :disabled="disabled"
:defaultValue="props.defaultValue"
oninput="this.value = this.value.replace(/[^0-9.]/g, '')" oninput="this.value = this.value.replace(/[^0-9.]/g, '')"
onblur="this.value = this.value ? this.value + ' Menit' : ''" onblur="this.value = this.value ? this.value + ' Menit' : ''"
onfocus="this.value = this.value.replace(/[^0-9.]/g, '')" onfocus="this.value = this.value.replace(/[^0-9.]/g, '')"

0
src/components/Input.vue Normal file → Executable file
View File

0
src/components/InputText.vue Normal file → Executable file
View File

0
src/components/Navigation/Aside/Aside.vue Normal file → Executable file
View File

0
src/components/Navigation/Aside/AsideMenuMultiple.vue Normal file → Executable file
View File

0
src/components/Navigation/Aside/AsideMenuSingle.vue Normal file → Executable file
View File

0
src/components/Navigation/Header.vue Normal file → Executable file
View File

0
src/components/Navigation/Navigation.vue Normal file → Executable file
View File

0
src/components/Notification/Notification.vue Normal file → Executable file
View File

0
src/components/Notification/NotificationProvider.vue Normal file → Executable file
View File

0
src/components/Notification/icons/CloseIcon.vue Normal file → Executable file
View File

0
src/components/Notification/icons/ErrorIcon.vue Normal file → Executable file
View File

0
src/components/Notification/icons/InfoIcon.vue Normal file → Executable file
View File

0
src/components/Notification/icons/SuccessIcon.vue Normal file → Executable file
View File

0
src/components/Notification/icons/WarningIcon.vue Normal file → Executable file
View File

0
src/components/Notification/icons/index.ts Normal file → Executable file
View File

0
src/components/Notification/index.ts Normal file → Executable file
View File

View File

View File

View File

0
src/components/Notification/interfaces/index.ts Normal file → Executable file
View File

0
src/components/Notification/store/index.ts Normal file → Executable file
View File

8
src/components/Pages/Anomali/Table_61.vue Normal file → Executable file
View File

@ -101,7 +101,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted } from 'vue' import { onMounted, ref } from 'vue'
import { useFiltersStore } from '@/stores/filters' import { useFiltersStore } from '@/stores/filters'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid' import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid'
@ -111,7 +111,11 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { AnomaliTable2 } from '.' import { AnomaliTable2 } from '.'
const position = { of: '#data' };
const showIndicator = ref(true);
const shading = ref(true);
const showPane = ref(true);
const loading = ref(false)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const doc = new jsPDF() const doc = new jsPDF()

6
src/components/Pages/Anomali/Table_62.vue Normal file → Executable file
View File

@ -42,6 +42,12 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { ref } from 'vue'
const position = { of: '#data' };
const showIndicator = ref(true);
const shading = ref(true);
const showPane = ref(true);
const loading = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {

7
src/components/Pages/Anomali/Table_63.vue Normal file → Executable file
View File

@ -69,7 +69,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted } from 'vue' import { onMounted, ref } from 'vue'
import { useFiltersStore } from '@/stores/filters' import { useFiltersStore } from '@/stores/filters'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid' import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid'
@ -79,6 +79,11 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { AnomaliTable4 } from '.' import { AnomaliTable4 } from '.'
const position = { of: '#data' };
const showIndicator = ref(true);
const shading = ref(true);
const showPane = ref(true);
const loading = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {

7
src/components/Pages/Anomali/Table_64.vue Normal file → Executable file
View File

@ -66,7 +66,12 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { ref } from 'vue'
const position = { of: '#data' };
const showIndicator = ref(true);
const shading = ref(true);
const showPane = ref(true);
const loading = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const doc = new jsPDF() const doc = new jsPDF()

7
src/components/Pages/Anomali/Table_65.vue Normal file → Executable file
View File

@ -77,7 +77,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted } from 'vue' import { onMounted, ref } from 'vue'
import { useFiltersStore } from '@/stores/filters' import { useFiltersStore } from '@/stores/filters'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid' import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid'
@ -87,6 +87,11 @@ import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { AnomaliTable6 } from '.' import { AnomaliTable6 } from '.'
const position = { of: '#data' };
const showIndicator = ref(true);
const shading = ref(true);
const showPane = ref(true);
const loading = ref(true)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {

6
src/components/Pages/Anomali/Table_66.vue Normal file → Executable file
View File

@ -42,6 +42,12 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { ref } from 'vue'
const position = { of: '#data' };
const showIndicator = ref(true);
const shading = ref(true);
const showPane = ref(true);
const loading = ref(false)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {

0
src/components/Pages/Anomali/index.ts Normal file → Executable file
View File

32
src/components/Pages/Cico/Table_60.vue Normal file → Executable file
View File

@ -1,5 +1,11 @@
<template> <template>
<div> <Filters @run-search="() => filterData(filters)" class="mb-4">
<Type1 @update:filters="(value) => {
filters = value
}
" />
</Filters>
<div id="data">
<DxDataGrid class="max-h-[calc(100vh-140px)]" :show-column-lines="true" :show-row-lines="false" :show-borders="true" <DxDataGrid class="max-h-[calc(100vh-140px)]" :show-column-lines="true" :show-row-lines="false" :show-borders="true"
:row-alternation-enabled="true" :hover-state-enabled="true" @selection-changed="onSelectionChanged" :row-alternation-enabled="true" :hover-state-enabled="true" @selection-changed="onSelectionChanged"
:column-width="100" @exporting="onExporting" :allow-column-resizing="true" column-resizing-mode="widget" :column-width="100" @exporting="onExporting" :allow-column-resizing="true" column-resizing-mode="widget"
@ -34,7 +40,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted } from 'vue' import { onMounted, ref } from 'vue'
import { useFiltersStore } from '@/stores/filters' import { useFiltersStore } from '@/stores/filters'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid' import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid'
@ -43,7 +49,15 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import { Type1 } from '@/components/Form/FiltersType'
import Filters from '@/components/Form/Filters.vue'
const position = { of: '#data' }
const showIndicator = ref(true)
const shading = ref(true)
const showPane = ref(true)
const dataDetail = ref<any>()
const showDetail = ref(false)
const loading = ref(false)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const doc = new jsPDF() const doc = new jsPDF()
@ -78,12 +92,8 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
console.log(data) console.log(data)
} }
onMounted(() => { const filters = ref();
const filters = useFiltersStore() const filterData = (filters: any) => {
console.log(filters)
filters.setConfig({ }
type: 'type-1',
reportButton: true
})
})
</script> </script>

0
src/components/Pages/Cico/index.ts Normal file → Executable file
View File

32
src/components/Pages/Ctt/Table_67.vue Normal file → Executable file
View File

@ -1,5 +1,11 @@
<template> <template>
<div> <Filters @run-search="() => filterData(filters)" class="mb-4">
<Type3 @update:filters="(value) => {
filters = value
}
" />
</Filters>
<div id="data">
<DxDataGrid class="max-h-[calc(100vh-140px)]" :show-column-lines="true" :show-row-lines="false" :show-borders="true" <DxDataGrid class="max-h-[calc(100vh-140px)]" :show-column-lines="true" :show-row-lines="false" :show-borders="true"
:row-alternation-enabled="true" :hover-state-enabled="true" @selection-changed="onSelectionChanged" :row-alternation-enabled="true" :hover-state-enabled="true" @selection-changed="onSelectionChanged"
:column-width="100" @exporting="onExporting" :allow-column-resizing="true" column-resizing-mode="widget" :column-width="100" @exporting="onExporting" :allow-column-resizing="true" column-resizing-mode="widget"
@ -56,7 +62,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { onMounted } from 'vue' import { onMounted, ref } from 'vue'
import { useFiltersStore } from '@/stores/filters' import { useFiltersStore } from '@/stores/filters'
import { DxDataGrid } from 'devextreme-vue' import { DxDataGrid } from 'devextreme-vue'
import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid' import { DxColumn, DxColumnFixing, DxExport, DxLoadPanel, DxPaging, DxScrolling, DxSearchPanel, DxSelection } from 'devextreme-vue/data-grid'
@ -65,7 +71,15 @@ import { exportDataGrid as exportToPdf } from 'devextreme/pdf_exporter'
import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter' import { exportDataGrid as exportToExcel } from 'devextreme/excel_exporter'
import { saveAs } from 'file-saver' import { saveAs } from 'file-saver'
import { Workbook } from 'exceljs' import { Workbook } from 'exceljs'
import Filters from '@/components/Form/Filters.vue'
import { Type3 } from '@/components/Form/FiltersType'
const position = { of: '#data' }
const showIndicator = ref(true)
const shading = ref(true)
const showPane = ref(true)
const dataDetail = ref<any>()
const showDetail = ref(false)
const loading = ref(false)
const onExporting = (e: any) => { const onExporting = (e: any) => {
if (e.format === 'pdf') { if (e.format === 'pdf') {
const doc = new jsPDF() const doc = new jsPDF()
@ -100,12 +114,8 @@ const onSelectionChanged = ({ selectedRowsData }: any) => {
console.log(data) console.log(data)
} }
onMounted(() => { const filters = ref()
const filters = useFiltersStore() const filterData = (filters: any) => {
console.log(filters)
filters.setConfig({ }
type: 'type-3',
reportButton: true
})
})
</script> </script>

0
src/components/Pages/Ctt/index.ts Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More