แก้ไข display 1.ตรวจสอบคุณสมบัติ
This commit is contained in:
parent
f33ec8fbc5
commit
0b2bb5f252
12 changed files with 277 additions and 289 deletions
|
|
@ -101,7 +101,6 @@ async function validateForm() {
|
||||||
}
|
}
|
||||||
if (hasError.every((result) => result === true)) {
|
if (hasError.every((result) => result === true)) {
|
||||||
if (emptyValues.length > 0 && store.statusUpload === true) {
|
if (emptyValues.length > 0 && store.statusUpload === true) {
|
||||||
console.log("There are empty values in the array.");
|
|
||||||
} else if (store.step === 2) {
|
} else if (store.step === 2) {
|
||||||
if (store.statusUpload === false) {
|
if (store.statusUpload === false) {
|
||||||
saveStep2();
|
saveStep2();
|
||||||
|
|
@ -167,7 +166,7 @@ async function fetchCheckStep(id: string) {
|
||||||
store.step = step;
|
store.step = step;
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
messageError($q, err);
|
// messageError($q, err);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
showLoadStatus.value = true;
|
showLoadStatus.value = true;
|
||||||
|
|
@ -204,8 +203,8 @@ async function fetchDataStep1(id: string) {
|
||||||
messageError($q, err);
|
messageError($q, err);
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hideLoader();
|
|
||||||
showLoadStatus.value = true;
|
showLoadStatus.value = true;
|
||||||
|
hideLoader();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -666,7 +665,7 @@ onMounted(async () => {
|
||||||
class="col-xs-12 col-sm-7 row"
|
class="col-xs-12 col-sm-7 row"
|
||||||
v-if="store.step === 1 || store.step === 3 || store.step === 7"
|
v-if="store.step === 1 || store.step === 3 || store.step === 7"
|
||||||
>
|
>
|
||||||
<div class="col-12">
|
<div class="col-12 ">
|
||||||
<ViewStep1
|
<ViewStep1
|
||||||
v-if="store.step === 1"
|
v-if="store.step === 1"
|
||||||
@update:formDeital="updateFormDetail"
|
@update:formDeital="updateFormDetail"
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,6 @@ function closeModal() {
|
||||||
/**hook lifecycle*/
|
/**hook lifecycle*/
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
props.data && fetchCheckSpec(props.data);
|
props.data && fetchCheckSpec(props.data);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
education.value = props.educations
|
education.value = props.educations
|
||||||
? props.educations
|
? props.educations
|
||||||
|
|
|
||||||
|
|
@ -29,9 +29,6 @@ const evaluateId = ref<string>(route.params.id.toString());
|
||||||
/** emit */
|
/** emit */
|
||||||
const emit = defineEmits(["update:form"]);
|
const emit = defineEmits(["update:form"]);
|
||||||
|
|
||||||
const performance = ref<string>("");
|
|
||||||
const performanceOwner = ref<string>("");
|
|
||||||
|
|
||||||
/** form ผู้เซ็นเอกสาร*/
|
/** form ผู้เซ็นเอกสาร*/
|
||||||
const formCommand = reactive<FormCommand>({
|
const formCommand = reactive<FormCommand>({
|
||||||
commanderFullname: "",
|
commanderFullname: "",
|
||||||
|
|
@ -414,6 +411,7 @@ onMounted(async () => {
|
||||||
downloadFile("6-ผลงานที่จะส่งประเมิน (เอกสารหมายเลข 11)");
|
downloadFile("6-ผลงานที่จะส่งประเมิน (เอกสารหมายเลข 11)");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/** callback function */
|
||||||
watch(
|
watch(
|
||||||
() => store.checkFileupload,
|
() => store.checkFileupload,
|
||||||
() => {
|
() => {
|
||||||
|
|
|
||||||
|
|
@ -77,12 +77,8 @@ async function downloadFile(url: string) {
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(url);
|
|
||||||
|
|
||||||
const blob = new Blob([res.data]);
|
const blob = new Blob([res.data]);
|
||||||
const objectUrl = URL.createObjectURL(blob);
|
const objectUrl = URL.createObjectURL(blob);
|
||||||
console.log(objectUrl);
|
|
||||||
|
|
||||||
emit("update:file", objectUrl, url);
|
emit("update:file", objectUrl, url);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,10 @@ const author = ref<string>("");
|
||||||
const subject = ref<string>("");
|
const subject = ref<string>("");
|
||||||
const assignedPosition = ref<string>("");
|
const assignedPosition = ref<string>("");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function เรียกข้อมูลผลงาน
|
||||||
|
* @param id ประเมิน
|
||||||
|
*/
|
||||||
async function fetcheSigner(id: string) {
|
async function fetcheSigner(id: string) {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
|
|
@ -151,8 +155,9 @@ async function fetcheSigner(id: string) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** lifecycleHook*/
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await checkDoc();
|
await checkDoc();
|
||||||
await fetcheSigner(evaluateId.value);
|
await fetcheSigner(evaluateId.value);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,11 @@ import { useRoute } from "vue-router";
|
||||||
import env from "@/api";
|
import env from "@/api";
|
||||||
|
|
||||||
/** importStore*/
|
/** importStore*/
|
||||||
import { useEvaluateStore } from "@/modules/06_evaluate/store";
|
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
||||||
/** use*/
|
/** use*/
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const stroe = useEvaluateStore();
|
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, watch, computed } from "vue";
|
import { ref, watch, computed } from "vue";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
|
import { useQuasar } from "quasar";
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
|
|
||||||
|
|
@ -10,8 +11,9 @@ import type { QTableProps } from "quasar";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const $q = useQuasar();
|
||||||
const mixins = useCounterMixin();
|
const mixins = useCounterMixin();
|
||||||
const { showLoader, hideLoader, date2Thai } = mixins;
|
const { showLoader, hideLoader, date2Thai, messageError } = mixins;
|
||||||
|
|
||||||
// const evaluateId = ref<string>(route.params.id.toString());
|
// const evaluateId = ref<string>(route.params.id.toString());
|
||||||
|
|
||||||
|
|
@ -75,6 +77,10 @@ const columns = ref<QTableProps["columns"]>([
|
||||||
]);
|
]);
|
||||||
const row = ref<any>();
|
const row = ref<any>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function เรียกข้อมูลประวัติการประเมิน
|
||||||
|
* @param id การประเมิน
|
||||||
|
*/
|
||||||
async function fetchListHistory(id: string) {
|
async function fetchListHistory(id: string) {
|
||||||
const thaiOptions: Intl.DateTimeFormatOptions = {
|
const thaiOptions: Intl.DateTimeFormatOptions = {
|
||||||
hour: "2-digit",
|
hour: "2-digit",
|
||||||
|
|
@ -95,14 +101,16 @@ async function fetchListHistory(id: string) {
|
||||||
}));
|
}));
|
||||||
|
|
||||||
row.value = list;
|
row.value = list;
|
||||||
console.log(row.value);
|
|
||||||
})
|
})
|
||||||
.catch((err) => {})
|
.catch((err) => {
|
||||||
|
messageError($q, err);
|
||||||
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hideLoader();
|
hideLoader();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** callbaclFunction เรียกข้อมูลประวัติการประเมิน ทำงานเมื่อ props.modal === true*/
|
||||||
watch(
|
watch(
|
||||||
() => props.modal,
|
() => props.modal,
|
||||||
() => {
|
() => {
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ const props = defineProps({
|
||||||
:rows="props.row"
|
:rows="props.row"
|
||||||
dense
|
dense
|
||||||
:rows-per-page-options="[10, 25, 50, 100]"
|
:rows-per-page-options="[10, 25, 50, 100]"
|
||||||
style="width: 610px"
|
virtual-scroll
|
||||||
>
|
>
|
||||||
<template v-slot:header="props">
|
<template v-slot:header="props">
|
||||||
<q-tr :props="props">
|
<q-tr :props="props">
|
||||||
|
|
@ -30,18 +30,6 @@ const props = defineProps({
|
||||||
</q-th>
|
</q-th>
|
||||||
</q-tr>
|
</q-tr>
|
||||||
</template>
|
</template>
|
||||||
<!-- <template v-slot:body="props">
|
|
||||||
<q-tr :props="props" class="cursor-pointer">
|
|
||||||
<q-td v-for="col in props.cols" :key="col.name" :props="props">
|
|
||||||
<div v-if="col.name == 'no'">
|
|
||||||
{{ props.rowIndex + 1 }}
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
{{ col.value }}
|
|
||||||
</div>
|
|
||||||
</q-td>
|
|
||||||
</q-tr>
|
|
||||||
</template> -->
|
|
||||||
</q-table>
|
</q-table>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
@ -61,7 +49,6 @@ const props = defineProps({
|
||||||
|
|
||||||
.q-table thead tr th {
|
.q-table thead tr th {
|
||||||
position: sticky;
|
position: sticky;
|
||||||
z-index: 1;
|
|
||||||
}
|
}
|
||||||
/* this will be the loading indicator */
|
/* this will be the loading indicator */
|
||||||
.q-table thead tr:last-child th {
|
.q-table thead tr:last-child th {
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,6 @@
|
||||||
import { ref, onMounted, watch } from "vue";
|
import { ref, onMounted, watch } from "vue";
|
||||||
import { VuePDF, usePDF } from "@tato30/vue-pdf";
|
import { VuePDF, usePDF } from "@tato30/vue-pdf";
|
||||||
|
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
|
||||||
|
|
||||||
const mixin = useCounterMixin();
|
|
||||||
|
|
||||||
const { showLoader, hideLoader, messageError, date2Thai } = mixin;
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
pdfSrc: {
|
pdfSrc: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
@ -19,6 +13,7 @@ const props = defineProps({
|
||||||
|
|
||||||
const loadPDF = ref<boolean>(false);
|
const loadPDF = ref<boolean>(false);
|
||||||
|
|
||||||
|
/** function loadfile PDF*/
|
||||||
async function loadpdfData() {
|
async function loadpdfData() {
|
||||||
loadPDF.value = false;
|
loadPDF.value = false;
|
||||||
const pdfData = await usePDF(`${props.pdfSrc}`);
|
const pdfData = await usePDF(`${props.pdfSrc}`);
|
||||||
|
|
@ -37,6 +32,8 @@ watch(
|
||||||
await loadpdfData();
|
await loadpdfData();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/** lifecycleHook*/
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await loadpdfData();
|
await loadpdfData();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,20 @@ import { useQuasar } from "quasar";
|
||||||
import http from "@/plugins/http";
|
import http from "@/plugins/http";
|
||||||
import config from "@/app.config";
|
import config from "@/app.config";
|
||||||
|
|
||||||
|
/** importType*/
|
||||||
import type {
|
import type {
|
||||||
EducationForm,
|
EducationForm,
|
||||||
CertificatesForm,
|
CertificatesForm,
|
||||||
} from "@/modules/06_evaluate/interface/evalute";
|
} from "@/modules/06_evaluate/interface/evalute";
|
||||||
|
|
||||||
|
/** importComponents*/
|
||||||
import TableData from "@/modules/06_evaluate/components/viewstep/tableStep1.vue";
|
import TableData from "@/modules/06_evaluate/components/viewstep/tableStep1.vue";
|
||||||
|
|
||||||
|
/** importStore*/
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
import { useEvaluateDetailStore } from "@/modules/06_evaluate/stores/evaluteDetail";
|
import { useEvaluateDetailStore } from "@/modules/06_evaluate/stores/evaluteDetail";
|
||||||
|
|
||||||
|
/** use*/
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const store = useEvaluateDetailStore();
|
const store = useEvaluateDetailStore();
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
|
|
@ -55,6 +59,7 @@ const formDetail = reactive({
|
||||||
assessments: [],
|
assessments: [],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/** function เรียกข้อมูลตรวจสอบคุณสมบัติ*/
|
||||||
async function fetchDetail() {
|
async function fetchDetail() {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
|
|
@ -73,7 +78,6 @@ async function fetchDetail() {
|
||||||
formDetail.birthDate = data.birthDate && date2Thai(data.birthDate);
|
formDetail.birthDate = data.birthDate && date2Thai(data.birthDate);
|
||||||
formDetail.govAge = data.govAge;
|
formDetail.govAge = data.govAge;
|
||||||
formDetail.educations = data.educations;
|
formDetail.educations = data.educations;
|
||||||
|
|
||||||
formDetail.certificates = data.certificates.map(
|
formDetail.certificates = data.certificates.map(
|
||||||
(e: CertificatesForm) => ({
|
(e: CertificatesForm) => ({
|
||||||
certificateNo: e.certificateNo,
|
certificateNo: e.certificateNo,
|
||||||
|
|
@ -194,6 +198,10 @@ async function fetchCheckSpec(data: any) {
|
||||||
formDetail.assessments = data.assessments;
|
formDetail.assessments = data.assessments;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function convertตัวเลข
|
||||||
|
* @param x
|
||||||
|
*/
|
||||||
function formattedNumber(x: number) {
|
function formattedNumber(x: number) {
|
||||||
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||||
}
|
}
|
||||||
|
|
@ -205,38 +213,153 @@ onMounted(async () => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<q-scroll-area style="height: 450px; max=width: 100%">
|
<q-scroll-area style="height: 500px">
|
||||||
<div class="q-pa-xs">
|
<q-card class="q-gutter-md" style="width: 690px;">
|
||||||
<q-card class="q-gutter-md" style="max-width: 100%">
|
<q-card bordered style="border: 1px solid #d6dee1">
|
||||||
<q-card bordered style="border: 1px solid #d6dee1">
|
<div class="text-weight-bold row items-center bg-grey-2">
|
||||||
<div class="text-weight-bold row items-center bg-grey-2">
|
<span class="q-ml-lg q-my-sm">ข้อมูลส่วนตัว</span>
|
||||||
<span class="q-ml-lg q-my-sm">ข้อมูลส่วนตัว</span>
|
</div>
|
||||||
</div>
|
<q-separator />
|
||||||
<q-separator />
|
|
||||||
|
|
||||||
<div class="row q-pa-sm">
|
<div class="row q-pa-sm">
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.prefix"
|
||||||
|
label="คำนำหน้าชื่อ"
|
||||||
|
></q-input>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.fullName"
|
||||||
|
label="ชื่อ - นามสกุล"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
:model-value="formDetail.birthDate"
|
||||||
|
readonly
|
||||||
|
label="วันเดือนปีเกิด"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon class="size-icon" name="o_calendar_today" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.position"
|
||||||
|
label="ตำแหน่ง"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.posNo"
|
||||||
|
label="ตำแหน่งเลขที่"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.oc"
|
||||||
|
label="สังกัด"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.salary"
|
||||||
|
label="เงินเดือน"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.positionLevel"
|
||||||
|
label="ระดับปัจจุบัน"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.positionLevel"
|
||||||
|
label="ระดับที่ประเมิน"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="formDetail.govAge"
|
||||||
|
label="อายุราชการ"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
<q-card bordered style="border: 1px solid #d6dee1">
|
||||||
|
<div class="text-weight-bold row items-center bg-grey-2">
|
||||||
|
<span class="q-ml-lg q-my-sm">ประวัติการศึกษา </span>
|
||||||
|
</div>
|
||||||
|
<q-separator />
|
||||||
|
<div v-if="formDetail.educations && formDetail.educations.length > 0">
|
||||||
|
<div
|
||||||
|
class="row q-pa-sm"
|
||||||
|
v-for="(education, index) in formDetail.educations"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
<q-input
|
<q-input
|
||||||
borderless
|
borderless
|
||||||
readonly
|
readonly
|
||||||
:model-value="formDetail.prefix"
|
:model-value="education.educationLevel"
|
||||||
label="คำนำหน้าชื่อ"
|
label="ระดับศึกษา"
|
||||||
></q-input>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
readonly
|
|
||||||
:model-value="formDetail.fullName"
|
|
||||||
label="ชื่อ - นามสกุล"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
<q-input
|
<q-input
|
||||||
borderless
|
borderless
|
||||||
:model-value="formDetail.birthDate"
|
|
||||||
readonly
|
readonly
|
||||||
label="วันเดือนปีเกิด"
|
:model-value="education.institute"
|
||||||
|
label="สถานศึกษา"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
:model-value="date2Thai(education.startDate)"
|
||||||
|
readonly
|
||||||
|
label="ตั้งแต่"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon class="size-icon" name="o_calendar_today" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
:model-value="date2Thai(education.endDate)"
|
||||||
|
readonly
|
||||||
|
label="ถึง"
|
||||||
>
|
>
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon class="size-icon" name="o_calendar_today" />
|
<q-icon class="size-icon" name="o_calendar_today" />
|
||||||
|
|
@ -246,33 +369,22 @@ onMounted(async () => {
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
<q-input
|
<q-input
|
||||||
borderless
|
borderless
|
||||||
|
:model-value="date2Thai(education.finishDate)"
|
||||||
readonly
|
readonly
|
||||||
:model-value="formDetail.position"
|
label="วันที่สำเร็จการศึกษา"
|
||||||
label="ตำแหน่ง"
|
>
|
||||||
/>
|
<template v-slot:prepend>
|
||||||
|
<q-icon class="size-icon" name="o_calendar_today" />
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
<q-input
|
<q-input
|
||||||
borderless
|
borderless
|
||||||
readonly
|
readonly
|
||||||
:model-value="formDetail.posNo"
|
:model-value="education.isEducation ? 'ใช่' : 'ไม่ใช่'"
|
||||||
label="ตำแหน่งเลขที่"
|
label="วุฒิการศึกษาในตําแหน่ง"
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
readonly
|
|
||||||
:model-value="formDetail.oc"
|
|
||||||
label="สังกัด"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
readonly
|
|
||||||
:model-value="formDetail.salary"
|
|
||||||
label="เงินเดือน"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -280,8 +392,8 @@ onMounted(async () => {
|
||||||
<q-input
|
<q-input
|
||||||
borderless
|
borderless
|
||||||
readonly
|
readonly
|
||||||
:model-value="formDetail.positionLevel"
|
:model-value="education.degree"
|
||||||
label="ระดับปัจจุบัน"
|
label="วุฒิการศึกษา"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -289,8 +401,16 @@ onMounted(async () => {
|
||||||
<q-input
|
<q-input
|
||||||
borderless
|
borderless
|
||||||
readonly
|
readonly
|
||||||
:model-value="formDetail.positionLevel"
|
:model-value="education.field"
|
||||||
label="ระดับที่ประเมิน"
|
label="สาขาวิชา/ทาง"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-3">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="education.fundName"
|
||||||
|
label="ทุน"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -298,211 +418,86 @@ onMounted(async () => {
|
||||||
<q-input
|
<q-input
|
||||||
borderless
|
borderless
|
||||||
readonly
|
readonly
|
||||||
:model-value="formDetail.govAge"
|
:model-value="education.gpa"
|
||||||
label="อายุราชการ"
|
label="เกรดเฉลี่ย"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-xs-6 col-sm-4 col-md-6">
|
||||||
|
<q-input
|
||||||
|
borderless
|
||||||
|
readonly
|
||||||
|
:model-value="education.country"
|
||||||
|
label="ประเทศ"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
</div>
|
||||||
|
<div v-else class="row col-12 q-pa-md">ไม่มีประวัติการศึกษา</div>
|
||||||
<q-card bordered style="border: 1px solid #d6dee1">
|
<q-separator />
|
||||||
<div class="text-weight-bold row items-center bg-grey-2">
|
|
||||||
<span class="q-ml-lg q-my-sm">ประวัติการศึกษา </span>
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
<div v-if="formDetail.educations && formDetail.educations.length > 0">
|
|
||||||
<div
|
|
||||||
class="row q-pa-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
|
|
||||||
:model-value="education.educationLevel"
|
|
||||||
label="ระดับศึกษา"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
readonly
|
|
||||||
:model-value="education.institute"
|
|
||||||
label="สถานศึกษา"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
:model-value="date2Thai(education.startDate)"
|
|
||||||
readonly
|
|
||||||
label="ตั้งแต่"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon class="size-icon" name="o_calendar_today" />
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
:model-value="date2Thai(education.endDate)"
|
|
||||||
readonly
|
|
||||||
label="ถึง"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon class="size-icon" name="o_calendar_today" />
|
|
||||||
</template>
|
|
||||||
</q-input>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
:model-value="date2Thai(education.finishDate)"
|
|
||||||
readonly
|
|
||||||
label="วันที่สำเร็จการศึกษา"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon class="size-icon" name="o_calendar_today" />
|
|
||||||
</template>
|
|
||||||
</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
|
|
||||||
:model-value="education.degree"
|
|
||||||
label="วุฒิการศึกษา"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
readonly
|
|
||||||
:model-value="education.field"
|
|
||||||
label="สาขาวิชา/ทาง"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
readonly
|
|
||||||
:model-value="education.fundName"
|
|
||||||
label="ทุน"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-3">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
readonly
|
|
||||||
:model-value="education.gpa"
|
|
||||||
label="เกรดเฉลี่ย"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-xs-6 col-sm-4 col-md-6">
|
|
||||||
<q-input
|
|
||||||
borderless
|
|
||||||
readonly
|
|
||||||
:model-value="education.country"
|
|
||||||
label="ประเทศ"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div v-else class="row col-12 q-pa-md">ไม่มีประวัติการศึกษา</div>
|
|
||||||
<q-separator />
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
<q-card bordered style="border: 1px solid #d6dee1">
|
|
||||||
<div class="text-weight-bold row items-center bg-grey-2">
|
|
||||||
<span class="q-ml-lg q-my-sm">ใบอนุญาตประกอบวิชาชีพ</span>
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="row q-pa-sm">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
|
||||||
<TableData
|
|
||||||
:columns="columnsCertificates"
|
|
||||||
:row="formDetail.certificates"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
<q-card bordered style="border: 1px solid #d6dee1">
|
|
||||||
<div class="text-weight-bold row items-center bg-grey-2">
|
|
||||||
<span class="q-ml-lg q-my-sm">ประวัติการรับราชการ</span>
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="row q-pa-sm">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
|
||||||
<TableData :columns="columnSalaries" :row="formDetail.salaries" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
<q-card bordered style="border: 1px solid #d6dee1">
|
|
||||||
<div class="text-weight-bold row items-center bg-grey-2">
|
|
||||||
<span class="q-ml-lg q-my-sm">ประวัติการฝึกอบรมดูงาน</span>
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="row q-pa-sm">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
|
||||||
<TableData
|
|
||||||
:columns="columnTraining"
|
|
||||||
:row="formDetail.trainings"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
<q-card bordered style="border: 1px solid #d6dee1">
|
|
||||||
<div class="text-weight-bold row items-center bg-grey-2">
|
|
||||||
<span class="q-ml-lg q-my-sm">ประสบการณ์ในการปฏิบัติงาน </span>
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="row q-pa-sm">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
|
||||||
-
|
|
||||||
<!-- <TableData
|
|
||||||
:columns="columnTraining"
|
|
||||||
:row="formDetail.Trainings"
|
|
||||||
/> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
<q-card bordered style="border: 1px solid #d6dee1">
|
|
||||||
<div class="text-weight-bold row items-center bg-grey-2">
|
|
||||||
<span class="q-ml-lg q-my-sm"
|
|
||||||
>ผลงานที่เคยเสนอขอประเมิน (ถ้ามี)</span
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="row q-pa-sm">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
|
||||||
<TableData :columns="columnProjectsProposed" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
|
||||||
|
<q-card bordered style="border: 1px solid #d6dee1">
|
||||||
|
<div class="text-weight-bold row items-center bg-grey-2">
|
||||||
|
<span class="q-ml-lg q-my-sm">ใบอนุญาตประกอบวิชาชีพ</span>
|
||||||
|
</div>
|
||||||
|
<q-separator />
|
||||||
|
<div class="row q-pa-sm">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||||
|
<TableData
|
||||||
|
:columns="columnsCertificates"
|
||||||
|
:row="formDetail.certificates"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
<q-card bordered style="border: 1px solid #d6dee1">
|
||||||
|
<div class="text-weight-bold row items-center bg-grey-2">
|
||||||
|
<span class="q-ml-lg q-my-sm">ประวัติการรับราชการ</span>
|
||||||
|
</div>
|
||||||
|
<q-separator />
|
||||||
|
<div class="row q-pa-sm">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||||
|
<TableData :columns="columnSalaries" :row="formDetail.salaries" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
<q-card bordered style="border: 1px solid #d6dee1">
|
||||||
|
<div class="text-weight-bold row items-center bg-grey-2">
|
||||||
|
<span class="q-ml-lg q-my-sm">ประวัติการฝึกอบรมดูงาน</span>
|
||||||
|
</div>
|
||||||
|
<q-separator />
|
||||||
|
<div class="row q-pa-sm">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||||
|
<TableData :columns="columnTraining" :row="formDetail.trainings" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
<q-card bordered style="border: 1px solid #d6dee1">
|
||||||
|
<div class="text-weight-bold row items-center bg-grey-2">
|
||||||
|
<span class="q-ml-lg q-my-sm">ประสบการณ์ในการปฏิบัติงาน </span>
|
||||||
|
</div>
|
||||||
|
<q-separator />
|
||||||
|
<div class="row q-pa-sm">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12">-</div>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
|
||||||
|
<q-card bordered style="border: 1px solid #d6dee1">
|
||||||
|
<div class="text-weight-bold row items-center bg-grey-2">
|
||||||
|
<span class="q-ml-lg q-my-sm">ผลงานที่เคยเสนอขอประเมิน (ถ้ามี)</span>
|
||||||
|
</div>
|
||||||
|
<q-separator />
|
||||||
|
<div class="row q-pa-sm">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||||
|
<TableData :columns="columnProjectsProposed" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card>
|
||||||
|
</q-card>
|
||||||
</q-scroll-area>
|
</q-scroll-area>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,10 @@ export const useEvaluateStore = defineStore("evaluateStore", () => {
|
||||||
const visibleColumns = ref<string[]>([]);
|
const visibleColumns = ref<string[]>([]);
|
||||||
const row = ref<any>();
|
const row = ref<any>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function เรียกข่อมูลรายการประเมิน
|
||||||
|
* @param data ข้อมูลรายการประเมิน
|
||||||
|
*/
|
||||||
async function fetchEvaluateList(data: any) {
|
async function fetchEvaluateList(data: any) {
|
||||||
const list = data.map((e: any) => ({
|
const list = data.map((e: any) => ({
|
||||||
id: e.id,
|
id: e.id,
|
||||||
|
|
@ -43,6 +47,10 @@ export const useEvaluateStore = defineStore("evaluateStore", () => {
|
||||||
"เสร็จสิ้น",
|
"เสร็จสิ้น",
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* function แปรงสถานะ
|
||||||
|
* @param val สถานะ
|
||||||
|
*/
|
||||||
function convertStatus(val: string) {
|
function convertStatus(val: string) {
|
||||||
switch (val) {
|
switch (val) {
|
||||||
case "CHECK_SPEC":
|
case "CHECK_SPEC":
|
||||||
|
|
|
||||||
|
|
@ -55,8 +55,6 @@ const maxPage = ref<number>(10);
|
||||||
|
|
||||||
/** function เรียกรายการประเมิน*/
|
/** function เรียกรายการประเมิน*/
|
||||||
async function fetchEvaluteList() {
|
async function fetchEvaluteList() {
|
||||||
console.log("test");
|
|
||||||
|
|
||||||
showLoader();
|
showLoader();
|
||||||
const body = {
|
const body = {
|
||||||
page: page.value,
|
page: page.value,
|
||||||
|
|
@ -75,7 +73,6 @@ async function fetchEvaluteList() {
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hideLoader();
|
hideLoader();
|
||||||
console.log("test");
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue