2024-05-17 11:10:23 +07:00
|
|
|
|
<script setup lang="ts">
|
|
|
|
|
|
import DialogHeader from "@/components/DialogHeader.vue";
|
2024-07-17 16:17:11 +07:00
|
|
|
|
import { ref, reactive, watch, computed } from "vue";
|
2024-05-17 11:10:23 +07:00
|
|
|
|
import { useCounterMixin } from "@/stores/mixin";
|
|
|
|
|
|
import { useQuasar } from "quasar";
|
|
|
|
|
|
|
|
|
|
|
|
import http from "@/plugins/http";
|
|
|
|
|
|
import config from "@/app.config";
|
|
|
|
|
|
import { useRoute } from "vue-router";
|
2024-07-17 16:17:11 +07:00
|
|
|
|
import type { DataOptionTechnique } from "@/modules/14_KPI/interface/index/Main";
|
2024-05-17 11:10:23 +07:00
|
|
|
|
const props = defineProps({
|
|
|
|
|
|
getAll: Function,
|
|
|
|
|
|
});
|
|
|
|
|
|
const route = useRoute();
|
|
|
|
|
|
const idKpi = ref<string>(route.params.id.toLocaleString());
|
|
|
|
|
|
|
2024-07-17 16:17:11 +07:00
|
|
|
|
const development = ref<any[]>([]);
|
|
|
|
|
|
const reasonDevelopment70 = ref<string>("");
|
|
|
|
|
|
const reasonDevelopment20 = ref<string>("");
|
|
|
|
|
|
const reasonDevelopment10 = ref<string>("");
|
|
|
|
|
|
const checkOtherBox11 = computed<boolean>(() => {
|
|
|
|
|
|
return development.value.includes("other1");
|
|
|
|
|
|
});
|
|
|
|
|
|
const checkOtherBox12 = computed<boolean>(() => {
|
|
|
|
|
|
return development.value.includes("other2");
|
|
|
|
|
|
});
|
|
|
|
|
|
const checkOtherBox13 = computed<boolean>(() => {
|
|
|
|
|
|
return development.value.includes("other3");
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const isDevelopment70 = computed(() => {
|
|
|
|
|
|
return projectTechniquesOp1.value.some((txt) =>
|
|
|
|
|
|
development.value.includes(txt.value)
|
|
|
|
|
|
);
|
|
|
|
|
|
});
|
|
|
|
|
|
const isDevelopment20 = computed(() => {
|
|
|
|
|
|
return projectTechniquesOp2.value.some((txt) =>
|
|
|
|
|
|
development.value.includes(txt.value)
|
|
|
|
|
|
);
|
|
|
|
|
|
});
|
|
|
|
|
|
const isDevelopment10 = computed(() => {
|
|
|
|
|
|
return projectTechniquesOp3.value.some((txt) =>
|
|
|
|
|
|
development.value.includes(txt.value)
|
|
|
|
|
|
);
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const projectTechniquesOp1 = ref<DataOptionTechnique[]>([
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "on_the_job_training",
|
|
|
|
|
|
label: "การฝึกปฏิบัติในงาน (On the job training)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "job_project_assignment",
|
|
|
|
|
|
label: "การมอบหมายงาน/โครงการ (Job/Project assignment)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "job_shadowing",
|
|
|
|
|
|
label: "การติดตามเรียนรู้รูปแบบการทำงานของผู้บริหาร (Job shadowing)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "job_enlargement",
|
|
|
|
|
|
label: "การมอบหมายงานเพิ่มขึ้น (Job enlargement)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "internal_trainer",
|
|
|
|
|
|
label: "การเป็นวิทยากรภายในหน่วยงาน (Internal trainer)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{ value: "rotation", label: "การหมุนเวียนงาน (Rotation)" },
|
|
|
|
|
|
{ value: "activity", label: "การทำกิจกรรม (Activity)" },
|
|
|
|
|
|
{ value: "site_visit", label: "การศึกษาดูงานนอกสถานที่ (Site visit)" },
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "benchmarking",
|
|
|
|
|
|
label: "การแลกเปลี่ยน เทียบเคียงความรู้ ประสมการณ์ (Benchmarking)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{ value: "problem_solving", label: "การแก้ปัญหา (Problem-solving)" },
|
|
|
|
|
|
{ value: "team_working", label: "การทำงานเป็นทีม (Team working)" },
|
|
|
|
|
|
{ value: "other1", label: "อื่น ๆ (ระบุ)" },
|
|
|
|
|
|
]);
|
|
|
|
|
|
const projectTechniquesOp2 = ref<DataOptionTechnique[]>([
|
|
|
|
|
|
{ value: "coaching", label: "การสอนงาน (Coaching)" },
|
|
|
|
|
|
{ value: "mentoring", label: "การเป็นพี่เลี้ยง (Mentoring)" },
|
|
|
|
|
|
{ value: "team_meeting", label: "การประชุมทีม (Team meeting)" },
|
|
|
|
|
|
{ value: "consulting", label: "การให้คำปรึกษา (Consulting)" },
|
|
|
|
|
|
{ value: "feedback", label: "การให้ข้อคิดเห็น/เสนอแนะ (Feedback)" },
|
|
|
|
|
|
{ value: "other2", label: "อื่น ๆ (ระบุ)" },
|
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
const projectTechniquesOp3 = ref<DataOptionTechnique[]>([
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "self_learning",
|
|
|
|
|
|
label: "การเรียนรู้ด้วยตนเอง แบบ online/offline (Self – learning)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{ value: "classroom_training", label: "การฝึกอบรม (Classroom training)" },
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "in_house_training",
|
|
|
|
|
|
label: "การฝึกอบรมภายในองค์กร (In – house training)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "public_training",
|
|
|
|
|
|
label: "การฝึกอบรมจากองค์กรภายนอก (Public training)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
value: "e_training",
|
|
|
|
|
|
label: "การฝึกอบรมผ่าน online (e – training / e – learning)",
|
|
|
|
|
|
},
|
|
|
|
|
|
{ value: "meeting", label: "การประชุม (Meeting)" },
|
|
|
|
|
|
{ value: "seminar", label: "การสัมมนา (Seminar)" },
|
|
|
|
|
|
{ value: "other3", label: "อื่น ๆ (ระบุ)" },
|
|
|
|
|
|
]);
|
|
|
|
|
|
|
2024-05-17 11:10:23 +07:00
|
|
|
|
const $q = useQuasar();
|
|
|
|
|
|
const mixin = useCounterMixin();
|
|
|
|
|
|
const {
|
|
|
|
|
|
showLoader,
|
|
|
|
|
|
hideLoader,
|
|
|
|
|
|
dialogConfirm,
|
|
|
|
|
|
messageError,
|
|
|
|
|
|
success,
|
|
|
|
|
|
dialogMessageNotify,
|
|
|
|
|
|
} = mixin;
|
|
|
|
|
|
|
|
|
|
|
|
const modal = defineModel<boolean>("modal", { required: true });
|
|
|
|
|
|
const id = defineModel<string>("id", { required: true });
|
|
|
|
|
|
|
|
|
|
|
|
const formData = reactive({
|
|
|
|
|
|
name: "",
|
|
|
|
|
|
group: [],
|
|
|
|
|
|
target: "",
|
|
|
|
|
|
isDevelopment70: false,
|
|
|
|
|
|
isDevelopment20: false,
|
|
|
|
|
|
isDevelopment10: false,
|
|
|
|
|
|
achievement10: "มีผลการพัฒนาและมีการดำเนินการตามเป้าหมายการนำไปพัฒนางาน",
|
|
|
|
|
|
achievement5: "มีผลการพัฒนาแต่ยังไม่ได้ดำเนินการตามเป้าหมายการนำไปพัฒนางาน",
|
|
|
|
|
|
achievement0: "ไม่ได้ดำเนินการพัฒนา",
|
|
|
|
|
|
});
|
|
|
|
|
|
function close() {
|
|
|
|
|
|
modal.value = false;
|
|
|
|
|
|
id.value = "";
|
|
|
|
|
|
|
|
|
|
|
|
formData.name = "";
|
|
|
|
|
|
formData.group = [];
|
|
|
|
|
|
formData.target = "";
|
|
|
|
|
|
formData.isDevelopment70 = false;
|
|
|
|
|
|
formData.isDevelopment20 = false;
|
|
|
|
|
|
formData.isDevelopment10 = false;
|
|
|
|
|
|
formData.achievement10 =
|
|
|
|
|
|
"มีผลการพัฒนาและมีการดำเนินการตามเป้าหมายการนำไปพัฒนางาน";
|
|
|
|
|
|
formData.achievement5 =
|
|
|
|
|
|
"มีผลการพัฒนาแต่ยังไม่ได้ดำเนินการตามเป้าหมายการนำไปพัฒนางาน";
|
|
|
|
|
|
formData.achievement0 = "ไม่ได้ดำเนินการพัฒนา";
|
|
|
|
|
|
props.getAll?.();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function onSubmit() {
|
|
|
|
|
|
if (
|
2024-07-17 16:17:11 +07:00
|
|
|
|
isDevelopment70.value == false &&
|
|
|
|
|
|
isDevelopment20.value == false &&
|
|
|
|
|
|
isDevelopment10.value == false
|
2024-05-17 11:10:23 +07:00
|
|
|
|
) {
|
|
|
|
|
|
dialogMessageNotify($q, "กรุณาเลือกวิธีการพัฒนา อย่างน้อย 1 ตัวเลือก");
|
|
|
|
|
|
} else {
|
|
|
|
|
|
dialogConfirm($q, () => {
|
|
|
|
|
|
const url = id.value
|
|
|
|
|
|
? config.API.kpiAchievementDevelop + `/${id.value}`
|
|
|
|
|
|
: config.API.kpiAchievementDevelop;
|
|
|
|
|
|
const body = {
|
|
|
|
|
|
name: formData.name,
|
|
|
|
|
|
target: formData.target,
|
|
|
|
|
|
achievement10: formData.achievement10,
|
|
|
|
|
|
achievement5: formData.achievement5,
|
|
|
|
|
|
achievement0: formData.achievement0,
|
2024-07-17 16:17:11 +07:00
|
|
|
|
isDevelopment70: isDevelopment70.value,
|
|
|
|
|
|
isDevelopment20: isDevelopment20.value,
|
|
|
|
|
|
isDevelopment10: isDevelopment10.value,
|
2024-05-17 11:10:23 +07:00
|
|
|
|
kpiUserEvaluationId: idKpi.value,
|
2024-07-17 16:17:11 +07:00
|
|
|
|
developmentProjects: development.value,
|
|
|
|
|
|
reasonDevelopment70:checkOtherBox11 ? reasonDevelopment70.value:'',
|
|
|
|
|
|
reasonDevelopment20:checkOtherBox12 ? reasonDevelopment20.value:'',
|
|
|
|
|
|
reasonDevelopment10:checkOtherBox13 ? reasonDevelopment10.value:'',
|
|
|
|
|
|
|
2024-05-17 11:10:23 +07:00
|
|
|
|
};
|
|
|
|
|
|
showLoader();
|
|
|
|
|
|
http[id.value ? "put" : "post"](url, body)
|
|
|
|
|
|
.then((res) => {
|
|
|
|
|
|
success($q, "บันทึกข้อมูลสำเร็จ");
|
|
|
|
|
|
close();
|
|
|
|
|
|
})
|
|
|
|
|
|
.catch((e) => {
|
|
|
|
|
|
messageError($q, e);
|
|
|
|
|
|
})
|
|
|
|
|
|
.finally(() => {
|
|
|
|
|
|
hideLoader();
|
|
|
|
|
|
});
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
watch(
|
|
|
|
|
|
() => id.value,
|
|
|
|
|
|
(i) => {
|
|
|
|
|
|
if (i) {
|
|
|
|
|
|
showLoader();
|
|
|
|
|
|
http
|
|
|
|
|
|
.get(config.API.kpiAchievementDevelop + `/${id.value}`)
|
|
|
|
|
|
.then((res) => {
|
|
|
|
|
|
const data = res.data.result;
|
|
|
|
|
|
formData.name = data.name;
|
|
|
|
|
|
formData.group = data.group;
|
|
|
|
|
|
formData.target = data.target;
|
|
|
|
|
|
formData.isDevelopment70 = data.isDevelopment70;
|
|
|
|
|
|
formData.isDevelopment20 = data.isDevelopment20;
|
|
|
|
|
|
formData.isDevelopment10 = data.isDevelopment10;
|
|
|
|
|
|
formData.achievement10 = data.achievement10;
|
|
|
|
|
|
formData.achievement5 = data.achievement5;
|
|
|
|
|
|
formData.achievement0 = data.achievement0;
|
2024-07-17 16:17:11 +07:00
|
|
|
|
development.value = data.developmentProjects;
|
|
|
|
|
|
reasonDevelopment70.value = data.developmentProjects.includes("other1") ? data.reasonDevelopment70:'';
|
|
|
|
|
|
reasonDevelopment20.value = data.developmentProjects.includes("other2") ? data.reasonDevelopment20:'';
|
|
|
|
|
|
reasonDevelopment10.value = data.developmentProjects.includes("other3") ? data.reasonDevelopment10:'';
|
2024-05-17 11:10:23 +07:00
|
|
|
|
})
|
|
|
|
|
|
.catch((e) => {
|
|
|
|
|
|
messageError($q, e);
|
|
|
|
|
|
})
|
|
|
|
|
|
.finally(() => {
|
|
|
|
|
|
hideLoader();
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
);
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
|
|
|
<q-dialog persistent v-model="modal">
|
2024-07-17 16:17:11 +07:00
|
|
|
|
<q-card style="min-width: 90vw">
|
2024-05-17 11:10:23 +07:00
|
|
|
|
<q-form greedy @submit.prevent @validation-success="onSubmit">
|
|
|
|
|
|
<DialogHeader
|
|
|
|
|
|
:tittle="`${id ? 'แก้ไข' : 'เพิ่ม'}การพัฒนาตนเอง`"
|
|
|
|
|
|
:close="close"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
<q-card-section>
|
|
|
|
|
|
<div class="row q-col-gutter-sm">
|
|
|
|
|
|
<div class="col-12">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
v-model="formData.name"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
dense
|
|
|
|
|
|
:rules="[(val:string) => !!val || `${'กรุณากรอกชื่อเรื่อง / เนื้อเรื่อง / หัวข้อการพัฒนา'}`,]"
|
|
|
|
|
|
lazy-rules
|
|
|
|
|
|
hide-bottom-space
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="ชื่อเรื่อง / เนื้อเรื่อง / หัวข้อการพัฒนา"
|
|
|
|
|
|
>
|
|
|
|
|
|
</q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12">
|
|
|
|
|
|
<span class="text-weight-medium">วิธีการพัฒนา</span>
|
|
|
|
|
|
</div>
|
2024-07-17 16:17:11 +07:00
|
|
|
|
<div class="row q-col-gutter-md full-width">
|
|
|
|
|
|
<div class="col-12 col-sm-6 col-md-6 col-lg-4">
|
|
|
|
|
|
<span class="text-weight-medium"
|
|
|
|
|
|
>70 การลงมือปฏิบัติ (โดยผู้บังคับบัญชามอบหมาย)</span
|
|
|
|
|
|
>
|
|
|
|
|
|
<q-option-group
|
|
|
|
|
|
class="check_box q-mt-sm"
|
|
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
|
|
|
|
|
v-model="development"
|
|
|
|
|
|
:options="projectTechniquesOp1"
|
|
|
|
|
|
type="checkbox"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div class="row q-pb-md" v-if="checkOtherBox11">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
v-model="reasonDevelopment70"
|
|
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12 col-sm-6 col-md-6 col-lg-4">
|
|
|
|
|
|
<span class="text-weight-medium"
|
|
|
|
|
|
>20 การเรียนรู้จากผู้อื่น (Coach/Mentor/Consulting)</span
|
|
|
|
|
|
>
|
|
|
|
|
|
<q-option-group
|
|
|
|
|
|
class="check_box q-mt-sm"
|
|
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
|
|
|
|
|
v-model="development"
|
|
|
|
|
|
:options="projectTechniquesOp2"
|
|
|
|
|
|
type="checkbox"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div class="row q-pb-md" v-if="checkOtherBox12">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
v-model="reasonDevelopment20"
|
|
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12 col-sm-6 col-md-6 col-lg-4">
|
|
|
|
|
|
<span class="text-weight-medium">10 การฝึกอบรมอื่นๆ</span>
|
|
|
|
|
|
<q-option-group
|
|
|
|
|
|
class="check_box q-mt-sm"
|
|
|
|
|
|
keep-color
|
|
|
|
|
|
color="primary"
|
|
|
|
|
|
dense
|
|
|
|
|
|
v-model="development"
|
|
|
|
|
|
:options="projectTechniquesOp3"
|
|
|
|
|
|
type="checkbox"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div class="row q-pb-md" v-if="checkOtherBox13">
|
|
|
|
|
|
<div class="offset-4 col-8 q-mt-sm relative-position">
|
|
|
|
|
|
<div class="other_custom_input">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
v-model="reasonDevelopment10"
|
|
|
|
|
|
dense
|
|
|
|
|
|
outlined
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
label="กรุณาระบุ"
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <q-checkbox
|
2024-05-17 11:10:23 +07:00
|
|
|
|
v-model="formData.isDevelopment70"
|
|
|
|
|
|
label="70 การลงมือปฏิบัติ (โดยผู้บังคับบัญชามอบหมาย)"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<q-checkbox
|
|
|
|
|
|
v-model="formData.isDevelopment20"
|
|
|
|
|
|
label="20 การเรียนรู้จากผู้อื่น (Coach/Mentor/Consulting)"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<q-checkbox
|
|
|
|
|
|
v-model="formData.isDevelopment10"
|
|
|
|
|
|
label="10 การฝึกอบรมอื่นๆ"
|
2024-07-17 16:17:11 +07:00
|
|
|
|
/> -->
|
2024-05-17 11:10:23 +07:00
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
label="เป้าหมายการนำไปพัฒนางาน"
|
|
|
|
|
|
v-model="formData.target"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
type="textarea"
|
|
|
|
|
|
dense
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
:rules="[(val:string) => !!val || `${'กรุณากรอกเป้าหมายการนำไปพัฒนางาน'}`,]"
|
|
|
|
|
|
lazy-rules
|
|
|
|
|
|
hide-bottom-space
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-12">
|
|
|
|
|
|
<q-card bordered>
|
|
|
|
|
|
<div class="bg-grey-2 row q-py-sm text-weight-bold col-12">
|
|
|
|
|
|
<div class="col-4 text-center">
|
|
|
|
|
|
<span>ระดับคะแนน</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-8 text-start">
|
|
|
|
|
|
<span>เกณฑ์การประเมิน</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row q-pa-sm">
|
|
|
|
|
|
<div class="col-4 text-center self-start text-body1">
|
|
|
|
|
|
<span>10</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-8">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
v-model="formData.achievement10"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
dense
|
|
|
|
|
|
label="เกณฑ์การประเมิน"
|
|
|
|
|
|
:rules="[(val:string) => !!val || `${'กรุณากรอกเกณฑ์การประเมิน'}`,]"
|
|
|
|
|
|
lazy-rules
|
|
|
|
|
|
hide-bottom-space
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
<div class="row q-pa-sm bg-grey-2">
|
|
|
|
|
|
<div class="col-4 text-center self-start text-body1">
|
|
|
|
|
|
<span>5</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-8">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
v-model="formData.achievement5"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
dense
|
|
|
|
|
|
label="เกณฑ์การประเมิน"
|
|
|
|
|
|
:rules="[(val:string) => !!val || `${'กรุณากรอกเกณฑ์การประเมิน'}`,]"
|
|
|
|
|
|
lazy-rules
|
|
|
|
|
|
hide-bottom-space
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
<div class="row q-pa-sm">
|
|
|
|
|
|
<div class="col-4 text-center self-start text-body1">
|
|
|
|
|
|
<span>0</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="col-8">
|
|
|
|
|
|
<q-input
|
|
|
|
|
|
class="inputgreen"
|
|
|
|
|
|
v-model="formData.achievement0"
|
|
|
|
|
|
outlined
|
|
|
|
|
|
dense
|
|
|
|
|
|
label="เกณฑ์การประเมิน"
|
|
|
|
|
|
:rules="[(val:string) => !!val || `${'กรุณากรอกเกณฑ์การประเมิน'}`,]"
|
|
|
|
|
|
lazy-rules
|
|
|
|
|
|
hide-bottom-space
|
|
|
|
|
|
></q-input>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</q-card>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</q-card-section>
|
|
|
|
|
|
<q-separator />
|
|
|
|
|
|
|
|
|
|
|
|
<q-card-actions align="right" class="bg-white text-teal">
|
|
|
|
|
|
<q-btn label="บันทึก" color="secondary" type="submit"
|
|
|
|
|
|
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
|
|
|
|
|
>
|
|
|
|
|
|
</q-card-actions>
|
|
|
|
|
|
</q-form>
|
|
|
|
|
|
</q-card>
|
|
|
|
|
|
</q-dialog>
|
|
|
|
|
|
</template>
|
2024-07-17 16:17:11 +07:00
|
|
|
|
<style scoped>
|
|
|
|
|
|
:deep(.check_box .q-checkbox) {
|
|
|
|
|
|
align-items: start;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.other_custom_input {
|
|
|
|
|
|
position: absolute;
|
|
|
|
|
|
top: -25px;
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|