hrms-user/src/modules/09_scholarship/views/detail.vue
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 6765e5d90b fix(scholarship):fundTypeOp
2025-12-09 09:24:51 +07:00

3093 lines
127 KiB
Vue

<script setup lang="ts">
import { onMounted, reactive, ref } from "vue";
import { useRoute, useRouter } from "vue-router";
import http from "@/plugins/http";
import config from "@/app.config";
import { useCounterMixin } from "@/stores/mixin";
import { useQuasar } from "quasar";
import type { DataOptions } from "@/modules/09_scholarship/interface/index/Main";
import type {
FormsSholarship,
DataSholarship,
} from "@/modules/09_scholarship/interface/request/index";
import DialogReturn from "@/modules/09_scholarship/components/Dialog/DialogReturn.vue";
const $q = useQuasar();
const router = useRouter();
const route = useRoute();
const mixin = useCounterMixin();
const {
showLoader,
hideLoader,
messageError,
date2Thai,
calculateDurationYmd,
} = mixin;
const isLoad = ref<boolean>(false);
const isGuarantor = ref<boolean>(false);
const isGov = ref<boolean>(false);
const isStatus = ref<string>("");
const fileList = ref<any[]>();
const dialogReturn = ref<boolean>(false);
const id = ref<string>(route.params.id.toLocaleString());
const budgetSourceOp = ref<DataOptions[]>([
{ id: "BKK", name: "งบประมาณ กทม." },
{ id: "HOSPITAL", name: "เงินบำรุงโรงพยาบาล" },
{ id: "FUND", name: "เงินกองทุน" },
{ id: "SUBSIDY", name: "เงินอุดหนุน" },
{ id: "OTHER", name: "เงินอื่นๆ" },
]);
const useOfficialTimeOp = ref<DataOptions[]>([
{
id: "NOUSETIME",
name: "ไม่ใช้เวลาราชการ",
},
{
id: "USETIME",
name: "ใช้เวลาราชการ",
},
{
id: "SOMETIME",
name: "ใช้เวลาราชการบางส่วน",
},
]);
const formBody = reactive<FormsSholarship>({
profileId: "",
rank: "", //ยศ
prefix: "", //คำนำหน้าชื่อ
firstName: "", //ชื่อ
lastName: "", //นามสกุล
citizenId: "", //เลขประจำตัวประชาชน
position: "", //ตำแหน่ง
posExecutive: "", //ชื่อตำแหน่งทางการบริหาร
posLevelId: null, //ไอดีระดับตำแหน่ง
posTypeId: null, //ไอดีประเภทตำแหน่ง
org: "",
rootId: null,
root: "",
orgRootShortName: "",
orgRevisionId: null,
guarantorRank: "", //ยศ(ผู้ค้ำ)
guarantorPrefix: "", //คำนำหน้าชื่อ(ผู้ค้ำ)
guarantorFirstName: "", //ชื่อ(ผู้ค้ำ)
guarantorLastName: "", //นามสกุล(ผู้ค้ำ)
guarantorCitizenId: "", //เลขประจำตัวประชาชน(ผู้ค้ำ)
guarantorPosition: "", //ตำแหน่ง(ผู้ค้ำ)
guarantorPosExecutive: "", //ชื่อตำแหน่งทางการบริหาร(ผู้ค้ำ)
guarantorOrg: "",
guarantorRootId: null,
guarantorRoot: "",
guarantorOrgRootShortName: "",
guarantorOrgRevisionId: null,
posLevelguarantorId: null, //ไอดีระดับตำแหน่ง(ผู้ค้ำ)
posTypeguarantorId: null, //ไอดีประเภทตำแหน่ง(ผู้ค้ำ)
scholarshipYear: null, //ปีงบประมาณที่ได้รับทุน
budgetSource: "", //แหล่งงบประมาณ
budgetApprove: null, //งบประมาณที่ได้รับอนุมัติตลอดหลักสูตร
bookNo: "", //เลขที่หนังสืออนุมัติ
bookNoDate: null, //ลงวันที่(หนังสือ)
bookApproveDate: null, //หนังสืออนุมัติเมื่อวันที่
useOfficialTime: false, //ใช้เวลาราชการ
changeDetail: "", //เปลี่ยนแปลงรายละเอียด
scholarshipType: "", //เลือกประเภททุน
fundType: "", //ประเภททุน
contractNo: "", //เลขที่สัญญา
contractDate: null, //ลงวันที่(เลขที่สัญญา)
reportBackNo: "", //เลขที่หนังสือรายงานตัวกลับ
reportBackNoDate: null, //ลงวันที่(เลขที่หนังสือรายงานตัวกลับ)
reportBackDate: null, //รายงานตัวกลับวันที่
degreeLevel: "", //ระดับปริญญา
course: "", //หลักสูตรการศึกษา/หลักสูตรการฝึกอบรม
field: "", //สาขาวิชา/สาขา
faculty: "", //คณะ
educationalInstitution: "", //สถาบันการศึกษา/สถาบันการศึกษา_หน่วยงานผู้จัดการฝึกอบรม/สถานที่ไปศึกษาดูงานในประเทศ
startDate: null, //วันเริ่มต้นการศึกษา/วันเริ่มต้นการฝึกอบรม/วันเริ่มต้นการศึกษาดูงานในประเทศ
endDate: null, //วันสิ้นสุดการศึกษา/วันสิ้นสุดการฝึกอบรม/วันสิ้นสุดการศึกษาดูงานในประเทศ
studyPlace: "", //สถานที่ไปศึกษาดูงาน
studyTopic: "", //หัวข้อการไปศึกษาดูงาน/หัวข้อการไปศึกษาดูงานในประเทศ
studyStartDate: null, //วันเริ่มต้นการศึกษาดูงาน
studyEndDate: null, //วันสิ้นสุดการศึกษาดูงาน
studyCountry: "", //ประเทศที่ไปศึกษาดูงาน
studyAbroadTopic: "", //หัวข้อการไปศึกษาดูงานต่างประเทศ
studyAbroadStartDate: null, //วันเริ่มต้นการศึกษาดูงานต่างประเทศ
studyAbroadEndDate: null, //วันสิ้นสุดการศึกษาดูงานต่างประเทศ
totalPeriod: "", //รวมระยะเวลาในการศึกษา/รวมระยะเวลาในการฝึกอบรม
planType: "",
budgetSourceOther: "",
isNoUseBudget: false,
});
const dataPerson = reactive({
id: "",
citizenId: "",
name: "",
prefix: "",
firstName: "",
lastName: "",
position: "",
type: "",
level: "",
positionSide: "",
org: "-",
});
const dataGuarantor = reactive({
id: "",
prefix: "",
firstName: "",
lastName: "",
citizenId: "",
name: "",
position: "",
type: "",
level: "",
positionSide: "",
org: "-",
});
const scholarshipTypeOp = ref<DataOptions[]>([
{ id: "DOMESTICE", name: "การศึกษาในประเทศ" },
{
id: "NOABROAD",
name: "ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยงานภายนอก (หลักสูตรที่ไม่มีการไปต่างประเทศ)",
},
{
id: "ABROAD",
name: "ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยงานภายนอก (หลักสูตรที่มีการไปต่างประเทศ)",
},
{
id: "EXECUTIVE",
name: " ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยงานภายนอก (หลักสูตรประเภทนักบริหาร)",
},
{
id: "STUDY",
name: "ทุนการศึกษา ณ ต่างประเทศ",
},
{
id: "TRAINING",
name: "ทุนฝึกอบรม ณ ต่างประเทศ",
},
]);
const fundTypeOp = ref<DataOptions[]>([
{ id: "FUND1", name: "ทุน 1 (ก)" },
{ id: "FUND2", name: "ทุน 1 (ข)" },
{ id: "FUND3", name: "ทุน 1 (ค)" },
{ id: "FUND4", name: "ทุน 2 (ทุนส่วนตัว)" },
{ id: "FUND5", name: "ทุนส่วนตัว" },
]);
function updateTotalPeriod(
startDate: any,
endDate: any,
toDo: boolean = false
) {
if (!toDo && startDate && endDate) {
const start = new Date(startDate);
const end = new Date(endDate);
formBody.totalPeriod = calculateDurationYmd(start, end);
}
}
function changeStartDate(type: string) {
switch (type) {
case "startDate":
if (formBody?.startDate !== null && formBody?.endDate !== null) {
const startDate = new Date(formBody.startDate);
const endDate = new Date(formBody?.endDate);
if (startDate > endDate) {
formBody.endDate = null;
}
}
break;
case "studyStartDate":
if (
formBody?.studyStartDate !== null &&
formBody?.studyEndDate !== null
) {
const startDate = new Date(formBody.studyStartDate);
const endDate = new Date(formBody?.studyEndDate);
if (startDate > endDate) {
formBody.studyEndDate = null;
if (formBody.scholarshipType === "NOABROAD") {
formBody.totalPeriod = "";
}
} else {
if (formBody.scholarshipType === "NOABROAD") {
formBody.totalPeriod = calculateDurationYmd(startDate, endDate);
}
}
}
break;
case "studyAbroadStartDate":
if (
formBody?.studyAbroadStartDate !== null &&
formBody?.studyAbroadEndDate !== null
) {
const startDate = new Date(formBody.studyAbroadStartDate);
const endDate = new Date(formBody?.studyAbroadEndDate);
if (startDate > endDate) {
formBody.studyAbroadEndDate = null;
} else {
formBody.totalPeriod = calculateDurationYmd(startDate, endDate);
}
}
break;
default:
break;
}
}
async function getFile() {
await http
.get(
config.API.developmentSalaryFile(
"ระบบพัฒนาบุคคล",
"ฟอร์มรายงานตัวกลับเข้ารับราชการ",
id.value
)
)
.then((res) => {
if (res) {
const dataFile = res.data;
fileList.value = dataFile[0];
}
});
}
function downloadFile(file: any) {
showLoader();
http
.get(
config.API.developmentSalaryFile(
"ระบบพัฒนาบุคคล",
"ฟอร์มรายงานตัวกลับเข้ารับราชการ",
id.value
) + `/${file.fileName}`
)
.then((res) => {
const data = res.data.downloadUrl;
window.open(data, "_blank");
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
hideLoader();
});
}
async function fetchDataDetail(id: string) {
isLoad.value = true;
await http
.get(config.API.developmentScholarship + `/${id}`)
.then((res) => {
const data: DataSholarship = res.data.result;
isGov.value = data.citizenId ? true : false;
formBody.rank = data.rank;
formBody.prefix = data.prefix;
formBody.firstName = data.firstName;
formBody.lastName = data.lastName;
formBody.citizenId = data.citizenId;
formBody.position = data.position;
formBody.posExecutive = data.posExecutive;
formBody.posLevelId = data.posLevelId;
formBody.posTypeId = data.posTypeId;
formBody.guarantorRank = data.guarantorRank;
formBody.guarantorPrefix = data.guarantorPrefix;
formBody.guarantorFirstName = data.guarantorFirstName;
formBody.guarantorLastName = data.guarantorLastName;
formBody.guarantorCitizenId = data.guarantorCitizenId;
formBody.guarantorPosition = data.guarantorPosition;
formBody.guarantorPosExecutive = data.guarantorPosExecutive;
formBody.guarantorOrg = data.guarantorOrg;
formBody.guarantorRootId = data.guarantorRootId;
formBody.guarantorRoot = data.guarantorRoot;
formBody.guarantorOrgRootShortName = data.guarantorOrgRootShortName;
formBody.guarantorOrgRevisionId = data.guarantorOrgRevisionId;
formBody.posLevelguarantorId = data.posLevelguarantorId;
formBody.posTypeguarantorId = data.posTypeguarantorId;
formBody.scholarshipYear = data.scholarshipYear;
formBody.budgetSource = data.budgetSource;
formBody.budgetSourceOther = data.budgetSourceOther;
formBody.budgetApprove = data.budgetApprove;
formBody.bookNo = data.bookNo;
formBody.bookNoDate = data.bookNoDate;
formBody.bookApproveDate = data.bookApproveDate;
formBody.useOfficialTime = data.useOfficialTime
? data.useOfficialTime
: false;
formBody.changeDetail = data.changeDetail;
formBody.scholarshipType = data.scholarshipType;
formBody.fundType = data.fundType;
formBody.contractNo = data.contractNo;
formBody.contractDate = data.contractDate;
formBody.reportBackNo = data.reportBackNo;
formBody.reportBackNoDate = data.reportBackNoDate;
formBody.reportBackDate = data.reportBackDate;
formBody.degreeLevel = data.degreeLevel;
formBody.course = data.course;
formBody.field = data.field;
formBody.faculty = data.faculty;
formBody.educationalInstitution = data.educationalInstitution;
formBody.startDate = data.startDate;
formBody.endDate = data.endDate;
formBody.studyPlace = data.studyPlace;
formBody.studyTopic = data.studyTopic;
formBody.studyStartDate = data.studyStartDate;
formBody.studyEndDate = data.studyEndDate;
formBody.studyCountry = data.studyCountry;
formBody.studyAbroadTopic = data.studyAbroadTopic;
formBody.studyAbroadStartDate = data.studyAbroadStartDate;
formBody.studyAbroadEndDate = data.studyAbroadEndDate;
formBody.totalPeriod = data.totalPeriod;
formBody.planType = data.planType ? data.planType : "";
formBody.isNoUseBudget = data.isNoUseBudget ? data.isNoUseBudget : false;
dataPerson.citizenId = data.citizenId ? data.citizenId : "-";
dataPerson.name = `${data.prefix}${data.firstName} ${data.lastName}`;
(dataPerson.prefix = data.prefix),
(dataPerson.firstName = data.firstName),
(dataPerson.lastName = data.lastName),
(dataPerson.position = data.position ? data.position : "-");
dataPerson.type = data.posTypeName ? data.posTypeName : "-";
dataPerson.level = data.posLevelName ? data.posLevelName : "-";
dataPerson.positionSide = data.posExecutive ? data.posExecutive : "-";
dataPerson.org = data.org ? data.org : "-";
dataGuarantor.citizenId = data.guarantorCitizenId;
dataGuarantor.name = `${data.guarantorPrefix}${data.guarantorFirstName} ${data.guarantorLastName}`;
dataGuarantor.position = data.position ? data.position : "-";
dataGuarantor.type = data.posTypeguarantorName
? data.posTypeguarantorName
: "-";
dataGuarantor.level = data.posLevelguarantorName
? data.posLevelguarantorName
: "-";
dataGuarantor.positionSide = data.guarantorPosExecutive
? data.guarantorPosExecutive
: "-";
dataGuarantor.org = data.guarantorOrg ? data.guarantorOrg : "-";
isStatus.value = data.status;
isGuarantor.value = data.guarantorCitizenId ? true : false;
})
.catch((err) => {
messageError($q, err);
})
.finally(() => {
isLoad.value = false;
});
}
onMounted(async () => {
await Promise.all([fetchDataDetail(id.value), getFile()]);
});
</script>
<template>
<div class="col-12 row justify-center">
<div class="col-xs-12 col-sm-12 col-md-11">
<div class="toptitle text-white col-12 row items-center">
<q-btn
icon="mdi-arrow-left"
unelevated
round
dense
flat
color="primary"
class="q-mr-sm"
@click="router.push(`/scholarship`)"
/>
รายละเอยดทนการศกษา/กอบรม
</div>
<q-card flat bordered class="col-12 q-pa-md">
<q-toolbar class="q-px-none q-pb-sm" v-if="fileList">
<div class="row q-col-gutter-x-sm full-width">
<q-space />
<div class="col-2 text-right">
<q-btn
size="12px"
flat
round
dense
color="blue"
icon="mdi-download"
@click="downloadFile(fileList)"
>
<q-tooltip>ดาวนโหลดไฟล</q-tooltip></q-btn
>
</div>
</div>
</q-toolbar>
<q-card flat style="border-radius: 5px; 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 col-12 q-col-gutter-md q-pa-md">
<div class="col-xs-12 col-md-6">
<div class="row q-col-gutter-md">
<div class="col-4 text-grey">เลขประจำตวประชาชน</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataPerson.citizenId ? dataPerson.citizenId : "-" }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">-นามสก</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataPerson.firstName ? dataPerson.name : "-" }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">ตำแหนงในสายงาน</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataPerson.position ? dataPerson.position : "-" }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">ตำแหนงประเภท</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataPerson.type ? dataPerson.type : "-" }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
</div>
</div>
<div class="col-xs-12 col-md-6">
<div class="row q-col-gutter-md">
<div class="col-4 text-grey">ระด</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataPerson.level ? dataPerson.level : "-" }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">ตำแหนงทางการบรหาร</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataPerson.positionSide ? dataPerson.positionSide : "-" }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">หนวยงานทงก</div>
<div v-if="!isLoad" class="col-8 text-weight-medium text-html">
{{ dataPerson.org ? dataPerson.org : "-" }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
</div>
</div>
</div>
</q-card>
<div class="row q-col-gutter-md q-mt-sm">
<div class="col-12 col-md-9">
<q-select
v-if="!isLoad"
class="inputgreen"
readonly
dense
outlined
hide-bottom-space
lazy-rules
v-model="formBody.scholarshipType"
:options="scholarshipTypeOp"
option-label="name"
option-value="id"
emit-value
map-options
label="เลือกประเภททุน"
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกประเภททุน'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div
class="col-12 col-md-3"
v-if="
formBody.scholarshipType !== '' &&
formBody.scholarshipType !== 'EXECUTIVE'
"
>
<q-select
v-if="!isLoad"
readonly
dense
outlined
hide-bottom-space
lazy-rules
class="inputgreen"
v-model="formBody.fundType"
:options="fundTypeOp"
option-label="name"
option-value="id"
emit-value
map-options
label="ประเภททุน"
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกประเภททุน'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div v-if="!isLoad" class="col-12">
<q-radio
disable
v-model="formBody.planType"
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
val="INPLAN"
label="ในแผน ฯ"
dense
/>
<q-radio
disable
v-model="formBody.planType"
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
val="OUTPLAN"
label="นอกแผน ฯ"
dense
class="q-pl-sm"
/>
</div>
<div v-else class="col-12">
<div class="row q-gutter-sm">
<q-skeleton width="90px" />
<q-skeleton width="90px" />
</div>
</div>
<div class="col-12">
<div class="row q-col-gutter-md">
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.scholarshipYear"
:locale="'th'"
autoApply
year-picker
:enableTimePicker="false"
readonly
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
readonly
dense
outlined
class="inputgreen"
:model-value="
formBody.scholarshipYear
? Number(formBody.scholarshipYear) + 543
: null
"
:label="`${
formBody.scholarshipType === 'STUDY' ||
formBody.scholarshipType === 'TRAINING'
? 'ปีงบประมาณที่ได้รับอนุมัติ '
: 'ปีงบประมาณที่ได้รับทุน'
}`"
hide-bottom-space
:rules="[
(val: string) => !!val || `${'กรุณาเลือกปีงบประมาณที่ได้รับทุน'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-select
v-if="!isLoad"
readonly
dense
outlined
class="inputgreen"
label="แหล่งงบประมาณ"
hide-bottom-space
v-model="formBody.budgetSource"
:options="budgetSourceOp"
option-label="name"
option-value="id"
emit-value
map-options
:clearable="formBody.fundType == 'FUND4' ? true : false"
:rules="[
(val: any) => {
if (!val && !formBody.isNoUseBudget && formBody.fundType != 'FUND4') {
return 'กรุณาเลือกแหล่งงบประมาณ';
}
return true;
},
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div
class="col-12 col-md-3"
v-if="formBody.budgetSource == 'OTHER'"
>
<q-input
v-if="!isLoad"
readonly
dense
outlined
hide-bottom-space
class="inputgreen"
v-model="formBody.budgetSourceOther"
label="เงินอื่นๆ โปรดระบุ"
hide-botom-space
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกเงินอื่นๆ โปรดระบุ'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
readonly
dense
outlined
hide-bottom-space
class="inputgreen"
v-model="formBody.budgetApprove"
label="งบประมาณที่ได้รับอนุมัติตลอดหลักสูตร"
mask="###,###,###,###,###,###"
reverse-fill-mask
:rules="[
(val: any) => {
if (!val && !formBody.isNoUseBudget && formBody.fundType != 'FUND4') {
return 'กรุณากรอกงบประมาณที่ได้รับอนุมัติตลอดหลักสูตร';
}
return true;
},
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
</div>
</div>
<div class="col-12">
<div class="row q-col-gutter-md">
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
readonly
dense
outlined
class="inputgreen"
v-model="formBody.bookNo"
label="เลขที่หนังสืออนุมัติ"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกเลขที่หนังสืออนุมัติ'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.bookNoDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
readonly
dense
outlined
class="inputgreen"
:model-value="
formBody.bookNoDate
? date2Thai(formBody.bookNoDate)
: null
"
:label="`${'ลงวันที่'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.bookApproveDate"
:locale="'th'"
autoApply
readonly
:enableTimePicker="false"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
readonly
outlined
class="inputgreen"
:model-value="
formBody.bookApproveDate
? date2Thai(formBody.bookApproveDate)
: null
"
:label="`${'หนังสืออนุมัติเมื่อวันที่'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่หนังสืออนุมัติเมื่อวันที่'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div
v-if="
formBody.scholarshipType !== 'STUDY' &&
formBody.scholarshipType !== 'TRAINING'
"
class="col-12 col-md-2"
>
<q-select
v-if="!isLoad"
outlined
dense
label="เวลาราชการ"
readonly
v-model="formBody.useOfficialTime"
:options="useOfficialTimeOp"
option-value="id"
option-label="name"
class="inputgreen"
emit-value
map-options
>
</q-select>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-2">
<q-checkbox
v-if="!isLoad"
disable
keep-color
color="primary"
v-model="formBody.isNoUseBudget"
label="ไม่ใช้งบประมาณ"
/>
<q-skeleton v-else width="90px" />
</div>
</div>
</div>
<div class="col-12" v-if="formBody.scholarshipType !== 'EXECUTIVE'">
<div class="row col-12 q-col-gutter-md">
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
readonly
dense
outlined
lazy-rules
hide-bottom-space
label="เลขที่สัญญา"
class="inputgreen"
v-model="formBody.contractNo"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกเลขที่สัญญา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.contractDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
readonly
outlined
class="inputgreen"
:model-value="
formBody.contractDate
? date2Thai(formBody.contractDate)
: null
"
:label="`${'ลงวันที่'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12">
<div class="row q-col-gutter-md">
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
readonly
outlined
hide-bottom-space
lazy-rules
class="inputgreen"
v-model="formBody.reportBackNo"
label="เลขที่หนังสือรายงานตัวกลับ"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.reportBackNoDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
readonly
dense
outlined
class="inputgreen"
:model-value="
formBody.reportBackNoDate
? date2Thai(formBody.reportBackNoDate)
: null
"
:label="`${'ลงวันที่'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.reportBackDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
readonly
dense
outlined
class="inputgreen"
:model-value="
formBody.reportBackDate
? date2Thai(formBody.reportBackDate)
: null
"
:label="`${'รายงานตัวกลับเมื่่อวันที่'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
</div>
</div>
<!-- เลือกทุน 1 -->
<div
class="col-12"
v-if="formBody.scholarshipType === 'DOMESTICE'"
>
<div class="row q-col-gutter-md">
<div class="col-12 col-md-3">
<!-- <q-input
readonly
dense
outlined
lazy-rules
hide-bottom-space
label="ระดับปริญญา"
class="inputgreen"
v-model="formBody.degreeLevel"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกระดับปริญญา'}`,
]"
/> -->
<q-select
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
class="inputgreen"
label="ระดับปริญญา"
v-model="formBody.degreeLevel"
:options="[
'ปริญญาตรี',
'สูงกว่าปริญญาตรี',
'ปริญญาโท',
'ปริญญาเอก',
]"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกระดับปริญญา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
readonly
dense
outlined
lazy-rules
hide-bottom-space
label="หลักสูตรการศึกษา"
class="inputgreen"
v-model="formBody.course"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหลักสูตรการศึกษา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
readonly
dense
outlined
lazy-rules
hide-bottom-space
label="สาขาวิชา"
class="inputgreen"
v-model="formBody.field"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสาขาวิชา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
readonly
outlined
lazy-rules
hide-bottom-space
label="คณะ"
class="inputgreen"
v-model="formBody.faculty"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกคณะ'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
readonly
outlined
lazy-rules
hide-bottom-space
label="สถาบันการศึกษา"
class="inputgreen"
v-model="formBody.educationalInstitution"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสถาบันการศึกษา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.startDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
readonly
@update:model-value="changeStartDate('startDate')"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
readonly
outlined
class="inputgreen"
:model-value="
formBody.startDate
? date2Thai(formBody.startDate)
: null
"
:label="`${'วันเริ่มต้นการศึกษา'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการศึกษา'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.endDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
:min-date="formBody.startDate"
readonly
@update:model-value="
updateTotalPeriod(formBody.startDate, formBody.endDate)
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
readonly
outlined
class="inputgreen"
:model-value="
formBody.endDate
? date2Thai(formBody.endDate)
: null
"
:label="`${'วันสิ้นสุดการศึกษา'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่วันสิ้นสุดการศึกษา'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="รวมระยะเวลาในการศึกษา"
class="inputgreen"
v-model="formBody.totalPeriod"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="สถานที่ไปดูงาน"
class="inputgreen"
v-model="formBody.studyPlace"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="หัวข้อการไปดูงาน"
class="inputgreen"
v-model="formBody.studyTopic"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyStartDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
week-start="0"
@update:model-value="changeStartDate('studyStartDate')"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyStartDate
? date2Thai(formBody.studyStartDate)
: null
"
:label="`${'วันเริ่มต้นการดูงาน'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyEndDate"
:locale="'th'"
readonly
autoApply
:enableTimePicker="false"
week-start="0"
:min-date="formBody.studyStartDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyEndDate
? date2Thai(formBody.studyEndDate)
: null
"
:label="`${'วันสิ้นสุดการดูงาน'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-md-6" v-if="$q.screen.gt.sm"></div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
readonly
outlined
lazy-rules
hide-bottom-space
label="ประเทศที่ไปดูงาน"
class="inputgreen"
v-model="formBody.studyCountry"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
readonly
outlined
lazy-rules
hide-bottom-space
label="หัวข้อการไปดูงานต่างประเทศ"
class="inputgreen"
v-model="formBody.studyAbroadTopic"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyAbroadStartDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
readonly
@update:model-value="
changeStartDate('studyAbroadStartDate')
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
class="inputgreen"
readonly
:model-value="
formBody.studyAbroadStartDate
? date2Thai(formBody.studyAbroadStartDate)
: null
"
:label="`${'วันเริ่มต้นการดูงานต่างประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyAbroadEndDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
week-start="0"
:min-date="formBody.studyAbroadStartDate"
@update:model-value="
updateTotalPeriod(
formBody.studyAbroadStartDate,
formBody.studyAbroadEndDate
)
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyAbroadEndDate
? date2Thai(formBody.studyAbroadEndDate)
: null
"
:label="`${'วันสิ้นสุดการดูงานต่างประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
</div>
</div>
<!-- เลือกทุน 2 -->
<div
class="col-12"
v-else-if="formBody.scholarshipType === 'NOABROAD'"
>
<div class="row q-col-gutter-md">
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="หลักสูตรการฝึกอบรม"
class="inputgreen"
v-model="formBody.course"
:rules="[
(val: string) =>
!!val || `กรุณากรอกหลักสูตรการฝึกอบรม`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="สาขา"
class="inputgreen"
v-model="formBody.field"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสาขา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="สถาบันการศึกษา/หน่วยงานผู้จัดการฝึกอบรม"
class="inputgreen"
v-model="formBody.educationalInstitution"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสถาบันการศึกษา/หน่วยงานผู้จัดการฝึกอบรม'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.startDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
readonly
@update:model-value="changeStartDate('startDate')"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.startDate
? date2Thai(formBody.startDate)
: null
"
:label="`${'วันเริ่มต้นการฝึกอบรม'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการฝึกอบรม'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.endDate"
:locale="'th'"
readonly
autoApply
:enableTimePicker="false"
week-start="0"
:min-date="formBody.startDate"
@update:model-value="
updateTotalPeriod(formBody.startDate, formBody.endDate)
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.endDate
? date2Thai(formBody.endDate)
: null
"
:label="`${'วันสิ้นสุดการฝึกอบรม'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่วันสิ้นสุดการฝึกอบรม'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="รวมระยะเวลาในการฝึกอบรม"
class="inputgreen"
v-model="formBody.totalPeriod"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="สถานที่ไปดูงาน"
class="inputgreen"
v-model="formBody.studyPlace"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="หัวข้อการไปดูงาน"
class="inputgreen"
v-model="formBody.studyTopic"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyStartDate"
:locale="'th'"
readonly
autoApply
:enableTimePicker="false"
week-start="0"
@update:model-value="changeStartDate('studyStartDate')"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
readonly
outlined
class="inputgreen"
:model-value="
formBody.studyStartDate
? date2Thai(formBody.studyStartDate)
: null
"
:label="`${'วันเริ่มต้นการดูงาน'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyEndDate"
:locale="'th'"
autoApply
readonly
:enableTimePicker="false"
week-start="0"
:min-date="formBody.studyStartDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
readonly
outlined
class="inputgreen"
:model-value="
formBody.studyEndDate
? date2Thai(formBody.studyEndDate)
: null
"
:label="`${'วันสิ้นสุดการดูงาน'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
</div>
</div>
<!-- เลือกทุน 3 -->
<div
class="col-12"
v-else-if="formBody.scholarshipType === 'ABROAD'"
>
<div class="row q-col-gutter-md">
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="หลักสูตรการฝึกอบรม"
class="inputgreen"
v-model="formBody.course"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหลักสูตรการฝึกอบรม'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="สาขา"
class="inputgreen"
v-model="formBody.field"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสาขา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="สถาบันการศึกษา/หน่วยงานผู้จัดการฝึกอบรม"
class="inputgreen"
v-model="formBody.educationalInstitution"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสถาบันการศึกษา/หน่วยงานผู้จัดการฝึกอบรม'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.startDate"
:locale="'th'"
readonly
autoApply
:enableTimePicker="false"
week-start="0"
@update:model-value="changeStartDate('startDate')"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.startDate
? date2Thai(formBody.startDate)
: null
"
:label="`${'วันเริ่มต้นการฝึกอบรม'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการฝึกอบรม'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.endDate"
:locale="'th'"
autoApply
readonly
:enableTimePicker="false"
week-start="0"
:min-date="formBody.startDate"
@update:model-value="
updateTotalPeriod(formBody.startDate, formBody.endDate)
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
readonly
outlined
class="inputgreen"
:model-value="
formBody.endDate
? date2Thai(formBody.endDate)
: null
"
:label="`${'วันสิ้นสุดการฝึกอบรม'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่วันสิ้นสุดการฝึกอบรม'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="รวมระยะเวลาในการฝึกอบรม"
class="inputgreen"
v-model="formBody.totalPeriod"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="สถานที่ไปดูงานในประเทศ"
class="inputgreen"
v-model="formBody.studyPlace"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="หัวข้อการไปดูงานในประเทศ"
class="inputgreen"
v-model="formBody.studyTopic"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyStartDate"
:locale="'th'"
readonly
autoApply
:enableTimePicker="false"
week-start="0"
@update:model-value="changeStartDate('studyStartDate')"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
class="inputgreen"
readonly
:model-value="
formBody.studyStartDate
? date2Thai(formBody.studyStartDate)
: null
"
:label="`${'วันเริ่มต้นการดูงานในประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyEndDate"
readonly
:locale="'th'"
autoApply
:enableTimePicker="false"
week-start="0"
:min-date="formBody.studyStartDate"
@update:model-value="
updateTotalPeriod(
formBody.studyStartDate,
formBody.studyEndDate,
true
)
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyEndDate
? date2Thai(formBody.studyEndDate)
: null
"
:label="`${'วันสิ้นสุดการดูงานในประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-md-6" v-if="$q.screen.gt.sm"></div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="ประเทศที่เดินทางไปดูงาน"
class="inputgreen"
v-model="formBody.studyCountry"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="หัวข้อการไปดูงานต่างประเทศ"
class="inputgreen"
v-model="formBody.studyAbroadTopic"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyAbroadStartDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
week-start="0"
@update:model-value="
changeStartDate('studyAbroadStartDate')
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyAbroadStartDate
? date2Thai(formBody.studyAbroadStartDate)
: null
"
:label="`${'วันเริ่มต้นการดูงานต่างประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyAbroadEndDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
week-start="0"
:min-date="formBody.studyAbroadStartDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
class="inputgreen"
readonly
:model-value="
formBody.studyAbroadEndDate
? date2Thai(formBody.studyAbroadEndDate)
: null
"
:label="`${'วันสิ้นสุดการดูงานต่างประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
</div>
</div>
<!-- เลือกทุน 5 || 6 -->
<div
class="col-12"
v-else-if="
formBody.scholarshipType === 'STUDY' ||
formBody.scholarshipType === 'TRAINING'
"
>
<div class="row q-col-gutter-md">
<!-- <div class="col-3">
<q-select
dense
outlined
readonly
lazy-rules
hide-bottom-space
class="inputgreen"
label="ประเภทการพัฒนา"
v-model="formBody.studyTopic"
:options="[
'ศึกษา',
'ฝึกอบรม',
'ประชุม',
'ดูงาน',
'ปฏิบัติการวิจัย',
]"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกประเภทการพัฒนา'}`,
]"
/>
</div> -->
<div
class="col-12 col-md-3"
v-if="formBody.scholarshipType !== 'TRAINING'"
>
<!-- <q-input
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="ระดับปริญญา"
class="inputgreen"
v-model="formBody.degreeLevel"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกระดับปริญญา'}`,
]"
/> -->
<q-select
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
class="inputgreen"
label="ระดับปริญญา"
v-model="formBody.degreeLevel"
:options="[
'ปริญญาตรี',
'สูงกว่าปริญญาตรี',
'ปริญญาโท',
'ปริญญาเอก',
]"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกระดับปริญญา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
class="inputgreen"
:label="
formBody.scholarshipType === 'STUDY'
? 'หลักสูตรการศึกษา'
: 'หลักสูตรการฝึกอบรม'
"
v-model="formBody.course"
:rules="[
(val: string) =>
!!val || `กรุณากรอก${formBody.scholarshipType === 'STUDY'
? 'หลักสูตรการศึกษา'
: 'หลักสูตรการฝึกอบรม'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div
class="col-12 col-md-3"
v-if="formBody.scholarshipType !== 'TRAINING'"
>
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="สาขาวิชา"
class="inputgreen"
v-model="formBody.field"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสาขาวิชา'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div
class="col-12 col-md-3"
v-if="formBody.scholarshipType !== 'TRAINING'"
>
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="คณะ"
class="inputgreen"
v-model="formBody.faculty"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกคณะ'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
:label="
formBody.scholarshipType === 'STUDY'
? 'สถาบันการศึกษา'
: 'หน่วยงานผู้จัด'
"
class="inputgreen"
v-model="formBody.studyPlace"
:rules="[
(val: string) =>
!!val || `กรุณากรอก${formBody.scholarshipType === 'STUDY' ? 'สถาบันการศึกษา':'หน่วยงานผู้จัด'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.startDate"
:locale="'th'"
autoApply
readonly
:enableTimePicker="false"
week-start="0"
@update:model-value="changeStartDate('startDate')"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.startDate
? date2Thai(formBody.startDate)
: null
"
:label="`${
formBody.scholarshipType === 'STUDY'
? 'วันเริ่มต้นการศึกษา'
: 'วันเริ่มต้นการอบรม'
}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `กรุณาเลือก${formBody.scholarshipType === 'STUDY' ? 'วันเริ่มต้นการศึกษา':'วันเริ่มต้นการอบรม'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.endDate"
:locale="'th'"
autoApply
readonly
:enableTimePicker="false"
week-start="0"
:min-date="formBody.startDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.endDate
? date2Thai(formBody.endDate)
: null
"
:label="`${
formBody.scholarshipType === 'STUDY'
? 'วันสิ้นสุดการศึกษา'
: 'วันสิ้นสุดการอบรม'
}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `กรุณาเลือก${formBody.scholarshipType === 'STUDY' ? 'วันสิ้นสุดการศึกษา':'วันสิ้นสุดการอบรม'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
:label="
formBody.scholarshipType === 'STUDY'
? 'สถานที่ไปศึกษา (เมือง/ประเทศ)'
: 'สถานที่เข้ารับการฝึกอบรม (เมือง/ประเทศ)'
"
class="inputgreen"
v-model="formBody.studyCountry"
:rules="[
(val: string) =>
!!val || `กรุณากรอก${formBody.scholarshipType === 'STUDY' ? 'สถานที่ไปศึกษา (เมือง/ประเทศ)':'สถานที่เข้ารับการฝึกอบรม (เมือง/ประเทศ)'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div
v-if="formBody.studyTopic == 'ดูงาน'"
class="col-12 col-md-3"
>
<q-input
v-if="!isLoad"
dense
readonly
outlined
lazy-rules
hide-bottom-space
label="ประเทศที่ไปดูงาน"
class="inputgreen"
v-model="formBody.studyCountry"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอประเทศที่ไปดูงาน'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyAbroadStartDate"
:locale="'th'"
autoApply
readonly
:enableTimePicker="false"
week-start="0"
@update:model-value="
changeStartDate('studyAbroadStartDate')
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyAbroadStartDate
? date2Thai(formBody.studyAbroadStartDate)
: null
"
:label="`${'วันขออนุมัติเดินทางออกจากประเทศไทย'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'วันขออนุมัติเดินทางออกจากประเทศไทย'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyAbroadEndDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
week-start="0"
:min-date="formBody.studyAbroadStartDate"
@update:model-value="
updateTotalPeriod(
formBody.studyAbroadStartDate,
formBody.studyAbroadEndDate
)
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyAbroadEndDate
? date2Thai(formBody.studyAbroadEndDate)
: null
"
:label="`${'วันเดินทางกลับถึงประเทศไทย'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'วันเดินทางกลับถึงประเทศไทย'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="รวมระยะเวลาทั้งสิ้น"
class="inputgreen"
v-model="formBody.totalPeriod"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกรวมระยะเวลาทั้งสิ้น'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
</div>
</div>
</div>
</div>
<!-- เลือกทุน 4 -->
<div
class="col-12"
v-else-if="formBody.scholarshipType === 'EXECUTIVE'"
>
<div class="row q-col-gutter-md">
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
class="inputgreen"
label="หลักสูตรการฝึกอบรม"
v-model="formBody.course"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหลักสูตรการฝึกอบรม'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
class="inputgreen"
label="สถาบันการศึกษา/หน่วยงานผู้จัดการฝึกอบรม"
v-model="formBody.educationalInstitution"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสถาบันการศึกษา/หน่วยงานผู้จัดการฝึกอบรม'}`,
]"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.startDate"
:locale="'th'"
autoApply
readonly
:enableTimePicker="false"
week-start="0"
@update:model-value="changeStartDate('startDate')"
>
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
class="inputgreen"
readonly
:model-value="
formBody.startDate
? date2Thai(formBody.startDate)
: null
"
:label="`${'วันเริ่มต้นการฝึกอบรม'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่เริ่มต้นการฝึกอบรม'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.endDate"
:locale="'th'"
readonly
autoApply
:enableTimePicker="false"
week-start="0"
:min-date="formBody.startDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.endDate ? date2Thai(formBody.endDate) : null
"
:label="`${'วันสิ้นสุดการฝึกอบรม'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่วันสิ้นสุดการฝึกอบรม'}`,
]"
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-md-6" v-if="$q.screen.gt.sm"></div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="สถานที่ไปดูงานในประเทศ"
class="inputgreen"
v-model="formBody.studyPlace"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
readonly
lazy-rules
hide-bottom-space
label="หัวข้อการไปดูงานในประเทศ"
class="inputgreen"
v-model="formBody.studyTopic"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyStartDate"
:locale="'th'"
readonly
autoApply
:enableTimePicker="false"
week-start="0"
@update:model-value="
updateTotalPeriod(
formBody.studyStartDate,
formBody.studyEndDate
)
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyStartDate
? date2Thai(formBody.studyStartDate)
: null
"
:label="`${'วันเริ่มต้นการดูงานในประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyEndDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
week-start="0"
:min-date="formBody.studyStartDate"
@update:model-value="
updateTotalPeriod(
formBody.studyStartDate,
formBody.studyEndDate
)
"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyEndDate
? date2Thai(formBody.studyEndDate)
: null
"
:label="`${'วันสิ้นสุดการดูงานในประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="รวมระยะเวลาในการฝึกอบรม"
class="inputgreen"
v-model="formBody.totalPeriod"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-md-3" v-if="$q.screen.gt.sm"></div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="ประเทศที่ไปดูงาน"
class="inputgreen"
v-model="formBody.studyCountry"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-6">
<q-input
v-if="!isLoad"
dense
outlined
lazy-rules
readonly
hide-bottom-space
label="หัวข้อการไปดูงานต่างประเทศ"
class="inputgreen"
v-model="formBody.studyAbroadTopic"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyAbroadStartDate"
:locale="'th'"
autoApply
readonly
:enableTimePicker="false"
week-start="0"
@update:model-value="changeStartDate('studyAbroadStartDate')"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyAbroadStartDate
? date2Thai(formBody.studyAbroadStartDate)
: null
"
:label="`${'วันเริ่มต้นการดูงานต่างประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<div class="col-12 col-md-3">
<datepicker
v-if="!isLoad"
v-model="formBody.studyAbroadEndDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
readonly
week-start="0"
:min-date="formBody.studyAbroadStartDate"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
dense
outlined
readonly
class="inputgreen"
:model-value="
formBody.studyAbroadEndDate
? date2Thai(formBody.studyAbroadEndDate)
: null
"
:label="`${'วันสิ้นสุดการดูงานต่างประเทศ'}`"
hide-bottom-space
>
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon>
</template>
</q-input>
</template>
</datepicker>
<q-skeleton v-else type="QInput" height="40px" />
</div>
</div>
</div>
<div class="col-12">
<q-input
v-if="!isLoad"
readonly
outlined
dense
class="inputgreen"
v-model="formBody.changeDetail"
label="เปลี่ยนแปลงรายละเอียด"
rows="3"
hide-bottom-space
type="textarea"
/>
<q-skeleton v-else type="QInput" height="40px" />
</div>
<!-- ผู้ค้ำประกัน -->
<div
class="col-12"
v-if="formBody.scholarshipType !== 'EXECUTIVE' && isGuarantor"
>
<q-card bordered tyle="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 col-12 q-col-gutter-md q-pa-md"
v-if="isGuarantor"
>
<div class="col">
<div class="row q-col-gutter-md">
<div class="col-4 text-grey">เลขประจำตัวประชาชน</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataGuarantor.citizenId }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">ชื่อ-นามสกุล</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataGuarantor.name }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">ตำแหน่ง</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataGuarantor.position }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">ตำแหน่งประเภท</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataGuarantor.type }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
</div>
</div>
<div class="col">
<div class="row q-col-gutter-md">
<div class="col-4 text-grey">ระดับตำแหน่ง</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataGuarantor.level }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">ตำแหน่งทางการบริหาร</div>
<div v-if="!isLoad" class="col-8 text-weight-medium">
{{ dataGuarantor.positionSide }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
<div class="col-4 text-grey">หน่วยงานที่สังกัด</div>
<div
v-if="!isLoad"
class="col-8 text-weight-medium text-html"
>
{{ dataGuarantor.org }}
</div>
<div v-else class="col-8">
<q-skeleton type="text" />
</div>
</div>
</div>
</div>
</q-card>
</div>
<!-- ำประก -->
</div>
</q-card>
</div>
</div>
<DialogReturn v-model:modal="dialogReturn" />
</template>