แก้ไขข้อความ ช่องกรอก, บังคับกรอก และจัดลำดับ

This commit is contained in:
Warunee Tamkoo 2025-04-21 12:15:10 +07:00
parent 275b0b183b
commit 5870402b3b

View file

@ -46,7 +46,7 @@ const modalDialogGov = ref<boolean>(false); // popup เลือกข้าร
const budgetSourceOp = ref<DataOption[]>([
{ id: "BKK", name: "งบประมาณ กทม." },
{ id: "HOSPITAL", name: "เงินบำรุงโรงพยาบาล" },
{ id: "HOSPITAL", name: "เงินนอกงบประมาณ" },
{ id: "FUND", name: "เงินกองทุน" },
{ id: "SUBSIDY", name: "เงินอุดหนุน" },
{ id: "OTHER", name: "เงินอื่นๆ" },
@ -75,8 +75,8 @@ const fundTypeOp = ref<DataOption[]>([
{ id: "FUND1", name: "ทุน 1 (ก)" },
{ id: "FUND2", name: "ทุน 1 (ข)" },
{ id: "FUND3", name: "ทุน 1 (ค)" },
{ id: "FUND4", name: "ทุน 2" },
{ id: "FUND5", name: "ทุนส่วนตัว" },
{ id: "FUND4", name: "ทุน 2 (ทุนส่วนตัว)" },
// { id: "FUND5", name: "" },
]);
const isGov = ref<boolean>(false); // . true/false
@ -538,22 +538,22 @@ const classInput = (val: boolean) => {
};
};
const convertStudyPlace = () => {
switch (formBody.studyTopic) {
case "ศึกษา":
return "สถานที่ไปศึกษา (เมือง/ประเทศ)";
case "ฝึกอบรม":
return "สถานที่เข้ารับการฝึกอบรม (เมือง/ประเทศ)";
case "ดูงาน":
return "สถานที่ไปดูงาน";
case "ประชุม":
return "สถานที่จัดประชุม (เมือง/ประเทศ)";
case "ปฏิบัติการวิจัย":
return "สถานที่ไปปฏิบัติการวิจัย (เมือง/ประเทศ)";
default:
return "สถานที่ (เมือง/ประเทศ)";
}
};
// const convertStudyPlace = () => {
// switch (formBody.studyTopic) {
// case "":
// return " (/)";
// case "":
// return " (/)";
// case "":
// return "";
// case "":
// return " (/)";
// case "":
// return " (/)";
// default:
// return " (/)";
// }
// };
const convertCourse = () => {
switch (formBody.studyTopic) {
@ -835,10 +835,15 @@ onMounted(async () => {
option-value="id"
emit-value
map-options
:clearable="formBody.fundType == 'FUND4' ? true : false"
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกแหล่งงบประมาณ'}`,
]"
(val: any) => {
if (!val && !formBody.isNoUseBudget && formBody.fundType != 'FUND4') {
return 'กรุณาเลือกแหล่งงบประมาณ';
}
return true;
},
]"
/>
</div>
<div class="col-3">
@ -854,7 +859,7 @@ onMounted(async () => {
reverse-fill-mask
:rules="[
(val: any) => {
if (!val && !formBody.isNoUseBudget) {
if (!val && !formBody.isNoUseBudget && formBody.fundType != 'FUND4') {
return 'กรุณากรอกงบประมาณที่ได้รับอนุมัติตลอดหลักสูตร';
}
return true;
@ -986,24 +991,6 @@ onMounted(async () => {
</div>
</div>
<div v-if="formBody.scholarshipType !== 'RESEARCH'" class="col-12">
<q-input
:readonly="checkRouteDetail"
outlined
dense
:class="classInput(!checkRouteDetail)"
v-model="formBody.changeDetail"
label="เปลี่ยนแปลงรายละเอียด"
rows="3"
hide-bottom-space
type="textarea"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกเปลี่ยนแปลงรายละเอียด'}`,
]"
/>
</div>
<div class="col-12" v-if="formBody.scholarshipType !== 'EXECUTIVE'">
<div class="row col-12 q-col-gutter-md">
<div class="col-3">
@ -1022,7 +1009,7 @@ onMounted(async () => {
]"
/>
</div>
<div class="col-2">
<div class="col-3">
<datepicker
menu-class-name="modalfix"
v-model="formBody.contractDate"
@ -1065,166 +1052,98 @@ onMounted(async () => {
</template>
</datepicker>
</div>
<div v-if="formBody.scholarshipType !== 'RESEARCH'" class="col-3">
<q-input
dense
:readonly="checkRouteDetail"
outlined
hide-bottom-space
lazy-rules
:class="classInput(!checkRouteDetail)"
v-model="formBody.reportBackNo"
label="เลขที่หนังสือรายงานตัวกลับ"
:rules="[
(val: string) => !!val || `${'กรุณากรอกเลขที่หนังสือรายงานตัวกลับ'}`,
]"
/>
</div>
<div v-if="formBody.scholarshipType !== 'RESEARCH'" class="col-2">
<datepicker
menu-class-name="modalfix"
v-model="formBody.reportBackNoDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
:readonly="checkRouteDetail"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
:readonly="checkRouteDetail"
dense
outlined
:class="classInput(!checkRouteDetail)"
:model-value="
formBody.reportBackNoDate
? date2Thai(formBody.reportBackNoDate)
: 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>
</div>
<div v-if="formBody.scholarshipType !== 'RESEARCH'" class="col-2">
<datepicker
menu-class-name="modalfix"
v-model="formBody.reportBackDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
:readonly="checkRouteDetail"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
:readonly="checkRouteDetail"
dense
outlined
:class="classInput(!checkRouteDetail)"
:model-value="
formBody.reportBackDate
? date2Thai(formBody.reportBackDate)
: 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>
</div>
<div class="col-12">
<q-card bordered tyle="border: 1px solid #d6dee1">
<div class="text-weight-medium bg-grey-1 q-py-sm q-px-md">
อมลผำประก
<q-btn
v-if="!checkRouteDetail"
flat
dense
icon="add"
color="primary"
label="เลือกผู้ค้ำประกัน"
@click="onSelectGov(false)"
>
<q-tooltip>เพ</q-tooltip>
</q-btn>
</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-12 row q-col-gutter-md">
<div class="col-3">
<q-input
dense
:readonly="checkRouteDetail"
outlined
hide-bottom-space
lazy-rules
:class="classInput(!checkRouteDetail)"
v-model="formBody.reportBackNo"
label="เลขที่หนังสือรายงานตัวกลับ"
/>
</div>
<div class="col-3">
<datepicker
menu-class-name="modalfix"
v-model="formBody.reportBackNoDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
:readonly="checkRouteDetail"
>
<div class="col">
<div class="row q-col-gutter-md">
<div class="col-4 text-grey">เลขประจำตวประชาชน</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.citizenId }}
</div>
<div class="col-4 text-grey">-นามสก</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.name }}
</div>
<div class="col-4 text-grey">ตำแหน</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.position }}
</div>
<div class="col-4 text-grey">ตำแหนงประเภท</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.type }}
</div>
</div>
</div>
<div class="col">
<div class="row q-col-gutter-md">
<div class="col-4 text-grey">ระดบตำแหน</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.level }}
</div>
<div class="col-4 text-grey">ตำแหนงทางการบรหาร</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.positionSide }}
</div>
<div class="col-4 text-grey">หนวยงานทงก</div>
<div class="col-8 text-weight-medium text-html">
{{ dataGuarantor.org }}
</div>
</div>
</div>
</div>
</q-card>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
:readonly="checkRouteDetail"
dense
outlined
:class="classInput(!checkRouteDetail)"
: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>
</div>
<div class="col-3">
<datepicker
menu-class-name="modalfix"
v-model="formBody.reportBackDate"
:locale="'th'"
autoApply
:enableTimePicker="false"
:readonly="checkRouteDetail"
>
<template #year="{ year }">{{ year + 543 }}</template>
<template #year-overlay-value="{ value }">{{
parseInt(value + 543)
}}</template>
<template #trigger>
<q-input
:readonly="checkRouteDetail"
dense
outlined
:class="classInput(!checkRouteDetail)"
: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>
</div>
</div>
<!-- เลอกท 1 -->
@ -1234,7 +1153,7 @@ onMounted(async () => {
>
<div class="row q-col-gutter-md">
<div class="col-3">
<q-input
<!-- <q-input
:readonly="checkRouteDetail"
dense
outlined
@ -1247,6 +1166,26 @@ onMounted(async () => {
(val: string) =>
!!val || `${'กรุณากรอกระดับปริญญา'}`,
]"
/> -->
<q-select
dense
outlined
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
:class="classInput(!checkRouteDetail)"
label="ระดับปริญญา"
v-model="formBody.degreeLevel"
:options="[
'ปริญญาตรี',
'สูงกว่าปริญญาตรี',
'ปริญญาโท',
'ปริญญาเอก',
]"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกระดับปริญญา'}`,
]"
/>
</div>
<div class="col-3">
@ -1410,13 +1349,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="สถานที่ไปศึกษาดูงาน"
label="สถานที่ไปดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyPlace"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสถานที่ไปศึกษาดูงาน'}`,
]"
/>
</div>
<div class="col-6">
@ -1426,13 +1361,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="หัวข้อการไปศึกษาดูงาน"
label="หัวข้อการไปดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyTopic"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหัวข้อการไปศึกษาดูงาน'}`,
]"
/>
</div>
<div class="col-3">
@ -1461,12 +1392,8 @@ onMounted(async () => {
? date2Thai(formBody.studyStartDate)
: null
"
:label="`${'วันเริ่มต้นการศึกษาดูงาน'}`"
:label="`${'วันเริ่มต้นการดูงาน'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการศึกษาดูงาน'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -1506,12 +1433,8 @@ onMounted(async () => {
? date2Thai(formBody.studyEndDate)
: null
"
:label="`${'วันสิ้นสุดการศึกษาดูงาน'}`"
:label="`${'วันสิ้นสุดการดูงาน'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่วันสิ้นสุดการศึกษาดูงาน'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -1533,13 +1456,9 @@ onMounted(async () => {
outlined
lazy-rules
hide-bottom-space
label="ประเทศที่ไปศึกษาดูงาน"
label="ประเทศที่ไปดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyCountry"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอประเทศที่ไปศึกษาดูงาน'}`,
]"
/>
</div>
<div class="col-6">
@ -1549,13 +1468,9 @@ onMounted(async () => {
outlined
lazy-rules
hide-bottom-space
label="หัวข้อการไปศึกษาดูงานต่างประเทศ"
label="หัวข้อการไปดูงานต่างประเทศ"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyAbroadTopic"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหัวข้อการไปศึกษาดูงานต่างประเทศ'}`,
]"
/>
</div>
<div class="col-3">
@ -1586,12 +1501,8 @@ onMounted(async () => {
? date2Thai(formBody.studyAbroadStartDate)
: null
"
:label="`${'วันเริ่มต้นการศึกษาดูงานต่างประเทศ'}`"
:label="`${'วันเริ่มต้นการดูงานต่างประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการศึกษาดูงานต่างประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -1637,12 +1548,8 @@ onMounted(async () => {
? date2Thai(formBody.studyAbroadEndDate)
: null
"
:label="`${'วันสิ้นสุดการศึกษาดูงานต่างประเทศ'}`"
:label="`${'วันสิ้นสุดการดูงานต่างประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันสิ้นสุดการศึกษาดูงานต่างประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -1663,13 +1570,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="รวมระยะเวลาในการศึกษา"
label="รวมระยะเวลาในการดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.totalPeriod"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกรวมระยะเวลาในการศึกษา'}`,
]"
/>
</div>
</div>
@ -1826,13 +1729,9 @@ onMounted(async () => {
lazy-rules
:readonly="checkRouteDetail"
hide-bottom-space
label="สถานที่ไปศึกษาดูงาน"
label="สถานที่ไปดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyPlace"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสถานที่ไปศึกษาดูงาน'}`,
]"
/>
</div>
<div class="col-6">
@ -1842,13 +1741,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="หัวข้อการไปศึกษาดูงาน"
label="หัวข้อการไปดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyTopic"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหัวข้อการไปศึกษาดูงาน'}`,
]"
/>
</div>
<div class="col-3">
@ -1877,12 +1772,8 @@ onMounted(async () => {
? date2Thai(formBody.studyStartDate)
: null
"
:label="`${'วันเริ่มต้นการศึกษาดูงาน'}`"
:label="`${'วันเริ่มต้นการดูงาน'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการศึกษาดูงาน'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -1928,12 +1819,8 @@ onMounted(async () => {
? date2Thai(formBody.studyEndDate)
: null
"
:label="`${'วันสิ้นสุดการศึกษาดูงาน'}`"
:label="`${'วันสิ้นสุดการดูงาน'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่วันสิ้นสุดการศึกษาดูงาน'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -1954,13 +1841,9 @@ onMounted(async () => {
lazy-rules
:readonly="checkRouteDetail"
hide-bottom-space
label="รวมระยะเวลาในการฝึกอบรม"
label="รวมระยะเวลาในการดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.totalPeriod"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกระยะเวลาในการฝึกอบรม'}`,
]"
/>
</div>
</div>
@ -2117,13 +2000,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="สถานที่ไปศึกษาดูงานในประเทศ"
label="สถานที่ไปดูงานในประเทศ"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyPlace"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสถานที่ไปศึกษาดูงานในประเทศ'}`,
]"
/>
</div>
<div class="col-6">
@ -2133,13 +2012,9 @@ onMounted(async () => {
lazy-rules
:readonly="checkRouteDetail"
hide-bottom-space
label="หัวข้อการไปศึกษาดูงานในประเทศ"
label="หัวข้อการไปดูงานในประเทศ"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyTopic"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหัวข้อการไปศึกษาดูงานในประเทศ'}`,
]"
/>
</div>
<div class="col-3">
@ -2168,12 +2043,8 @@ onMounted(async () => {
? date2Thai(formBody.studyStartDate)
: null
"
:label="`${'วันเริ่มต้นการศึกษาดูงานในประเทศ'}`"
:label="`${'วันเริ่มต้นการดูงานในประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการศึกษาดูงานในประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -2220,12 +2091,8 @@ onMounted(async () => {
? date2Thai(formBody.studyEndDate)
: null
"
:label="`${'วันสิ้นสุดการศึกษาดูงานในประเทศ'}`"
:label="`${'วันสิ้นสุดการดูงานในประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่วันสิ้นสุดการศึกษาดูงานในประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -2247,13 +2114,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="ประเทศที่เดินทางไปศึกษาดูงาน"
label="ประเทศที่เดินทางไปดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyCountry"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกประเทศที่เดินทางไปศึกษาดูงาน'}`,
]"
/>
</div>
<div class="col-6">
@ -2263,13 +2126,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="หัวข้อการไปศึกษาดูงานต่างประเทศ"
label="หัวข้อการไปดูงานต่างประเทศ"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyAbroadTopic"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหัวข้อการไปศึกษาดูงานต่างประเทศ'}`,
]"
/>
</div>
<div class="col-3">
@ -2300,12 +2159,8 @@ onMounted(async () => {
? date2Thai(formBody.studyAbroadStartDate)
: null
"
:label="`${'วันเริ่มต้นการศึกษาดูงานต่างประเทศ'}`"
:label="`${'วันเริ่มต้นการดูงานต่างประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการศึกษาดูงานต่างประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -2351,12 +2206,8 @@ onMounted(async () => {
? date2Thai(formBody.studyAbroadEndDate)
: null
"
:label="`${'วันสิ้นสุดการศึกษาดูงานต่างประเทศ'}`"
:label="`${'วันสิ้นสุดการดูงานต่างประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันสิ้นสุดการศึกษาดูงานต่างประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -2377,13 +2228,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="รวมระยะเวลาในการศึกษา"
label="รวมระยะเวลาในการดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.totalPeriod"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกรวมระยะเวลาในการศึกษา'}`,
]"
/>
</div>
</div>
@ -2420,7 +2267,7 @@ onMounted(async () => {
</div>
<div class="col-3">
<q-input
<!-- <q-input
dense
outlined
lazy-rules
@ -2433,6 +2280,26 @@ onMounted(async () => {
(val: string) =>
!!val || `${'กรุณากรอกระดับปริญญา'}`,
]"
/> -->
<q-select
dense
outlined
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
:class="classInput(!checkRouteDetail)"
label="ระดับปริญญา"
v-model="formBody.degreeLevel"
:options="[
'ปริญญาตรี',
'สูงกว่าปริญญาตรี',
'ปริญญาโท',
'ปริญญาเอก',
]"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกระดับปริญญา'}`,
]"
/>
</div>
@ -2736,6 +2603,10 @@ onMounted(async () => {
label="รวมระยะเวลาทั้งสิ้น"
:class="classInput(!checkRouteDetail)"
v-model="formBody.totalPeriod"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกรวมระยะเวลาทั้งสิ้น'}`,
]"
/>
</div>
</div>
@ -2878,13 +2749,9 @@ onMounted(async () => {
lazy-rules
:readonly="checkRouteDetail"
hide-bottom-space
label="สถานที่ไปศึกษาดูงานในประเทศ"
label="สถานที่ไปดูงานในประเทศ"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyPlace"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกสถานที่ไปศึกษาดูงานในประเทศ'}`,
]"
/>
</div>
<div class="col-6">
@ -2894,13 +2761,9 @@ onMounted(async () => {
:readonly="checkRouteDetail"
lazy-rules
hide-bottom-space
label="หัวข้อการไปศึกษาดูงานในประเทศ"
label="หัวข้อการไปดูงานในประเทศ"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyTopic"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหัวข้อการไปศึกษาดูงานในประเทศ'}`,
]"
/>
</div>
<div class="col-3">
@ -2929,12 +2792,8 @@ onMounted(async () => {
? date2Thai(formBody.studyStartDate)
: null
"
:label="`${'วันเริ่มต้นการศึกษาดูงานในประเทศ'}`"
:label="`${'วันเริ่มต้นการดูงานในประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการศึกษาดูงานในประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -2980,12 +2839,8 @@ onMounted(async () => {
? date2Thai(formBody.studyEndDate)
: null
"
:label="`${'วันสิ้นสุดการศึกษาดูงานในประเทศ'}`"
:label="`${'วันสิ้นสุดการดูงานในประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันที่วันสิ้นสุดการศึกษาดูงานในประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -3007,13 +2862,9 @@ onMounted(async () => {
lazy-rules
:readonly="checkRouteDetail"
hide-bottom-space
label="ประเทศที่ไปศึกษาดูงาน"
label="ประเทศที่ไปดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyCountry"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอประเทศที่ไปศึกษาดูงาน'}`,
]"
/>
</div>
<div class="col-6">
@ -3023,13 +2874,9 @@ onMounted(async () => {
lazy-rules
:readonly="checkRouteDetail"
hide-bottom-space
label="หัวข้อการไปศึกษาดูงานต่างประเทศ"
label="หัวข้อการไปดูงานต่างประเทศ"
:class="classInput(!checkRouteDetail)"
v-model="formBody.studyAbroadTopic"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกหัวข้อการไปศึกษาดูงานต่างประเทศ'}`,
]"
/>
</div>
<div class="col-3">
@ -3058,12 +2905,8 @@ onMounted(async () => {
? date2Thai(formBody.studyAbroadStartDate)
: null
"
:label="`${'วันเริ่มต้นการศึกษาดูงานต่างประเทศ'}`"
:label="`${'วันเริ่มต้นการดูงานต่างประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันเริ่มต้นการศึกษาดูงานต่างประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -3109,12 +2952,8 @@ onMounted(async () => {
? date2Thai(formBody.studyAbroadEndDate)
: null
"
:label="`${'วันสิ้นสุดการศึกษาดูงานต่างประเทศ'}`"
:label="`${'วันสิ้นสุดการดูงานต่างประเทศ'}`"
hide-bottom-space
:rules="[
(val: string) =>
!!val || `${'กรุณาเลือกวันสิ้นสุดการศึกษาดูงานต่างประเทศ'}`,
]"
>
<template v-slot:prepend>
<q-icon
@ -3135,17 +2974,90 @@ onMounted(async () => {
lazy-rules
:readonly="checkRouteDetail"
hide-bottom-space
label="รวมระยะเวลาในการฝึกอบรม "
label="รวมระยะเวลาในการดูงาน"
:class="classInput(!checkRouteDetail)"
v-model="formBody.totalPeriod"
:rules="[
(val: string) =>
!!val || `${'กรุณากรอกรวมระยะเวลาในการฝึกอบรม '}`,
]"
/>
</div>
</div>
</div>
<div v-if="formBody.scholarshipType !== 'RESEARCH'" class="col-12">
<q-input
:readonly="checkRouteDetail"
outlined
dense
:class="classInput(!checkRouteDetail)"
v-model="formBody.changeDetail"
label="เปลี่ยนแปลงรายละเอียด"
rows="3"
hide-bottom-space
type="textarea"
/>
</div>
<!-- ำประก -->
<div class="col-12" v-if="formBody.scholarshipType !== 'EXECUTIVE'">
<q-card bordered tyle="border: 1px solid #d6dee1">
<div class="text-weight-medium bg-grey-1 q-py-sm q-px-md">
อมลผำประก
<q-btn
v-if="!checkRouteDetail"
flat
dense
icon="add"
color="primary"
label="เลือกผู้ค้ำประกัน"
@click="onSelectGov(false)"
>
<q-tooltip>เพ</q-tooltip>
</q-btn>
</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 class="col-8 text-weight-medium">
{{ dataGuarantor.citizenId }}
</div>
<div class="col-4 text-grey">-นามสก</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.name }}
</div>
<div class="col-4 text-grey">ตำแหน</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.position }}
</div>
<div class="col-4 text-grey">ตำแหนงประเภท</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.type }}
</div>
</div>
</div>
<div class="col">
<div class="row q-col-gutter-md">
<div class="col-4 text-grey">ระดบตำแหน</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.level }}
</div>
<div class="col-4 text-grey">ตำแหนงทางการบรหาร</div>
<div class="col-8 text-weight-medium">
{{ dataGuarantor.positionSide }}
</div>
<div class="col-4 text-grey">หนวยงานทงก</div>
<div class="col-8 text-weight-medium text-html">
{{ dataGuarantor.org }}
</div>
</div>
</div>
</div>
</q-card>
</div>
<!-- ำประก -->
</div>
<q-separator v-if="isGov && !checkRouteDetail" />
<q-card-actions align="right" v-if="isGov && !checkRouteDetail">