Merge branch 'develop' into warunee-dev
This commit is contained in:
commit
8709f26508
25 changed files with 8170 additions and 6032 deletions
|
|
@ -12,6 +12,8 @@ import http from "@/plugins/http";
|
|||
import config from "@/app.config";
|
||||
import keycloak from "@/plugins/keycloak";
|
||||
|
||||
import CurruncyInput from "@/components/CurruncyInput.vue";
|
||||
|
||||
const $q = useQuasar();
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
|
@ -350,7 +352,7 @@ const getClass = (val: boolean) => {
|
|||
</div>
|
||||
<div class="col-xs-6 col-sm-3 row items-center">
|
||||
<div class="col-12">
|
||||
<q-input
|
||||
<!-- <q-input
|
||||
:class="getClass(edit)"
|
||||
:outlined="edit"
|
||||
dense
|
||||
|
|
@ -362,6 +364,12 @@ const getClass = (val: boolean) => {
|
|||
hide-bottom-space
|
||||
:label="`${'เงินเดือน'}`"
|
||||
type="number"
|
||||
/> -->
|
||||
<CurruncyInput
|
||||
v-model="salary"
|
||||
label="เงินเดือน"
|
||||
:edit="edit"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกเงินเดือน'}`]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@
|
|||
{{ props.row.fileName }}
|
||||
</q-td>
|
||||
<q-td key="btnMicrosoft" :props="props">
|
||||
<q-btn flat dense round color="red" icon="picture_as_pdf">
|
||||
<q-btn type="a" target="_blank" :href="props.row.pathName" flat dense round color="red" icon="picture_as_pdf">
|
||||
<q-tooltip>ไฟล์ PDF</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn flat dense round color="blue" icon="mdi-file-word">
|
||||
|
|
|
|||
|
|
@ -55,6 +55,8 @@ const {
|
|||
showLoader,
|
||||
hideLoader,
|
||||
dialogConfirm,
|
||||
dialogMessageNotify,
|
||||
modalWarning
|
||||
} = mixin;
|
||||
const filterData = (options: any[], excludedGroups: any[]) => {
|
||||
return options.filter(
|
||||
|
|
@ -545,11 +547,6 @@ const putData = (id: string) => {
|
|||
role: "mentor",
|
||||
dated: date2.value instanceof Date ? dateToISO(date2.value) : dateToISO(new Date(date2.value)),
|
||||
},
|
||||
{
|
||||
personal_id: caretaker2.value.id,
|
||||
role: "mentor",
|
||||
dated: date3.value instanceof Date ? dateToISO(date3.value) : dateToISO(new Date(date3.value)),
|
||||
},
|
||||
{
|
||||
personal_id: commander.value.id,
|
||||
role: "commander",
|
||||
|
|
@ -560,6 +557,13 @@ const putData = (id: string) => {
|
|||
role: "chairman",
|
||||
},
|
||||
];
|
||||
if (caretaker2.value) {
|
||||
assign_director.push({
|
||||
personal_id: caretaker2.value.id,
|
||||
role: "mentor",
|
||||
dated: date3.value instanceof Date ? dateToISO(date3.value) : dateToISO(new Date(date3.value)),
|
||||
});
|
||||
}
|
||||
const data = {
|
||||
personalId: GUID,
|
||||
fullname: fullname.value,
|
||||
|
|
@ -621,7 +625,7 @@ const DataSave = async (id: string) => {
|
|||
hideLoader();
|
||||
});
|
||||
} else {
|
||||
notifyError($q, "กรุณากรอกข้อมูลให้ครบ");
|
||||
dialogMessageNotify($q, "กรุณากรอกข้อมูลให้ครบ");
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
@ -753,33 +757,33 @@ watch(knowledge.value, () => {
|
|||
|
||||
<template>
|
||||
<q-form ref="myForm">
|
||||
<div class="q-pb-md">
|
||||
<div class="q-pa-sm">
|
||||
<div class="toptitle text-dark col-12 row items-center">
|
||||
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm" @click="router.go(-1)"
|
||||
v-if="routeName == 'probationWorkAdd'" />
|
||||
<div v-if="routeName == 'probationWorkAdd'">
|
||||
เพิ่มแบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ
|
||||
</div>
|
||||
<div v-else class="col-12 row">
|
||||
<div v-else class="col-12 row q-gutter-md">
|
||||
<div>แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ</div>
|
||||
<q-space />
|
||||
<!-- <q-space /> -->
|
||||
<div v-if="status == false">
|
||||
<q-btn flat round color="primary" @click="edit()" icon="mdi-pencil-outline">
|
||||
<q-btn dense flat round color="primary" @click="edit()" icon="mdi-pencil-outline">
|
||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-else>
|
||||
<q-btn flat round color="red" @click="cancel()" icon="mdi-undo">
|
||||
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
|
||||
<q-tooltip>ยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn flat round color="public" @click="saveEdit(assignId)" icon="mdi-content-save-outline">
|
||||
<q-btn dense flat class="q-ml-md" round color="public" @click="saveEdit(assignId)" icon="mdi-content-save-outline">
|
||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<q-card :bordered="routeName == 'probationWorkAdd'" class="col-12 text-dark">
|
||||
<div class="row col-12 q-pa-lg">
|
||||
<div class="col-12 text-dark">
|
||||
<div class="row col-12">
|
||||
<div class="row col-12 q-gutter-lg">
|
||||
<div class="col-12 row">
|
||||
<div class="col-12 text-top0 items-center">
|
||||
|
|
@ -795,50 +799,54 @@ watch(knowledge.value, () => {
|
|||
<q-input :rules="[(val) => !!val || 'กรุณากรอกตำเเหน่ง']" hide-bottom-space :readonly="status != true"
|
||||
dense borderless :outlined="status == true" v-model="position" label="ตำแหน่ง" />
|
||||
</div>
|
||||
<div class="col-12 text-top0 items-center">
|
||||
ระยะเวลาการทดลองปฎิบัติหน้าที่ราชการ
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<q-select :rules="[(val) => !!val || 'กรุณาเลือกระยะเวลา']" hide-bottom-space :options="monthOp"
|
||||
class="col-xs-12 col-sm-6" :readonly="status != true" dense borderless option-label="label"
|
||||
option-value="value" :outlined="status == true" v-model="monthSelect" :label="`ระยะเวลากี่เดือน`" />
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<datepicker menu-class-name="modalfix" v-model="date_start" :locale="'th'" autoApply borderless
|
||||
:enableTimePicker="false" week-start="0" :readonly="status != true">
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
<template #year-overlay-value="{ value }">
|
||||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input dense borderless :readonly="status != true" :outlined="status == true"
|
||||
:rules="[(val) => !!val || 'กรุณาเลือกวันที่']" hide-bottom-space
|
||||
class="full-width datepicker q-mb-md" :model-value="date_start != null ? date2Thai(date_start) : undefined
|
||||
" :label="`${'ตั้งเเต่วันที่'}`" clearable @clear="clearDateExam">
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<datepicker menu-class-name="modalfix" v-model="date_finish" :locale="'th'" autoApply borderless
|
||||
:readonly="isDatePicker2Readonly || status != true" :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 borderless :outlined="status == true" readonly class="full-width datepicker q-mb-md"
|
||||
:model-value="date_finish != null
|
||||
? date2Thai(date_finish)
|
||||
: undefined
|
||||
" :label="`${'ถึงวันที่'}`" clearable @clear="clearDateExam2">
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
<div class="col-12 row">
|
||||
<div class="col-12 text-top0 items-center">
|
||||
ระยะเวลาการทดลองปฎิบัติหน้าที่ราชการ
|
||||
</div>
|
||||
<div class="col-12 row q-col-gutter-md">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<q-select :rules="[(val) => !!val || 'กรุณาเลือกระยะเวลา']" hide-bottom-space :options="monthOp"
|
||||
class="col-xs-12 col-sm-6" :readonly="status != true" dense borderless option-label="label"
|
||||
option-value="value" :outlined="status == true" v-model="monthSelect" :label="`ระยะเวลากี่เดือน`" />
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<datepicker menu-class-name="modalfix" v-model="date_start" :locale="'th'" autoApply borderless
|
||||
:enableTimePicker="false" week-start="0" :readonly="status != true">
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
<template #year-overlay-value="{ value }">
|
||||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input dense borderless :readonly="status != true" :outlined="status == true"
|
||||
:rules="[(val) => !!val || 'กรุณาเลือกวันที่']" hide-bottom-space
|
||||
class="full-width datepicker" :model-value="date_start != null ? date2Thai(date_start) : undefined
|
||||
" :label="`${'ตั้งเเต่วันที่'}`" clearable @clear="clearDateExam">
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<datepicker menu-class-name="modalfix" v-model="date_finish" :locale="'th'" autoApply borderless
|
||||
:readonly="isDatePicker2Readonly || status != true" :enableTimePicker="false" week-start="0">
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
<template #year-overlay-value="{ value }">
|
||||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input hide-bottom-space dense borderless :outlined="status == true" readonly class="full-width datepicker"
|
||||
:model-value="date_finish != null
|
||||
? date2Thai(date_finish)
|
||||
: undefined
|
||||
" :label="`${'ถึงวันที่'}`" clearable @clear="clearDateExam2">
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -856,7 +864,7 @@ watch(knowledge.value, () => {
|
|||
:options="filtermantor(OPcaretaker, [caretaker2])" class="col-xs-12 col-sm-6" :readonly="status != true"
|
||||
dense hide-bottom-space borderless :outlined="status == true" v-model="caretaker1"
|
||||
:label="`ผู้ดูแลคนที่ 1`" option-label="name" />
|
||||
<q-select :rules="[(val) => !!val || 'กรุณาเลือกผู้ดูเเล']"
|
||||
<q-select clearable
|
||||
:options="filtermantor(OPcaretaker, [caretaker1])" option-value="id" option-label="name"
|
||||
hide-bottom-space class="col-xs-12 col-sm-6" :readonly="status != true" dense borderless
|
||||
:outlined="status == true" v-model="caretaker2" :label="`ผู้ดูแลคนที่ 2`" />
|
||||
|
|
@ -866,7 +874,7 @@ watch(knowledge.value, () => {
|
|||
:options="filtermantor(OPcaretaker, [caretaker2])" class="col-xs-12 col-sm-6" :readonly="status != true"
|
||||
dense hide-bottom-space borderless :outlined="status == true" v-model="caretaker1"
|
||||
:label="`ผู้ดูแลคนที่ 1`" option-label="name" />
|
||||
<q-select :rules="[(val) => !!val || 'กรุณาเลือกผู้ดูเเล']"
|
||||
<q-select clearable
|
||||
:options="filtermantor(OPcaretaker, [caretaker1])" option-value="id" option-label="name"
|
||||
hide-bottom-space class="col-xs-12 col-sm-6" :readonly="status != true" dense borderless
|
||||
:outlined="status == true" v-model="caretaker2" :label="`ผู้ดูแลคนที่ 2`" />
|
||||
|
|
@ -929,10 +937,8 @@ watch(knowledge.value, () => {
|
|||
<div v-for="(item, index) in knowledgeArray" :key="index" class="col-12 row q-col-gutter-sm">
|
||||
<div class="col-11 q-my-xs">
|
||||
<q-select :option-label="(item) => `${item.title}-${item.description}`
|
||||
" option-value="id" map-options :rules="index < 3
|
||||
? [(val) => !!val || 'กรุณาเลือกความสามารถ']
|
||||
: []
|
||||
" hide-bottom-space :options="OPknowledge" class="bg-white" :readonly="status != true" dense
|
||||
" option-value="id" map-options :rules="index < 3? [(val) => !!val || 'กรุณาเลือกความสามารถ']: []"
|
||||
hide-bottom-space :options="OPknowledge" class="bg-white" :readonly="status != true" dense
|
||||
borderless :outlined="status == true" v-model="knowledge[index]" :label="`ความรู้ความสามารถในการปฏิบัติงาน ${index + 1
|
||||
}`" />
|
||||
</div>
|
||||
|
|
@ -1085,9 +1091,8 @@ watch(knowledge.value, () => {
|
|||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select :option-label="(item) =>
|
||||
`${item.title} - ${item.level_description}`
|
||||
" option-value="id" hide-bottom-space :rules="[
|
||||
(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',
|
||||
]" :options="OPcomputer" class="bg-white" :readonly="status != true" dense borderless
|
||||
" option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',]"
|
||||
:options="OPcomputer" class="bg-white" :readonly="status != true" dense borderless
|
||||
map-options :outlined="status == true" v-model="skill" label="ด้านที่ 1">
|
||||
<template v-slot:selected-item="scope">
|
||||
<div class="ellipsis-2-lines">
|
||||
|
|
@ -1099,9 +1104,8 @@ watch(knowledge.value, () => {
|
|||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select ellipsis-2-lines :option-label="(item) =>
|
||||
`${item.title} - ${item.level_description}`
|
||||
" option-value="id" map-options hide-bottom-space :rules="[
|
||||
(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',
|
||||
]" :options="OPenglish" class="bg-white" :readonly="status != true" dense borderless
|
||||
" option-value="id" map-options hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',]"
|
||||
:options="OPenglish" class="bg-white" :readonly="status != true" dense borderless
|
||||
:outlined="status == true" v-model="skill2" label="ด้านที่ 2">
|
||||
<template v-slot:selected-item="scope">
|
||||
<div class="ellipsis-2-lines">
|
||||
|
|
@ -1113,9 +1117,8 @@ watch(knowledge.value, () => {
|
|||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select :option-label="(item) =>
|
||||
`${item.title} - ${item.level_description}`
|
||||
" option-value="id" hide-bottom-space :rules="[
|
||||
(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',
|
||||
]" :options="OPinfomation" class="bg-white" :readonly="status != true" dense map-options
|
||||
" option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',]"
|
||||
:options="OPinfomation" class="bg-white" :readonly="status != true" dense map-options
|
||||
borderless :outlined="status == true" v-model="skill3" label="ด้านที่ 3">
|
||||
<template v-slot:selected-item="scope">
|
||||
<div class="ellipsis-2-lines">
|
||||
|
|
@ -1127,9 +1130,8 @@ watch(knowledge.value, () => {
|
|||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select :option-label="(item) =>
|
||||
`${item.title} - ${item.level_description}`
|
||||
" option-value="id" hide-bottom-space :rules="[
|
||||
(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',
|
||||
]" :options="OPresourse" class="bg-white" :readonly="status != true" dense map-options
|
||||
" option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',]"
|
||||
:options="OPresourse" class="bg-white" :readonly="status != true" dense map-options
|
||||
borderless :outlined="status == true" v-model="skill4" label="ด้านที่ 4">
|
||||
<template v-slot:selected-item="scope">
|
||||
<div class="ellipsis-2-lines">
|
||||
|
|
@ -1209,8 +1211,8 @@ watch(knowledge.value, () => {
|
|||
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะ']" :options="filterMain(OPmain, [main, main2, main3, main4])
|
||||
" :option-label="(item) => `${item.title} - ${item.description}`
|
||||
" option-value="id" class="bg-white" :readonly="status != true" dense map-options borderless
|
||||
" :option-label="(item) => `${item.title} - ${item.description}`"
|
||||
option-value="id" class="bg-white" :readonly="status != true" dense map-options borderless
|
||||
:outlined="status == true" v-model="main5" label="ตัวที่ 5">
|
||||
<template v-slot:selected-item="scope">
|
||||
<div class="ellipsis-2-lines">
|
||||
|
|
@ -1226,9 +1228,8 @@ watch(knowledge.value, () => {
|
|||
<div class="col-12 row q-col-gutter-sm">
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select :option-label="(item) => `${item.title} - ${item.description}`
|
||||
" option-value="id" hide-bottom-space :rules="[
|
||||
(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',
|
||||
]" :options="filterData(OPgroup, [group2, group3])" class="bg-white"
|
||||
" option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',]"
|
||||
:options="filterData(OPgroup, [group2, group3])" class="bg-white"
|
||||
:readonly="status != true" dense borderless map-options :outlined="status == true"
|
||||
v-model="group" label="ตัวที่ 1">
|
||||
<template v-slot:selected-item="scope">
|
||||
|
|
@ -1240,9 +1241,8 @@ watch(knowledge.value, () => {
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select :option-label="(item) => `${item.title} - ${item.description}`
|
||||
" option-value="id" hide-bottom-space :rules="[
|
||||
(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',
|
||||
]" :options="filterData(OPgroup, [group, group3])" class="bg-white"
|
||||
" option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',]"
|
||||
:options="filterData(OPgroup, [group, group3])" class="bg-white"
|
||||
:readonly="status != true" dense borderless map-options :outlined="status == true"
|
||||
v-model="group2" label="ตัวที่ 2">
|
||||
<template v-slot:selected-item="scope">
|
||||
|
|
@ -1254,9 +1254,8 @@ watch(knowledge.value, () => {
|
|||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select :option-label="(item) => `${item.title} - ${item.description}`
|
||||
" option-value="id" map-options hide-bottom-space :rules="[
|
||||
(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',
|
||||
]" :options="filterData(OPgroup, [group, group2])" class="bg-white"
|
||||
" option-value="id" map-options hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',]"
|
||||
:options="filterData(OPgroup, [group, group2])" class="bg-white"
|
||||
:readonly="status != true" dense borderless :outlined="status == true" v-model="group3"
|
||||
label="ตัวที่ 3">
|
||||
<template v-slot:selected-item="scope">
|
||||
|
|
@ -1598,15 +1597,15 @@ watch(knowledge.value, () => {
|
|||
</template>
|
||||
</datepicker>
|
||||
</div>
|
||||
<q-select v-if="status == true" :options="filtermantor(OPcaretaker, [caretaker1])" option-value="id"
|
||||
<q-select clearable v-if="status == true" :options="filtermantor(OPcaretaker, [caretaker1])" option-value="id"
|
||||
option-label="name" class="col-xs-12 col-sm-8" :readonly="status != true" dense borderless
|
||||
:outlined="status == true" v-model="caretaker2" label="ผู้ดูแลคนที่ 2" />
|
||||
<q-select v-else :options="filtermantor(OPcaretaker, [caretaker1])" option-value="id" option-label="name"
|
||||
class="col-xs-12 col-sm-8" :readonly="status != true" dense borderless :outlined="status == true"
|
||||
<q-select clearable v-else :options="filtermantor(OPcaretaker, [caretaker1])" option-value="id" option-label="name"
|
||||
class="col-xs-12 col-sm-8" :readonly="status != true " dense borderless :outlined="status == true"
|
||||
v-model="caretaker2" label="ผู้ดูแลคนที่ 2" />
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<datepicker menu-class-name="modalfix" v-model="date3" :locale="'th'" autoApply borderless
|
||||
:enableTimePicker="false" week-start="0" :readonly="status != true">
|
||||
:enableTimePicker="false" week-start="0" :readonly="status != true | !caretaker2">
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
|
|
@ -1614,7 +1613,9 @@ watch(knowledge.value, () => {
|
|||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input :rules="[(val) => !!val || 'กรุณาเลือกวันที่']" hide-bottom-space
|
||||
<q-input hide-bottom-space
|
||||
|
||||
:disable="!caretaker2"
|
||||
:readonly="status != true" dense s borderless :outlined="status == true"
|
||||
class="full-width datepicker" :model-value="date3 != null ? date2Thai(date3) : null"
|
||||
label="ลงวันที่">
|
||||
|
|
@ -1684,7 +1685,7 @@ watch(knowledge.value, () => {
|
|||
<div v-show="routeName == 'probationWorkAdd'" class="flex justify-end q-pa-sm q-gutter-sm">
|
||||
<q-btn unelevated label="บันทึก" color="public" @click="saveData(personalId)" />
|
||||
</div>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
</q-form>
|
||||
</template>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -262,35 +262,31 @@ const putformData = () => {
|
|||
|
||||
<template>
|
||||
<q-card class="my-card" flat bordered>
|
||||
<q-item>
|
||||
<q-item-section>
|
||||
<q-toolbar>
|
||||
<div
|
||||
class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md"
|
||||
>
|
||||
<q-btn
|
||||
icon="mdi-arrow-left"
|
||||
unelevated
|
||||
round
|
||||
dense
|
||||
flat
|
||||
color="primary"
|
||||
class="q-mr-sm"
|
||||
@click="router.go(-1)"
|
||||
/>
|
||||
การทดลองปฏิบัติหน้าที่ราชการของ {{ person.name }}
|
||||
</div>
|
||||
</q-toolbar>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-toolbar>
|
||||
<div
|
||||
class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md"
|
||||
>
|
||||
<q-btn
|
||||
icon="mdi-arrow-left"
|
||||
unelevated
|
||||
round
|
||||
dense
|
||||
flat
|
||||
color="primary"
|
||||
class="q-mr-sm"
|
||||
@click="router.go(-1)"
|
||||
/>
|
||||
การทดลองปฏิบัติหน้าที่ราชการของ {{ person.name }}
|
||||
</div>
|
||||
</q-toolbar>
|
||||
<q-separator />
|
||||
<q-card-section>
|
||||
<q-separator vertical />
|
||||
<q-card-section class="col-4">
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="toptitle text-dark col-12 row items-center">
|
||||
<div>แบบประเมินผล (ผู้บังคับบัญชา)</div>
|
||||
</div>
|
||||
<div class="row col-12 no-margin q-px-md q-pt-sm">
|
||||
<div class="toptitle text-dark col-12 row items-center">
|
||||
<div>แบบประเมินผล (ผู้บังคับบัญชา)</div>
|
||||
</div>
|
||||
|
||||
<div class="row col-12 q-gutter-lg">
|
||||
<div class="col-12 row">
|
||||
<div class="col-12 text-top0 row items-center">
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
|
|
@ -298,14 +294,14 @@ const putformData = () => {
|
|||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(assign.date_start)
|
||||
}}</span>
|
||||
ถึงวันที
|
||||
ถึงวันที่
|
||||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(assign.date_finish)
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="col-12 text-top0 row items-center">
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
<span class="text-black q-px-sm">{{ "ครั้งที่" + round }}</span>
|
||||
<span class="text-primary q-pr-sm">{{ "ครั้งที่ " + round }}</span>
|
||||
ระหว่างวันที่
|
||||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(start_date)
|
||||
|
|
@ -327,7 +323,7 @@ const putformData = () => {
|
|||
</div>
|
||||
</div>
|
||||
<div class="col-12 row no-margin">
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -367,7 +363,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -407,7 +403,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -447,7 +443,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -487,7 +483,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -528,7 +524,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -568,7 +564,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -590,7 +586,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card v-if="etc" class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card v-if="etc" class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section class="q-ml-md">
|
||||
|
|
@ -1038,8 +1034,8 @@ const putformData = () => {
|
|||
</div>
|
||||
|
||||
<!-- Footer -->
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="col-12 row">
|
||||
<div class="row col-12 q-gutter-lg no-margin justify-center">
|
||||
<div class="col-xs-12 col-sm-11 row">
|
||||
<div class="col-12 text-top2 row items-center">
|
||||
ผู้บังคับบัญชา
|
||||
</div>
|
||||
|
|
@ -1099,8 +1095,12 @@ const putformData = () => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<q-separator size="3px" color="grey-2" />
|
||||
</div>
|
||||
<!-- <Footer /> -->
|
||||
<q-toolbar class="text-primary">
|
||||
<div class="row col-12">
|
||||
<q-space />
|
||||
<q-btn
|
||||
label="บันทึก"
|
||||
|
|
@ -1108,9 +1108,9 @@ const putformData = () => {
|
|||
@click="savaForm"
|
||||
v-if="status"
|
||||
/>
|
||||
</q-toolbar>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</template>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -358,26 +358,21 @@ const putformData = () => {
|
|||
|
||||
<template>
|
||||
<q-card class="my-card" flat bordered>
|
||||
<q-item>
|
||||
<q-item-section>
|
||||
<q-toolbar>
|
||||
<div class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md">
|
||||
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm"
|
||||
@click="router.go(-1)" />
|
||||
การทดลองปฏิบัติหน้าที่ราชการของ {{ person.name }}
|
||||
</div>
|
||||
</q-toolbar>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
<q-toolbar>
|
||||
<div class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md">
|
||||
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm"
|
||||
@click="router.go(-1)" />
|
||||
การทดลองปฏิบัติหน้าที่ราชการของ {{ person.name }}
|
||||
</div>
|
||||
</q-toolbar>
|
||||
<q-separator />
|
||||
<q-card-section>
|
||||
<q-separator vertical />
|
||||
<q-card-section class="col-4">
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="toptitle text-dark col-12 row items-center">
|
||||
<div>แบบประเมินผล (คณะกรรมการ)</div>
|
||||
</div>
|
||||
<q-card-section >
|
||||
<div class="row col-12 no-margin q-px-md q-pt-sm">
|
||||
<div class="toptitle text-dark col-12 row items-center">
|
||||
<div>แบบประเมินผล (คณะกรรมการ)</div>
|
||||
</div>
|
||||
|
||||
<div class="row col-12 q-gutter-lg">
|
||||
<div class="col-12 row">
|
||||
<div class="col-12 text-top0 row items-center">
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
|
|
@ -385,14 +380,14 @@ const putformData = () => {
|
|||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(assign.date_start)
|
||||
}}</span>
|
||||
ถึงวันที
|
||||
ถึงวันที่
|
||||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(assign.date_finish)
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="col-12 text-top0 row items-center">
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
<span class="text-black q-px-sm">{{ "ครั้งที่" + round }}</span>
|
||||
<span class="text-primary q-pr-sm">{{ "ครั้งที่ " + round }}</span>
|
||||
ระหว่างวันที่
|
||||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(start_date)
|
||||
|
|
@ -414,7 +409,7 @@ const putformData = () => {
|
|||
</div>
|
||||
</div>
|
||||
<div class="col-12 row no-margin">
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -446,7 +441,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -479,7 +474,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -511,7 +506,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -527,7 +522,7 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card v-if="etc" class="text-top0 col-12 q-pa-sm q-mt-sm q-pl-lg">
|
||||
<q-card v-if="etc" class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section class="q-ml-md">
|
||||
|
|
@ -562,24 +557,13 @@ const putformData = () => {
|
|||
</q-item>
|
||||
</q-list>
|
||||
</q-card>
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
<q-item-label> คะแนนรวมผลสัมฤทธิ์ของการทดลองฯ</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-field dense>
|
||||
<template v-slot:control>
|
||||
<div class="self-center full-width no-outline">
|
||||
{{ score1 }}
|
||||
</div>
|
||||
</template>
|
||||
</q-field>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<div class="text-top0 col-xs-12 col-sm-11 q-px-lg">
|
||||
<div class="row col-12 justify-between q-pa-sm ">
|
||||
<div class="text-black">คะแนนรวมผลสัมฤทธิ์ของการทดลองฯ</div>
|
||||
<div class="text-weight-bold text-black">{{ score1 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Part 2 -->
|
||||
|
|
@ -741,31 +725,16 @@ const putformData = () => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
</div>
|
||||
<div class="col-12 row">
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
<q-item-label>
|
||||
คะแนนรวมพฤติกรรมการปฎิบัติราชการ</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
<q-field dense>
|
||||
<template v-slot:control>
|
||||
<div class="self-center full-width no-outline">
|
||||
{{ score2 }}
|
||||
</div>
|
||||
</template>
|
||||
</q-field>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-card>
|
||||
<div class="text-top0 col-xs-12 col-sm-11 q-pt-sm q-px-md q-my-none">
|
||||
<div class="row col-12 justify-between q-py-sm ">
|
||||
<div class="text-black">คะแนนรวมพฤติกรรมการปฎิบัติราชการ</div>
|
||||
<div class="text-weight-bold text-black">{{ score2 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ผลการประเมิน -->
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="row col-12 q-pt-lg q-px-lg no-margin">
|
||||
<div class="col-12 row justify-center">
|
||||
<div class="col-12 text-top0 items-center">
|
||||
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar>
|
||||
|
|
@ -797,10 +766,10 @@ const putformData = () => {
|
|||
</q-item-section>
|
||||
|
||||
<q-item-section side v-if="percent_score1 > 60">
|
||||
ผ่าน(สูงกว่าร้อยละ 60)
|
||||
ผ่าน (สูงกว่าร้อยละ 60)
|
||||
</q-item-section>
|
||||
<q-item-section side v-else>
|
||||
ไม่ผ่าน(ต่ำกว่าร้อยละ 60)
|
||||
ไม่ผ่าน (ต่ำกว่าร้อยละ 60)
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
|
|
@ -830,10 +799,10 @@ const putformData = () => {
|
|||
</q-item-section>
|
||||
|
||||
<q-item-section side v-if="percent_score2 > 60">
|
||||
ผ่าน(สูงกว่าร้อยละ 60)
|
||||
ผ่าน (สูงกว่าร้อยละ 60)
|
||||
</q-item-section>
|
||||
<q-item-section side v-else>
|
||||
ไม่ผ่าน(ต่ำกว่าร้อยละ 60)
|
||||
ไม่ผ่าน (ต่ำกว่าร้อยละ 60)
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
|
|
@ -842,7 +811,7 @@ const putformData = () => {
|
|||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
<q-item-label> ผลคะแนนรวม</q-item-label>
|
||||
<q-item-label class="text-black"> ผลคะแนนรวม</q-item-label>
|
||||
</q-item-section>
|
||||
<q-item-section>
|
||||
<q-item-label style="color: gray">
|
||||
|
|
@ -877,53 +846,54 @@ const putformData = () => {
|
|||
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">4</q-avatar>
|
||||
การพัฒนาผู้ทดลองปฏิบัติบัติหน้าที่ราชการ
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-11 col-md-11 q-pa-sm">
|
||||
<div class="row q-gutter-md">
|
||||
<div class="col-8"></div>
|
||||
<div class="col">คะแนน</div>
|
||||
<div class="col">ร้อยละ</div>
|
||||
</div>
|
||||
</div>
|
||||
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-11 q-pa-sm bg-grey-1">
|
||||
<div class="row q-gutter-md align-center">
|
||||
<div class="col-xs-12 col-sm-11 col-md-11 q-my-sm">
|
||||
<div class="row q-gutter-md q-pl-md">
|
||||
<div class="col-8 text-weight-medium">หัวข้อ</div>
|
||||
<div class="col">คะแนน</div>
|
||||
<div class="col">ร้อยละ</div>
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md align-center q-pl-md">
|
||||
<div class="col-8">1. การปฐมนิเทศ</div>
|
||||
<div class="col">
|
||||
<q-input :disable="!status" dense type="number" v-model="orientation" />
|
||||
<q-input outlined :disable="!status" dense type="number" v-model="orientation" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input :disable="!status" dense type="number" v-model="orientation_percent" />
|
||||
<q-input outlined :disable="!status" dense type="number" v-model="orientation_percent" />
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md align-center">
|
||||
<div class="row q-gutter-md align-center q-pl-md">
|
||||
<div class="col-8">2. การเรียนรู้ด้วยตนเอง</div>
|
||||
<div class="col">
|
||||
<q-input :disable="!status" dense type="number" v-model="self_learning" />
|
||||
<q-input outlined :disable="!status" dense type="number" v-model="self_learning" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input :disable="!status" dense type="number" v-model="self_learning_percent" />
|
||||
<q-input outlined :disable="!status" dense type="number" v-model="self_learning_percent" />
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md align-center">
|
||||
<div class="row q-gutter-md align-center q-pl-md">
|
||||
<div class="col-8">3. การอบรมสัมนาร่วมกัน</div>
|
||||
<div class="col">
|
||||
<q-input :disable="!status" dense type="number" v-model="training_seminar" />
|
||||
<q-input outlined :disable="!status" dense type="number" v-model="training_seminar" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input :disable="!status" dense type="number" v-model="training_seminar_percent" />
|
||||
<q-input outlined :disable="!status" dense type="number" v-model="training_seminar_percent" />
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md align-center">
|
||||
<div class="row q-gutter-md align-center q-pl-md">
|
||||
<div class="col-8">
|
||||
4. การอบรมอื่น ๆ ตามที่หน่วยงานกำหนด (ถ้ามี)
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input :disable="!status" dense type="number" v-model="other_training" />
|
||||
<q-input outlined :disable="!status" dense type="number" v-model="other_training" />
|
||||
</div>
|
||||
<div class="col">
|
||||
<q-input :disable="!status" dense type="number" v-model="other_training_percent" />
|
||||
<q-input outlined :disable="!status" dense type="number" v-model="other_training_percent" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- <q-list dense>
|
||||
|
|
@ -1025,23 +995,20 @@ const putformData = () => {
|
|||
</q-item-section>
|
||||
</q-item>
|
||||
</q-list> -->
|
||||
</q-card>
|
||||
<q-card class="text-top0 col-12">
|
||||
<div class="col-xs-12 col-sm-11 col-md-11 q-pa-sm">
|
||||
<div class="row q-gutter-md">
|
||||
<div class="col-8">
|
||||
<q-item-label> ผลคะแนนรวม</q-item-label>
|
||||
</div>
|
||||
<div class="col">{{ score4 }}</div>
|
||||
<div class="col">{{ score5 }}</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="col-xs-12 col-sm-11 col-md-11 q-my-sm">
|
||||
<div class="row q-gutter-md q-pl-sm">
|
||||
<div class="col-8 text-weight-medium"><q-item-label> ผลคะแนนรวม</q-item-label></div>
|
||||
<div class="col q-pl-md">{{ score4 }}</div>
|
||||
<div class="col q-pl-md">{{ score5 }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="col-12 row justify-center">
|
||||
<div class="row col-12 q-gutter-lg no-margin justify-center">
|
||||
<div class=" col-xs-12 col-sm-11 row justify-center">
|
||||
<div class="col-12 text-top0 items-center">
|
||||
<!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> -->
|
||||
สรุปผลการพัฒนา
|
||||
|
|
@ -1054,8 +1021,8 @@ const putformData = () => {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="col-12 row justify-center">
|
||||
<div class="row col-12 q-gutter-lg no-margin justify-center">
|
||||
<div class=" col-xs-12 col-sm-11 row justify-center">
|
||||
<div class="col-12 text-top0 items-center">
|
||||
<!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> -->
|
||||
สรุปผล การประเมินผลทดลองปฎิบัติหน้าที่ราชการ
|
||||
|
|
@ -1070,13 +1037,13 @@ const putformData = () => {
|
|||
|
||||
<!-- Footer -->
|
||||
<!-- <Footer /> -->
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="col-12 row">
|
||||
<div class="row col-12 q-gutter-lg no-margin justify-center">
|
||||
<div class="col-xs-12 col-sm-11 ">
|
||||
<div class="col-12 text-top2 row items-center">
|
||||
ผู้บังคับบัญชาผู้มอบหมายงาน
|
||||
</div>
|
||||
<div class="col-12 row q-col-gutter-md">
|
||||
<q-select class="col-xs-12 col-sm-8" dense v-model="commander.name" outlined label="ผู้บังคับบัญชา"
|
||||
<q-select hide-bottom-space class="col-xs-12 col-sm-8" dense v-model="commander.name" outlined label="ผู้บังคับบัญชา"
|
||||
disable />
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<datepicker menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'" autoApply borderless
|
||||
|
|
@ -1088,7 +1055,7 @@ const putformData = () => {
|
|||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input outlined :disable="!status" dense class="full-width datepicker col-3" :model-value="dateAutherise != null
|
||||
<q-input hide-bottom-space outlined :disable="!status" dense class="full-width datepicker col-3" :model-value="dateAutherise != null
|
||||
? date2Thai(dateAutherise)
|
||||
: null
|
||||
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
|
||||
|
|
@ -1100,9 +1067,7 @@ const putformData = () => {
|
|||
</template>
|
||||
</datepicker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 row q-col-gutter-md">
|
||||
<q-select class="col-xs-12 col-sm-8" dense v-model="mentors[0].name" outlined label="ผู้บังคับบัญชา"
|
||||
<q-select hide-bottom-space class="col-xs-12 col-sm-8" dense v-model="mentors[0].name" outlined label="ผู้บังคับบัญชา"
|
||||
disable />
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<datepicker :readonly="!status" menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'"
|
||||
|
|
@ -1114,7 +1079,7 @@ const putformData = () => {
|
|||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input :disable="!status" outlined dense class="full-width datepicker col-3" :model-value="dateAutherise != null
|
||||
<q-input hide-bottom-space :disable="!status" outlined dense class="full-width datepicker col-3" :model-value="dateAutherise != null
|
||||
? date2Thai(dateAutherise)
|
||||
: null
|
||||
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
|
||||
|
|
@ -1126,10 +1091,7 @@ const putformData = () => {
|
|||
</template>
|
||||
</datepicker>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 row q-col-gutter-md">
|
||||
<q-select class="col-xs-12 col-sm-8" dense v-model="mentors[1].name" outlined label="ผู้บังคับบัญชา"
|
||||
disable />
|
||||
<q-select hide-bottom-space class="col-xs-12 col-sm-8" dense v-model="mentors[1].name" outlined label="ผู้บังคับบัญชา" disable />
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<datepicker :readonly="!status" menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'"
|
||||
autoApply borderless :enableTimePicker="false" week-start="0">
|
||||
|
|
@ -1140,7 +1102,7 @@ const putformData = () => {
|
|||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input :disable="!status" outlined dense class="full-width datepicker col-3" :model-value="dateAutherise != null
|
||||
<q-input hide-bottom-space :disable="!status" outlined dense class="full-width datepicker col-3" :model-value="dateAutherise != null
|
||||
? date2Thai(dateAutherise)
|
||||
: null
|
||||
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
|
||||
|
|
@ -1156,8 +1118,8 @@ const putformData = () => {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="col-12 row">
|
||||
<div class="row col-12 q-gutter-lg no-margin justify-center">
|
||||
<div class="col-xs-12 col-sm-11 ">
|
||||
<div class="col-12 text-top2 row items-center">คณะกรรมการ</div>
|
||||
<div class="col-12 row q-col-gutter-md">
|
||||
<q-select class="col-xs-12 col-sm-8" dense v-model="chairman.name" outlined label="คณะกรรมการ" disable />
|
||||
|
|
@ -1187,12 +1149,21 @@ const putformData = () => {
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<q-toolbar class="text-primary">
|
||||
<div class="col-12">
|
||||
<q-separator size="3px" color="grey-2" />
|
||||
</div>
|
||||
<!-- <Footer /> -->
|
||||
<div class="row col-12">
|
||||
<q-space />
|
||||
<q-btn label="บันทึก" color="secondary" @click="savaForm" v-if="status" />
|
||||
</q-toolbar>
|
||||
<q-btn
|
||||
label="บันทึก"
|
||||
color="secondary"
|
||||
@click="savaForm"
|
||||
v-if="status"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -152,13 +152,14 @@ const postData = async () => {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="row col-12 q-ma-xs">
|
||||
<div class="toptitle text-dark col-12 row items-center">
|
||||
<div class="row col-12">
|
||||
<div class="toptitle text-dark col-12 row items-center q-gutter-md">
|
||||
<div>แบบรายงานการประเมินฯ</div>
|
||||
<q-space />
|
||||
<!-- <q-space /> -->
|
||||
<div v-if="action == 'edit'">
|
||||
<div v-if="status == false">
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
round
|
||||
color="primary"
|
||||
|
|
@ -169,12 +170,14 @@ const postData = async () => {
|
|||
</q-btn>
|
||||
</div>
|
||||
<div v-else>
|
||||
<q-btn flat round color="red" @click="cancel()" icon="mdi-undo">
|
||||
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
|
||||
<q-tooltip>ยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
round
|
||||
class="q-ml-sm"
|
||||
color="public"
|
||||
@click="saveEdit(assignId)"
|
||||
icon="mdi-content-save-outline"
|
||||
|
|
@ -295,11 +298,7 @@ const postData = async () => {
|
|||
v-model="develop"
|
||||
label="การพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 row q-mt-lg">
|
||||
<div class="col-12 row q-col-gutter-md">
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<q-select
|
||||
:rules="[
|
||||
|
|
@ -344,7 +343,7 @@ const postData = async () => {
|
|||
<q-separator size="3px" color="grey-2" />
|
||||
</div>
|
||||
|
||||
<div class="row col-12 q-gutter-lg q-mt-sm">
|
||||
<div class="row col-12 q-gutter-lg q-mt-none">
|
||||
<div class="col-12 row">
|
||||
<div class="col-12 text-top2 row items-center">
|
||||
ประธานคณะกรรมการประเมินผลการปฏิบัติหน้าที่ราชการ
|
||||
|
|
@ -356,7 +355,7 @@ const postData = async () => {
|
|||
v-model="director_id"
|
||||
outlined
|
||||
:options="commander"
|
||||
label=""
|
||||
label="ชื่อ-นามสกุล"
|
||||
option-label="name"
|
||||
disable
|
||||
/>
|
||||
|
|
@ -415,9 +414,9 @@ const postData = async () => {
|
|||
dense
|
||||
v-model="director_id2"
|
||||
outlined
|
||||
label="ชื่อ-นามสกุล"
|
||||
:disable="!status"
|
||||
:options="optionDirector"
|
||||
label=""
|
||||
option-label="name"
|
||||
/>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
|
|
@ -477,9 +476,9 @@ const postData = async () => {
|
|||
dense
|
||||
v-model="director_id3"
|
||||
outlined
|
||||
label="ชื่อ-นามสกุล"
|
||||
:options="optionDirector"
|
||||
:disable="!status"
|
||||
label=""
|
||||
option-label="name"
|
||||
/>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
|
|
@ -530,13 +529,12 @@ const postData = async () => {
|
|||
</div>
|
||||
</q-form>
|
||||
|
||||
<q-toolbar class="text-primary">
|
||||
<q-toolbar class="text-primary" v-if="action == 'add'">
|
||||
<q-space />
|
||||
<q-btn
|
||||
label="บันทึก"
|
||||
color="secondary"
|
||||
@click="savaForm"
|
||||
v-if="action == 'add'"
|
||||
/>
|
||||
</q-toolbar>
|
||||
</div>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -319,25 +319,17 @@ const saveformdata = async (data: any) => {
|
|||
|
||||
<template>
|
||||
<q-card class="my-card" flat bordered>
|
||||
<q-item>
|
||||
<q-item-section>
|
||||
<q-toolbar>
|
||||
<div class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md">
|
||||
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm"
|
||||
@click="router.go(-1)" />
|
||||
การทดลองปฏิบัติหน้าที่ราชการของ {{ person.name }}
|
||||
</div>
|
||||
</q-toolbar>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
<q-toolbar>
|
||||
<div class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md">
|
||||
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm"
|
||||
@click="router.go(-1)" />
|
||||
การทดลองปฏิบัติหน้าที่ราชการของ {{ person.name }}
|
||||
</div>
|
||||
</q-toolbar>
|
||||
<q-separator />
|
||||
|
||||
<q-card-section>
|
||||
<q-separator vertical />
|
||||
|
||||
<q-card-section class="col-4">
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="row col-12 no-margin q-px-md q-pt-md">
|
||||
<div class="row col-12 q-gutter-lg">
|
||||
<div class="col-12 row">
|
||||
<div class="col-12 text-top0 row items-center">
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
|
|
@ -345,14 +337,14 @@ const saveformdata = async (data: any) => {
|
|||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(assign.date_start)
|
||||
}}</span>
|
||||
ถึงวันที
|
||||
ถึงวันที่
|
||||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(assign.date_finish)
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="col-12 text-top0 row items-center">
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
<span class="text-black q-px-sm">{{ "ครั้งที่" + round }}</span>
|
||||
<span class="text-primary q-pr-sm">{{ "ครั้งที่ " + round }}</span>
|
||||
ระหว่างวันที่
|
||||
<span class="text-black q-px-sm">{{
|
||||
date2Thai(start_date)
|
||||
|
|
@ -411,10 +403,7 @@ const saveformdata = async (data: any) => {
|
|||
</q-card>
|
||||
</div>
|
||||
<div class="col-12 row">
|
||||
<div class="col-12 text-top0 row items-center q-pl-lg">
|
||||
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
|
||||
1.2 ความสำเร็จของงานที่ได้รับมอบหมาย
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
|
||||
ผลผลิตของงานที่เกิดขึ้นจริง
|
||||
</div>
|
||||
|
|
@ -423,8 +412,7 @@ const saveformdata = async (data: any) => {
|
|||
<q-item dense tag="label" v-ripple v-if="i < checkArray">
|
||||
<q-item-section>
|
||||
<!-- <q-item-label>{{ list.label }}</q-item-label> -->
|
||||
<q-input outlined dense v-model="evaluate_ouptut[i].text"
|
||||
class="col-xs-12 col-sm-11 col-md-10 offset-md-1" lazy-rules type="textarea"
|
||||
<q-input outlined dense v-model="evaluate_ouptut[i].text" lazy-rules autogrow
|
||||
label="ผลผลิตของงานที่เกิดขึ้นจริง" hide-bottom-space :row="1" :rules="evaluate_ouptutRules" />
|
||||
</q-item-section>
|
||||
<q-item-section side>
|
||||
|
|
@ -448,13 +436,13 @@ const saveformdata = async (data: any) => {
|
|||
</q-rating>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
<q-separator class="q-my-xs" v-if="i + 1 < list1_2.length" />
|
||||
<!-- <q-separator class="q-my-xs" v-if="i + 1 < list1_2.length" /> -->
|
||||
</q-list>
|
||||
</q-card>
|
||||
</div>
|
||||
|
||||
<div class="col-12 row">
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-sm q-pl-sm">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -486,7 +474,7 @@ const saveformdata = async (data: any) => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-sm q-pl-sm">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -518,7 +506,7 @@ const saveformdata = async (data: any) => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-sm q-pl-sm">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -550,7 +538,7 @@ const saveformdata = async (data: any) => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-sm q-pl-sm">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -582,7 +570,7 @@ const saveformdata = async (data: any) => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-sm q-pl-sm">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -615,7 +603,7 @@ const saveformdata = async (data: any) => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-sm q-pl-sm">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -647,7 +635,7 @@ const saveformdata = async (data: any) => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
|
||||
<q-card class="text-top0 col-xs-12 col-sm-11 q-pa-sm q-pl-sm">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section>
|
||||
|
|
@ -663,7 +651,7 @@ const saveformdata = async (data: any) => {
|
|||
</q-list>
|
||||
</q-card>
|
||||
|
||||
<q-card v-if="etc" class="text-top0 col-12 q-pa-sm q-mt-sm q-pl-lg">
|
||||
<q-card v-if="etc" class="text-top0 col-xs-12 col-sm-11 q-pa-sm q-mt-sm q-pl-lg">
|
||||
<q-list dense>
|
||||
<q-item dense tag="label" v-ripple>
|
||||
<q-item-section class="q-ml-md">
|
||||
|
|
@ -974,8 +962,8 @@ const saveformdata = async (data: any) => {
|
|||
|
||||
<!-- Footer -->
|
||||
<!-- <Footer /> -->
|
||||
<div class="row col-12 q-gutter-lg no-margin">
|
||||
<div class="col-12 row">
|
||||
<div class="row col-12 q-gutter-lg no-margin justify-center">
|
||||
<div class="col-xs-12 col-sm-11 ">
|
||||
<div class="col-12 text-top2 row items-center">
|
||||
ผู้บังคับบัญชา/ผู้มอบหมายงาน
|
||||
</div>
|
||||
|
|
@ -1007,12 +995,20 @@ const saveformdata = async (data: any) => {
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<q-toolbar class="text-primary">
|
||||
<div class="col-12">
|
||||
<q-separator size="3px" color="grey-2" />
|
||||
</div>
|
||||
<!-- <Footer /> -->
|
||||
<div class="row col-12">
|
||||
<q-space />
|
||||
<q-btn label="บันทึก" color="secondary" @click="savaForm" />
|
||||
</q-toolbar>
|
||||
<q-btn
|
||||
label="บันทึก"
|
||||
color="secondary"
|
||||
@click="savaForm"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ const nextPage = () => {
|
|||
<template>
|
||||
<q-header class="bg-grey-1">
|
||||
<div class="bg-grey-1">
|
||||
|{{ tabHead }}|
|
||||
<!-- |{{ tabHead }}| -->
|
||||
<div class="col-12 row q-gutter-x-md items-center">
|
||||
<q-tabs
|
||||
dense
|
||||
|
|
@ -44,33 +44,36 @@ const nextPage = () => {
|
|||
indicator-color="grey-1"
|
||||
class="text-grey-7"
|
||||
>
|
||||
<q-tab v-for="i in loop" :name="`save${i}`" :label="`ครั้งที่ ${i}`">
|
||||
<q-btn
|
||||
size="12px"
|
||||
flat
|
||||
dense
|
||||
icon="mdi-download"
|
||||
:disable="tabHead !== 'save' + i"
|
||||
:color="tabHead !== 'save' + i ? 'grey' : 'add'"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
||||
<q-menu>
|
||||
<q-list style="min-width: 150px">
|
||||
<q-item clickable v-close-popup>
|
||||
<q-item-section avatar
|
||||
><q-icon color="red" name="mdi-file-pdf"
|
||||
/></q-item-section>
|
||||
<q-item-section>ไฟล์ .PDF</q-item-section>
|
||||
</q-item>
|
||||
<q-item clickable v-close-popup>
|
||||
<q-item-section avatar
|
||||
><q-icon color="blue" name="mdi-file-word"
|
||||
/></q-item-section>
|
||||
<q-item-section>ไฟล์ .docx</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-menu>
|
||||
</q-btn>
|
||||
<q-tab v-for="(i,j) in loop" :name="`save${i}`" :key="j" >
|
||||
<div class="row col-12 items-center">
|
||||
<div class="q-mr-sm">ครั้งที่{{i}}</div>
|
||||
<q-btn
|
||||
size="12px"
|
||||
flat
|
||||
dense
|
||||
icon="mdi-download"
|
||||
:disable="tabHead !== 'save' + i"
|
||||
:color="tabHead !== 'save' + i ? 'grey' : 'add'"
|
||||
>
|
||||
<q-tooltip>ดาวน์โหลด</q-tooltip>
|
||||
<q-menu>
|
||||
<q-list style="min-width: 150px">
|
||||
<q-item clickable v-close-popup>
|
||||
<q-item-section avatar
|
||||
><q-icon color="red" name="mdi-file-pdf"
|
||||
/></q-item-section>
|
||||
<q-item-section>ไฟล์ .PDF</q-item-section>
|
||||
</q-item>
|
||||
<q-item clickable v-close-popup>
|
||||
<q-item-section avatar
|
||||
><q-icon color="blue" name="mdi-file-word"
|
||||
/></q-item-section>
|
||||
<q-item-section>ไฟล์ .docx</q-item-section>
|
||||
</q-item>
|
||||
</q-list>
|
||||
</q-menu>
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-tab>
|
||||
</q-tabs>
|
||||
<div>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ const FormReport = defineAsyncComponent(
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="col-12 q-ma-lg">
|
||||
<FormReport />
|
||||
<div class="col-12 q-ma-sm">
|
||||
<FormReport />
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -46,14 +46,14 @@ const personalId = ref<string>(route.params.personalId.toString());
|
|||
</q-header>
|
||||
<q-drawer v-model="drawer" show-if-above :width="150" :breakpoint="500" class="bg-grey-1" bordered>
|
||||
<q-scroll-area class="fit" :horizontal-thumb-style="{ opacity: 0 }">
|
||||
<q-list class="text-grey-7">
|
||||
<q-list class="text-grey-9">
|
||||
<q-item active-class="text-primary bg-teal-1 text-weight-medium" clickable class="q-py-sm" dense v-ripple
|
||||
:active="activeTab == 'tab1'" @click="activeTab = 'tab1'">
|
||||
<!-- <q-item-section avatar style="min-width: 40px">
|
||||
<q-icon size="18px" name="mdi-file" />
|
||||
</q-item-section> -->
|
||||
|
||||
<q-item-section> แบบมอบหมายงานฯ</q-item-section>
|
||||
<q-item-section>แบบมอบหมายงาน ฯ</q-item-section>
|
||||
</q-item>
|
||||
|
||||
<q-item dense class="q-py-sm" active-class="text-primary bg-teal-1 text-weight-medium" clickable v-ripple
|
||||
|
|
@ -74,7 +74,7 @@ const personalId = ref<string>(route.params.personalId.toString());
|
|||
</q-item-section> -->
|
||||
|
||||
<q-item-section>
|
||||
แบบประเมินผล<br />(ผู้บังคับบัญชา)
|
||||
แบบประเมินผล<br /><div class="text-caption text-grey-7">(ผู้บังคับบัญชา)</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
|
|
@ -85,7 +85,7 @@ const personalId = ref<string>(route.params.personalId.toString());
|
|||
</q-item-section> -->
|
||||
|
||||
<q-item-section>
|
||||
แบบประเมินผล<br />(คณะกรรมการ)
|
||||
แบบประเมินผล<br /><div class="text-caption text-grey-7">(คณะกรรมการ)</div>
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
|
|
@ -102,7 +102,7 @@ const personalId = ref<string>(route.params.personalId.toString());
|
|||
<q-item active-class="text-primary bg-teal-1 text-weight-medium" clickable class="q-py-sm" dense v-ripple
|
||||
:active="activeTab == 'tab6'" @click="activeTab = 'tab6'">
|
||||
<q-item-section>
|
||||
ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ
|
||||
ผลการประเมินการ ฯ
|
||||
</q-item-section>
|
||||
</q-item>
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,35 @@ const {
|
|||
} = mixin;
|
||||
const route = useRoute();
|
||||
|
||||
const assignId = ref<string>(route.params.form.toString());
|
||||
const action = ref<string>("edit");
|
||||
const status = ref<boolean>(false);
|
||||
|
||||
const score1 = ref<number>(0);
|
||||
const score2 = ref<number>(0);
|
||||
const score3 = ref<number>(0);
|
||||
const Allscore = ref<number>(0);
|
||||
|
||||
const result = ref<any>();
|
||||
const result_option = ref<any>([
|
||||
{ name: "ผ่าน", value: 1 },
|
||||
{ name: "ไม่ผ่าน", value: 0 },
|
||||
]);
|
||||
|
||||
const note = ref<string>("");
|
||||
const date = ref<Date>(new Date());
|
||||
|
||||
const saveEdit = (id: string) => {
|
||||
dialogConfirm($q, () => console.log("save"));
|
||||
};
|
||||
const edit = () => {
|
||||
status.value = true;
|
||||
// console.log(status.value);
|
||||
};
|
||||
const cancel = () => {
|
||||
status.value = false;
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
// fecthResult(assignId.value);
|
||||
});
|
||||
|
|
@ -50,12 +79,189 @@ onMounted(() => {
|
|||
|
||||
<template>
|
||||
<div class="row col-12 q-ma-xs">
|
||||
<div class="toptitle text-dark col-12 row items-center">
|
||||
<div> ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ </div>
|
||||
<q-space />
|
||||
<div class="toptitle text-dark col-12 row items-center q-gutter-md">
|
||||
<div>ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ</div>
|
||||
<!-- <q-space /> -->
|
||||
<div v-if="action == 'edit'">
|
||||
<div v-if="status == false">
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
round
|
||||
color="primary"
|
||||
@click="edit()"
|
||||
icon="mdi-pencil-outline"
|
||||
>
|
||||
<q-tooltip>แก้ไขข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
<div v-else>
|
||||
<q-btn dense flat @click="cancel()" round color="red" icon="mdi-undo">
|
||||
<q-tooltip>ยกเลิก</q-tooltip>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
dense
|
||||
flat
|
||||
round
|
||||
class="q-ml-sm"
|
||||
color="public"
|
||||
@click="saveEdit(assignId)"
|
||||
icon="mdi-content-save-outline"
|
||||
>
|
||||
<q-tooltip>บันทึกข้อมูล</q-tooltip>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row col-12">
|
||||
<div class="row col-12 q-gutter-lg">
|
||||
<q-card
|
||||
flat
|
||||
bordered
|
||||
class="col-xs-12 col-sm-11 col-md-11 q-pa-md bg-grey-1"
|
||||
>
|
||||
<div class="col-xs-12 col-sm-11 col-md-11 q-mb-sm">
|
||||
<div class="row q-gutter-md q-pl-md">
|
||||
<div class="col-8 text-weight-medium">หัวข้อ</div>
|
||||
<div class="col-xs-4 col-sm-3 col-md-2">คะแนน</div>
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md items-center q-pl-md">
|
||||
<div class="col-8">1. คะแนนผลสัมฤทธิ์การทดลองปฏิบัติหน้าที่ราชการ</div>
|
||||
<div class="col-xs-4 col-sm-3 col-md-2">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
v-model="score1"
|
||||
:disable="!status"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md items-center q-pl-md">
|
||||
<div class="col-8">2. คะแนนพฤติกรรมการปฏิบัติราชการ</div>
|
||||
<div class="col-xs-4 col-sm-3 col-md-2">
|
||||
<q-input
|
||||
dense
|
||||
outlined
|
||||
type="number"
|
||||
v-model="score2"
|
||||
:disable="!status"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="row q-gutter-md items-center q-pl-md">
|
||||
<div class="col-8">3. คะแนนผลการพัฒนาข้าราชการที่อยู่ระหว่างการทดลองปฏิบัติหน้าที่ราชการ</div>
|
||||
<div class="col-xs-4 col-sm-3 col-md-2">
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
type="number"
|
||||
v-model="score3"
|
||||
:disable="!status"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<q-separator class="q-my-xs" />
|
||||
<div class="col-xs-12 col-sm-11 col-md-11 q-mt-lg">
|
||||
<div class="row q-gutter-md q-pl-sm">
|
||||
<div class="col-8 text-weight-medium"><q-item-label> ผลคะแนนรวมการประเมินการทดลอง</q-item-label></div>
|
||||
<div class="col q-pl-md">{{ Allscore }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-card>
|
||||
|
||||
<div class=" col-xs-12 col-sm-11 ">
|
||||
<div class="col-12 text-top0 row items-center">
|
||||
เหตุผลอื่น ๆ ในการพิจารณา
|
||||
</div>
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
class="col-12"
|
||||
v-model="note"
|
||||
lazy-rules
|
||||
autogrow
|
||||
hide-bottom-space
|
||||
label="กรอกเหตุผลอื่น ๆ ในการพิจารณา"
|
||||
:row="5"
|
||||
:disable="!status"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class=" col-xs-12 col-sm-11">
|
||||
<div class="col-12 row q-col-gutter-md">
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<div class="col-12 text-top0 items-center">
|
||||
สรุปผลการทดลองปฏิบัติหน้าที่ราชการ
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<q-select
|
||||
class="col-12"
|
||||
dense
|
||||
v-model="result"
|
||||
outlined
|
||||
:options="result_option"
|
||||
option-label="name"
|
||||
option-value="value"
|
||||
label="เลือกสรุปผลการทดลองปฏิบัติหน้าที่ราชการ"
|
||||
map-options
|
||||
emit-value
|
||||
:disable="!status"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<div class="col-12 text-top0 items-center">
|
||||
วัน เดือน ปี ที่ประเมิน
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<datepicker
|
||||
menu-class-name="modalfix"
|
||||
v-model="date"
|
||||
:locale="'th'"
|
||||
autoApply
|
||||
:readonly="!status"
|
||||
borderless
|
||||
:enableTimePicker="false"
|
||||
week-start="0"
|
||||
>
|
||||
<template #year="{ year }">
|
||||
{{ year + 543 }}
|
||||
</template>
|
||||
<template #year-overlay-value="{ value }">
|
||||
{{ parseInt(value + 543) }}
|
||||
</template>
|
||||
<template #trigger>
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
:disable="!status"
|
||||
class="full-width datepicker"
|
||||
:model-value="
|
||||
date != null ? date2Thai(date) : null
|
||||
"
|
||||
:label="`${'วัน เดือน ปี ที่ประเมิน'}`"
|
||||
:rules="[(val) => !!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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,10 @@ import http from "@/plugins/http";
|
|||
import config from "@/app.config";
|
||||
|
||||
import type { QTableProps } from "quasar";
|
||||
import type { ResponseItems } from "@/modules/06_retirement/interface/response/Main";
|
||||
import type { ResponseItems } from "@/modules/06_retirement/interface/response/exitInterview";
|
||||
|
||||
import DialogFooter from "@/modules/05_placement/components/PersonalList/DialogFooter.vue";
|
||||
import DialogHeader from "@/modules/05_placement/components/PersonalList/DialogHeader.vue";
|
||||
|
||||
const $q = useQuasar(); //ใช้ noti quasar
|
||||
const router = useRouter();
|
||||
|
|
@ -33,22 +36,22 @@ const columns = ref<QTableProps["columns"]>([
|
|||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "prefix",
|
||||
name: "realReason",
|
||||
align: "left",
|
||||
label: "คำนำหน้า",
|
||||
label: "สาเหตุที่ลาออก",
|
||||
sortable: true,
|
||||
field: "prefix",
|
||||
field: "realReason",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "fullname",
|
||||
name: "notExitFactor",
|
||||
align: "left",
|
||||
label: "ชื่อ-นามสกุล",
|
||||
label: "ปัจจัยที่ช่วยเปลี่ยนใจไม่อยากลาออก",
|
||||
sortable: true,
|
||||
field: "fullname",
|
||||
field: "notExitFactor",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
|
|
@ -56,173 +59,76 @@ const columns = ref<QTableProps["columns"]>([
|
|||
},
|
||||
|
||||
{
|
||||
name: "positionTypeOld",
|
||||
name: "futureWork",
|
||||
align: "left",
|
||||
label: "ตำแหน่งในสายงาน",
|
||||
label: "อนาคตกลับจะมาร่วมงานหรือไม่",
|
||||
sortable: true,
|
||||
field: "positionTypeOld",
|
||||
field: "futureWork",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionLevelOld",
|
||||
name: "futureWorkReason",
|
||||
align: "left",
|
||||
label: "ระดับ",
|
||||
label: "เหตุผลที่อยากกลับมาร่วมงาน",
|
||||
sortable: true,
|
||||
field: "positionLevelOld",
|
||||
field: "futureWorkReason",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionNumberOld",
|
||||
name: "havejob",
|
||||
align: "left",
|
||||
label: "เลขที่",
|
||||
label: "มีงานใหม่หรือไม่",
|
||||
sortable: true,
|
||||
field: "positionNumberOld",
|
||||
field: "havejob",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "organizationPositionOld",
|
||||
name: "havejobReason",
|
||||
align: "left",
|
||||
label: "สังกัด",
|
||||
label: "เหตุผลที่มีงานใหม่",
|
||||
sortable: true,
|
||||
field: "organizationPositionOld",
|
||||
field: "havejobReason",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "statustext",
|
||||
name: "datetext",
|
||||
align: "left",
|
||||
label: "สถานะ",
|
||||
label: "วันที่สร้าง",
|
||||
sortable: true,
|
||||
field: "statustext",
|
||||
field: "datetext",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
]);
|
||||
const visibleColumns = ref<string[]>([
|
||||
"no",
|
||||
"prefix",
|
||||
"fullname",
|
||||
"positionTypeOld",
|
||||
"positionLevelOld",
|
||||
"positionNumberOld",
|
||||
"organizationPositionOld",
|
||||
"statustext",
|
||||
]);
|
||||
const visibleColumns = ref<string[]>([]);
|
||||
|
||||
const dateBreak = ref<Date | null>(null);
|
||||
|
||||
const filters = ref<ResponseItems[]>([]);
|
||||
const rows2 = ref<ResponseItems[]>([]);
|
||||
const columns2 = ref<QTableProps["columns"]>([
|
||||
{
|
||||
name: "no",
|
||||
align: "left",
|
||||
label: "ลำดับ",
|
||||
sortable: true,
|
||||
field: "no",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "prefix",
|
||||
align: "left",
|
||||
label: "คำนำหน้า",
|
||||
sortable: true,
|
||||
field: "prefix",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "fullname",
|
||||
align: "left",
|
||||
label: "ชื่อ-นามสกุล",
|
||||
sortable: true,
|
||||
field: "fullname",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
|
||||
{
|
||||
name: "positionTypeOld",
|
||||
align: "left",
|
||||
label: "ตำแหน่งในสายงาน",
|
||||
sortable: true,
|
||||
field: "positionTypeOld",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionLevelOld",
|
||||
align: "left",
|
||||
label: "ระดับ",
|
||||
sortable: true,
|
||||
field: "positionLevelOld",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionNumberOld",
|
||||
align: "left",
|
||||
label: "เลขที่",
|
||||
sortable: true,
|
||||
field: "positionNumberOld",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "organizationPositionOld",
|
||||
align: "left",
|
||||
label: "สังกัด",
|
||||
sortable: true,
|
||||
field: "organizationPositionOld",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "statustext",
|
||||
align: "left",
|
||||
label: "สถานะ",
|
||||
sortable: true,
|
||||
field: "statustext",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
]);
|
||||
const columns2 = ref<QTableProps["columns"]>([]);
|
||||
const visibleColumns2 = ref<string[]>([
|
||||
"no",
|
||||
"prefix",
|
||||
"fullname",
|
||||
"positionTypeOld",
|
||||
"positionLevelOld",
|
||||
"positionNumberOld",
|
||||
"organizationPositionOld",
|
||||
"futureWork",
|
||||
"futureWorkReason",
|
||||
"havejob",
|
||||
"havejobReason",
|
||||
"statustext",
|
||||
]);
|
||||
|
||||
|
|
@ -247,6 +153,15 @@ const resetFilter = () => {
|
|||
filterRef.value.focus();
|
||||
};
|
||||
|
||||
const openModalCalendar = () => {
|
||||
openModal();
|
||||
dateBreak.value = null;
|
||||
};
|
||||
|
||||
const conditionPopup = () => {
|
||||
closeModal();
|
||||
};
|
||||
|
||||
const openModalOrder = () => {
|
||||
openModal();
|
||||
const row = filters.value.filter(
|
||||
|
|
@ -258,6 +173,7 @@ const openModalOrder = () => {
|
|||
|
||||
onMounted(async () => {
|
||||
await fecthlist();
|
||||
visibleColumns.value = columns.value.map((r: any) => r.name);
|
||||
});
|
||||
|
||||
const fecthlist = async () => {
|
||||
|
|
@ -270,25 +186,20 @@ const fecthlist = async () => {
|
|||
|
||||
data.map((r: ResponseItems) => {
|
||||
list.push({
|
||||
activeDate: new Date(),
|
||||
createdAt: new Date(),
|
||||
firstName: r.firstName ?? "",
|
||||
datetext: r.createdAt !== null ? date2Thai(r.createdAt) : "-",
|
||||
createdAt: new Date(r.createdAt),
|
||||
futureWork: !!r.futureWork,
|
||||
futureWorkReason: r.futureWorkReason ?? "",
|
||||
havejob: !!r.havejob,
|
||||
havejobReason: r.havejobReason ?? "",
|
||||
id: r.id ?? "",
|
||||
isActive: r.isActive ? r.isActive : false,
|
||||
lastName: r.lastName ?? "",
|
||||
location: r.location ?? "",
|
||||
organizationPositionOld: r.organizationPositionOld ?? "",
|
||||
positionLevelOld: r.positionLevelOld ?? "",
|
||||
positionNumberOld: r.positionNumberOld ?? "",
|
||||
positionTypeOld: r.positionTypeOld ?? "",
|
||||
prefix: r.prefix ?? "",
|
||||
profileId: r.profileId ?? "",
|
||||
reason: r.reason ?? "",
|
||||
salary: r.salary ? r.salary : 0,
|
||||
sendDate: new Date(),
|
||||
lastUpdatedAt: new Date(r.lastUpdatedAt),
|
||||
notExitFactor: r.notExitFactor ?? "",
|
||||
realReason: r.realReason ?? "",
|
||||
suggestFriends: !!r.suggestFriends,
|
||||
suggestFriendsReason: r.suggestFriendsReason ?? "",
|
||||
suggestion: r.suggestion ?? "",
|
||||
status: r.status ?? "",
|
||||
statustext: statusText(r.status ?? ""),
|
||||
fullname: `${r.firstName ?? ""} ${r.lastName ?? ""}`,
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -399,40 +310,50 @@ const saveOrder = async () => {
|
|||
<q-th v-for="col in props.cols" :key="col.name" :props="props">
|
||||
<span class="text-weight-medium">{{ col.label }}</span>
|
||||
</q-th>
|
||||
<q-th auto-width />
|
||||
</q-tr>
|
||||
</template>
|
||||
<template v-slot:body="props">
|
||||
<q-tr
|
||||
:props="props"
|
||||
class="cursor-pointer"
|
||||
@click="router.push(`/retirement/resign/${props.row.id}`)"
|
||||
>
|
||||
<q-tr :props="props" class="cursor-pointer">
|
||||
<q-td key="no" :props="props">
|
||||
{{ props.rowIndex + 1 }}
|
||||
</q-td>
|
||||
<q-td key="prefix" :props="props">
|
||||
{{ props.row.prefix }}
|
||||
<q-td key="realReason" :props="props">
|
||||
{{ props.row.realReason }}
|
||||
</q-td>
|
||||
<q-td key="fullname" :props="props">
|
||||
{{ props.row.fullname }}
|
||||
<q-td key="notExitFactor" :props="props">
|
||||
{{ props.row.notExitFactor }}
|
||||
</q-td>
|
||||
<q-td key="positionTypeOld" :props="props">
|
||||
{{ props.row.positionTypeOld }}
|
||||
<q-td key="futureWork" :props="props">
|
||||
{{ props.row.futureWork ? "ใช่" : "ไม่" }}
|
||||
</q-td>
|
||||
<q-td key="positionLevelOld" :props="props">
|
||||
{{ props.row.positionLevelOld }}
|
||||
<q-td key="futureWorkReason" :props="props">
|
||||
{{ props.row.futureWorkReason }}
|
||||
</q-td>
|
||||
<q-td key="positionNumberOld" :props="props">
|
||||
{{ props.row.positionNumberOld }}
|
||||
<q-td key="havejob" :props="props">
|
||||
{{ props.row.havejob ? "ใช่" : "ไม่" }}
|
||||
</q-td>
|
||||
|
||||
<q-td key="organizationPositionOld" :props="props">
|
||||
<q-td key="havejobReason" :props="props">
|
||||
<div class="table_ellipsis">
|
||||
{{ props.row.organizationPositionOld }}
|
||||
{{ props.row.havejobReason }}
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="statustext" :props="props">
|
||||
{{ props.row.statustext }}
|
||||
<q-td key="datetext" :props="props">
|
||||
{{ props.row.datetext }}
|
||||
</q-td>
|
||||
<q-td auto-width>
|
||||
<q-btn
|
||||
icon="mdi-calendar"
|
||||
size="12px"
|
||||
color="blue-7"
|
||||
flat
|
||||
round
|
||||
dense
|
||||
@click="openModalCalendar"
|
||||
>
|
||||
<q-tooltip>วันนัดหมายเพื่อทําการสัมภาษณ์การลาออก</q-tooltip>
|
||||
</q-btn>
|
||||
</q-td>
|
||||
</q-tr>
|
||||
</template>
|
||||
|
|
@ -528,16 +449,16 @@ const saveOrder = async () => {
|
|||
<q-td key="positionTypeOld" :props="props">
|
||||
{{ props.row.positionTypeOld }}
|
||||
</q-td>
|
||||
<q-td key="positionLevelOld" :props="props">
|
||||
{{ props.row.positionLevelOld }}
|
||||
<q-td key="futureWorkReason" :props="props">
|
||||
{{ props.row.futureWorkReason }}
|
||||
</q-td>
|
||||
<q-td key="positionNumberOld" :props="props">
|
||||
{{ props.row.positionNumberOld }}
|
||||
<q-td key="havejob" :props="props">
|
||||
{{ props.row.havejob }}
|
||||
</q-td>
|
||||
|
||||
<q-td key="organizationPositionOld" :props="props">
|
||||
<q-td key="havejobReason" :props="props">
|
||||
<div class="table_ellipsis">
|
||||
{{ props.row.organizationPositionOld }}
|
||||
{{ props.row.havejobReason }}
|
||||
</div>
|
||||
</q-td>
|
||||
<q-td key="statustext" :props="props">
|
||||
|
|
@ -558,5 +479,60 @@ const saveOrder = async () => {
|
|||
</q-card-actions>
|
||||
</q-card>
|
||||
</q-dialog> -->
|
||||
|
||||
<q-dialog v-model="modal" persistent>
|
||||
<q-card style="width: 800px">
|
||||
<q-form ref="myFormConfirm">
|
||||
<DialogHeader
|
||||
title="กําหนดวันนัดหมายเพื่อทําการสัมภาษณ์การลาออก"
|
||||
:close="closeModal"
|
||||
/>
|
||||
<q-separator />
|
||||
<q-card-section class="q-p-sm q-gutter-md">
|
||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||
<datepicker
|
||||
menu-class-name="modalfix"
|
||||
v-model="dateBreak"
|
||||
: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>
|
||||
<!-- :rules="[
|
||||
(val) => !!val || `${'กรุณาเลือก วันสุดท้ายที่ยับยั้ง'}`,
|
||||
]" -->
|
||||
<q-input
|
||||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
:model-value="
|
||||
dateBreak !== null ? date2Thai(dateBreak) : null
|
||||
"
|
||||
hide-bottom-space
|
||||
:label="`${' วันนัดหมายเพื่อทําการสัมภาษณ์การลาออก'}`"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon
|
||||
name="event"
|
||||
class="cursor-pointer"
|
||||
style="color: var(--q-primary)"
|
||||
>
|
||||
</q-icon>
|
||||
</template>
|
||||
</q-input>
|
||||
</template>
|
||||
</datepicker>
|
||||
</div>
|
||||
</q-card-section>
|
||||
<q-separator />
|
||||
<DialogFooter :editvisible="true" :save="conditionPopup" />
|
||||
</q-form>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</template>
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
|
|||
|
|
@ -54,7 +54,17 @@ const columns = ref<QTableProps["columns"]>([
|
|||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
|
||||
{
|
||||
name: "location",
|
||||
align: "left",
|
||||
label: "สถานที่ยื่นขอลาออกจากราชการ",
|
||||
sortable: true,
|
||||
field: "location",
|
||||
headerStyle: "font-size: 14px",
|
||||
style: "font-size: 14px",
|
||||
sort: (a: string, b: string) =>
|
||||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
{
|
||||
name: "positionTypeOld",
|
||||
align: "left",
|
||||
|
|
@ -127,6 +137,7 @@ const visibleColumns = ref<string[]>([
|
|||
"no",
|
||||
"prefix",
|
||||
"fullname",
|
||||
"location",
|
||||
"positionTypeOld",
|
||||
"positionLevelOld",
|
||||
"positionNumberOld",
|
||||
|
|
@ -172,6 +183,7 @@ const columns2 = ref<QTableProps["columns"]>([
|
|||
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
name: "positionTypeOld",
|
||||
align: "left",
|
||||
|
|
@ -442,6 +454,9 @@ const saveOrder = async () => {
|
|||
<q-td key="fullname" :props="props">
|
||||
{{ props.row.fullname }}
|
||||
</q-td>
|
||||
<q-td key="location" :props="props">
|
||||
{{ props.row.location }}
|
||||
</q-td>
|
||||
<q-td key="positionTypeOld" :props="props">
|
||||
{{ props.row.positionTypeOld }}
|
||||
</q-td>
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@
|
|||
{{ props.row.fileName }}
|
||||
</q-td>
|
||||
<q-td key="btnMicrosoft" :props="props">
|
||||
<q-btn flat dense round color="red" icon="picture_as_pdf">
|
||||
<q-btn type="a" target="_blank" :href="props.row.pathName" flat dense round color="red" icon="picture_as_pdf">
|
||||
<q-tooltip>ไฟล์ PDF</q-tooltip>
|
||||
</q-btn>
|
||||
</q-td>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
interface ResponseData {
|
||||
adjust: string[];
|
||||
adjustOther: string;
|
||||
createdAt: Date;
|
||||
exitFactor: string[];
|
||||
exitFactorOther: string;
|
||||
futureWork: boolean;
|
||||
futureWorkReason: string;
|
||||
havejob: boolean;
|
||||
havejobReason: string;
|
||||
id: string;
|
||||
lastUpdatedAt: Date;
|
||||
notExitFactor: string;
|
||||
realReason: string;
|
||||
reasonWork: string[];
|
||||
reasonWorkOther: string;
|
||||
suggestFriends: boolean;
|
||||
suggestFriendsReason: string;
|
||||
suggestion: string;
|
||||
timeThink: string[];
|
||||
}
|
||||
|
||||
interface ResponseItems {
|
||||
createdAt: Date;
|
||||
futureWork: boolean;
|
||||
futureWorkReason: string;
|
||||
havejob: boolean;
|
||||
havejobReason: string;
|
||||
id: string;
|
||||
lastUpdatedAt: Date;
|
||||
notExitFactor: string;
|
||||
realReason: string;
|
||||
suggestFriends: boolean;
|
||||
suggestFriendsReason: string;
|
||||
suggestion: string;
|
||||
status: string;
|
||||
datetext: string | null;
|
||||
}
|
||||
|
||||
export type { ResponseData, ResponseItems };
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,11 +1,18 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, onMounted } from "vue";
|
||||
import type { QTableProps } from "quasar";
|
||||
import { useQuasar } from "quasar";
|
||||
import { useCounterMixin } from '@/stores/mixin'
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
|
||||
const mixin = useCounterMixin()
|
||||
const { success, messageError,hideLoader,dialogConfirm } = mixin
|
||||
const fileUpload = ref<any>(null);
|
||||
const reason = ref<string>("");
|
||||
const file = ref<string>("");
|
||||
const documentTitle = ref<string>("");
|
||||
|
||||
const $q = useQuasar();
|
||||
const filterKeyword = ref<string>("");
|
||||
const filterDoc = ref<any>(null);
|
||||
|
||||
|
|
@ -45,27 +52,68 @@ const colums2 = ref<QTableProps["columns"]>([
|
|||
sortable: true,
|
||||
},
|
||||
]);
|
||||
const rows2 = ref<any>([
|
||||
{
|
||||
no: "1",
|
||||
fileName: "test1",
|
||||
annotation: "ทดสอบ",
|
||||
file: "",
|
||||
},
|
||||
{
|
||||
no: "2",
|
||||
fileName: "test2",
|
||||
annotation: "ทดสอบ",
|
||||
file: "",
|
||||
},
|
||||
]);
|
||||
const rows2 = ref<any>([]);
|
||||
|
||||
interface TypeData {
|
||||
fileName:string
|
||||
reason:string
|
||||
pathName:string
|
||||
}
|
||||
const props = defineProps({
|
||||
roundId: {
|
||||
type: String,
|
||||
},
|
||||
});
|
||||
onMounted(() => {
|
||||
|
||||
const getRequest = async () => {
|
||||
await http
|
||||
.get(config.API.requestDocNote(props.roundId as string))
|
||||
.then((res:any) =>{
|
||||
console.log(res)
|
||||
const data = res.data.result
|
||||
console.log(data)
|
||||
data.map((item:TypeData) =>{
|
||||
rows2.value.push({
|
||||
fileName:item.fileName,
|
||||
annotation:item.reason,
|
||||
file:item.pathName
|
||||
})
|
||||
|
||||
}
|
||||
)
|
||||
console.log(rows2.value)
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
});
|
||||
}
|
||||
|
||||
const putRequest = () => {
|
||||
const dataAppend = new FormData()
|
||||
dataAppend.append("Name",documentTitle.value)
|
||||
dataAppend.append("Reason",reason.value)
|
||||
dataAppend.append("File",fileUpload.value)
|
||||
http
|
||||
.put(config.API.requestDocNote(props.roundId as string),dataAppend)
|
||||
.then((res) => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
documentTitle.value = "";
|
||||
reason.value = "";
|
||||
fileUpload.value = null;
|
||||
getRequest();
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
onMounted(async() => {
|
||||
console.log(props.roundId);
|
||||
await getRequest()
|
||||
});
|
||||
const resetFilterRef = () => {
|
||||
filterKeyword.value = "";
|
||||
|
|
@ -77,6 +125,9 @@ const pagination = ref({
|
|||
page: 1,
|
||||
rowsPerPage: 10,
|
||||
});
|
||||
const save = () => {
|
||||
dialogConfirm($q,()=>putRequest())
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<Transition>
|
||||
|
|
@ -119,6 +170,9 @@ const pagination = ref({
|
|||
hide-bottom-space
|
||||
/>
|
||||
</div>
|
||||
<div class="col-12 flex justify-end">
|
||||
<q-btn label="บันทึก" @click="save" color="public" />
|
||||
</div>
|
||||
<div class="row col-12">
|
||||
<q-space />
|
||||
<q-input
|
||||
|
|
@ -184,10 +238,13 @@ const pagination = ref({
|
|||
{{ props.row.fileName }}
|
||||
</q-td>
|
||||
<q-td key="annotation" :props="props">
|
||||
{{ props.row.annotation }}
|
||||
{{ props.row.annotation !== null ? props.row.annotation:"-"}}
|
||||
</q-td>
|
||||
<q-td auto-width>
|
||||
<q-btn
|
||||
type="a"
|
||||
:href="props.row.file"
|
||||
target="_blank"
|
||||
dense
|
||||
size="14px"
|
||||
flat
|
||||
|
|
|
|||
55
src/modules/07_insignia/storeResult.ts
Normal file
55
src/modules/07_insignia/storeResult.ts
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
import { defineStore } from "pinia";
|
||||
import { ref, } from "vue";
|
||||
|
||||
|
||||
|
||||
export const useResultDataStore = defineStore("insigniaResult", () => {
|
||||
const insignia = ref<string>('')
|
||||
const insigniaOp = ref<any[]>([{ name: "ทั้งหมด", id: "" }])
|
||||
const insigniaOp2 = ref<any[]>([])
|
||||
const insigniaType = ref<any>()
|
||||
|
||||
|
||||
const fetchDatainsignia = async (data: any) => {
|
||||
data.forEach((e: any) => {
|
||||
insigniaOp.value.push({ name: e.name, id: e.id })
|
||||
});
|
||||
data.forEach((e: any) => {
|
||||
insigniaOp2.value.push({ name: e.name, id: e.id })
|
||||
});
|
||||
|
||||
}
|
||||
const fetchDatainsigniaType = async (data: any) => {
|
||||
insigniaType.value = data.map((e: any) => ({ name: e.id, label: e.name }))
|
||||
}
|
||||
const status = (val: string) => {
|
||||
switch (val) {
|
||||
case "PENDING":
|
||||
return "รอบันทึกข้อมูล";
|
||||
case "REJECT":
|
||||
return "ยกเลิก";
|
||||
case "DELETE":
|
||||
return "ลบ";
|
||||
case "DONE":
|
||||
return "บันทึกลง ก.พ. 7 แล้ว";
|
||||
}
|
||||
}
|
||||
const profileType = (val: string) => {
|
||||
switch (val) {
|
||||
case "officer":
|
||||
return "ข้าราชการ กทม.สามัญ";
|
||||
case "employee":
|
||||
return "ลูกจ้างประจำ";
|
||||
}
|
||||
}
|
||||
return {
|
||||
insignia,
|
||||
insigniaOp,
|
||||
insigniaOp2,
|
||||
insigniaType,
|
||||
fetchDatainsignia,
|
||||
fetchDatainsigniaType,
|
||||
status,
|
||||
profileType,
|
||||
};
|
||||
});
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,17 +1,19 @@
|
|||
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted } from "vue";
|
||||
import { useQuasar } from "quasar";
|
||||
import type { QInput } from "quasar";
|
||||
import { useCounterMixin } from "@/stores/mixin";
|
||||
import type { QTableProps, QForm } from "quasar";
|
||||
import { useRoute } from "vue-router";
|
||||
import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
|
||||
|
||||
import type { QInput } from "quasar";
|
||||
import type { QTableProps, QForm } from "quasar";
|
||||
import type { ResponseData } from "@/modules/05_placement/interface/response/Order";
|
||||
|
||||
import http from "@/plugins/http";
|
||||
import config from "@/app.config";
|
||||
|
||||
import DialogHeader from "@/modules/04_registry/components/DialogHeader.vue";
|
||||
import CurruncyInput from "@/components/CurruncyInput.vue";
|
||||
|
||||
const props = defineProps({
|
||||
next: {
|
||||
type: Function,
|
||||
|
|
@ -126,8 +128,10 @@ const getData = async (id: string) => {
|
|||
sequence: r.sequence !== null ? r.sequence : 0,
|
||||
refRecordId: r.refRecordId,
|
||||
salaryAmount: r.salaryAmount !== 0 ? r.salaryAmount : null,
|
||||
positionSalaryAmount: r.positionSalaryAmount!== 0 ? r.positionSalaryAmount : null,
|
||||
monthSalaryAmount: r.monthSalaryAmount!== 0 ? r.monthSalaryAmount : null,
|
||||
positionSalaryAmount:
|
||||
r.positionSalaryAmount !== 0 ? r.positionSalaryAmount : null,
|
||||
monthSalaryAmount:
|
||||
r.monthSalaryAmount !== 0 ? r.monthSalaryAmount : null,
|
||||
});
|
||||
});
|
||||
// console.log("list", list);
|
||||
|
|
@ -241,9 +245,11 @@ const fetchSalary = async (personalId: string) => {
|
|||
console.log(res);
|
||||
const data = res.data.result;
|
||||
modalData.value = {
|
||||
salaryAmount: data.salaryAmount !== 0 ? data.salaryAmount:null,
|
||||
positionSalaryAmount: data.positionSalaryAmount !== 0 ? data.salaryAmount:null,
|
||||
mouthSalaryAmount: data.monthSalaryAmount !== 0 ? data.salaryAmount:null,
|
||||
salaryAmount: data.salaryAmount !== 0 ? data.salaryAmount : null,
|
||||
positionSalaryAmount:
|
||||
data.positionSalaryAmount !== 0 ? data.salaryAmount : null,
|
||||
mouthSalaryAmount:
|
||||
data.monthSalaryAmount !== 0 ? data.salaryAmount : null,
|
||||
};
|
||||
console.log("data", modalData.value);
|
||||
})
|
||||
|
|
@ -368,7 +374,7 @@ const addlist = async (data: Object) => {
|
|||
|
||||
const save = async () => {
|
||||
// console.log("save===>", rows.value)
|
||||
const check = rows.value.find((x:any) => x.salaryAmount==null);
|
||||
const check = rows.value.find((x: any) => x.salaryAmount == null);
|
||||
if (selected.value.length > 0 && !check) {
|
||||
dialogConfirm($q, () => {
|
||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||
|
|
@ -564,7 +570,7 @@ const getClass = (val: boolean) => {
|
|||
color="public"
|
||||
@click="save"
|
||||
class="q-px-md"
|
||||
>
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -579,21 +585,28 @@ const getClass = (val: boolean) => {
|
|||
<div class="col-xs-12">
|
||||
<div class="col-12 row q-py-sm items-center q-col-gutter-sm">
|
||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||
<q-input
|
||||
<!-- <q-input
|
||||
outlined
|
||||
dense
|
||||
|
||||
lazy-rules
|
||||
v-model.number="modalData.salaryAmount"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกเงินเดือน'}`]"
|
||||
:label="`${'เงินเดือน'}`"
|
||||
type="text"
|
||||
hide-bottom-space
|
||||
/> -->
|
||||
<CurruncyInput
|
||||
:edit="true"
|
||||
:dense="true"
|
||||
v-model="modalData.salaryAmount"
|
||||
:label="`${'เงินเดือน'}`"
|
||||
:rules="[(val) => !!val || `${'กรุณากรอกเงินเดือน'}`]"
|
||||
hide-bottom-space
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||
<q-input
|
||||
<!-- <q-input
|
||||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
|
|
@ -601,14 +614,21 @@ const getClass = (val: boolean) => {
|
|||
:label="`${'เงินประจำตำแหน่ง'}`"
|
||||
type="number"
|
||||
hide-bottom-space
|
||||
/>
|
||||
/> -->
|
||||
<!-- :rules="[
|
||||
(val) => !!val || `${'กรุณากรอกเงินประจำตำแหน่ง'}`,
|
||||
]" -->
|
||||
<CurruncyInput
|
||||
:edit="true"
|
||||
:dense="true"
|
||||
v-model="modalData.positionSalaryAmount"
|
||||
:label="`${'เงินประจำตำแหน่ง'}`"
|
||||
hide-bottom-space
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-6 col-sm-6 col-md-6">
|
||||
<q-input
|
||||
<!-- <q-input
|
||||
outlined
|
||||
dense
|
||||
lazy-rules
|
||||
|
|
@ -616,10 +636,17 @@ const getClass = (val: boolean) => {
|
|||
:label="`${'เงินค่าตอบแทนรายเดือน'}`"
|
||||
type="number"
|
||||
hide-bottom-space
|
||||
/>
|
||||
/> -->
|
||||
<!-- :rules="[
|
||||
(val) => !!val || `${'กรุณากรอกเงินค่าตอบแทนรายเดือน'}`,
|
||||
]" -->
|
||||
<CurruncyInput
|
||||
:edit="true"
|
||||
:dense="true"
|
||||
v-model="modalData.positionSalaryAmount"
|
||||
:label="`${'เงินค่าตอบแทนรายเดือน'}`"
|
||||
hide-bottom-space
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue