ต่อ api รายละเอียดการประเมินของ

This commit is contained in:
setthawutttty 2023-12-22 18:20:49 +07:00
parent cab89c78f3
commit 4521f80918
17 changed files with 1226 additions and 191 deletions

View file

@ -1,6 +1,24 @@
<script setup lang="ts">
import { ref } from "vue";
import axios from "axios";
import http from "@/plugins/http";
import config from "@/app.config";
import { useRouter, useRoute } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import keycloak from "@/plugins/keycloak";
import genReport from "@/plugins/genreport";
const fullName = ref<string>(
keycloak.tokenParsed ? keycloak.tokenParsed.name!.toString() : ""
);
const $q = useQuasar();
const mixin = useCounterMixin();
const { date2Thai, showLoader, hideLoader, messageError, success } = mixin;
const router = useRouter();
const route = useRoute();
const id = ref<string>(route.params.id as string);
const modalConfirm = ref<boolean>(false);
const modalView = ref<boolean>(false);
const pdfSrc = ref<any>();
@ -9,33 +27,26 @@ const nameOfWork = ref<string>("");
const nameOfOwner = ref<string>("");
const position = ref<string>("");
const status = ref<string>("WAIT_CHECK_DOC_V2");
const fileEvaluation91 = ref<any>();
const fileEvaluation92 = ref<any>();
const fileEvaluation93 = ref<any>();
const fileEvaluation94 = ref<any>();
const fileEvaluation95 = ref<any>();
const fileEvaluation96 = ref<any>();
const fileEvaluation81 = ref<any>();
const fileEvaluation82 = ref<any>();
const fileEvaluation83 = ref<any>();
const fileEvaluation84 = ref<any>();
const fileEvaluation85 = ref<any>();
const fileEvaluation86 = ref<any>();
async function onClickDowloadFile(
tp: string,
templateName: string,
fileName: string
) {
// showLoader();
// const data = Object.assign(
// { fullName: fullName.value },
// tp === "EV1_005" || tp === "EV1_007"
// ? { organizationName: "" }
// : null,
// tp === "EV1_007" ? { positionName: "" } : null,
// tp === "EV1_007" ? { positionLeaveName: "" } : null
// );
// const body = {
// template: tp,
// reportName: templateName,
// data: data,
// };
// await genReport(body, fileName);
showLoader();
const body = {
template: tp,
reportName: templateName,
data:{}
};
await genReport(body, fileName);
}
function onClickViewPDF(file: any) {
@ -46,6 +57,113 @@ function onClickViewPDF(file: any) {
function openConfirmEvalution() {
modalConfirm.value = true;
}
function upLoadFile(name: string, file: any) {
showLoader();
http
.post(config.API.evaluationFileListbyId("เล่ม 2", id.value), {
fileList: {
fileName: name,
metadata: {
tag: "value",
},
},
})
.then((res) => {
const foundKey: any = Object.keys(res.data).find(
(key) =>
res.data[key]?.fileName !== undefined &&
res.data[key]?.fileName !== ""
);
const link = res.data[foundKey]?.uploadUrl;
fileUpLoad(link, file);
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
}
function fileUpLoad(url: string, file: any) {
axios
.put(url, file, {
headers: { "Content-Type": file?.type },
onUploadProgress: (e) => console.log(e),
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
fileEvaluation81.value = null;
fileEvaluation82.value = null;
fileEvaluation83.value = null;
fileEvaluation84.value = null;
fileEvaluation85.value = null;
fileEvaluation86.value = null;
success($q, "อัปโหลดไฟล์สำเร็จ");
});
}
function downloadFile() {
showLoader();
http
.get(config.API.evaluationFilebyId("เล่ม 2", id.value, '2-เอกสารเล่ม 2 (ฉบับแก้ไข)'))
.then((res) => {
const link = res.data.downloadUrl;
const type = res.data.fileType;
const fileName = res.data.fileName;
getPDF(link, type, fileName);
})
.catch((e) => {})
.finally(() => {
hideLoader();
});
}
function getPDF(url: string, type: string, fileName: string) {
axios
.get(url, {
method: "GET",
responseType: "blob",
headers: {
"Content-Type": "application/json",
Accept: type, //
},
})
.then(async (res) => {
console.log(res);
const a = document.createElement("a");
a.href = window.URL.createObjectURL(res.data);
a.download = fileName;
// a.download = res.data.fileName + `.${mime.getExtension(res.data.fileType)}`
a.click();
})
.catch((e) => {})
.finally(() => {});
}
function confirmApprove(){
const data = {
metadata: {
additionalProp1: nameOfWork.value,
additionalProp2: nameOfOwner.value,
additionalProp3: position.value,
},
}
showLoader()
http
.patch(config.API.evaluationPatchData('เล่ม 2',id.value,'2-เอกสารเล่ม 2 (ฉบับแก้ไข)'),data)
.then((res)=>{
console.log(res)
}).catch((e)=>{
messageError($q,e)
}).finally(()=>{
modalConfirm.value = false
hideLoader()
})
}
</script>
<template>
@ -78,9 +196,9 @@ function openConfirmEvalution() {
color="primary"
@click="
onClickDowloadFile(
'EV1_005',
'template-1',
'แบบพิจารณาคุณสมบัติบุคคล'
'เอกสารแบบ ค',
'template-4',
'เอกสารแบบ ค'
)
"
>
@ -89,20 +207,20 @@ function openConfirmEvalution() {
</div>
<div class="col-xs-12 col-sm-6 row">
<q-btn
v-if="fileEvaluation91"
v-if="fileEvaluation81"
class="col-12"
outline
icon="visibility"
label="ดูไฟล์เอกสาร"
color="primary"
@click="onClickViewPDF(fileEvaluation91)"
@click="onClickViewPDF(fileEvaluation81)"
>
<q-tooltip> ไฟลเอกสาร </q-tooltip></q-btn
>
</div>
<div class="col-xs-12 col-sm-10 row">
<q-file
v-model="fileEvaluation91"
v-model="fileEvaluation81"
class="col-12"
outlined
dense
@ -110,6 +228,7 @@ function openConfirmEvalution() {
lazy-rules
label="อัปโหลดไฟล์"
accept=".pdf"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
@ -123,6 +242,12 @@ function openConfirmEvalution() {
dense
color="primary"
icon="mdi-upload"
@click="
upLoadFile(
'แบบตรวจสอบความถูกต้องครบถ้วนของข้อมูลประกอบการประเมินผลงาน (เอกสารแบบ ค)',
fileEvaluation81
)
"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
</div>
@ -149,9 +274,9 @@ function openConfirmEvalution() {
color="primary"
@click="
onClickDowloadFile(
'EV1_005',
'template-1',
'แบบพิจารณาคุณสมบัติบุคคล'
'เอกสารหมายเลข 15',
'template-4',
'เอกสารหมายเลข 15'
)
"
>
@ -160,20 +285,20 @@ function openConfirmEvalution() {
</div>
<div class="col-xs-12 col-sm-6 row">
<q-btn
v-if="fileEvaluation92"
v-if="fileEvaluation82"
class="col-12"
outline
icon="visibility"
label="ดูไฟล์เอกสาร"
color="primary"
@click="onClickViewPDF(fileEvaluation92)"
@click="onClickViewPDF(fileEvaluation82)"
>
<q-tooltip> ไฟลเอกสาร </q-tooltip></q-btn
>
</div>
<div class="col-xs-12 col-sm-10 row">
<q-file
v-model="fileEvaluation92"
v-model="fileEvaluation82"
class="col-12"
outlined
dense
@ -181,6 +306,7 @@ function openConfirmEvalution() {
lazy-rules
label="อัปโหลดไฟล์"
accept=".pdf"
>
<template v-slot:prepend>
<q-icon name="attach_file" />
@ -194,6 +320,12 @@ function openConfirmEvalution() {
dense
color="primary"
icon="mdi-upload"
@click="
upLoadFile(
'บัญชีแสดงการรับ-ส่งผลงาน (เอกสารหมายเลข 15)',
fileEvaluation82
)
"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
</div>
@ -220,9 +352,9 @@ function openConfirmEvalution() {
color="primary"
@click="
onClickDowloadFile(
'EV1_005',
'template-1',
'แบบพิจารณาคุณสมบัติบุคคล'
'เอกสารหมายเลข 16',
'template-4',
'เอกสารหมายเลข 16'
)
"
>
@ -231,20 +363,20 @@ function openConfirmEvalution() {
</div>
<div class="col-xs-12 col-sm-6 row">
<q-btn
v-if="fileEvaluation93"
v-if="fileEvaluation83"
class="col-12"
outline
icon="visibility"
label="ดูไฟล์เอกสาร"
color="primary"
@click="onClickViewPDF(fileEvaluation93)"
@click="onClickViewPDF(fileEvaluation83)"
>
<q-tooltip> ไฟลเอกสาร </q-tooltip></q-btn
>
</div>
<div class="col-xs-12 col-sm-10 row">
<q-file
v-model="fileEvaluation93"
v-model="fileEvaluation83"
class="col-12"
outlined
dense
@ -265,6 +397,12 @@ function openConfirmEvalution() {
dense
color="primary"
icon="mdi-upload"
@click="
upLoadFile(
'แบบประเมินผลงาน (เอกสารหมายเลข 16)',
fileEvaluation83
)
"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
</div>
@ -291,9 +429,9 @@ function openConfirmEvalution() {
color="primary"
@click="
onClickDowloadFile(
'EV1_005',
'template-1',
'แบบพิจารณาคุณสมบัติบุคคล'
'เอกสารหมายเลข 17',
'template-4',
'เอกสารหมายเลข 17'
)
"
>
@ -302,20 +440,20 @@ function openConfirmEvalution() {
</div>
<div class="col-xs-12 col-sm-6 row">
<q-btn
v-if="fileEvaluation94"
v-if="fileEvaluation84"
class="col-12"
outline
icon="visibility"
label="ดูไฟล์เอกสาร"
color="primary"
@click="onClickViewPDF(fileEvaluation94)"
@click="onClickViewPDF(fileEvaluation84)"
>
<q-tooltip> ไฟลเอกสาร </q-tooltip></q-btn
>
</div>
<div class="col-xs-12 col-sm-10 row">
<q-file
v-model="fileEvaluation94"
v-model="fileEvaluation84"
class="col-12"
outlined
dense
@ -336,6 +474,12 @@ function openConfirmEvalution() {
dense
color="primary"
icon="mdi-upload"
@click="
upLoadFile(
'แบบแสดงการประเมินผลงาน (เอกสารหมายเลข 17)',
fileEvaluation84
)
"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
</div>
@ -362,9 +506,9 @@ function openConfirmEvalution() {
color="primary"
@click="
onClickDowloadFile(
'EV1_005',
'template-1',
'แบบพิจารณาคุณสมบัติบุคคล'
'เอกสารหมายเลข 18',
'template-4',
'เอกสารหมายเลข 18'
)
"
>
@ -373,20 +517,20 @@ function openConfirmEvalution() {
</div>
<div class="col-xs-12 col-sm-6 row">
<q-btn
v-if="fileEvaluation95"
v-if="fileEvaluation85"
class="col-12"
outline
icon="visibility"
label="ดูไฟล์เอกสาร"
color="primary"
@click="onClickViewPDF(fileEvaluation95)"
@click="onClickViewPDF(fileEvaluation85)"
>
<q-tooltip> ไฟลเอกสาร </q-tooltip></q-btn
>
</div>
<div class="col-xs-12 col-sm-10 row">
<q-file
v-model="fileEvaluation95"
v-model="fileEvaluation85"
class="col-12"
outlined
dense
@ -407,6 +551,12 @@ function openConfirmEvalution() {
dense
color="primary"
icon="mdi-upload"
@click="
upLoadFile(
'แบบรายงานผลการประเมินบุคคล (เอกสารหมายเลข 18)',
fileEvaluation85
)
"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
</div>
@ -433,9 +583,9 @@ function openConfirmEvalution() {
color="primary"
@click="
onClickDowloadFile(
'EV1_005',
'template-1',
'แบบพิจารณาคุณสมบัติบุคคล'
'เอกสารแบบ ง',
'template-4',
'เอกสารแบบ ง'
)
"
>
@ -444,20 +594,20 @@ function openConfirmEvalution() {
</div>
<div class="col-xs-12 col-sm-6 row">
<q-btn
v-if="fileEvaluation96"
v-if="fileEvaluation86"
class="col-12"
outline
icon="visibility"
label="ดูไฟล์เอกสาร"
color="primary"
@click="onClickViewPDF(fileEvaluation96)"
@click="onClickViewPDF(fileEvaluation86)"
>
<q-tooltip> ไฟลเอกสาร </q-tooltip></q-btn
>
</div>
<div class="col-xs-12 col-sm-10 row">
<q-file
v-model="fileEvaluation96"
v-model="fileEvaluation86"
class="col-12"
outlined
dense
@ -478,6 +628,12 @@ function openConfirmEvalution() {
dense
color="primary"
icon="mdi-upload"
@click="
upLoadFile(
'แบบสรุปผลการประเมิน (เอกสารแบบ ง)',
fileEvaluation86
)
"
><q-tooltip>ปโหลดไฟล</q-tooltip></q-btn
>
</div>
@ -506,13 +662,7 @@ function openConfirmEvalution() {
icon="download"
label="ดาวน์โหลด"
color="primary"
@click="
onClickDowloadFile(
'EV1_005',
'template-1',
'แบบพิจารณาคุณสมบัติบุคคล'
)
"
@click="downloadFile"
>
<q-tooltip> ดาวนโหลดตนแบบ </q-tooltip></q-btn
>
@ -591,6 +741,7 @@ function openConfirmEvalution() {
id="onSubmit"
class="q-px-md q-py-xs"
label="ยืนยัน"
@click="confirmApprove"
>
</q-btn>
</div>