ประเมินบุคคล

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2023-12-27 15:18:23 +07:00
parent d980946ccc
commit 1435b9b004
9 changed files with 232 additions and 59 deletions

View file

@ -29,6 +29,9 @@ const evaluateId = ref<string>(route.params.id.toString());
/** emit */
const emit = defineEmits(["update:form"]);
const performance = ref<string>("");
const performanceOwner = ref<string>("");
/** form ผู้เซ็นเอกสาร*/
const formCommand = reactive<FormCommand>({
commanderFullname: "",
@ -48,6 +51,8 @@ const fileEvaluation3Ref = ref<object | null>(null);
const fileEvaluation4Ref = ref<object | null>(null);
const fileEvaluation5Ref = ref<object | null>(null);
const fileEvaluation6Ref = ref<object | null>(null);
const performanceRef = ref<object | null>(null);
const performanceOwnerRef = ref<object | null>(null);
/**
* function updateFormref
@ -371,6 +376,51 @@ onMounted(async () => {
<template>
<div class="row q-col-gutter-md">
<!-- ผลงาน -->
<div class="col-12">
<q-card bordered style="border: 1px solid #d6dee1">
<div class="text-weight-medium bg-grey-1 q-py-sm q-px-md">ผลงาน</div>
<div class="col-12"><q-separator /></div>
<div class="row">
<div class="col-12 q-pa-sm">
<div class="row q-col-gutter-md col-12">
<div class="col-xs-12 col-sm-12 row">
<!-- <div class="text-weight-medium q-py-sm">
งคบบญชาชนต
</div> -->
<div class="row col-12 q-col-gutter-md q-pa-sm">
<q-input
:readonly="store.currentStep != 2"
ref="performanceRef"
dense
class="col-xs-12 col-sm-6"
outlined
label="ชื่อผลงาน"
v-model="performance"
@update:model-value="updateInput(formCommand)"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อผลงาน'}`]"
lazy-rules
/>
<q-input
:readonly="store.currentStep != 2"
ref="performanceOwnerRef"
class="col-xs-12 col-sm-6"
dense
outlined
v-model="performanceOwner"
@update:model-value="updateInput(formCommand)"
label="เจ้าของผลงาน"
:rules="[(val) => !!val || `${'กรุณากรอกเจ้าของผลงาน'}`]"
lazy-rules
/>
</div>
</div>
</div>
</div>
</div>
</q-card>
</div>
<!-- แบบพจารณาคณสมบคคล -->
<div class="col-6" v-if="store.currentStep === 2">
<q-card bordered style="border: 1px solid #d6dee1">

View file

@ -26,6 +26,9 @@ const emit = defineEmits(["update:form"]);
const fileEvaluation1 = ref<any>();
const pdfSrc = ref<any>();
const performance = ref<string>("");
const performanceOwner = ref<string>("");
const formCommand = reactive<FormCommand>({
commanderFullname: "",
commanderPosition: "",
@ -197,6 +200,51 @@ onMounted(() => {
</div>
</q-banner>
</div>
<!-- ผลงาน -->
<div class="col-12">
<q-card bordered style="border: 1px solid #d6dee1">
<div class="text-weight-medium bg-grey-1 q-py-sm q-px-md">ผลงาน</div>
<div class="col-12"><q-separator /></div>
<div class="row">
<div class="col-12 q-pa-sm">
<div class="row q-col-gutter-md col-12">
<div class="col-xs-12 col-sm-12 row">
<!-- <div class="text-weight-medium q-py-sm">
งคบบญชาชนต
</div> -->
<div class="row col-12 q-col-gutter-md q-pa-sm">
<q-input
:readonly="store.currentStep != 2"
ref="performanceRef"
dense
class="col-xs-12 col-sm-6"
outlined
label="ชื่อผลงาน"
v-model="performance"
@update:model-value="updateInput(formCommand)"
:rules="[(val) => !!val || `${'กรุณากรอกชื่อผลงาน'}`]"
lazy-rules
/>
<q-input
:readonly="store.currentStep != 2"
ref="performanceOwnerRef"
class="col-xs-12 col-sm-6"
dense
outlined
v-model="performanceOwner"
@update:model-value="updateInput(formCommand)"
label="เจ้าของผลงาน"
:rules="[(val) => !!val || `${'กรุณากรอกเจ้าของผลงาน'}`]"
lazy-rules
/>
</div>
</div>
</div>
</div>
</div>
</q-card>
</div>
<div class="col-6" v-if="store.currentStep === 6">
<q-card bordered style="border: 1px solid #d6dee1">
<div class="text-weight-medium bg-grey-1 q-py-sm q-px-md">

View file

@ -63,35 +63,35 @@ async function onClickDowloadFile(
await genReport(body, fileName);
}
const directorList = ref<any>();
const meetingList = ref<any>();
// const directorList = ref<any>();
// const meetingList = ref<any>();
async function fetchDirector() {
showLoader();
evaluateId.value &&
(await http
.get(config.API.evaluationDirectorMeetring(evaluateId.value))
.then((res) => {
const directors = res.data.result.directors;
const meetings = res.data.result.meetings;
directorList.value = directors.map((e: any) => ({
fullName: `${e.prefix}${e.firstName} ${e.lastName}`,
position: e.position ?? "-",
email: e.email ?? "-",
phone: e.phone ?? "-",
}));
meetingList.value = meetings.map((e: any) => ({
fullName: `${e.Prefix}${e.FirstName} ${e.LastName}`,
dateMeeting: `${date2Thai(e.dateStart)} - ${date2Thai(e.dateEnd)}`,
result: e.result ?? "-",
duration: e.duration ?? "-",
}));
})
.catch((err) => {})
.finally(() => {
hideLoader();
}));
}
// async function fetchDirector() {
// showLoader();
// evaluateId.value &&
// (await http
// .get(config.API.evaluationDirectorMeetring(evaluateId.value))
// .then((res) => {
// const directors = res.data.result.directors;
// const meetings = res.data.result.meetings;
// directorList.value = directors.map((e: any) => ({
// fullName: `${e.prefix}${e.firstName} ${e.lastName}`,
// position: e.position ?? "-",
// email: e.email ?? "-",
// phone: e.phone ?? "-",
// }));
// meetingList.value = meetings.map((e: any) => ({
// fullName: `${e.Prefix}${e.FirstName} ${e.LastName}`,
// dateMeeting: `${date2Thai(e.dateStart)} - ${date2Thai(e.dateEnd)}`,
// result: e.result ?? "-",
// duration: e.duration ?? "-",
// }));
// })
// .catch((err) => {})
// .finally(() => {
// hideLoader();
// }));
// }
async function fetchPathUpload(
volume: string,
@ -161,7 +161,7 @@ function checkDoc() {
}
onMounted(async () => {
await fetchDirector();
// await fetchDirector();
checkDoc();
});
</script>
@ -179,7 +179,7 @@ onMounted(async () => {
/>
</div>
<div class="col-12">
<!-- <div class="col-12">
<q-card bordered style="border: 1px solid #d6dee1">
<q-card class="col-12 items-center">
<q-tabs
@ -207,7 +207,7 @@ onMounted(async () => {
</q-tab-panels>
</q-card>
</q-card>
</div>
</div> -->
<div class="col-12">
<q-card bordered style="border: 1px solid #d6dee1">