แก้ พัฒนา
This commit is contained in:
parent
3f0b3924d4
commit
3ad8096378
11 changed files with 1140 additions and 458 deletions
|
|
@ -4,6 +4,7 @@ const developmentOrg = `${env.API_URI}/org`;
|
||||||
const devScholarship = `${env.API_URI}/development/scholarship`;
|
const devScholarship = `${env.API_URI}/development/scholarship`;
|
||||||
const developmentReport = `${env.API_URI}/development/report`;
|
const developmentReport = `${env.API_URI}/development/report`;
|
||||||
const devStrategy = `${env.API_URI}/development/strategy`;
|
const devStrategy = `${env.API_URI}/development/strategy`;
|
||||||
|
const developmentScholarshipReport = `${env.API_URI}/development/report/scholarship`;
|
||||||
export default {
|
export default {
|
||||||
development,
|
development,
|
||||||
/** history */
|
/** history */
|
||||||
|
|
@ -56,5 +57,6 @@ export default {
|
||||||
`${developmentOrg}/profile/development/registry/OFFICER/${id}`,
|
`${developmentOrg}/profile/development/registry/OFFICER/${id}`,
|
||||||
developmentIDP: (id: string) => `${development}/main/registry/OFFICER/${id}`,
|
developmentIDP: (id: string) => `${development}/main/registry/OFFICER/${id}`,
|
||||||
|
|
||||||
devStrategySort:`${devStrategy}/sort`
|
devStrategySort:`${devStrategy}/sort`,
|
||||||
|
developmentScholarshipReport
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
import { ref, reactive, onMounted } from "vue";
|
import { ref, reactive, onMounted } from "vue";
|
||||||
import { QForm, useQuasar } from "quasar";
|
import { QForm, useQuasar } from "quasar";
|
||||||
|
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
import { checkPermission } from "@/utils/permissions";
|
import { checkPermission } from "@/utils/permissions";
|
||||||
import type { QTableColumn } from "quasar";
|
import type { QTableColumn } from "quasar";
|
||||||
import { useCounterMixin } from "@/stores/mixin";
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
@ -21,6 +21,7 @@ const isLeave = defineModel<boolean>("isLeave", {
|
||||||
});
|
});
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
const router = useRouter();
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const mixin = useCounterMixin();
|
const mixin = useCounterMixin();
|
||||||
const {
|
const {
|
||||||
|
|
@ -368,6 +369,9 @@ function onViewHistory(id: string) {
|
||||||
historyId.value = id;
|
historyId.value = id;
|
||||||
historyDialog.value = true;
|
historyDialog.value = true;
|
||||||
}
|
}
|
||||||
|
function onViewDevelopment(id: string) {
|
||||||
|
router.push(`/development-detail/${id}`);
|
||||||
|
}
|
||||||
|
|
||||||
/** fetch ข้อมูลประวัติการแก้ไขข้อมูลใบอนุญาตประกอบวิชาชีพ*/
|
/** fetch ข้อมูลประวัติการแก้ไขข้อมูลใบอนุญาตประกอบวิชาชีพ*/
|
||||||
async function fetchDataHistory() {
|
async function fetchDataHistory() {
|
||||||
|
|
@ -505,6 +509,21 @@ onMounted(() => {
|
||||||
<template v-slot:body="props" v-if="mode === 'table'">
|
<template v-slot:body="props" v-if="mode === 'table'">
|
||||||
<q-tr :props="props">
|
<q-tr :props="props">
|
||||||
<q-td auto-width>
|
<q-td auto-width>
|
||||||
|
<q-btn
|
||||||
|
:disable="!props.row.developmentId"
|
||||||
|
flat
|
||||||
|
dense
|
||||||
|
round
|
||||||
|
:color="!props.row.developmentId ? 'grey' : 'info'"
|
||||||
|
icon="mdi-eye"
|
||||||
|
@click="() => onViewDevelopment(props.row.developmentId)"
|
||||||
|
>
|
||||||
|
<q-tooltip>{{
|
||||||
|
!props.row.developmentId
|
||||||
|
? "ไม่พบข้อมูลรายละเอียดโครงการ"
|
||||||
|
: "รายละเอียดโครงการ"
|
||||||
|
}}</q-tooltip>
|
||||||
|
</q-btn>
|
||||||
<q-btn
|
<q-btn
|
||||||
flat
|
flat
|
||||||
dense
|
dense
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ interface ResponseObject {
|
||||||
place: string;
|
place: string;
|
||||||
profileId: string;
|
profileId: string;
|
||||||
topic: string;
|
topic: string;
|
||||||
|
developmentId?: string;
|
||||||
yearly: number;
|
yearly: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,16 @@ const projectTypeOp = ref<DataOptionTechnique[]>([
|
||||||
{ label: "โครงการต่อเนื่อง", value: "โครงการต่อเนื่อง" },
|
{ label: "โครงการต่อเนื่อง", value: "โครงการต่อเนื่อง" },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
const addressTypeOp = ref<DataOption[]>([
|
||||||
|
{
|
||||||
|
id: "IN_COUNTRY",
|
||||||
|
name: "สถานที่ในประเทศ",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "ABROAD",
|
||||||
|
name: "ต่างประเทศ",
|
||||||
|
},
|
||||||
|
]);
|
||||||
//70 การลงมือปฏิบัติ (โดยผู้บังคับบัญชามอบหมาย)
|
//70 การลงมือปฏิบัติ (โดยผู้บังคับบัญชามอบหมาย)
|
||||||
const projectTechniquesOp1 = ref<DataItemsDevelopment[]>(
|
const projectTechniquesOp1 = ref<DataItemsDevelopment[]>(
|
||||||
itemsDevelopment.dataDevelopment70
|
itemsDevelopment.dataDevelopment70
|
||||||
|
|
@ -119,7 +129,9 @@ const formData = reactive<FormProjectDetail>({
|
||||||
dateStart: null, //วันที่เริ่มต้น
|
dateStart: null, //วันที่เริ่มต้น
|
||||||
dateEnd: null, //วันที่สิ้นสุด
|
dateEnd: null, //วันที่สิ้นสุด
|
||||||
totalDate: null, //รวมระยะเวลา (วัน)
|
totalDate: null, //รวมระยะเวลา (วัน)
|
||||||
developmentAddresss: [{ address: "", provinceId: "" }], //ที่อยู่ ,จังหวัด
|
developmentAddresss: [
|
||||||
|
{ address: "", provinceId: "", addressType: "IN_COUNTRY", country: "" },
|
||||||
|
], //ที่อยู่ ,จังหวัด
|
||||||
});
|
});
|
||||||
|
|
||||||
const nodes = ref<StrategyNode[]>([]);
|
const nodes = ref<StrategyNode[]>([]);
|
||||||
|
|
@ -180,6 +192,8 @@ function fetchData() {
|
||||||
formData.developmentAddresss = data.developmentAddresss.map((e: any) => ({
|
formData.developmentAddresss = data.developmentAddresss.map((e: any) => ({
|
||||||
address: e.address,
|
address: e.address,
|
||||||
provinceId: e.provinceId,
|
provinceId: e.provinceId,
|
||||||
|
addressType: e.addressType,
|
||||||
|
country: e.country,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const arrayExpanded = [
|
const arrayExpanded = [
|
||||||
|
|
@ -327,6 +341,8 @@ function onClickAddLocation() {
|
||||||
const data = {
|
const data = {
|
||||||
address: "",
|
address: "",
|
||||||
provinceId: "",
|
provinceId: "",
|
||||||
|
addressType: "IN_COUNTRY",
|
||||||
|
country: "",
|
||||||
};
|
};
|
||||||
formData.developmentAddresss.push(data);
|
formData.developmentAddresss.push(data);
|
||||||
}
|
}
|
||||||
|
|
@ -365,10 +381,12 @@ function onNextTab() {
|
||||||
const isCheckLocation = computed(() => {
|
const isCheckLocation = computed(() => {
|
||||||
if (formData?.developmentAddresss?.length !== 0) {
|
if (formData?.developmentAddresss?.length !== 0) {
|
||||||
if (
|
if (
|
||||||
formData.developmentAddresss[formData.developmentAddresss.length - 1]
|
(formData.developmentAddresss[formData.developmentAddresss.length - 1]
|
||||||
.address !== "" &&
|
.address !== "" &&
|
||||||
|
formData.developmentAddresss[formData.developmentAddresss.length - 1]
|
||||||
|
.provinceId !== "") ||
|
||||||
formData.developmentAddresss[formData.developmentAddresss.length - 1]
|
formData.developmentAddresss[formData.developmentAddresss.length - 1]
|
||||||
.provinceId !== ""
|
.country !== ""
|
||||||
) {
|
) {
|
||||||
return true;
|
return true;
|
||||||
} else return false;
|
} else return false;
|
||||||
|
|
@ -376,6 +394,10 @@ const isCheckLocation = computed(() => {
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function clearDataLocation(index: any) {
|
||||||
|
formData.developmentAddresss[index].country = "";
|
||||||
|
formData.developmentAddresss[index].provinceId = "";
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* ดึงข้อมูลเมื่อคอมโพเนนต์โหลดเสร็จสมบูรณ์
|
* ดึงข้อมูลเมื่อคอมโพเนนต์โหลดเสร็จสมบูรณ์
|
||||||
*/
|
*/
|
||||||
|
|
@ -671,7 +693,7 @@ defineExpose({
|
||||||
v-for="(item, index) in formData.developmentAddresss"
|
v-for="(item, index) in formData.developmentAddresss"
|
||||||
>
|
>
|
||||||
<div class="row q-col-gutter-sm">
|
<div class="row q-col-gutter-sm">
|
||||||
<div class="col-8">
|
<div class="col-5">
|
||||||
<q-input
|
<q-input
|
||||||
:readonly="checkRoutePermission"
|
:readonly="checkRoutePermission"
|
||||||
outlined
|
outlined
|
||||||
|
|
@ -684,6 +706,28 @@ defineExpose({
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3">
|
<div class="col-3">
|
||||||
<q-select
|
<q-select
|
||||||
|
:readonly="checkRoutePermission"
|
||||||
|
outlined
|
||||||
|
dense
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="formData.developmentAddresss[index].addressType"
|
||||||
|
label="สถานที่ดำเนินการ"
|
||||||
|
:options="addressTypeOp"
|
||||||
|
option-label="name"
|
||||||
|
option-value="id"
|
||||||
|
emit-value
|
||||||
|
map-options
|
||||||
|
@update:model-value="
|
||||||
|
props.onCheckChangeData(), clearDataLocation(index)
|
||||||
|
"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-3">
|
||||||
|
<q-select
|
||||||
|
v-if="
|
||||||
|
formData.developmentAddresss[index].addressType ==
|
||||||
|
'IN_COUNTRY'
|
||||||
|
"
|
||||||
:readonly="checkRoutePermission"
|
:readonly="checkRoutePermission"
|
||||||
outlined
|
outlined
|
||||||
dense
|
dense
|
||||||
|
|
@ -713,6 +757,17 @@ defineExpose({
|
||||||
</q-item>
|
</q-item>
|
||||||
</template>
|
</template>
|
||||||
</q-select>
|
</q-select>
|
||||||
|
<q-input
|
||||||
|
v-else
|
||||||
|
label="ประเทศ"
|
||||||
|
dense
|
||||||
|
:readonly="checkRoutePermission"
|
||||||
|
@update:model-value="props.onCheckChangeData()"
|
||||||
|
outlined
|
||||||
|
class="inputgreen"
|
||||||
|
v-model="formData.developmentAddresss[index].country"
|
||||||
|
>
|
||||||
|
</q-input>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-1 text-center">
|
<div class="col-1 text-center">
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
|
||||||
|
|
@ -154,8 +154,8 @@ function onSubmit() {
|
||||||
orgRootShortName: data.orgRootShortName,
|
orgRootShortName: data.orgRootShortName,
|
||||||
orgRevisionId: data.orgRevisionId,
|
orgRevisionId: data.orgRevisionId,
|
||||||
};
|
};
|
||||||
props.upDate?.(body);
|
|
||||||
closeDialog();
|
closeDialog();
|
||||||
|
props.upDate?.(body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,341 @@
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, watch } from "vue";
|
||||||
|
import { useRoute } from "vue-router";
|
||||||
|
|
||||||
|
import http from "@/plugins/http";
|
||||||
|
import config from "@/app.config";
|
||||||
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
import { useQuasar } from "quasar";
|
||||||
|
|
||||||
|
import DialogHeader from "@/components/DialogHeader.vue";
|
||||||
|
|
||||||
|
const $q = useQuasar();
|
||||||
|
const route = useRoute();
|
||||||
|
const id = ref<string>(route.params.id as string);
|
||||||
|
const mixin = useCounterMixin();
|
||||||
|
const {
|
||||||
|
date2Thai,
|
||||||
|
dialogMessageNotify,
|
||||||
|
showLoader,
|
||||||
|
hideLoader,
|
||||||
|
messageError,
|
||||||
|
dialogConfirm,
|
||||||
|
success,
|
||||||
|
} = mixin;
|
||||||
|
const modal = defineModel<boolean>("modal", { required: true });
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
fetchDataDetail: Function,
|
||||||
|
checkFileBackReceived: Function,
|
||||||
|
scholarshipId: String,
|
||||||
|
});
|
||||||
|
const governmentDate = ref<Date | null>(null);
|
||||||
|
const graduatedDate = ref<Date | null>(null);
|
||||||
|
const isGraduated = ref<string | null>(null);
|
||||||
|
const graduatedReason = ref<string>("");
|
||||||
|
|
||||||
|
const bookNumber = ref<string>("");
|
||||||
|
const bookDate = ref<Date | null>(null);
|
||||||
|
const governmentEndDate = ref<Date | null>(null);
|
||||||
|
|
||||||
|
function close() {
|
||||||
|
modal.value = false;
|
||||||
|
|
||||||
|
bookNumber.value = "";
|
||||||
|
bookDate.value = null;
|
||||||
|
governmentDate.value = null;
|
||||||
|
governmentEndDate.value = null;
|
||||||
|
|
||||||
|
isGraduated.value = null;
|
||||||
|
graduatedDate.value = null;
|
||||||
|
graduatedReason.value = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSubmit() {
|
||||||
|
if (isGraduated.value == null) {
|
||||||
|
dialogMessageNotify($q, "กรุณาเลือกสำเร็จการศึกษาตามที่หลักสูตรกำหนด");
|
||||||
|
} else {
|
||||||
|
dialogConfirm($q, () => {
|
||||||
|
showLoader();
|
||||||
|
http
|
||||||
|
.put(config.API.devScholarship + `/admin/detail/${id.value}`, {
|
||||||
|
bookNumber: bookNumber.value,
|
||||||
|
bookDate: bookDate.value,
|
||||||
|
governmentDate: governmentDate.value,
|
||||||
|
governmentEndDate: governmentEndDate.value,
|
||||||
|
isGraduated: isGraduated.value,
|
||||||
|
graduatedDate:
|
||||||
|
isGraduated.value == "true" ? graduatedDate.value : null,
|
||||||
|
graduatedReason:
|
||||||
|
isGraduated.value == "false" ? graduatedReason.value : null,
|
||||||
|
})
|
||||||
|
.then((res) => {
|
||||||
|
success($q, "บันทึกสำเร็จ");
|
||||||
|
props.fetchDataDetail?.(props.scholarshipId);
|
||||||
|
props.checkFileBackReceived?.(props.scholarshipId);
|
||||||
|
close();
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
messageError($q, e);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => modal.value,
|
||||||
|
() => {
|
||||||
|
if (modal.value == true) {
|
||||||
|
showLoader();
|
||||||
|
http
|
||||||
|
.get(config.API.devScholarship + `/admin/detail/${id.value}`)
|
||||||
|
.then((res) => {
|
||||||
|
const data = res.data.result;
|
||||||
|
bookNumber.value = data.bookNumber;
|
||||||
|
bookDate.value = data.bookDate;
|
||||||
|
governmentDate.value = data.governmentDate;
|
||||||
|
governmentEndDate.value = data.governmentEndDate;
|
||||||
|
isGraduated.value = data.isGraduated.toLocaleString();
|
||||||
|
graduatedDate.value = data.graduatedDate;
|
||||||
|
graduatedReason.value = data.graduatedReason;
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
messageError($q, e);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<q-dialog v-model="modal">
|
||||||
|
<q-card flat style="min-width: 30vw">
|
||||||
|
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
||||||
|
<DialogHeader tittle="รายงานตัวกลับเข้ารับราชการ" :close="close" />
|
||||||
|
<q-separator />
|
||||||
|
<q-card-section>
|
||||||
|
<div class="row q-col-gutter-sm">
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-6">
|
||||||
|
<q-input
|
||||||
|
label="เลขที่หนังสือรายงานตัวกลับเข้าปฏิบัติราชการ"
|
||||||
|
v-model="bookNumber"
|
||||||
|
outlined
|
||||||
|
lazy-rules
|
||||||
|
dense
|
||||||
|
hide-bottom-space
|
||||||
|
:rules="[
|
||||||
|
(val:string) =>
|
||||||
|
!!val || `${'กรุณากรอกเลขที่หนังสือรายงานตัวกลับเข้าปฏิบัติราชการ'}`,
|
||||||
|
]"
|
||||||
|
class="inputgreen"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-sm-12 col-md-6">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="bookDate"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:model-value="bookDate ? date2Thai(bookDate) : null"
|
||||||
|
:label="`${'หนังสือรายงานตัวกลับเข้าปฏิบัติราชการลงวันที่'}`"
|
||||||
|
hide-bottom-space
|
||||||
|
class="inputgreen"
|
||||||
|
: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-xs-12 col-sm-12 col-md-6">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="governmentDate"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:model-value="
|
||||||
|
governmentDate ? date2Thai(governmentDate) : null
|
||||||
|
"
|
||||||
|
:label="`${'วันที่กลับเข้าปฏิบัติราชการ'}`"
|
||||||
|
hide-bottom-space
|
||||||
|
class="inputgreen"
|
||||||
|
: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-xs-12 col-sm-12 col-md-6">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="governmentEndDate"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:model-value="
|
||||||
|
governmentEndDate ? date2Thai(governmentEndDate) : null
|
||||||
|
"
|
||||||
|
:label="`${' วันสิ้นสุดภาระผูกพัน'}`"
|
||||||
|
class="inputgreen"
|
||||||
|
>
|
||||||
|
<template v-slot:prepend>
|
||||||
|
<q-icon
|
||||||
|
name="event"
|
||||||
|
class="cursor-pointer"
|
||||||
|
style="color: var(--q-primary)"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
<template v-slot:append>
|
||||||
|
<q-icon
|
||||||
|
v-if="governmentEndDate"
|
||||||
|
name="clear"
|
||||||
|
class="cursor-pointer"
|
||||||
|
@click.stop.prevent="governmentEndDate = null"
|
||||||
|
>
|
||||||
|
</q-icon>
|
||||||
|
</template>
|
||||||
|
</q-input>
|
||||||
|
</template>
|
||||||
|
</datepicker>
|
||||||
|
</div>
|
||||||
|
<q-radio
|
||||||
|
v-model="isGraduated"
|
||||||
|
checked-icon="task_alt"
|
||||||
|
unchecked-icon="panorama_fish_eye"
|
||||||
|
val="true"
|
||||||
|
label="สำเร็จการศึกษาตามที่หลักสูตรกำหนด"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<q-radio
|
||||||
|
v-model="isGraduated"
|
||||||
|
checked-icon="task_alt"
|
||||||
|
unchecked-icon="panorama_fish_eye"
|
||||||
|
val="false"
|
||||||
|
label="เสร็จสิ้นการศึกษาตามที่หลักสูตรกำหนดแล้วแต่ยังไม่สำเร็จการศึกษา"
|
||||||
|
/>
|
||||||
|
<div v-if="isGraduated == 'true'" class="col-12">
|
||||||
|
<datepicker
|
||||||
|
menu-class-name="modalfix"
|
||||||
|
v-model="graduatedDate"
|
||||||
|
:locale="'th'"
|
||||||
|
autoApply
|
||||||
|
:enableTimePicker="false"
|
||||||
|
week-start="0"
|
||||||
|
>
|
||||||
|
<template #year="{ year }">{{ year + 543 }}</template>
|
||||||
|
<template #year-overlay-value="{ value }">{{
|
||||||
|
parseInt(value + 543)
|
||||||
|
}}</template>
|
||||||
|
<template #trigger>
|
||||||
|
<q-input
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
:model-value="
|
||||||
|
graduatedDate ? date2Thai(graduatedDate) : null
|
||||||
|
"
|
||||||
|
:label="`${'ตั้งแต่ (วันที่)'}`"
|
||||||
|
hide-bottom-space
|
||||||
|
class="inputgreen"
|
||||||
|
: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="isGraduated == 'false'" class="col-12">
|
||||||
|
<q-input
|
||||||
|
v-model="graduatedReason"
|
||||||
|
type="textarea"
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
hide-bottom-space
|
||||||
|
class="inputgreen"
|
||||||
|
:rules="[
|
||||||
|
(val:string) =>
|
||||||
|
!!val || `${'กรุณากรอก เนื่องจาก'}`,
|
||||||
|
]"
|
||||||
|
label="เนื่องจาก"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</q-card-section>
|
||||||
|
<q-separator />
|
||||||
|
<q-card-actions align="right">
|
||||||
|
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||||
|
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||||
|
>
|
||||||
|
</q-card-actions>
|
||||||
|
</q-form>
|
||||||
|
</q-card>
|
||||||
|
</q-dialog>
|
||||||
|
</template>
|
||||||
|
|
@ -96,6 +96,8 @@ interface FormProjectDetail {
|
||||||
interface DevelopmentAddress {
|
interface DevelopmentAddress {
|
||||||
address: string;
|
address: string;
|
||||||
provinceId: string;
|
provinceId: string;
|
||||||
|
addressType: string;
|
||||||
|
country: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface DataHistory {
|
interface DataHistory {
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ interface FormsSholarship {
|
||||||
bookNo: string; //เลขที่หนังสืออนุมัติ
|
bookNo: string; //เลขที่หนังสืออนุมัติ
|
||||||
bookNoDate: Date | null; //ลงวันที่(หนังสือ)
|
bookNoDate: Date | null; //ลงวันที่(หนังสือ)
|
||||||
bookApproveDate: Date | null; //หนังสืออนุมัติเมื่อวันที่
|
bookApproveDate: Date | null; //หนังสืออนุมัติเมื่อวันที่
|
||||||
useOfficialTime: boolean; //ใช้เวลาราชการ
|
useOfficialTime: string; //ใช้เวลาราชการ
|
||||||
changeDetail: string; //เปลี่ยนแปลงรายละเอียด
|
changeDetail: string; //เปลี่ยนแปลงรายละเอียด
|
||||||
scholarshipType: string; //เลือกประเภททุน
|
scholarshipType: string; //เลือกประเภททุน
|
||||||
fundType: string; //ประเภททุน
|
fundType: string; //ประเภททุน
|
||||||
|
|
@ -61,6 +61,7 @@ interface FormsSholarship {
|
||||||
totalPeriod: string; //รวมระยะเวลาในการศึกษา/รวมระยะเวลาในการฝึกอบรม
|
totalPeriod: string; //รวมระยะเวลาในการศึกษา/รวมระยะเวลาในการฝึกอบรม
|
||||||
planType: string; // INPLAN ในแผนฯ, OUTPLAN นอกแผนฯ
|
planType: string; // INPLAN ในแผนฯ, OUTPLAN นอกแผนฯ
|
||||||
isNoUseBudget: boolean; //
|
isNoUseBudget: boolean; //
|
||||||
|
budgetSourceOther: string; //
|
||||||
}
|
}
|
||||||
|
|
||||||
export type { FormsSholarship };
|
export type { FormsSholarship };
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ interface DataSholarship {
|
||||||
bookNo: string; //เลขที่หนังสืออนุมัติ
|
bookNo: string; //เลขที่หนังสืออนุมัติ
|
||||||
bookNoDate: Date | null; //ลงวันที่(หนังสือ)
|
bookNoDate: Date | null; //ลงวันที่(หนังสือ)
|
||||||
bookApproveDate: Date | null; //หนังสืออนุมัติเมื่อวันที่
|
bookApproveDate: Date | null; //หนังสืออนุมัติเมื่อวันที่
|
||||||
useOfficialTime: boolean; //ใช้เวลาราชการ
|
useOfficialTime: string; //ใช้เวลาราชการ
|
||||||
changeDetail: string; //เปลี่ยนแปลงรายละเอียด
|
changeDetail: string; //เปลี่ยนแปลงรายละเอียด
|
||||||
scholarshipType: string; //เลือกประเภททุน
|
scholarshipType: string; //เลือกประเภททุน
|
||||||
fundType: string; //ประเภททุน
|
fundType: string; //ประเภททุน
|
||||||
|
|
@ -70,6 +70,7 @@ interface DataSholarship {
|
||||||
studyAbroadEndDate: Date | null; //วันสิ้นสุดการศึกษาดูงานต่างประเทศ
|
studyAbroadEndDate: Date | null; //วันสิ้นสุดการศึกษาดูงานต่างประเทศ
|
||||||
totalPeriod: string; //รวมระยะเวลาในการศึกษา/รวมระยะเวลาในการฝึกอบรม
|
totalPeriod: string; //รวมระยะเวลาในการศึกษา/รวมระยะเวลาในการฝึกอบรม
|
||||||
status: string;
|
status: string;
|
||||||
|
budgetSourceOther: string;
|
||||||
planType: string; // INPLAN ในแผนฯ, OUTPLAN นอกแผนฯ
|
planType: string; // INPLAN ในแผนฯ, OUTPLAN นอกแผนฯ
|
||||||
isNoUseBudget: boolean; // ไม่ใช้งบประมาณ
|
isNoUseBudget: boolean; // ไม่ใช้งบประมาณ
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -131,8 +131,12 @@ const scholarshipTypeOp = ref<DataOption[]>([
|
||||||
name: " ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยงานภายนอก (หลักสูตรประเภทนักบริหาร)",
|
name: " ฝึกอบรมในประเทศที่ส่งไปพัฒนากับหน่วยงานภายนอก (หลักสูตรประเภทนักบริหาร)",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "RESEARCH",
|
id: "STUDY",
|
||||||
name: "ศึกษา ฝึกอบรม ประชุม ดูงาน และปฏิบัติการวิจัย ณ ต่างประเทศ",
|
name: "ทุนการศึกษา ณ ต่างประเทศ",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "TRAINING",
|
||||||
|
name: "ทุนฝึกอบรม ณ ต่างประเทศ",
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue