Compare commits
15 Commits
d431bd63d1
...
developmen
Author | SHA1 | Date | |
---|---|---|---|
e67c823a69 | |||
85a79d6bc3 | |||
4f91c945d2 | |||
bec792125d | |||
d9c956b5a1 | |||
d190bbaa25 | |||
40680c9040 | |||
5fd6e7a86c | |||
fea148b487 | |||
288201f25c | |||
3c8ccfe6a1 | |||
8e7a3caab8 | |||
3f53f68257 | |||
6848a91efd | |||
d726b88045 |
@ -1 +1 @@
|
|||||||
{"name":"eis","version":"0.0.187-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","set-version":"node version.js","version":"echo $npm_package_version"},"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"}}
|
{"name":"eis","version":"0.0.193-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","set-version":"node version.js","version":"echo $npm_package_version"},"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"}}
|
@ -1,7 +1,11 @@
|
|||||||
APP_NAME=example
|
APP_NAME=PLN Gitea
|
||||||
RUN_USER=gitea
|
RUN_USER=gitea
|
||||||
RUN_MODE=prod
|
RUN_MODE=prod
|
||||||
WORK_PATH=/opt/bitnami/gitea
|
WORK_PATH=/opt/bitnami/gitea
|
||||||
|
QUEUE_LENGTH=1000
|
||||||
|
DELIVER_TIMEOUT=30
|
||||||
|
SKIP_TLS_VERIFY=false
|
||||||
|
PAGING_NUM=3
|
||||||
|
|
||||||
[repository]
|
[repository]
|
||||||
ROOT=/opt/bitnami/gitea/data/git/repositories
|
ROOT=/opt/bitnami/gitea/data/git/repositories
|
||||||
@ -25,9 +29,9 @@ LOG_SQL=false
|
|||||||
|
|
||||||
[server]
|
[server]
|
||||||
DOMAIN=localhost
|
DOMAIN=localhost
|
||||||
HTTP_PORT=3000
|
HTTP_PORT=32443
|
||||||
PROTOCOL=http
|
PROTOCOL=http
|
||||||
ROOT_URL=http://localhost:3000
|
ROOT_URL=http://10.1.50.173:32443
|
||||||
APP_DATA_PATH=/opt/bitnami/gitea/data
|
APP_DATA_PATH=/opt/bitnami/gitea/data
|
||||||
DISABLE_SSH=false
|
DISABLE_SSH=false
|
||||||
START_SSH_SERVER=true
|
START_SSH_SERVER=true
|
||||||
@ -78,7 +82,6 @@ NO_REPLY_ADDRESS=
|
|||||||
|
|
||||||
[openid]
|
[openid]
|
||||||
ENABLE_OPENID_SIGNIN=false
|
ENABLE_OPENID_SIGNIN=false
|
||||||
ENABLE_OPENID_SIGNUP=false
|
|
||||||
|
|
||||||
[cron.update_checker]
|
[cron.update_checker]
|
||||||
ENABLED=false
|
ENABLED=false
|
||||||
@ -93,8 +96,4 @@ DEFAULT_TRUST_MODEL=committer
|
|||||||
JWT_SECRET=kcpMlf3SqetVDc_HfS5gMhTbEjE6hC2madu0wF-Pq9g
|
JWT_SECRET=kcpMlf3SqetVDc_HfS5gMhTbEjE6hC2madu0wF-Pq9g
|
||||||
|
|
||||||
[webhook]
|
[webhook]
|
||||||
QUEUE_LENGTH=1000
|
|
||||||
DELIVER_TIMEOUT=30
|
|
||||||
ALLOWED_HOST_LIST=*
|
ALLOWED_HOST_LIST=*
|
||||||
SKIP_TLS_VERIFY=false
|
|
||||||
PAGING_NUM=3
|
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
APP_NAME = Gitea: Git with a cup of tea
|
|
||||||
RUN_USER = gitea
|
|
||||||
RUN_MODE = prod
|
|
||||||
|
|
||||||
[repository]
|
|
||||||
ROOT = /opt/bitnami/gitea/data/git/repositories
|
|
||||||
|
|
||||||
[repository.local]
|
|
||||||
LOCAL_COPY_PATH =/opt/bitnami/gitea/tmp/local-repo
|
|
||||||
|
|
||||||
[repository.upload]
|
|
||||||
TEMP_PATH = /opt/bitnami/gitea/tmp/uploads
|
|
||||||
|
|
||||||
[database]
|
|
||||||
DB_TYPE = postgres
|
|
||||||
HOST = postgresql:5432
|
|
||||||
NAME = bitnami_gitea
|
|
||||||
USER = bn_gitea
|
|
||||||
PASSWD = U39vSmVbXs
|
|
||||||
SSL_MODE=disable
|
|
||||||
SCHEMA=
|
|
||||||
PATH=
|
|
||||||
LOG_SQL=false
|
|
||||||
|
|
||||||
[server]
|
|
||||||
DOMAIN = localhost
|
|
||||||
HTTP_PORT = 3000
|
|
||||||
PROTOCOL = http
|
|
||||||
ROOT_URL = http://localhost:3000
|
|
||||||
APP_DATA_PATH = /opt/bitnami/gitea/data
|
|
||||||
DISABLE_SSH = false
|
|
||||||
START_SSH_SERVER = true
|
|
||||||
SSH_PORT = 22
|
|
||||||
SSH_LISTEN_PORT = 2222
|
|
||||||
SSH_DOMAIN = localhost
|
|
||||||
BUILTIN_SSH_SERVER_USER = gitea
|
|
||||||
LFS_START_SERVER = false
|
|
||||||
OFFLINE_MODE=false
|
|
||||||
|
|
||||||
[mailer]
|
|
||||||
ENABLED = false
|
|
||||||
|
|
||||||
[session]
|
|
||||||
PROVIDER_CONFIG = /opt/bitnami/gitea/data/sessions
|
|
||||||
PROVIDER=file
|
|
||||||
|
|
||||||
[picture]
|
|
||||||
AVATAR_UPLOAD_PATH = /opt/bitnami/gitea/data/avatars
|
|
||||||
REPOSITORY_AVATAR_UPLOAD_PATH = /opt/bitnami/gitea/data/repo-avatars
|
|
||||||
|
|
||||||
[attachment]
|
|
||||||
PATH = /opt/bitnami/gitea/data/attachments
|
|
||||||
|
|
||||||
[log]
|
|
||||||
ROOT_PATH = /opt/bitnami/gitea/tmp/log
|
|
||||||
MODE=console
|
|
||||||
LEVEL=info
|
|
||||||
|
|
||||||
[security]
|
|
||||||
PASSWORD_HASH_ALGO = pbkdf2
|
|
||||||
REVERSE_PROXY_LIMIT = 1
|
|
||||||
REVERSE_PROXY_TRUSTED_PROXIES = *
|
|
||||||
INSTALL_LOCK=true
|
|
||||||
INTERNAL_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3MDc3MTAyODF9.gAVc1ZLcnFEf3TcoB4p9Q6GS8vJG_DIqZOazMd6XZi8
|
|
||||||
|
|
||||||
[service]
|
|
||||||
REGISTER_EMAIL_CONFIRM=false
|
|
||||||
ENABLE_NOTIFY_MAIL=false
|
|
||||||
DISABLE_REGISTRATION=false
|
|
||||||
ALLOW_ONLY_EXTERNAL_REGISTRATION=false
|
|
||||||
ENABLE_CAPTCHA=false
|
|
||||||
REQUIRE_SIGNIN_VIEW=false
|
|
||||||
DEFAULT_KEEP_EMAIL_PRIVATE=false
|
|
||||||
DEFAULT_ALLOW_CREATE_ORGANIZATION=false
|
|
||||||
DEFAULT_ENABLE_TIMETRACKING=false
|
|
||||||
NO_REPLY_ADDRESS=
|
|
||||||
|
|
||||||
[openid]
|
|
||||||
ENABLE_OPENID_SIGNIN=false
|
|
||||||
ENABLE_OPENID_SIGNUP=false
|
|
||||||
|
|
||||||
[cron.update_checker]
|
|
||||||
ENABLED=false
|
|
||||||
|
|
||||||
[repository.pull-request]
|
|
||||||
DEFAULT_MERGE_STYLE=merge
|
|
||||||
|
|
||||||
[repository.signing]
|
|
||||||
DEFAULT_TRUST_MODEL=committer
|
|
||||||
|
|
||||||
[oauth2]
|
|
||||||
JWT_SECRET=kcpMlf3SqetVDc_HfS5gMhTbEjE6hC2madu0wF-Pq9g
|
|
||||||
|
|
||||||
[webhook]
|
|
||||||
QUEUE_LENGTH=1000
|
|
||||||
DELIVER_TIMEOUT=30
|
|
||||||
ALLOWED_HOST_LIST=*
|
|
||||||
SKIP_TLS_VERIFY=false
|
|
||||||
PAGING_NUM=3
|
|
@ -1 +1 @@
|
|||||||
{"version":"0.0.187-vm"}
|
{"version":"0.0.193-vm"}
|
@ -5,7 +5,7 @@ import {
|
|||||||
selectedUid,
|
selectedUid,
|
||||||
selectedUp3Ulp,
|
selectedUp3Ulp,
|
||||||
fetchRegional,
|
fetchRegional,
|
||||||
fetchUid,
|
selectedRegional,
|
||||||
itemsUid,
|
itemsUid,
|
||||||
itemsUp3,
|
itemsUp3,
|
||||||
itemsUlp,
|
itemsUlp,
|
||||||
@ -67,11 +67,7 @@ watch(data, (value) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
const setRegional = (value: any) => {
|
const setRegional = (value: any) => {
|
||||||
if (!presetUID.value) {
|
selectedRegional(value)
|
||||||
fetchUid()
|
|
||||||
selectedUid(value)
|
|
||||||
}
|
|
||||||
|
|
||||||
data.value = {
|
data.value = {
|
||||||
...data.value,
|
...data.value,
|
||||||
regional: value
|
regional: value
|
||||||
@ -119,7 +115,6 @@ const setUp3 = (value: any) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const setUlp = (value: any) => {
|
const setUlp = (value: any) => {
|
||||||
selectedUp3Ulp(value)
|
|
||||||
data.value = {
|
data.value = {
|
||||||
...data.value,
|
...data.value,
|
||||||
ulp: value
|
ulp: value
|
||||||
@ -160,7 +155,6 @@ onMounted(() => {
|
|||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
fetchRegional()
|
fetchRegional()
|
||||||
fetchUid()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
emit('update:filters', data.value)
|
emit('update:filters', data.value)
|
||||||
|
@ -132,6 +132,11 @@ const fetchDataPosko = async (up3: number) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const fetchRegional = async () => {
|
const fetchRegional = async () => {
|
||||||
|
itemsUid.value = []
|
||||||
|
itemsUp3.value = []
|
||||||
|
itemsPosko.value = []
|
||||||
|
itemsUlp.value = []
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await getRegional()
|
const res = await getRegional()
|
||||||
itemsRegional.value = res.data.map((item: any) => ({
|
itemsRegional.value = res.data.map((item: any) => ({
|
||||||
@ -157,6 +162,13 @@ const formatWaktu = (durasiDetik: any): string => {
|
|||||||
return `${hari} - ${jam} : ${menit} : ${detik}`
|
return `${hari} - ${jam} : ${menit} : ${detik}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const selectedRegional = (value: any) => {
|
||||||
|
fetchUidByRegional(value.id)
|
||||||
|
itemsUid.value = []
|
||||||
|
itemsUp3.value = []
|
||||||
|
itemsPosko.value = []
|
||||||
|
itemsUlp.value = []
|
||||||
|
}
|
||||||
|
|
||||||
const selectedUid = (value: any) => {
|
const selectedUid = (value: any) => {
|
||||||
fetchDataUp3(value.id)
|
fetchDataUp3(value.id)
|
||||||
@ -203,5 +215,6 @@ export {
|
|||||||
itemsUlp,
|
itemsUlp,
|
||||||
months,
|
months,
|
||||||
years,
|
years,
|
||||||
formatWaktu
|
formatWaktu,
|
||||||
|
selectedRegional
|
||||||
}
|
}
|
||||||
|
@ -1240,7 +1240,8 @@ const getDetail = async () => {
|
|||||||
idPosko: posko ? posko.id : 0,
|
idPosko: posko ? posko.id : 0,
|
||||||
idUid: uid ? uid.id : 0,
|
idUid: uid ? uid.id : 0,
|
||||||
idUp3: up3 ? up3.id : 0,
|
idUp3: up3 ? up3.id : 0,
|
||||||
personilYantek: isTotal.value ? '' : selected?.personil_yantek ? selected?.personil_yantek : ''
|
personilYantek: isTotal.value ? '' : selected?.personil_yantek ? selected?.personil_yantek : '',
|
||||||
|
userRegu: isTotal.value ? '' : selected?.user_regu ? selected?.user_regu : ''
|
||||||
}
|
}
|
||||||
|
|
||||||
loadingSubData.value = true
|
loadingSubData.value = true
|
||||||
|
@ -312,7 +312,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Pembuat Laporan:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">No Telp Pelapor:</h3>
|
||||||
<InputText :readonly="true" :value="dataSelected?.no_telp_pelapor" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected?.no_telp_pelapor" class-name="flex-1" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -327,7 +327,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Posko:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Unit Layanan Pelanggan:</h3>
|
||||||
<InputText :readonly="true" :value="dataSelected?.nama_posko_lama" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected?.nama_posko_lama" class-name="flex-1" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -232,11 +232,21 @@
|
|||||||
<InputText :readonly="true" :value="dataSelected.no_laporan" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected.no_laporan" class-name="flex-1" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Pembuat Laporan:</h3>
|
||||||
|
<InputText :readonly="true" :value="dataSelected.pembuat_laporan" class-name="flex-1" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Tgl Lapor:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Tgl Lapor:</h3>
|
||||||
<InputText :readonly="true" :value="dataSelected?.waktu_lapor" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected?.waktu_lapor" class-name="flex-1" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Tgl Dialihkan:</h3>
|
||||||
|
<InputText :readonly="true" :value="dataSelected?.waktu_dialihkan" class-name="flex-1" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Tgl Response:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Tgl Response:</h3>
|
||||||
<InputText :readonly="true" :value="dataSelected?.waktu_response" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected?.waktu_response" class-name="flex-1" />
|
||||||
@ -247,6 +257,19 @@
|
|||||||
<InputText :readonly="true" :value="dataSelected?.waktu_recovery" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected?.waktu_recovery" class-name="flex-1" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3>
|
||||||
|
<InputText
|
||||||
|
:readonly="true"
|
||||||
|
class-name="flex-1"
|
||||||
|
:value="
|
||||||
|
parseInt(dataSelected?.durasi_recovery_time)
|
||||||
|
? formatWaktu(dataSelected?.durasi_recovery_time)
|
||||||
|
: '-'
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Response Time:</h3>
|
||||||
<InputText
|
<InputText
|
||||||
@ -261,16 +284,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Recovery Time:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Unit Asal :</h3>
|
||||||
<InputText
|
<InputText :readonly="true" :value="dataSelected?.nama_unit_lama" class-name="flex-1" />
|
||||||
:readonly="true"
|
</div>
|
||||||
class-name="flex-1"
|
|
||||||
:value="
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
parseInt(dataSelected?.durasi_recovery_time)
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Unit Tujuan :</h3>
|
||||||
? formatWaktu(dataSelected?.durasi_recovery_time)
|
<InputText :readonly="true" :value="dataSelected?.nama_unit_baru" class-name="flex-1" />
|
||||||
: '-'
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
|
@ -79,7 +79,7 @@
|
|||||||
<DxColumn
|
<DxColumn
|
||||||
:width="170"
|
:width="170"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="waktu_selesai"
|
data-field="waktu_recovery"
|
||||||
caption="Tgl Recovery"
|
caption="Tgl Recovery"
|
||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
cell-template="formatText"
|
cell-template="formatText"
|
||||||
@ -195,7 +195,7 @@
|
|||||||
|
|
||||||
<DetailDialog
|
<DetailDialog
|
||||||
:open="dialogDetail"
|
:open="dialogDetail"
|
||||||
:title="detailType == 'table' ? 'Daftar Lapor ULang' : 'Detail Gangguan'"
|
:title="detailType == 'table' ? 'Daftar Lapor Ulang' : 'Detail Keluhan'"
|
||||||
@on-close="closeDialog"
|
@on-close="closeDialog"
|
||||||
:full-width="detailType == 'table'"
|
:full-width="detailType == 'table'"
|
||||||
>
|
>
|
||||||
@ -217,7 +217,7 @@
|
|||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Tanggal Recovery:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Tanggal Recovery:</h3>
|
||||||
<InputText :readonly="true" :value="dataSelected?.waktu_selesai" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected?.waktu_recovery" class-name="flex-1" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
|
@ -75,6 +75,14 @@
|
|||||||
css-class="custom-table-column !align-top"
|
css-class="custom-table-column !align-top"
|
||||||
cell-template="formatText"
|
cell-template="formatText"
|
||||||
/>
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="170"
|
||||||
|
alignment="center"
|
||||||
|
data-field="nama_up3"
|
||||||
|
caption="UP3"
|
||||||
|
css-class="custom-table-column !align-top"
|
||||||
|
cell-template="formatText"
|
||||||
|
/>
|
||||||
<DxColumn
|
<DxColumn
|
||||||
:width="170"
|
:width="170"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
@ -136,11 +144,19 @@
|
|||||||
<DxColumn
|
<DxColumn
|
||||||
:width="150"
|
:width="150"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="nama_pelapor"
|
data-field="pembuat_laporan"
|
||||||
caption="Created By"
|
caption="Created By"
|
||||||
css-class="custom-table-column !align-top"
|
css-class="custom-table-column !align-top"
|
||||||
cell-template="formatText"
|
cell-template="formatText"
|
||||||
/>
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="170"
|
||||||
|
alignment="center"
|
||||||
|
data-field="waktu_lapor"
|
||||||
|
caption="Tgl Lapor"
|
||||||
|
css-class="custom-table-column !align-top"
|
||||||
|
cell-template="formatText"
|
||||||
|
/>
|
||||||
<DxColumn
|
<DxColumn
|
||||||
:width="170"
|
:width="170"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
@ -215,7 +231,7 @@
|
|||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Contact Center:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Contact Center:</h3>
|
||||||
<InputText :readonly="true" :value="dataSelected?.media" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected?.nama_ulp" class-name="flex-1" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row items-center justify-between w-full">
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
@ -294,6 +310,11 @@
|
|||||||
<h3 class="text-sm font-medium w-[170px] text-gray-800">Jumlah Lapor Ulang:</h3>
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Jumlah Lapor Ulang:</h3>
|
||||||
<InputText :readonly="true" :value="dataSelected?.jumlah_lapor" class-name="flex-1" />
|
<InputText :readonly="true" :value="dataSelected?.jumlah_lapor" class-name="flex-1" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="flex flex-row items-center justify-between w-full">
|
||||||
|
<h3 class="text-sm font-medium w-[170px] text-gray-800">Sumber Lapor:</h3>
|
||||||
|
<InputText :readonly="true" :value="dataSelected?.media" class-name="flex-1" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</DetailDialog>
|
</DetailDialog>
|
||||||
</template>
|
</template>
|
||||||
|
@ -69,6 +69,15 @@
|
|||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
cell-template="formatNumber"
|
cell-template="formatNumber"
|
||||||
/>
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="100"
|
||||||
|
alignment="center"
|
||||||
|
data-field="total"
|
||||||
|
data-type="number"
|
||||||
|
caption="Total"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
cell-template="formatNumber"
|
||||||
|
/>
|
||||||
</DxColumn>
|
</DxColumn>
|
||||||
|
|
||||||
<DxSummary>
|
<DxSummary>
|
||||||
|
@ -46,9 +46,9 @@
|
|||||||
:width="50"
|
:width="50"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-type="number"
|
data-type="number"
|
||||||
data-field="number"
|
|
||||||
caption="No"
|
caption="No"
|
||||||
cell-template="formatNumber"
|
cell-template="formatNumber"
|
||||||
|
:calculate-display-value="(item: any) => data.findIndex((i) => i == item) + 1"
|
||||||
/>
|
/>
|
||||||
<DxColumn
|
<DxColumn
|
||||||
:width="170"
|
:width="170"
|
||||||
@ -1175,14 +1175,7 @@ const filterData = async (params: any) => {
|
|||||||
await requestGraphQl(queries.keluhan.rekap.keluhanPerJenisKeluhan, query)
|
await requestGraphQl(queries.keluhan.rekap.keluhanPerJenisKeluhan, query)
|
||||||
.then((result) => {
|
.then((result) => {
|
||||||
if (result.data.data != undefined) {
|
if (result.data.data != undefined) {
|
||||||
data.value = [...result.data.data.rekapitulasiKeluhanPerJenisKeluhan]
|
data.value = result.data.data.rekapitulasiKeluhanPerJenisKeluhan
|
||||||
.sort((a: any, b: any) => a.tipe_keluhan.localeCompare(b.tipe_keluhan))
|
|
||||||
.map((item: any, index: number) => {
|
|
||||||
return {
|
|
||||||
...item,
|
|
||||||
number: index + 1
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
data.value = []
|
data.value = []
|
||||||
}
|
}
|
||||||
@ -1393,13 +1386,6 @@ onMounted(() => {
|
|||||||
total_diatas_sla_recovery: 2
|
total_diatas_sla_recovery: 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
.sort((a: any, b: any) => a.tipe_keluhan.localeCompare(b.tipe_keluhan))
|
|
||||||
.map((item: any, index: number) => {
|
|
||||||
return {
|
|
||||||
...item,
|
|
||||||
number: index + 1
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="flex flex-row items-center w-full mb-6 space-x-4">
|
<div class="flex flex-row items-center w-full mb-6 space-x-4">
|
||||||
<button
|
<button
|
||||||
@click="tab = 'gangguan'"
|
@click="changeTab('gangguan')"
|
||||||
type="button"
|
type="button"
|
||||||
class="px-1 py-4 text-sm"
|
class="px-1 py-4 text-sm"
|
||||||
:class="[
|
:class="[
|
||||||
@ -13,7 +13,7 @@
|
|||||||
Gangguan: Transaksi Aktif > SLA
|
Gangguan: Transaksi Aktif > SLA
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
@click="tab = 'keluhan'"
|
@click="changeTab('keluhan')"
|
||||||
type="button"
|
type="button"
|
||||||
class="px-1 py-4 text-sm"
|
class="px-1 py-4 text-sm"
|
||||||
:class="[
|
:class="[
|
||||||
@ -179,7 +179,6 @@
|
|||||||
cell-template="formatText"
|
cell-template="formatText"
|
||||||
/>
|
/>
|
||||||
<DxColumn
|
<DxColumn
|
||||||
v-if="tab == 'keluhan'"
|
|
||||||
:width="170"
|
:width="170"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="status_akhir"
|
data-field="status_akhir"
|
||||||
@ -188,7 +187,6 @@
|
|||||||
cell-template="formatText"
|
cell-template="formatText"
|
||||||
/>
|
/>
|
||||||
<DxColumn
|
<DxColumn
|
||||||
v-if="tab == 'keluhan'"
|
|
||||||
:width="170"
|
:width="170"
|
||||||
alignment="center"
|
alignment="center"
|
||||||
data-field="durasi_time"
|
data-field="durasi_time"
|
||||||
@ -196,6 +194,14 @@
|
|||||||
css-class="custom-table-column"
|
css-class="custom-table-column"
|
||||||
cell-template="formatTime"
|
cell-template="formatTime"
|
||||||
/>
|
/>
|
||||||
|
<DxColumn
|
||||||
|
:width="170"
|
||||||
|
alignment="center"
|
||||||
|
data-field="email_pelapor"
|
||||||
|
caption="Email"
|
||||||
|
css-class="custom-table-column"
|
||||||
|
cell-template="formatText"
|
||||||
|
/>
|
||||||
|
|
||||||
<template #formatText="{ data }">
|
<template #formatText="{ data }">
|
||||||
<p class="text-left">
|
<p class="text-left">
|
||||||
@ -274,6 +280,11 @@ const reportMeta = ref({
|
|||||||
periode: ''
|
periode: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const changeTab = (newTab: string) => {
|
||||||
|
tab.value = newTab
|
||||||
|
data.value = []
|
||||||
|
}
|
||||||
|
|
||||||
const formatMetaData = (reportMeta: any) => {
|
const formatMetaData = (reportMeta: any) => {
|
||||||
const periode = reportMeta.periode ? reportMeta.periode.split(' s/d ') : ''
|
const periode = reportMeta.periode ? reportMeta.periode.split(' s/d ') : ''
|
||||||
|
|
||||||
@ -305,31 +316,12 @@ const onExporting = (e: any) => {
|
|||||||
const worksheet = workbook.addWorksheet('Transaksi APKT')
|
const worksheet = workbook.addWorksheet('Transaksi APKT')
|
||||||
|
|
||||||
setHeaderStyle(worksheet, 1, 1, 'PT. PLN(Persero)')
|
setHeaderStyle(worksheet, 1, 1, 'PT. PLN(Persero)')
|
||||||
setHeaderStyle(
|
|
||||||
worksheet,
|
setHeaderStyle(worksheet, 3, 1, 'Transaksi APKT'.toUpperCase(), true)
|
||||||
2,
|
|
||||||
1,
|
|
||||||
`UNIT PLN : ${reportMeta.value.uid.id ? reportMeta.value.uid.name.toUpperCase() + ',' : ''} ${reportMeta.value.up3.id ? reportMeta.value.up3.name.toUpperCase() + ',' : ''} ${reportMeta.value.ulp.id ? reportMeta.value.ulp.name.toUpperCase() + ',' : ''}`
|
|
||||||
)
|
|
||||||
setHeaderStyle(
|
|
||||||
worksheet,
|
|
||||||
3,
|
|
||||||
1,
|
|
||||||
`STATUS : ${reportMeta.value.status ? reportMeta.value.status.name.toUpperCase() : ''}`
|
|
||||||
)
|
|
||||||
setHeaderStyle(
|
setHeaderStyle(
|
||||||
worksheet,
|
worksheet,
|
||||||
4,
|
4,
|
||||||
1,
|
1,
|
||||||
`SLA : ${reportMeta.value.sla ? reportMeta.value.sla.name.toUpperCase() : ''}`
|
|
||||||
)
|
|
||||||
setHeaderStyle(worksheet, 5, 1, `PENCARIAN : ${reportMeta.value.keyword.toUpperCase()}`)
|
|
||||||
|
|
||||||
setHeaderStyle(worksheet, 7, 1, 'Transaksi APKT'.toUpperCase(), true)
|
|
||||||
setHeaderStyle(
|
|
||||||
worksheet,
|
|
||||||
8,
|
|
||||||
1,
|
|
||||||
`PERIODE TANGGAL : ${meta.dateFromFormat} SD TGL ${meta.dateToFormat}`,
|
`PERIODE TANGGAL : ${meta.dateFromFormat} SD TGL ${meta.dateToFormat}`,
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
@ -338,15 +330,12 @@ const onExporting = (e: any) => {
|
|||||||
worksheet.mergeCells('A2:M2')
|
worksheet.mergeCells('A2:M2')
|
||||||
worksheet.mergeCells('A3:M3')
|
worksheet.mergeCells('A3:M3')
|
||||||
worksheet.mergeCells('A4:M4')
|
worksheet.mergeCells('A4:M4')
|
||||||
worksheet.mergeCells('A5:M5')
|
|
||||||
worksheet.mergeCells('A7:M7')
|
|
||||||
worksheet.mergeCells('A8:M8')
|
|
||||||
|
|
||||||
exportToExcel({
|
exportToExcel({
|
||||||
component: e.component,
|
component: e.component,
|
||||||
worksheet,
|
worksheet,
|
||||||
autoFilterEnabled: true,
|
autoFilterEnabled: true,
|
||||||
topLeftCell: { row: 10, column: 1 },
|
topLeftCell: { row: 6, column: 1 },
|
||||||
loadPanel: {
|
loadPanel: {
|
||||||
enabled: false
|
enabled: false
|
||||||
}
|
}
|
||||||
|
@ -4449,6 +4449,7 @@ export const queries = {
|
|||||||
$idUid: Int!
|
$idUid: Int!
|
||||||
$idUp3: Int!
|
$idUp3: Int!
|
||||||
$personilYantek: String!
|
$personilYantek: String!
|
||||||
|
$userRegu: String!
|
||||||
) {
|
) {
|
||||||
detailCheckInCheckOutIndividu(
|
detailCheckInCheckOutIndividu(
|
||||||
dateFrom: $dateFrom
|
dateFrom: $dateFrom
|
||||||
@ -4457,6 +4458,7 @@ export const queries = {
|
|||||||
idUid: $idUid
|
idUid: $idUid
|
||||||
idUp3: $idUp3
|
idUp3: $idUp3
|
||||||
personilYantek: $personilYantek
|
personilYantek: $personilYantek
|
||||||
|
userRegu: $userRegu
|
||||||
) {
|
) {
|
||||||
id
|
id
|
||||||
id_uid
|
id_uid
|
||||||
@ -4512,6 +4514,7 @@ export const queries = {
|
|||||||
$idUid: Int!
|
$idUid: Int!
|
||||||
$idUp3: Int!
|
$idUp3: Int!
|
||||||
$personilYantek: String!
|
$personilYantek: String!
|
||||||
|
$userRegu: String!
|
||||||
) {
|
) {
|
||||||
detailCheckInCheckOutKhusus(
|
detailCheckInCheckOutKhusus(
|
||||||
dateFrom: $dateFrom
|
dateFrom: $dateFrom
|
||||||
@ -4520,6 +4523,7 @@ export const queries = {
|
|||||||
idUid: $idUid
|
idUid: $idUid
|
||||||
idUp3: $idUp3
|
idUp3: $idUp3
|
||||||
personilYantek: $personilYantek
|
personilYantek: $personilYantek
|
||||||
|
userRegu: $userRegu
|
||||||
) {
|
) {
|
||||||
id
|
id
|
||||||
nama_uid
|
nama_uid
|
||||||
|
Reference in New Issue
Block a user