From 14293e6f6b120a161e5a946cb2364ded98def4b7 Mon Sep 17 00:00:00 2001 From: setthawutttty Date: Tue, 29 Aug 2023 09:34:27 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=9A=E0=B8=9A=E0=B8=9A=E0=B8=B1?= =?UTF-8?q?=E0=B8=99=E0=B8=97=E0=B8=B6=E0=B8=81=E0=B8=9C=E0=B8=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/reports/api.report.ts | 6 +- .../probation/FormEvaluation/Template1.vue | 99 ++++++++++++++++--- 2 files changed, 87 insertions(+), 18 deletions(-) diff --git a/src/api/reports/api.report.ts b/src/api/reports/api.report.ts index 6230ed1ae..efd6111d6 100644 --- a/src/api/reports/api.report.ts +++ b/src/api/reports/api.report.ts @@ -22,9 +22,9 @@ export default { //ระบบทดลองงาน reportAssign:(type:string, id:string) => `${reportProbation}/13/${type}/${id}`, - reportEvaluate:(type:string, id:string) => `${reportProbation}/14/${type}/${id}`, - reportEvaluateRecord1:(type:string, id:string) => `${reportProbation}/15/${type}/${id}`, - reportEvaluateRecord2:(type:string, id:string) => `${reportProbation}/16/${type}/${id}`, + reportEvaluateRecord1:(type:string, id:string) => `${reportProbation}/14/${type}/${id}`, + reportEvaluateRecord2:(type:string, id:string) => `${reportProbation}/15/${type}/${id}`, + reportEvaluate:(type:string, id:string) => `${reportProbation}/16/${type}/${id}`, reportEvaluateChairman:(type:string, id:string) => `${reportProbation}/17/${type}/${id}`, reportEvaluateResult:(type:string, id:string) => `${reportProbation}/18/${type}/${id}`, reportSurvey:(type:string, id:string) => `${reportProbation}/19/${type}/${id}` diff --git a/src/modules/05_placement/components/probation/FormEvaluation/Template1.vue b/src/modules/05_placement/components/probation/FormEvaluation/Template1.vue index ea6b89b68..fcc7ae974 100644 --- a/src/modules/05_placement/components/probation/FormEvaluation/Template1.vue +++ b/src/modules/05_placement/components/probation/FormEvaluation/Template1.vue @@ -3,15 +3,17 @@ import { ref, defineAsyncComponent, watch, onMounted, onUpdated } from "vue"; import { useCounterMixin } from "@/stores/mixin"; import { useQuasar } from "quasar"; import { useRoute, useRouter } from "vue-router"; -const Header = defineAsyncComponent(() => - import( - "@/modules/05_placement/components/probation/FormEvaluation/Header.vue" - ) +const Header = defineAsyncComponent( + () => + import( + "@/modules/05_placement/components/probation/FormEvaluation/Header.vue" + ) ); -const FormSaveResult = defineAsyncComponent(() => - import( - "@/modules/05_placement/components/probation/FormEvaluation/FormSaveResult.vue" - ) +const FormSaveResult = defineAsyncComponent( + () => + import( + "@/modules/05_placement/components/probation/FormEvaluation/FormSaveResult.vue" + ) ); import http from "@/plugins/http"; @@ -24,12 +26,12 @@ const mixin = useCounterMixin(); const { showLoader, hideLoader, messageError, success } = mixin; const assignId = ref(route.params.form.toString()); const personalId = ref(route.params.personalId.toString()); - +const fullname = ref(""); const evaluate = ref([]); const tabs = ref([]); const tab = ref("save1"); const dataArrayNumber = ref(); - +const dataRole = ref("metor"); onMounted(async () => { await fecthAssign(assignId.value); }); @@ -41,6 +43,7 @@ const fecthAssign = async (id: string) => { .then(async (res: any) => { evaluate.value = res.data.data.evaluate; tabs.value = evaluate.value; + fullname.value = res.data.data.person.name; dataArrayNumber.value = 1; }) .catch((e: any) => { @@ -56,6 +59,58 @@ const changeTab = (tabVal: string) => { tab.value = tabVal; dataArrayNumber.value = Number(tabVal.charAt(4)); }; +const downloadFile = (response: any, filename: string) => { + const link = document.createElement("a"); + var fileName = filename; + link.href = window.URL.createObjectURL(new Blob([response.data])); + link.setAttribute("download", fileName); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); +}; + +const FileDownload = async (type: string) => { + let numTab = evaluate.value.find((e: any) => e.no === dataArrayNumber.value); + //ผู้ดูเเล + if (dataRole.value == "mentor") { + showLoader(); + await http + .get(config.API.reportEvaluateRecord1(type, numTab.id), { + responseType: "blob", + }) + .then(async (res) => { + downloadFile( + res, + `แบบบันทึกผล(ผู้ดูเเล)_${fullname.value}_ครั้งที่${numTab.no}.${type}` + ); + }) + .catch((e) => { + messageError($q, e); + }) + .finally(() => { + hideLoader(); + }); + } else { + //ผุ้บังคับ + showLoader(); + await http + .get(config.API.reportEvaluateRecord2(type, numTab.id), { + responseType: "blob", + }) + .then(async (res) => { + downloadFile( + res, + `แบบบันทึกผล(ผู้บังคับบัญชา)_${fullname.value}_ครั้งที่${numTab.no}.${type}` + ); + }) + .catch((e) => { + messageError($q, e); + }) + .finally(() => { + hideLoader(); + }); + } +}; const addData = () => { router.push( `/probation/detail/addresult/${personalId.value}/${assignId.value}` @@ -64,15 +119,29 @@ const addData = () => {