Merge branch 'develop' of github.com:Frappet/BMA-EHR-USER into develop
* 'develop' of github.com:Frappet/BMA-EHR-USER: no message ผูก API
This commit is contained in:
commit
f7f0198613
3 changed files with 249 additions and 25 deletions
|
|
@ -1,18 +1,28 @@
|
|||
<script setup lang="ts">
|
||||
import { computed, ref } from "vue";
|
||||
import { computed, ref, onMounted } from "vue";
|
||||
import DialogHeader from "@/components/DialogHeader.vue";
|
||||
import { useQuasar } from "quasar";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import { useKpiDataStore } from "@/modules/08_KPI/store";
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
import { useRoute } from "vue-router";
|
||||
|
||||
const store = useKpiDataStore();
|
||||
const $q = useQuasar();
|
||||
const mixin = useCounterMixin();
|
||||
const { dialogConfirm, success, showLoader, hideLoader, dialogMessageNotify } =
|
||||
mixin;
|
||||
const {
|
||||
dialogConfirm,
|
||||
success,
|
||||
showLoader,
|
||||
hideLoader,
|
||||
dialogMessageNotify,
|
||||
messageError,
|
||||
} = mixin;
|
||||
|
||||
const separator = ref<any>("cell");
|
||||
|
||||
const route = useRoute();
|
||||
const id = ref<string>(route.params.id as string);
|
||||
const additionalSuperiorCommentRef = ref<any>(null);
|
||||
const superiorCommentRef = ref<any>(null);
|
||||
|
||||
|
|
@ -28,7 +38,7 @@ const superiorCommentCheck = ref<string>("");
|
|||
const additionalSuperiorCheck = ref<string>("");
|
||||
|
||||
const weight1 = ref<number>(10);
|
||||
const result1 = ref<number>(20);
|
||||
const result1 = ref<number>(0);
|
||||
const weight2 = ref<number>(50);
|
||||
const result2 = ref<number>(60);
|
||||
const sumWeight = computed(() => {
|
||||
|
|
@ -79,21 +89,77 @@ function convert(score: any): string {
|
|||
}
|
||||
|
||||
function onSubmit() {
|
||||
dialogConfirm($q, () => {});
|
||||
dialogConfirm($q, () => {
|
||||
showLoader();
|
||||
http
|
||||
.put(config.API.kpiSendToReason(id.value, "user"), {
|
||||
topicEvaluator: title.value,
|
||||
developEvaluator: developmentMethod.value,
|
||||
timeEvaluator: developmentPeriod.value,
|
||||
reasonEvaluator: evaluatorComment.value,
|
||||
})
|
||||
.then((res) => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
fetchEvaluation();
|
||||
getData();
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function onSubmitCommander() {
|
||||
if (superiorCommentCheck.value == "") {
|
||||
dialogMessageNotify($q, "กรุณาเลือกความคิดเห็น");
|
||||
} else {
|
||||
dialogConfirm($q, () => {});
|
||||
dialogConfirm($q, () => {
|
||||
showLoader();
|
||||
http
|
||||
.put(config.API.kpiSendToReason(id.value, "commander"), {
|
||||
isReason: superiorCommentCheck.value,
|
||||
reason: superiorComment.value,
|
||||
})
|
||||
.then((res) => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
fetchEvaluation();
|
||||
getData();
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
function onSubmitCommanderHigh() {
|
||||
if (additionalSuperiorCheck.value == "") {
|
||||
dialogMessageNotify($q, "กรุณาเลือกความคิดเห็น");
|
||||
} else {
|
||||
dialogConfirm($q, () => {});
|
||||
dialogConfirm($q, () => {
|
||||
showLoader();
|
||||
http
|
||||
.put(config.API.kpiSendToReason(id.value, "commanderHigh"), {
|
||||
isReason: additionalSuperiorCheck.value,
|
||||
reason: additionalSuperiorComment.value,
|
||||
})
|
||||
.then((res) => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
fetchEvaluation();
|
||||
getData();
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -106,6 +172,49 @@ function resetCommanderHigh() {
|
|||
additionalSuperiorComment.value = "";
|
||||
additionalSuperiorCommentRef.value.resetValidation();
|
||||
}
|
||||
|
||||
async function fetchEvaluation() {
|
||||
await http
|
||||
.get(config.API.kpiEvaluation + `/${id.value}`)
|
||||
.then(async (res) => {
|
||||
const data = res.data.result;
|
||||
store.dataEvaluation = await data;
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
|
||||
function getData() {
|
||||
http
|
||||
.get(config.API.kpiSendToGet(id.value))
|
||||
.then((res) => {
|
||||
const data = res.data.result;
|
||||
title.value = data.topicEvaluator;
|
||||
developmentMethod.value = data.developEvaluator;
|
||||
developmentPeriod.value = data.timeEvaluator;
|
||||
evaluatorComment.value = data.reasonEvaluator;
|
||||
superiorCommentCheck.value = data.isReasonCommander.toString();
|
||||
superiorComment.value = data.reasonCommander;
|
||||
|
||||
additionalSuperiorCheck.value = data.isReasonCommanderHigh.toString();
|
||||
additionalSuperiorComment.value = data.reasonCommanderHigh;
|
||||
result1.value = data.totalPoint1
|
||||
result2.value = data.totalPoint2_1 + data.totalPoint2_2
|
||||
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {});
|
||||
}
|
||||
onMounted(() => {
|
||||
getData();
|
||||
fetchEvaluation();
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
<div class="q-pa-sm">
|
||||
|
|
@ -213,10 +322,14 @@ function resetCommanderHigh() {
|
|||
<q-input
|
||||
v-model="title"
|
||||
outlined
|
||||
lazy-rules
|
||||
hide-bottom-space
|
||||
type="textarea"
|
||||
label="ชื่อเรื่อง/เนื้อหา/หัวข้อการพัฒนา"
|
||||
:readonly="store.rolePerson !== 'EVALUATOR'"
|
||||
:readonly="
|
||||
store.rolePerson !== 'EVALUATOR' ||
|
||||
store.dataEvaluation.evaluationStatus !== 'SUMMARY'
|
||||
"
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกชื่อเรื่อง/เนื้อหา/หัวข้อการพัฒนา'}`,]"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -224,10 +337,14 @@ function resetCommanderHigh() {
|
|||
<q-input
|
||||
v-model="developmentMethod"
|
||||
outlined
|
||||
lazy-rules
|
||||
hide-bottom-space
|
||||
type="textarea"
|
||||
label="วิธีการพัฒนา"
|
||||
:readonly="store.rolePerson !== 'EVALUATOR'"
|
||||
:readonly="
|
||||
store.rolePerson !== 'EVALUATOR' ||
|
||||
store.dataEvaluation.evaluationStatus !== 'SUMMARY'
|
||||
"
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกวิธีการพัฒนา'}`,]"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -236,9 +353,13 @@ function resetCommanderHigh() {
|
|||
v-model="developmentPeriod"
|
||||
outlined
|
||||
hide-bottom-space
|
||||
lazy-rules
|
||||
type="textarea"
|
||||
label="ช่วงเวลาการพัฒนา"
|
||||
:readonly="store.rolePerson !== 'EVALUATOR'"
|
||||
:readonly="
|
||||
store.rolePerson !== 'EVALUATOR' ||
|
||||
store.dataEvaluation.evaluationStatus !== 'SUMMARY'
|
||||
"
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกช่วงเวลาการพัฒนา'}`,]"
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -251,17 +372,32 @@ function resetCommanderHigh() {
|
|||
<q-input
|
||||
v-model="evaluatorComment"
|
||||
outlined
|
||||
lazy-rules
|
||||
type="textarea"
|
||||
hide-bottom-space
|
||||
label="ความเห็นของผู้ประเมิน"
|
||||
:readonly="store.rolePerson !== 'EVALUATOR'"
|
||||
:readonly="
|
||||
store.rolePerson !== 'EVALUATOR' ||
|
||||
store.dataEvaluation.evaluationStatus !== 'SUMMARY'
|
||||
"
|
||||
:rules="[(val:string) => !!val || `${'กรุณากรอกความเห็นของ'}`,]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator v-if="store.rolePerson == 'EVALUATOR'" />
|
||||
<q-card-actions v-if="store.rolePerson == 'EVALUATOR'" align="right">
|
||||
<q-separator
|
||||
v-if="
|
||||
store.rolePerson == 'EVALUATOR' &&
|
||||
store.dataEvaluation.evaluationStatus == 'SUMMARY'
|
||||
"
|
||||
/>
|
||||
<q-card-actions
|
||||
v-if="
|
||||
store.rolePerson == 'EVALUATOR' &&
|
||||
store.dataEvaluation.evaluationStatus == 'SUMMARY'
|
||||
"
|
||||
align="right"
|
||||
>
|
||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
|
@ -272,7 +408,11 @@ function resetCommanderHigh() {
|
|||
<q-card
|
||||
bordered
|
||||
class="q-mt-md"
|
||||
v-if="store.rolePerson == 'COMMANDER' && evaluatorComment !== '' && store.dataEvaluation.commanderId !== null"
|
||||
v-if="
|
||||
store.rolePerson == 'COMMANDER' &&
|
||||
evaluatorComment !== null &&
|
||||
store.dataEvaluation.commanderId !== null
|
||||
"
|
||||
>
|
||||
<q-form greedy @submit.prevent @validation-success="onSubmitCommander">
|
||||
<q-toolbar>
|
||||
|
|
@ -290,6 +430,10 @@ function resetCommanderHigh() {
|
|||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
val="true"
|
||||
:disable="
|
||||
store.dataEvaluation.evaluationStatus !==
|
||||
'SUMMARY_COMMANDER'
|
||||
"
|
||||
label="เห็นด้วยกับผลการประเมิน"
|
||||
@click="resetCommander()"
|
||||
/>
|
||||
|
|
@ -299,15 +443,20 @@ function resetCommanderHigh() {
|
|||
unchecked-icon="panorama_fish_eye"
|
||||
val="false"
|
||||
label="มีความเห็นต่าง ดังนี้"
|
||||
:disable="
|
||||
store.dataEvaluation.evaluationStatus !==
|
||||
'SUMMARY_COMMANDER'
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<q-input
|
||||
lazy-rules
|
||||
v-model="superiorComment"
|
||||
outlined
|
||||
:readonly="superiorCommentCheck == 'true'"
|
||||
:readonly="superiorCommentCheck == 'true'||store.dataEvaluation.evaluationStatus !== 'SUMMARY_COMMANDER'"
|
||||
type="textarea"
|
||||
label="ความเห็นของผู้บังคับบัญชาเหนือขึ้นไป"
|
||||
hide-bottom-space
|
||||
|
|
@ -317,8 +466,13 @@ function resetCommanderHigh() {
|
|||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator />
|
||||
<q-card-actions align="right">
|
||||
<q-separator
|
||||
v-if="store.dataEvaluation.evaluationStatus == 'SUMMARY_COMMANDER'"
|
||||
/>
|
||||
<q-card-actions
|
||||
align="right"
|
||||
v-if="store.dataEvaluation.evaluationStatus == 'SUMMARY_COMMANDER'"
|
||||
>
|
||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
|
@ -329,7 +483,11 @@ function resetCommanderHigh() {
|
|||
<q-card
|
||||
bordered
|
||||
class="q-mt-md"
|
||||
v-if="store.rolePerson == 'COMMANDERHIGH' && superiorComment !== '' && store.dataEvaluation.commanderHighId !== null"
|
||||
v-if="
|
||||
store.rolePerson == 'COMMANDERHIGH' &&
|
||||
superiorComment !== '' &&
|
||||
store.dataEvaluation.commanderHighId !== null
|
||||
"
|
||||
>
|
||||
<q-form
|
||||
greedy
|
||||
|
|
@ -347,6 +505,10 @@ function resetCommanderHigh() {
|
|||
<div class="col-12">
|
||||
<div class="column">
|
||||
<q-radio
|
||||
:disable="
|
||||
store.dataEvaluation.evaluationStatus !==
|
||||
'SUMMARY_COMMANDER_HIGH'
|
||||
"
|
||||
v-model="additionalSuperiorCheck"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
|
|
@ -355,6 +517,10 @@ function resetCommanderHigh() {
|
|||
@click="resetCommanderHigh()"
|
||||
/>
|
||||
<q-radio
|
||||
:disable="
|
||||
store.dataEvaluation.evaluationStatus !==
|
||||
'SUMMARY_COMMANDER_HIGH'
|
||||
"
|
||||
v-model="additionalSuperiorCheck"
|
||||
checked-icon="task_alt"
|
||||
unchecked-icon="panorama_fish_eye"
|
||||
|
|
@ -365,20 +531,34 @@ function resetCommanderHigh() {
|
|||
</div>
|
||||
<div class="col-12">
|
||||
<q-input
|
||||
lazy-rules
|
||||
ref="additionalSuperiorCommentRef"
|
||||
v-model="additionalSuperiorComment"
|
||||
outlined
|
||||
hide-bottom-space
|
||||
type="textarea"
|
||||
label="ความเห็นของผู้บังคับบัญชาเหนือขึ้นไปอีกชั้นหนึ่ง"
|
||||
:readonly="additionalSuperiorCheck == 'true'"
|
||||
:readonly="
|
||||
additionalSuperiorCheck == 'true' ||
|
||||
store.dataEvaluation.evaluationStatus !==
|
||||
'SUMMARY_COMMANDER_HIGH'
|
||||
"
|
||||
:rules="[(val:string) => additionalSuperiorCheck !== 'false'||!!val || `${'กรุณากรอกความเห็น'}`,]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator />
|
||||
<q-card-actions align="right">
|
||||
<q-separator
|
||||
v-if="
|
||||
store.dataEvaluation.evaluationStatus == 'SUMMARY_COMMANDER_HIGH'
|
||||
"
|
||||
/>
|
||||
<q-card-actions
|
||||
align="right"
|
||||
v-if="
|
||||
store.dataEvaluation.evaluationStatus == 'SUMMARY_COMMANDER_HIGH'
|
||||
"
|
||||
>
|
||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
|
|
|
|||
|
|
@ -171,13 +171,13 @@ async function getOrgOp() {
|
|||
name: `${i.prefix}${i.firstName} ${i.lastName}`,
|
||||
}))
|
||||
.find((i: any) => i.id == store.dataEvaluation.evaluatorId);
|
||||
commanderId.value = data.caregiver
|
||||
commanderId.value = data.commander
|
||||
.map((i: any) => ({
|
||||
id: i.id,
|
||||
name: `${i.prefix}${i.firstName} ${i.lastName}`,
|
||||
}))
|
||||
.find((i: any) => i.id == store.dataEvaluation.commanderId);
|
||||
commanderHighId.value = data.caregiver
|
||||
commanderHighId.value = data.chairman
|
||||
.map((i: any) => ({
|
||||
id: i.id,
|
||||
name: `${i.prefix}${i.firstName} ${i.lastName}`,
|
||||
|
|
@ -283,6 +283,31 @@ function sendToEvaluatore(status: string) {
|
|||
);
|
||||
}
|
||||
|
||||
function sendToSummary(status: string) {
|
||||
dialogConfirm(
|
||||
$q,
|
||||
() => {
|
||||
if (id.value) {
|
||||
showLoader();
|
||||
http
|
||||
.get(config.API.kpiSendToSummary(id.value))
|
||||
.then((res) => {
|
||||
success($q, "ส่งไปสรุปผลการประเมินสำเร็จ");
|
||||
getAll()
|
||||
store.tabMain = '4'
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
},
|
||||
"ยืนยันการส่งไปสรุปผลการประเมิน",
|
||||
"ต้องการยืนยันส่งไปสรุปผลการประเมินใช่หรือไม่?"
|
||||
);
|
||||
}
|
||||
function requireEdit() {
|
||||
dialogConfirm(
|
||||
$q,
|
||||
|
|
@ -502,7 +527,23 @@ onMounted(async () => {
|
|||
>ส่งให้ผู้ประเมินรายงานผลสำเร็จของงาน</q-tooltip
|
||||
>
|
||||
</q-btn>
|
||||
|
||||
<q-btn
|
||||
v-if="
|
||||
store.rolePerson == 'EVALUATOR' &&
|
||||
store.dataEvaluation.evaluationStatus ==
|
||||
'EVALUATING_EVALUATOR' &&
|
||||
store.tabMain == '3'
|
||||
"
|
||||
unelevated
|
||||
round
|
||||
icon="mdi-send"
|
||||
color="grey-2"
|
||||
text-color="blue-6"
|
||||
size="md"
|
||||
@click="sendToSummary('SUMMARY')"
|
||||
>
|
||||
<q-tooltip>ส่งไปสรุปผลการประเมิน</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="
|
||||
store.rolePerson == 'USER' &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue