2023-12-18 10:05:40 +07:00
|
|
|
<script setup lang="ts">
|
2024-01-08 14:19:08 +07:00
|
|
|
import { reactive, onMounted } from "vue";
|
|
|
|
|
import { useRoute } from "vue-router";
|
2023-12-27 12:08:36 +07:00
|
|
|
import { useQuasar } from "quasar";
|
2023-12-21 17:51:13 +07:00
|
|
|
import http from "@/plugins/http";
|
|
|
|
|
import config from "@/app.config";
|
|
|
|
|
|
2024-01-16 10:33:44 +07:00
|
|
|
/** importType*/
|
2023-12-22 16:00:05 +07:00
|
|
|
import type {
|
|
|
|
|
EducationForm,
|
|
|
|
|
CertificatesForm,
|
|
|
|
|
} from "@/modules/06_evaluate/interface/evalute";
|
|
|
|
|
|
2024-01-16 10:33:44 +07:00
|
|
|
/** importComponents*/
|
2023-12-18 10:05:40 +07:00
|
|
|
import TableData from "@/modules/06_evaluate/components/viewstep/tableStep1.vue";
|
|
|
|
|
|
2024-01-16 10:33:44 +07:00
|
|
|
/** importStore*/
|
2023-12-21 17:51:13 +07:00
|
|
|
import { useCounterMixin } from "@/stores/mixin";
|
2023-12-18 10:05:40 +07:00
|
|
|
import { useEvaluateDetailStore } from "@/modules/06_evaluate/stores/evaluteDetail";
|
|
|
|
|
|
2024-01-16 10:33:44 +07:00
|
|
|
/** use*/
|
2023-12-21 17:51:13 +07:00
|
|
|
const mixin = useCounterMixin();
|
2023-12-18 10:05:40 +07:00
|
|
|
const store = useEvaluateDetailStore();
|
2023-12-21 17:51:13 +07:00
|
|
|
const $q = useQuasar();
|
2023-12-27 12:08:36 +07:00
|
|
|
const route = useRoute();
|
2023-12-21 17:51:13 +07:00
|
|
|
|
|
|
|
|
const { showLoader, hideLoader, messageError, date2Thai } = mixin;
|
2023-12-18 10:05:40 +07:00
|
|
|
const {
|
2023-12-22 16:00:05 +07:00
|
|
|
columnsCertificates,
|
|
|
|
|
columnSalaries,
|
|
|
|
|
columnTraining,
|
2023-12-18 10:05:40 +07:00
|
|
|
columnProjectsProposed,
|
|
|
|
|
} = store;
|
2023-12-21 17:51:13 +07:00
|
|
|
|
2023-12-26 11:09:51 +07:00
|
|
|
const props = defineProps({
|
2023-12-27 12:08:36 +07:00
|
|
|
data: {
|
2024-01-08 14:19:08 +07:00
|
|
|
type: Object,
|
2023-12-26 11:09:51 +07:00
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
2023-12-21 17:51:13 +07:00
|
|
|
const emit = defineEmits(["update:formDeital"]);
|
|
|
|
|
|
2024-06-28 17:52:30 +07:00
|
|
|
const formDetail = reactive<any>({
|
2023-12-22 16:00:05 +07:00
|
|
|
userId: "",
|
|
|
|
|
citizenId: "",
|
|
|
|
|
prefix: "",
|
|
|
|
|
fullName: "",
|
|
|
|
|
position: "",
|
|
|
|
|
oc: "",
|
|
|
|
|
salary: "",
|
|
|
|
|
positionLevel: "",
|
|
|
|
|
posNo: "",
|
|
|
|
|
birthDate: "",
|
|
|
|
|
govAge: "",
|
2024-06-28 17:52:30 +07:00
|
|
|
govAgeMap: {
|
|
|
|
|
year: 0,
|
|
|
|
|
month: 0,
|
|
|
|
|
day: 0,
|
|
|
|
|
},
|
2023-12-22 16:00:05 +07:00
|
|
|
educations: [] as EducationForm[],
|
|
|
|
|
certificates: [],
|
|
|
|
|
salaries: [],
|
|
|
|
|
trainings: [],
|
|
|
|
|
assessments: [],
|
2024-07-09 15:04:07 +07:00
|
|
|
honor: [],
|
2023-12-21 17:51:13 +07:00
|
|
|
});
|
|
|
|
|
|
2024-01-16 10:33:44 +07:00
|
|
|
/** function เรียกข้อมูลตรวจสอบคุณสมบัติ*/
|
2023-12-21 17:51:13 +07:00
|
|
|
async function fetchDetail() {
|
|
|
|
|
showLoader();
|
|
|
|
|
await http
|
2024-06-28 16:51:48 +07:00
|
|
|
.get(config.API.positionBykeycloak())
|
2023-12-21 17:51:13 +07:00
|
|
|
.then((res) => {
|
|
|
|
|
const data = res.data.result;
|
2023-12-22 16:00:05 +07:00
|
|
|
formDetail.userId = data.id;
|
|
|
|
|
formDetail.citizenId = data.citizenId;
|
|
|
|
|
formDetail.prefix = data.prefix;
|
|
|
|
|
formDetail.fullName = `${data.firstName} ${data.lastName}`;
|
2024-07-09 15:04:07 +07:00
|
|
|
formDetail.firstName = data.firstName;
|
|
|
|
|
formDetail.lastName = data.lastName;
|
2023-12-22 16:00:05 +07:00
|
|
|
formDetail.position = data.position;
|
2024-06-28 16:51:48 +07:00
|
|
|
formDetail.oc = data.rootShortName;
|
|
|
|
|
formDetail.positionLevel = data.posLevelName;
|
|
|
|
|
formDetail.posNo = data.rootShortName + data.posMasterNo;
|
2024-07-09 15:04:07 +07:00
|
|
|
formDetail.birthDate = data.birthDate;
|
2024-06-28 16:51:48 +07:00
|
|
|
formDetail.govAge = data.govAge; // ยังไม่มี
|
2023-12-22 16:00:05 +07:00
|
|
|
|
2024-06-28 16:51:48 +07:00
|
|
|
http.get(config.API.dataUserEducations).then((res) => {
|
|
|
|
|
formDetail.educations = res.data.result;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
http.get(config.API.dataUserCertificate("certificate")).then((res) => {
|
|
|
|
|
formDetail.certificates = res.data.result.map(
|
|
|
|
|
(e: CertificatesForm) => ({
|
|
|
|
|
certificateNo: e.certificateNo,
|
|
|
|
|
certificateType: e.certificateType,
|
2024-06-28 19:04:04 +07:00
|
|
|
expireDate: e.expireDate,
|
|
|
|
|
issueDate: e.issueDate,
|
2024-06-28 16:51:48 +07:00
|
|
|
issuer: e.issuer,
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
http.get(config.API.dataUserSalary).then((res) => {
|
2024-07-09 15:04:07 +07:00
|
|
|
formDetail.salaries = res.data.result;
|
2024-06-28 17:52:30 +07:00
|
|
|
formDetail.salary = formDetail.salaries
|
|
|
|
|
? formattedNumber(
|
|
|
|
|
formDetail.salaries[formDetail.salaries.length - 1].amount
|
|
|
|
|
)
|
|
|
|
|
: "";
|
2024-06-28 16:51:48 +07:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
http.get(config.API.dataUserCertificate("training")).then((res) => {
|
|
|
|
|
formDetail.trainings = res.data.result.map((e: any) => ({
|
2024-06-28 19:04:04 +07:00
|
|
|
dateOrder: e.dateOrder,
|
2024-06-28 16:51:48 +07:00
|
|
|
department: e.department,
|
|
|
|
|
duration: e.duration,
|
2024-06-28 19:04:04 +07:00
|
|
|
endDate: e.endDate,
|
2024-06-28 16:51:48 +07:00
|
|
|
name: e.name,
|
|
|
|
|
numberOrder: e.numberOrder,
|
|
|
|
|
place: e.place,
|
2024-06-28 19:04:04 +07:00
|
|
|
startDate: e.startDate,
|
2024-06-28 16:51:48 +07:00
|
|
|
topic: e.topic,
|
|
|
|
|
yearly: e.yearly,
|
|
|
|
|
}));
|
|
|
|
|
});
|
2024-07-09 15:04:07 +07:00
|
|
|
|
|
|
|
|
http.get(config.API.dataUserHonor).then((res) => {
|
|
|
|
|
formDetail.honor = res.data.result.map((e: any) => ({
|
|
|
|
|
receivedDate: e.createdAt,
|
|
|
|
|
authority: e.issuer,
|
|
|
|
|
detail: e.detail,
|
|
|
|
|
orderNumber: e.refCommandNo,
|
|
|
|
|
doce: e.refCommandDate,
|
|
|
|
|
}));
|
|
|
|
|
});
|
2024-06-28 16:51:48 +07:00
|
|
|
// formDetail.assessments = data.assessments;
|
2024-06-28 19:04:04 +07:00
|
|
|
emit("update:formDeital", formDetail);
|
2023-12-21 17:51:13 +07:00
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
|
|
|
|
messageError($q, err);
|
|
|
|
|
})
|
|
|
|
|
.finally(() => {
|
2023-12-27 12:08:36 +07:00
|
|
|
setTimeout(() => {
|
|
|
|
|
hideLoader();
|
|
|
|
|
}, 500);
|
2023-12-21 17:51:13 +07:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-26 11:09:51 +07:00
|
|
|
/**
|
|
|
|
|
* function fetchData ตรวจสอบคุณสมบัติ
|
|
|
|
|
* @param id ประเมิน
|
|
|
|
|
*/
|
2023-12-27 12:08:36 +07:00
|
|
|
async function fetchCheckSpec(data: any) {
|
|
|
|
|
formDetail.userId = data.id;
|
|
|
|
|
formDetail.citizenId = data.citizenId;
|
|
|
|
|
formDetail.prefix = data.prefix;
|
|
|
|
|
formDetail.fullName = data.fullName;
|
|
|
|
|
formDetail.position = data.position;
|
|
|
|
|
formDetail.oc = data.oc;
|
2024-05-20 15:48:03 +07:00
|
|
|
formDetail.salary = data.salary ? formattedNumber(data.salary) : "";
|
2023-12-27 12:08:36 +07:00
|
|
|
formDetail.positionLevel = data.positionLevel;
|
|
|
|
|
formDetail.posNo = data.posNo;
|
2024-07-09 15:04:07 +07:00
|
|
|
formDetail.birthDate = data.birthDate;
|
2024-01-04 16:54:37 +07:00
|
|
|
formDetail.educations = data.educations;
|
2023-12-27 12:08:36 +07:00
|
|
|
|
2024-01-04 16:54:37 +07:00
|
|
|
formDetail.certificates = data.certificates.map((e: CertificatesForm) => ({
|
2023-12-27 12:08:36 +07:00
|
|
|
certificateNo: e.certificateNo,
|
|
|
|
|
certificateType: e.certificateType,
|
|
|
|
|
expireDate: date2Thai(e.expireDate),
|
|
|
|
|
issueDate: date2Thai(e.issueDate),
|
|
|
|
|
issuer: e.issuer,
|
|
|
|
|
}));
|
|
|
|
|
formDetail.salaries = data.salaries.map((e: any) => ({
|
|
|
|
|
amount: e.amount,
|
2024-06-28 19:04:04 +07:00
|
|
|
date: e.date,
|
2023-12-27 12:08:36 +07:00
|
|
|
mouthSalaryAmount: e.mouthSalaryAmount ? e.mouthSalaryAmount : 0,
|
|
|
|
|
posNo: e.posNo,
|
|
|
|
|
position: e.position,
|
|
|
|
|
positionSalaryAmount: e.positionSalaryAmount ? e.positionSalaryAmount : 0,
|
|
|
|
|
refCommandDate: e.refCommandDate ? e.refCommandDate : "",
|
|
|
|
|
|
|
|
|
|
refCommandNo: e.refCommandNo ? e.refCommandNo : "",
|
|
|
|
|
salaryClass: e.salaryClass ? e.salaryClass : "",
|
|
|
|
|
salaryRef: e.salaryRef ? e.salaryRef : "",
|
|
|
|
|
salaryStatus: e.salaryStatus ? e.salariesStatus : "",
|
|
|
|
|
//
|
|
|
|
|
oc: "-",
|
|
|
|
|
lineWork: "-",
|
|
|
|
|
side: "-",
|
|
|
|
|
positionType: "-",
|
|
|
|
|
level: "-",
|
|
|
|
|
positionsAdministrative: "-",
|
|
|
|
|
aspectAdministrative: "-",
|
|
|
|
|
}));
|
2024-01-04 16:54:37 +07:00
|
|
|
formDetail.trainings = data.trainings.map((e: any) => ({
|
2023-12-27 12:08:36 +07:00
|
|
|
dateOrder: date2Thai(e.dateOrder),
|
|
|
|
|
department: e.department,
|
|
|
|
|
duration: e.duration,
|
|
|
|
|
endDate: date2Thai(e.endDate),
|
|
|
|
|
name: e.name,
|
|
|
|
|
numberOrder: e.numberOrder,
|
|
|
|
|
place: e.place,
|
|
|
|
|
startDate: date2Thai(e.startDate),
|
|
|
|
|
topic: e.topic,
|
|
|
|
|
yearly: e.yearly,
|
|
|
|
|
}));
|
2024-01-04 16:54:37 +07:00
|
|
|
formDetail.assessments = data.assessments;
|
2023-12-26 11:09:51 +07:00
|
|
|
}
|
|
|
|
|
|
2024-01-16 10:33:44 +07:00
|
|
|
/**
|
|
|
|
|
* function convertตัวเลข
|
|
|
|
|
* @param x
|
|
|
|
|
*/
|
2024-01-05 10:38:49 +07:00
|
|
|
function formattedNumber(x: number) {
|
2024-05-20 15:48:03 +07:00
|
|
|
if (x) {
|
|
|
|
|
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
|
|
|
} else {
|
|
|
|
|
return "";
|
|
|
|
|
}
|
2024-01-05 10:38:49 +07:00
|
|
|
}
|
|
|
|
|
|
2024-06-28 17:52:30 +07:00
|
|
|
/** get data */
|
|
|
|
|
function getData() {
|
|
|
|
|
showLoader();
|
|
|
|
|
http
|
|
|
|
|
.get(config.API.dataUserGovernment)
|
|
|
|
|
.then((res) => {
|
|
|
|
|
const data = res.data.result;
|
|
|
|
|
formDetail.govAge = data.govAge
|
|
|
|
|
? `${data.govAge.year} วัน ${data.govAge.month} เดือน ${data.govAge.year} ปี`
|
|
|
|
|
: "";
|
|
|
|
|
})
|
|
|
|
|
.catch((e) => {
|
|
|
|
|
messageError($q, e);
|
|
|
|
|
})
|
|
|
|
|
.finally(() => {
|
|
|
|
|
hideLoader();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-21 17:51:13 +07:00
|
|
|
onMounted(async () => {
|
2023-12-27 12:08:36 +07:00
|
|
|
route.name === "evaluate-add" && (await fetchDetail());
|
|
|
|
|
props.data && fetchCheckSpec(props.data);
|
2024-06-28 17:52:30 +07:00
|
|
|
getData();
|
2023-12-21 17:51:13 +07:00
|
|
|
});
|
2023-12-18 10:05:40 +07:00
|
|
|
</script>
|
2023-12-13 15:24:59 +07:00
|
|
|
|
|
|
|
|
<template>
|
2024-05-20 15:48:03 +07:00
|
|
|
<q-card
|
|
|
|
|
bordered
|
|
|
|
|
class="col-12 row shadow-0 q-pa-sm"
|
|
|
|
|
:style="$q.screen.lt.sm ? '' : 'height: 60vh; overflow: scroll;'"
|
|
|
|
|
>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="row col-12">
|
2024-05-20 15:48:03 +07:00
|
|
|
<q-card class="col-12 cardSp1" bordered>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="text-weight-bold row items-center bg-grey-2 col-12">
|
|
|
|
|
<span class="q-ml-lg q-my-sm">ข้อมูลส่วนตัว</span>
|
2024-01-16 10:33:44 +07:00
|
|
|
</div>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="col-12"><q-separator /></div>
|
2024-01-16 10:33:44 +07:00
|
|
|
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="row col-12 q-pa-sm">
|
|
|
|
|
<div class="row q-col-gutter-sm">
|
2023-12-18 10:05:40 +07:00
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
:model-value="formDetail.prefix"
|
|
|
|
|
label="คำนำหน้าชื่อ"
|
|
|
|
|
></q-input>
|
2023-12-18 10:05:40 +07:00
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
:model-value="formDetail.fullName"
|
|
|
|
|
label="ชื่อ - นามสกุล"
|
|
|
|
|
/>
|
2023-12-18 10:05:40 +07:00
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
2024-07-09 15:04:07 +07:00
|
|
|
:model-value="
|
|
|
|
|
formDetail.birthDate ? date2Thai(formDetail.birthDate) : '-'
|
|
|
|
|
"
|
2023-12-18 10:05:40 +07:00
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
label="วันเดือนปีเกิด"
|
2024-01-16 10:33:44 +07:00
|
|
|
>
|
|
|
|
|
</q-input>
|
2023-12-18 10:05:40 +07:00
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
:model-value="formDetail.position"
|
|
|
|
|
label="ตำแหน่ง"
|
|
|
|
|
/>
|
2023-12-18 10:05:40 +07:00
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
:model-value="formDetail.posNo"
|
|
|
|
|
label="ตำแหน่งเลขที่"
|
2023-12-18 10:05:40 +07:00
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
:model-value="formDetail.salary"
|
|
|
|
|
label="เงินเดือน"
|
2023-12-18 10:05:40 +07:00
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
:model-value="formDetail.positionLevel"
|
|
|
|
|
label="ระดับปัจจุบัน"
|
2023-12-18 10:05:40 +07:00
|
|
|
/>
|
|
|
|
|
</div>
|
2024-01-17 09:27:57 +07:00
|
|
|
|
2023-12-18 10:05:40 +07:00
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
:model-value="formDetail.positionLevel"
|
|
|
|
|
label="ระดับที่ประเมิน"
|
2023-12-18 10:05:40 +07:00
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="formDetail.govAge ? formDetail.govAge : '-'"
|
2024-01-17 09:27:57 +07:00
|
|
|
label="อายุราชการ"
|
2023-12-18 10:05:40 +07:00
|
|
|
/>
|
|
|
|
|
</div>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="col-xs-12 col-sm-9">
|
2024-01-16 10:33:44 +07:00
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-01-17 09:27:57 +07:00
|
|
|
:model-value="formDetail.oc"
|
|
|
|
|
label="สังกัด"
|
2024-01-17 16:11:31 +07:00
|
|
|
autogrow
|
2023-12-22 16:00:05 +07:00
|
|
|
/>
|
2023-12-18 10:05:40 +07:00
|
|
|
</div>
|
2024-01-17 09:27:57 +07:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</q-card>
|
|
|
|
|
|
2024-05-20 15:48:03 +07:00
|
|
|
<q-card class="col-12 cardSp1" bordered>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="text-weight-bold row items-center bg-grey-2 col-12">
|
|
|
|
|
<span class="q-ml-lg q-my-sm">ประวัติการศึกษา </span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-12"><q-separator /></div>
|
2024-05-20 15:48:03 +07:00
|
|
|
<div
|
|
|
|
|
class="row col-12 q-pa-sm"
|
|
|
|
|
v-if="formDetail.educations && formDetail.educations.length > 0"
|
|
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
class="row q-col-gutter-sm"
|
|
|
|
|
v-for="(education, index) in formDetail.educations"
|
|
|
|
|
:key="index"
|
|
|
|
|
>
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="
|
|
|
|
|
education.educationLevel ? education.educationLevel : '-'
|
|
|
|
|
"
|
2024-05-20 15:48:03 +07:00
|
|
|
label="ระดับศึกษา"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="education.institute ? education.institute : '-'"
|
2024-05-20 15:48:03 +07:00
|
|
|
label="สถานศึกษา"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="
|
|
|
|
|
education.startDate ? date2Thai(education.startDate) : '-'
|
|
|
|
|
"
|
2024-05-20 15:48:03 +07:00
|
|
|
readonly
|
|
|
|
|
label="ตั้งแต่"
|
|
|
|
|
>
|
|
|
|
|
</q-input>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="
|
|
|
|
|
education.endDate ? date2Thai(education.endDate) : '-'
|
|
|
|
|
"
|
2024-05-20 15:48:03 +07:00
|
|
|
readonly
|
|
|
|
|
label="ถึง"
|
|
|
|
|
>
|
|
|
|
|
</q-input>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="
|
|
|
|
|
education.finishDate ? date2Thai(education.finishDate) : '-'
|
|
|
|
|
"
|
2024-05-20 15:48:03 +07:00
|
|
|
readonly
|
|
|
|
|
label="วันที่สำเร็จการศึกษา"
|
|
|
|
|
>
|
|
|
|
|
</q-input>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
|
|
|
|
:model-value="education.isEducation ? 'ใช่' : 'ไม่ใช่'"
|
|
|
|
|
label="วุฒิการศึกษาในตําแหน่ง"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="education.degree ? education.degree : '-'"
|
2024-05-20 15:48:03 +07:00
|
|
|
label="วุฒิการศึกษา"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="education.field ? education.field : '-'"
|
2024-05-20 15:48:03 +07:00
|
|
|
label="สาขาวิชา/ทาง"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="education.fundName ? education.fundName : '-'"
|
2024-05-20 15:48:03 +07:00
|
|
|
label="ทุน"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="education.gpa ? education.gpa : '-'"
|
2024-05-20 15:48:03 +07:00
|
|
|
label="เกรดเฉลี่ย"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-xs-6 col-sm-4 col-md-6">
|
|
|
|
|
<q-input
|
|
|
|
|
borderless
|
|
|
|
|
readonly
|
2024-06-28 17:52:30 +07:00
|
|
|
:model-value="education.country ? education.country : '-'"
|
2024-05-20 15:48:03 +07:00
|
|
|
label="ประเทศ"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
2024-07-09 15:04:07 +07:00
|
|
|
<div
|
|
|
|
|
v-if="index + 1 !== formDetail.educations.length"
|
|
|
|
|
class="col-12"
|
|
|
|
|
>
|
|
|
|
|
<q-separator size="2px" />
|
|
|
|
|
</div>
|
2024-01-17 09:27:57 +07:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-else class="row col-12 q-pa-md">ไม่มีประวัติการศึกษา</div>
|
|
|
|
|
</q-card>
|
|
|
|
|
|
2024-05-20 15:48:03 +07:00
|
|
|
<q-card class="col-12 cardSp1" bordered>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="text-weight-bold row items-center bg-grey-2 col-12">
|
|
|
|
|
<span class="q-ml-lg q-my-sm">ใบอนุญาตประกอบวิชาชีพ</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-12"><q-separator /></div>
|
|
|
|
|
<TableData
|
|
|
|
|
class="col-12"
|
|
|
|
|
:columns="columnsCertificates"
|
|
|
|
|
:row="formDetail.certificates"
|
|
|
|
|
/>
|
|
|
|
|
</q-card>
|
|
|
|
|
|
2024-05-20 15:48:03 +07:00
|
|
|
<q-card class="col-12 cardSp1" bordered>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="text-weight-bold row items-center bg-grey-2 col-12">
|
|
|
|
|
<span class="q-ml-lg q-my-sm">ประวัติการรับราชการ</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-12"><q-separator /></div>
|
|
|
|
|
<div class="col-10">
|
2024-07-09 15:04:07 +07:00
|
|
|
<d-table
|
|
|
|
|
ref="table"
|
|
|
|
|
row-key="id"
|
|
|
|
|
flat
|
|
|
|
|
bordered
|
|
|
|
|
dense
|
|
|
|
|
:columns="columnSalaries"
|
|
|
|
|
:rows="formDetail.salaries"
|
|
|
|
|
:paging="true"
|
|
|
|
|
:rows-per-page-options="[20, 50, 100]"
|
|
|
|
|
>
|
|
|
|
|
<template v-slot:header="props">
|
|
|
|
|
<q-tr :props="props">
|
|
|
|
|
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
|
|
|
|
<span class="text-weight-medium">{{ col.label }}</span>
|
|
|
|
|
</q-th>
|
|
|
|
|
</q-tr>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-slot:body="props">
|
|
|
|
|
<q-tr :props="props" class="cursor-pointer">
|
|
|
|
|
<q-td
|
|
|
|
|
v-for="col in props.cols"
|
|
|
|
|
:key="col.id"
|
|
|
|
|
class="vertical-top"
|
|
|
|
|
>
|
|
|
|
|
<div class="table_ellipsis">
|
|
|
|
|
{{ col.value ? col.value : "-" }}
|
|
|
|
|
</div>
|
|
|
|
|
</q-td>
|
|
|
|
|
</q-tr>
|
|
|
|
|
</template>
|
|
|
|
|
</d-table>
|
|
|
|
|
<!-- <TableData :columns="columnSalaries" :row="formDetail.salaries" /> -->
|
2024-01-17 09:27:57 +07:00
|
|
|
</div>
|
|
|
|
|
</q-card>
|
2024-05-20 15:48:03 +07:00
|
|
|
|
2024-01-17 09:27:57 +07:00
|
|
|
<q-card class="col-12 cardSp1" bordered>
|
|
|
|
|
<div class="text-weight-bold row items-center bg-grey-2 col-12">
|
|
|
|
|
<span class="q-ml-lg q-my-sm">ประวัติการฝึกอบรมดูงาน</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-12"><q-separator /></div>
|
2024-05-20 15:48:03 +07:00
|
|
|
<TableData
|
|
|
|
|
class="col-12"
|
|
|
|
|
:columns="columnTraining"
|
|
|
|
|
:row="formDetail.trainings"
|
|
|
|
|
/>
|
2024-01-17 09:27:57 +07:00
|
|
|
</q-card>
|
|
|
|
|
|
2024-05-20 15:48:03 +07:00
|
|
|
<q-card class="col-12 cardSp1" bordered>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="text-weight-bold row items-center bg-grey-2 col-12">
|
|
|
|
|
<span class="q-ml-lg q-my-sm">ประสบการณ์ในการปฏิบัติงาน </span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-12"><q-separator /></div>
|
2024-05-20 15:48:03 +07:00
|
|
|
<div class="col-12 q-pa-sm">-</div>
|
2024-01-17 09:27:57 +07:00
|
|
|
</q-card>
|
|
|
|
|
|
2024-05-20 15:48:03 +07:00
|
|
|
<q-card class="col-12 cardSp1" bordered>
|
2024-01-17 09:27:57 +07:00
|
|
|
<div class="text-weight-bold row items-center bg-grey-2 col-12">
|
|
|
|
|
<span class="q-ml-lg q-my-sm">ผลงานที่เคยเสนอขอประเมิน (ถ้ามี)</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-12"><q-separator /></div>
|
|
|
|
|
<div class="col-10">
|
2024-07-09 15:04:07 +07:00
|
|
|
<TableData
|
|
|
|
|
:columns="columnProjectsProposed"
|
|
|
|
|
:row="formDetail.honor"
|
|
|
|
|
/>
|
2024-01-16 10:33:44 +07:00
|
|
|
</div>
|
2024-01-17 09:27:57 +07:00
|
|
|
</q-card>
|
|
|
|
|
</div>
|
|
|
|
|
</q-card>
|
2023-12-13 15:24:59 +07:00
|
|
|
</template>
|
|
|
|
|
|
2024-05-20 15:48:03 +07:00
|
|
|
<style>
|
|
|
|
|
.cardSp1 {
|
2024-01-16 19:55:28 +07:00
|
|
|
border: 1px solid #d6dee1;
|
2024-05-20 15:48:03 +07:00
|
|
|
margin-bottom: 10px;
|
2024-01-16 19:55:28 +07:00
|
|
|
box-shadow: none !important;
|
|
|
|
|
}
|
|
|
|
|
</style>
|