hrms-mgt/src/modules/05_placement/components/probation/FormAssign.vue

1550 lines
68 KiB
Vue
Raw Normal View History

<template>
<div class="q-pb-md">
<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>แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ</div>
</div>
<q-card
:bordered="routeName == 'probationWorkAdd'"
class="col-12 text-dark"
>
<div class="row col-12 q-pa-lg">
<div class="row col-12 q-gutter-lg">
<div class="col-12 row">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">1</q-avatar>
ทดลองปฏหนาทราชการ
</div>
<div class="col-12 row q-col-gutter-md">
<div class="col-xs-12 col-sm-6">
<q-input
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="name"
label="ชื่อ-สกุล"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-input
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="position"
label="ตำแหน่ง"
/>
</div>
<div class="col-12 text-top0 items-center">
ระยะเวลาการทดลองปฎหนาทราชการ
</div>
2023-07-27 09:11:43 +07:00
<div class="col-xs-12 col-sm-4">
<datepicker
2023-07-27 09:11:43 +07:00
menu-class-name="modalfix"
v-model="dateExam"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
@input="handleDateExamChange"
>
2023-07-27 09:11:43 +07:00
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
dense
class="full-width datepicker q-mb-md"
:model-value="
dateExam != null ? date2Thai(dateExam) : null
"
:label="`${'ตั้งเเต่วันที่'}`"
clearable
@clear="clearDateExam"
>
</q-input>
</template>
</datepicker>
</div>
2023-07-27 09:11:43 +07:00
<div class="col-xs-12 col-sm-4">
<datepicker
2023-07-27 09:11:43 +07:00
menu-class-name="modalfix"
v-model="dateExam2"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
2023-07-27 09:11:43 +07:00
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
dense
class="full-width datepicker q-mb-md"
:model-value="
dateExam2 != null ? date2Thai(dateExam2) : null
"
:label="`${'ถึงวันที่'}`"
clearable
@clear="clearDateExam2"
>
</q-input>
</template>
</datepicker>
</div>
</div>
</div>
<div class="col-12">
<q-separator size="3px" color="grey-2" />
</div>
<div class="col-12 row">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">2</q-avatar>
แลการทดลองปฏหนาทราชการ (อาจมไดมากกว 1 คน)
<!-- <q-btn
v-if="routeName == 'probationWorkAdd'"
round
color="primary"
dense
icon="mdi-plus"
flat
class="q-ml-sm"
@click="addCaretaker"
/> -->
</div>
2023-07-10 19:29:15 +07:00
<div class="col-12 row q-col-gutter-md">
<q-select
:options="OPcaretaker"
class="col-xs-12 col-sm-6"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="caretaker1"
:label="`ผู้ดูแลคนที่ 1`"
/>
<q-select
:options="OPcaretaker"
class="col-xs-12 col-sm-6"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="caretaker2"
:label="`ผู้ดูแลคนที่ 2`"
/>
</div>
</div>
<div class="col-12">
<q-separator size="3px" color="grey-2" />
</div>
<!-- 3.1 -->
<div class="col-12 row">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar>
ผลการปฏงาน
</div>
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.1 องาน / ภารกจงานทมอบหมาย (ควรมมากกว 1 ภารกจงาน)
<q-btn
v-if="routeName == 'probationWorkAdd'"
round
color="primary"
dense
icon="mdi-plus"
flat
class="q-ml-sm"
@click="addActivity"
/>
</div>
<div class="col-12 row q-gutter-sm">
<q-card
v-for="(item, index) in activityArray"
:key="index"
flat
bordered
class="col-12 q-pa-sm bg-grey-1"
>
<div class="col-12 row q-col-gutter-sm">
<div class="col-xs-12 col-sm-6">
<q-input
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
class="bg-white"
type="textarea"
v-model="activities[index]"
label="กิจกรรมของงาน/ขั้นตอนการปฏิบัติงาน(ไม่เกิน10บรรทัด )"
/>
</div>
<div class="col-xs-12 col-sm-5">
<q-input
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
class="bg-white"
type="textarea"
v-model="goals[index]"
label="เป้าหมายในการปฏิบัติงาน(ไม่เกิน10บรรทัด )"
/>
</div>
<!-- delete -->
<div
v-if="index > 1"
class="col-xs-12 col-sm-1 flex justify-center items-center"
>
<q-btn
flat
round
color="red"
icon="mdi-trash-can-outline"
@click="deleteactivity(index)"
/>
</div>
</div>
</q-card>
</div>
</div>
<!-- 3.2 -->
<div class="col-12 row">
<div class="col-12 text-top2">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.2 ความรความสามารถและทกษะ(ตามท..าหนด)
</div>
<q-card bordered flat class="col-12 row q-pa-md bg-grey-1">
<div class="row col-12 q-gutter-lg">
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
ความรความสามารถในการปฏงาน
<q-btn
v-if="routeName == 'probationWorkAdd'"
round
color="primary"
dense
icon="mdi-plus"
flat
class="q-ml-sm"
@click="addKnowledge"
/>
</div>
<div
v-for="(item, index) in knowledgeArray"
class="col-12 row q-col-gutter-sm"
>
<div class="col-11 q-my-xs">
<q-select
:options="getOpknowledge(item)"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="knowledge[index]"
:label="`ความรู้ความสามารถในการปฏิบัติงาน ${index + 1}`"
/>
</div>
<div
class="col-xs-12 col-sm-1 flex justify-center items-center"
>
<q-btn
v-if="index > 2"
flat
round
color="red"
icon="mdi-trash-can-outline"
@click="deleteknowledge(index)"
/>
</div>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
ความรเรองกฎหมายและกฎระเบยบ (ไมเก 20 วข)
<!-- <q-btn
v-if="routeName == 'probationWorkAdd'"
round
color="primary"
dense
icon="mdi-plus"
flat
class="q-ml-sm"
/> -->
</div>
<q-card
flat
bordered
class="col-12 q-pa-md"
style="max-height: 500px; overflow-y: scroll"
>
<div class="example-row-column-width">
2023-07-27 09:11:43 +07:00
<div
v-for="item in val1"
:key="item.id"
class="row bg-grey-3 q-py-xs"
>
<div class="col-1 text-center">
<q-checkbox
2023-07-27 09:11:43 +07:00
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
/>
</div>
2023-07-27 09:11:43 +07:00
<div class="col-9">1. ฐธรรมน</div>
</div>
<div class="row q-mt-xs bg-grey-3 q-py-xs">
<div class="col-1"></div>
<div class="col-2">2.กฎหมายปกครอง</div>
</div>
<div class="row bg-grey-2 q-py-xs borderCheck">
<div class="col-1"></div>
<div class="col-10 q-pl-md">2.1 ทำงานได</div>
</div>
<div
v-for="item in checkList21"
:key="item.id"
class="row q-py-xs borderCheck border_y"
>
<div class="col-1 text-center">
<q-checkbox
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
/>
</div>
<div class="col-9 q-pl-xl">{{ item.text }}</div>
</div>
<div class="row bg-grey-2 q-py-xs borderCheck">
<div class="col-1"></div>
<div class="col-10 q-pl-md">
2.2 านการปฏราชการ
</div>
</div>
<div
v-for="item in checkList22"
:key="item.id"
class="row q-py-xs borderCheck border_y"
>
<div class="col-1 text-center">
<q-checkbox
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
/>
</div>
<div class="col-9 q-pl-xl">{{ item.text }}</div>
</div>
<div class="row bg-grey-2 q-py-xs borderCheck">
<div class="col-1"></div>
<div class="col-10 q-pl-md">
2.3 านการบรหารทรพยากรบคคล
</div>
</div>
<div
v-for="item in checkList23"
:key="item.id"
class="row q-py-xs borderCheck border_y"
>
<div class="col-1 text-center">
<q-checkbox
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
/>
</div>
<div class="col-9 q-pl-xl">{{ item.text }}</div>
</div>
<div class="row bg-grey-2 q-py-xs borderCheck">
<div class="col-1"></div>
<div class="col-10 q-pl-md">
2.4 านการบรหารงบประมาณและการคล
</div>
</div>
<div
v-for="item in checkList24"
:key="item.id"
class="row q-py-xs borderCheck border_y"
>
<div class="col-1 text-center">
<q-checkbox
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
/>
</div>
<div class="col-9 q-pl-xl">{{ item.text }}</div>
</div>
2023-07-27 09:11:43 +07:00
<!-- <div class="row q-mt-xs bg-grey-3 q-py-xs">
<div class="col-1 text-center"></div>
<div class="col-11">
3. กฎหมายอนๆ เกยวของกบการปฏงาน
</div>
</div>
<div class="row border_y borderCheck">
<div class="col-1 text-center"></div>
<div class="q-py-sm col-10" style="min-width: 300px">
<q-input
hide-bottom-space
dense
outlined
lazy-rules
v-model="ruleNote"
:label="`${'กรอกกฎหมายอื่นๆ'}`"
type="textarea"
/>
</div>
2023-07-27 09:11:43 +07:00
</div> -->
</div>
</q-card>
</div>
<div class="col-12 row">
<div class="col-12 text-top2">
กฎหมายอ เกยวของกบการปฏงาน
</div>
<div class="col-12 row q-col-gutter-md">
<div class="col-12">
<q-input
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="OtherLaw"
2023-07-27 09:11:43 +07:00
type="textarea"
/>
</div>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2">กษะ</div>
<div class="col-12 row q-col-gutter-sm">
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPskill"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="skill"
label="ด้านที่ 1"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPskill"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="skill2"
label="ด้านที่ 2"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPskill"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="skill3"
label="ด้านที่ 3"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPskill"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="skill4"
label="ด้านที่ 4"
/>
</div>
</div>
</div>
</div>
</q-card>
</div>
<div class="col-12 row">
<div class="col-12 text-top2">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.3 สมรรถนะ (ตามท .. าหนด)
</div>
<q-card bordered flat class="col-12 row q-pa-md bg-grey-1">
<div class="row col-12 q-gutter-lg">
<div class="col-12 row">
<div class="col-12 text-top2">สมรรถนะหล</div>
<div class="col-12 row q-col-gutter-sm">
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPmain"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="main"
label="ตัวที่ 1"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPmain"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="main2"
label="ตัวที่ 2"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPmain"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="main3"
label="ตัวที่ 3"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPmain"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="main4"
label="ตัวที่ 4"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPmain"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="main5"
label="ตัวที่ 4"
/>
</div>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2">สมรรถนะประจากลมงาน</div>
<div class="col-12 row q-col-gutter-sm">
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPgroup"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="group"
label="ตัวที่ 1"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPgroup"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="group2"
label="ตัวที่ 2"
/>
</div>
<div class="col-xs-12 col-sm-6">
<q-select
:options="OPgroup"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="group3"
label="ตัวที่ 3"
/>
</div>
</div>
</div>
</div>
</q-card>
</div>
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.4 พฤตกรรมทาเปนสาหรบการปฏงาน<span
class="text-weight-regular q-pl-sm"
>
( ไดแก ความประพฤต ความมณธรรมจรยธรรม การรกษาว )</span
>
</div>
<q-card bordered flat class="col-12 row q-pa-md bg-grey-1">
<div class="row col-12 q-gutter-lg">
<div class="col-12 row">
<div class="col-12 text-top2">ความประพฤต ไดแก</div>
<div class="col-12 row q-col-gutter-md">
<div class="col-12 column q-ml-md">
<li>ใหบรการประชาชนหรอผบบรการดวยอธยาศยด</li>
<li>ความรบผดชอบในการปฏงาน</li>
<li>
ใหบรการประชาชนหรอผบบรการดวยความรวดเร
เอาใจใสเปนมาตรฐานเดยวก
</li>
<li>
งใจปฏหนาทราชการดวยความอตสาหะ ขยนหมนเพยร
</li>
</div>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2">
ความมณธรรมจรยธรรม ไดแก
</div>
<div class="col-12 row q-col-gutter-md">
<div class="col-12 column q-ml-md">
<li>
ศตนและเสยสละเวลาในการปฏงานอยางเตมกำลงความสามารถ
</li>
<li>
ตสำนกท ปฏงานดวยความซอสตย จร
</li>
<li>
ดมนในสถาบนพระมหากษตร และไมกระทำการใด
นจะกอใหเกดความเสยหายตอประเทศชาต ศาสนา
และพระมหากษตร
</li>
</div>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2">การรกษาว ไดแก</div>
<div class="col-12 row q-col-gutter-md">
<div class="col-12 column q-ml-md">
<li>ความรบผดชอบในการรกษาเวลาทำงาน</li>
<li>
แตงกายในการปฏงานไดอยางเหมาะสมกบการเปนขาราชการ
</li>
<li>
ไมกระทำการใด
นเปนการเสอมเกยรตและศกดศรของความเปนขาราชการ
</li>
<li>
ไมกระทำการใด
นอาจกอใหเกดความเสยหายแกอเสยงของหนวยงาน
</li>
<li>
ปฏหนาทอยางตรงไปตรงมาโดยยกหลกจรรยาบรรณวชาช
</li>
</div>
</div>
</div>
</div>
</q-card>
</div>
<div class="col-12 row">
<div class="col-12 text-top2">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.5 (าม)
</div>
<div class="col-12 row q-col-gutter-md">
<div class="col-12">
<q-input
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="Other"
/>
</div>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.6 ผลผลตของงานทคาดหวงและตวชดความสาเรจของงาน
<q-btn
v-if="routeName == 'probationWorkAdd'"
round
color="primary"
dense
icon="mdi-plus"
flat
class="q-ml-sm"
@click="addProductivity"
/>
</div>
<div class="col-12 row q-gutter-md">
<q-card
v-for="(item, index) in productivityCount"
flat
bordered
class="col-12 q-pa-sm bg-grey-1"
>
<div class="col-12 row q-col-gutter-sm">
<div class="col-xs-12 col-sm-6">
<q-input
class="bg-white"
type="textarea"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="Productivitys[index]"
label="ผลผลิตของงานที่คาดหวัง (ไม่เกิน 10 บรรทัด)"
/>
</div>
<div class="col-xs-12 col-sm-5">
<q-input
class="bg-white"
type="textarea"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="goals1[index]"
label="ตัวชี้วัดความสําเร็จของงาน (ไม่เกิน 10 บรรทัด)"
/>
</div>
<div
v-if="index > 0"
class="col-xs-12 col-sm-1 flex justify-center items-center"
>
<q-btn
flat
round
color="red"
icon="mdi-trash-can-outline"
@click="deleteProductivitys(index)"
/>
</div>
</div>
</q-card>
</div>
</div>
<div class="col-12">
<q-separator size="3px" color="grey-2" />
</div>
<div class="col-12 row">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">4</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ
</div>
<div class="col-12 row">
<div class="col-12 text-top2">
ทดลองปฏหนาทราชการตองเขารวมในการปฐมนเทศและอบรมหลกสตรตาง
ภายในระยะเวลาทดลองปฏหนาทราชการ งน
</div>
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
4.1 การปฐมนเทศเพอใหความรเกยวกบหนวยงาน/วนราชการ
</div>
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
4.2
การเรยนรวยตนเองเพอใหความรเกยวกบกฎหมายกฎระเบยบแบบแผนของทางราชการ
</div>
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
4.3
การอบรมสมมนารวมกนเพอปลกฝงการประพฤตปฏตนเปนขาราชการท
</div>
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
4.4 การอบรมอ หนวยงานกำหนด (าม)
</div>
</div>
</div>
<div class="col-12">
<q-separator size="3px" color="grey-2" />
</div>
<div class="col-12 row">
<div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar>
การประเมนผลการทดลองปฏหนาทราชการ
</div>
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
5.1
ประเมนผลการทดลองปฏหนาทราชการโดยคณะกรรมการประเมนผลการทดลองปฏหนาทราชการ
</div>
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
5.2 รายละเอยดการประเมนประกอบดวย 2 วนค
</div>
<div class="col-12 row q-gutter-md">
<q-card flat bordered class="col-12 q-pa-md bg-grey-1">
<div class="col-12 text-top2">การรกษาว ไดแก</div>
<div class="col-12 row q-col-gutter-md">
<div class="col-12 column q-ml-md">
<li>ความรความสามารถท .. กำหนด</li>
<li>กษะท .. กำหนด</li>
<li>สมรรถนะตามท .. กำหนด</li>
<li>ความสามารถในการเรยนรงานในตำแหน</li>
<li>ความสามารถในการปรบใชความรบงานในหนาท</li>
<li>ความสำเรจของงานทไดบมอบหมาย</li>
<li>
นๆ (าม)
<q-input
dense
outlined
v-model="Other"
label="กรอกอื่นๆ"
/>
</li>
</div>
</div>
</q-card>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
5.3
อมลทใชประกอบการประเมนผลการทดลองปฏหนาทราชการประกอบดวย
</div>
<div class="col-12 row q-gutter-md">
<q-card flat bordered class="col-12 q-pa-md bg-grey-1">
<div class="col-12 row q-col-gutter-md">
<div class="col-12 column q-ml-md">
<li>
นทกผลการทดลองปฏหนาทราชการของผแลการทดลองปฏหนาทราชการและผงคบบญา
</li>
<li>
แบบประเมนผลการทดลองปฏหนาทราชการของผงคบบญชา
</li>
<li>รายงานผลการพฒนาตามทสำนกงาน ..กำหนด</li>
</div>
</div>
</q-card>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
5.3 ดสวนของคะแนนและมาตรฐานการประเม
</div>
<div class="col-12 row q-gutter-md">
<q-card flat bordered class="col-12 q-pa-md bg-grey-1">
<div class="col-12 row q-col-gutter-md">
<div class="col-12 column q-ml-md">
<li>ดสวนของคะแนนการทดลองปฏหนาทราชการ</li>
<div class="q-pl-lg">
วนท 1
คะแนนผลสมฤทธของการทดลองปฏหนาทราชการรอยละ 50
</div>
<div class="q-pl-lg">
วนท 2
คะแนนพฤตกรรมของผทดลองปฏหนาทราชการรอยละ 50
</div>
<div class="q-pl-lg">
มาตรฐานการประเมนแตละสวนตองไดคะแนนไมำกวารอยละ 60
</div>
<li>
ดสวนคะแนนการพฒนาขาราชการทอยระหวางการทดลองปฏหนาทราชการ
</li>
<div class="q-pl-lg">
คะแนนรวมของการพฒนาจะตองไมอยกวารอยละ 60
</div>
<div>
<span style="text-decoration: underline">หมายเหต</span>
ใหนำคะแนนรวมท 2
วนมารวมกนแลวตองไดคะแนนไมอยกวารอยละ 60
งถอวาผานการประเมนการทดลองปฏหนาทราชการ
</div>
</div>
</div>
</q-card>
</div>
</div>
<div class="col-12">
<q-separator size="3px" color="grey-2" />
</div>
<div class="col-12 row">
<div class="col-12 text-top0 items-center">
การลงชอเพอมอบหมายงานและรบมอบหมายงานในการทดลองปฏหนาทราชการ
</div>
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
ทดลองปฏหนาทราชการ
</div>
</div>
<div class="col-12 row q-col-gutter-md">
<div class="col-xs-12 col-sm-4">
<q-input
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="name"
label="ชื่อ-สกุล"
/>
</div>
<div class="col-xs-12 col-sm-4">
<q-input
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="position"
label="ตำแหน่ง"
/>
</div>
<div class="col-xs-12 col-sm-4">
<datepicker
menu-class-name="modalfix"
v-model="date1"
:locale="'th'"
autoApply
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
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
class="full-width datepicker"
:model-value="date1 != null ? date2Thai(date1) : null"
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>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
แลการทดลองปฏหนาทราชการ
</div>
<div class="col-12 row q-col-gutter-md">
<q-select
:options="OPcaretaker1"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="caretaker"
label="ผู้ดูแลคนที่ 1"
/>
<div class="col-xs-12 col-sm-4">
<datepicker
menu-class-name="modalfix"
v-model="date2"
:locale="'th'"
autoApply
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
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
class="full-width datepicker"
:model-value="date2 != null ? date2Thai(date2) : null"
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-select
2023-07-27 09:11:43 +07:00
:options="OPcaretaker"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
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"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
:readonly="routeName != 'probationWorkAdd'"
dense
s
borderless
:outlined="routeName == 'probationWorkAdd'"
class="full-width datepicker"
:model-value="date3 != null ? date2Thai(date3) : null"
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>
</div>
</div>
<div class="col-12 row">
<div class="col-12 text-top2 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
งคบบญชาผมอบหมายงาน
</div>
<div class="col-12 row q-col-gutter-md">
<q-select
:options="OPcaretaker1"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
v-model="commander"
label="ผู้บังคับบัญชา"
/>
<div class="col-xs-12 col-sm-4">
<datepicker
menu-class-name="modalfix"
v-model="date4"
:locale="'th'"
autoApply
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
:readonly="routeName != 'probationWorkAdd'"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
class="full-width datepicker"
:model-value="date4 != null ? date2Thai(date4) : null"
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>
</div>
</div>
</div>
</div>
<q-separator v-show="routeName == 'probationWorkAdd'" />
<div
v-show="routeName == 'probationWorkAdd'"
class="flex justify-end q-pa-sm q-gutter-sm"
>
2023-07-27 09:11:43 +07:00
<q-btn unelevated label="บันทึก" color="public" @click="saveData()" />
</div>
</q-card>
</div>
</template>
<script setup lang="ts">
import { useRouter } from "vue-router";
2023-07-27 09:11:43 +07:00
import { ref, computed, watch } from "vue";
2023-07-10 19:29:15 +07:00
import { useCounterMixin } from "@/stores/mixin";
2023-07-13 14:33:04 +07:00
// import type { QForm } from "quasar";
2023-07-27 09:11:43 +07:00
const val1 = ref([
{
id: 1,
text: "1.รัฐธรรมนูญ",
checked: false,
},
]);
const val3 = ref(false);
2023-07-13 14:33:04 +07:00
const router = useRouter();
2023-07-27 09:11:43 +07:00
const test = ref<string>("");
const ruleNote = ref<string>("");
2023-07-10 19:29:15 +07:00
const mixin = useCounterMixin();
const { date2Thai } = mixin;
const dateExam = ref<Date | null>(null);
const dateExam2 = ref<Date | null>(null);
2023-07-27 09:11:43 +07:00
const id = ref<number>();
const personal_id = ref<string>();
const knowledge_skill_map_no = ref<string[]>([]);
const round_no = ref<number>();
const date_start = ref<Date>();
const date_finish = ref<Date>();
const behavior_desc = ref<string>();
const other_desc = ref<object>({});
const other4_desc = ref<string>();
const other5_no1_desc = ref<object>({});
const other5_no2_desc = ref<object>({});
const experimenter_dated = ref<Date>();
const createdAt = ref<Date>();
const updatedAt = ref<Date>();
const clearDateExam = () => {
dateExam.value = null;
};
const clearDateExam2 = () => {
dateExam2.value = null;
};
const routeName = router.currentRoute.value.name;
2023-07-27 09:11:43 +07:00
const handleDateExamChange = (value: Date | null) => {
if (value) {
const newDate = new Date(value);
newDate.setMonth(newDate.getMonth() + 6);
dateExam2.value = newDate;
} else {
dateExam2.value = null;
}
};
watch(dateExam, (newDate, oldDate) => {
if (newDate && newDate !== oldDate) {
const newDate2 = new Date(newDate);
newDate2.setMonth(newDate2.getMonth() + 6);
dateExam2.value = newDate2;
}
});
const name = ref<string>("นายสมคิด ยอดใจ");
const position = ref<string>("นักจัดการงานทั่วไป");
2023-07-25 18:03:55 +07:00
const caretakerCount = ref<number>(2);
const caretakerMax = ref<number>(6);
const caretaker1 = ref<string>("");
const caretaker2 = ref<string>("");
const OPcaretaker = [
"นางสาวรัชภรณ์ ภักดี",
"นางสาวทวิดา กมลเวชชี",
"test1",
"test2",
"test3",
"test4",
];
const addCaretaker = () => {
caretakerCount.value++;
};
const getOptions = (item: number) => {
return OPcaretaker;
};
const resetCaretakers = () => {
2023-07-25 18:03:55 +07:00
caretakerCount.value = 2;
caretakers.value = Array(caretakerCount.value).fill("");
};
//-----------------(3.1)-----------//
const activityCount = ref<number>(2);
const activities = ref<string[]>(Array(activityCount.value).fill(""));
const goals = ref<string[]>(Array(activityCount.value).fill(""));
const addActivity = () => {
activityCount.value++;
};
const deleteactivity = (item: number) => {
activities.value.splice(item, 1);
goals.value.splice(item, 1);
if (activityCount.value > 2) {
activityCount.value--;
}
};
const activityArray = computed(() => {
return Array(activityCount.value).fill("");
});
const resetActivity = () => {
activityCount.value = 2;
activities.value = Array(activityCount.value).fill("");
goals.value = Array(activityCount.value).fill("");
};
//-----------------(3.2)-----------//
const knowledgeCount = ref<number>(3);
const knowledge = ref<string[]>(Array(knowledgeCount.value).fill(""));
const OPknowledge = ["1", "2", "3", "4"];
const addKnowledge = () => {
if (knowledgeCount.value < 6) {
knowledgeCount.value++;
}
};
const knowledgeArray = computed(() => {
return Array(knowledgeCount.value).fill("");
});
const getOpknowledge = (index: number) => {
return OPknowledge;
};
const deleteknowledge = (item: number) => {
knowledge.value.splice(item, 1);
if (knowledgeCount.value > 3) {
knowledgeCount.value--;
}
};
const productivityCount = ref<number>(1);
const Productivitys = ref<string[]>(Array(productivityCount.value).fill(""));
const goals1 = ref<string[]>(Array(productivityCount.value).fill(""));
const deleteProductivitys = (item: number) => {
Productivitys.value.splice(item, 1);
goals1.value.splice(item, 1);
if (productivityCount.value > 1) {
productivityCount.value--;
}
};
const addProductivity = () => {
productivityCount.value++;
};
const resetProductivity = () => {
productivityCount.value = 1;
Productivitys.value = Array(productivityCount.value).fill("");
goals1.value = Array(productivityCount.value).fill("");
};
const checkList21 = ref([
{
id: 1,
text: "2.1.1 กฎหมายว่าด้วยระเบียบบริหารราชการกรุงเทพมหานคร",
checked: false,
},
{
id: 2,
text: "2.1.2 กฎหมายว่าด้วยระเบียบบริหารราชการแผ่นดิน",
checked: false,
},
{ id: 3, text: "2.1.3 กฎหมายว่าด้วยลักษณะปกครองทองที่", checked: false },
{
id: 4,
text: "2.1.4 ระเบียบสำนักนายกรัฐมนตรี ว่าด้วยการรับฟังความคิดเห็นสาธารณะโดยวิธีประชาพิจารณ์ พ.ศ. ๒๕๓๙",
checked: false,
},
{
id: 5,
text: "2.1.5 ระเบียบสำนักนายกรัฐมนตรี ว่าด้วยการสร้างระบบบริหารกิจการบ้านเมืองและสังคมที่ดี พ.ศ. ๒๕๔๒",
checked: false,
},
{
id: 6,
text: "2.1.6 พระราชกฤษฏีกาว่าด้วยหลักเกณฑ์และวิธีการบริหารกิจการบ้านเมืองที่ดี พ.ศ. ๒๕๔๖",
checked: false,
},
]);
const checkList22 = ref([
{
id: 1,
text: "2.2.1 ระเบียบกรุงเทพมหานครว่าด้วยวิธีปฏิบัติงานสารบรรณ พ.ศ.๒๕๔๖",
checked: false,
},
{
id: 2,
text: "2.2.2 กฎหมายว่าด้วยวิธีปฏิบัติราชการทางปกครอง",
checked: false,
},
{
id: 3,
text: "2.2.3 กฎหมายว่าด้วยความรับผิดทางละเมิดของเจ้าหน้าที่",
checked: false,
},
{
id: 4,
text: "2.2.4 กฎหมายว่าด้วยการข้อมูลข่าวสารของทางราชการ",
checked: false,
},
{
id: 5,
text: "2.2.5 ระเบียบสำนักนายกรัฐมนตรีว่าด้วยงานสารบรรณ พ.ศ.๒๕๒๖",
checked: false,
},
{
id: 6,
text: "2.2.6 ระเบียบว่าด้วยการรักษาความลับของทางราชการ พ.ศ.๒๕๔๔",
checked: false,
},
]);
const checkList23 = ref([
{
id: 1,
text: "2.3.1กฎหมายว่าด้วยระเบียบข้าราชการกรุงเทพมหานครและบุคลากรกรุงเทพมหานคร/กฎ ก.ก./หลักเกณฑ์ วิธีการ/มติ ก.ก. ที่เกี่ยวข้อง",
checked: false,
},
{
id: 2,
text: "2.3.2 กฎหมายว่าด้วยระเบียบข้าราชการพลเรือนและกฎ ก.พ. ที่เกี่ยวข้อง",
checked: false,
},
]);
const checkList24 = ref([
{
id: 1,
text: "2.4.1 ข้อบัญญัติกรุงเทพมหานคร เรื่อง วิธีการงบประมาณ พ.ศ.๒๕๒๙ ซึ่งแก้ไขเพิ่มเติมโดย(ฉบับที่๒)พ.ศ.๒๕๓๓ และ(ฉบับที่๓)พ.ศ.๒๕๓๖",
checked: false,
},
{
id: 2,
text: "2.4.2 ระเบียบกรุงเทพมหานครว่าด้วยการรับเงิน การเบิกจ่ายเงิน การเก็บรักษาเงิน การนำส่งเงินและการตรวจเงิน(ฉบับที่๘) พ.ศ.๒๕๔๔ (ฉบับที่๙)พ.ศ.๒๕๔๘",
checked: false,
},
{
id: 3,
text: "2.4.3 ระเบียบกรุงเทพมหานครว่าด้วยค่าใช้จ่ายในการฝึกอบรบ พ.ศ.๒๕๔๑",
checked: false,
},
{
id: 4,
text: "2.4.4 พระราชบัญญัติวิธีการงบประมาณ พ.ศ.๒๕๐๒",
checked: false,
},
{
id: 5,
text: "2.4.5 ระเบียบคณะกรรมการการตรวจเงินแผ่นดินว่าด้วยวินัยทางงบประมาณและการคลัง พ.ศ.๒๕๔๔",
checked: false,
},
{
id: 6,
text: "2.4.6 กฎหมายว่าด้วยความผิดเกี่ยวกับการเสนอราคาต่อหน่วยของรัฐ",
checked: false,
},
{
id: 7,
text: "2.4.7 พระราชกฤษฎีกาการจ่ายเงินเดือน เงินปี บำเหน็จ บำนาญ และเงินอื่นในลักษณะเดียวกัน พ.ศ.๒๕๓๕",
checked: false,
},
{
id: 8,
text: "2.4.8 พระราชกฤษฎีกาค่าใช้จ่ายในการเดินทางไปราชการ พ.ศ.๒๕๒๖",
checked: false,
},
{
id: 9,
text: "2.4.9 ระเบียบกระทรวงการคลังว่าด้วยการเบิกจ่ายเบี้ยเลี้ยงเดินทาง และค่าเช่าที่พักในการเดินทางไปราชการ พ.ศ.๒๕๓๔ (ฉบับที่๙) พ.ศ.๒๕๔๔",
checked: false,
},
{
id: 10,
text: "2.4.10 ระเบียบสำนักนายกรัฐมนตรีว่าด้วยการพัสดุ พ.ศ.๒๕๓๕ (ฉบับที่๒) พ.ศ.๒๕๓๘ (ฉบับที่๓) พ.ศ.๒๕๓๙ (ฉบับที่๔) พ.ศ.๒๕๔๑ (ฉบับที่๕) พ.ศ.๒๕๔๒ (ฉบับที่๖) พ.ศ.๒๕๔๔",
checked: false,
},
{
id: 11,
text: "2.4.11 ระเบียบกระทรวงการคลัง ว่าด้วยค่าใช้จ่ายในการฝึกอบรมของส่วนราชการ พ.ศ.๒๕๔๕",
checked: false,
},
{
id: 12,
text: "2.4.12 ระเบียบกระทรวงการคลัง ว่าด้วยการเบิกค่าใช้จ่ายเกี่ยวกับการรักษาพยาบาลข้าราชการผู้ได้รับอันตราย หรือการป่วยเจ็บเพราะเหตุปฏิบัติราชการ พ.ศ.๒๕๔๗",
checked: false,
},
{
id: 13,
text: "2.4.13 ระเบียบกระทรวงการคลัง ว่าด้วยการเบิกเงินสวัสดิการเกี่ยวกับการศึกษาบุตร พ.ศ.๒๕๔๗",
checked: false,
},
{
id: 14,
text: "2.4.14 ประกาศกระทรวงการคลัง เรื่อง หลักเกณฑ์การจัดหาพัสดุ โดยการประมูลด้วยระบบอิเล็กทรอนิกส์ (e-Auction) พ.ศ.๒๕๔๘",
checked: false,
},
]);
const law = ref([]);
const listlaw = [
{ id: 1, label: "2.1.1 กฎหมายว่าด้วยระเบียบบริหารราชการกรุงเทพมหานคร" },
{ id: 2, label: "2.1.2 กฎหมายว่าด้วยระเบียบบริหารราชการเเผ่นดิน" },
{ id: 3, label: "2.1.3 กฎหมายว่าด้วยลักษณะปกครองทองที่" },
{
id: 4,
label:
"2.1.4 ระเบียบสำนักนายกรัฐมนตรี ว่าด้วยการรับฟังความคิดเห็นสาธารณะโดยวิธีประชาพิจาร์ณ พ.ศ. ๒๕๓๙",
},
{
id: 5,
label:
"2.1.5 ระเบียบสำนักนายกรัฐมนตรี ว่าด้วยการสร้างระบบบริหารกิจการบ้านเมืองเเละสังคมที่ดี พ.ศ. ๒๕๔๒",
},
{
id: 5,
label:
"2.1.6 พระราชกฤษฏีกาว่าด้วยหลักเกณฑ์เเละวิธีการบริหารกิจการบ้านเมืองที่ดี พ.ศ. ๒๕๔๖",
},
];
2023-07-27 09:11:43 +07:00
interface CheckboxItem {
id: number;
text: string;
checked: boolean;
}
const saveData = () => {
// สร้าง Object ที่เก็บข้อมูล Checkbox
const checkboxData: Record<string, CheckboxItem[]> = {
val1: val1.value.filter((item) => item.checked),
checkList21: checkList21.value.filter((item) => item.checked),
checkList22: checkList22.value.filter((item) => item.checked),
checkList23: checkList23.value.filter((item) => item.checked),
checkList24: checkList24.value.filter((item) => item.checked),
};
// แสดงข้อมูลใน Console
console.log("3.2 ข้อมูลติ๊ก", checkboxData);
};
const OtherLaw = ref<string>("");
const skill = ref<string>("ความรู้ความสามารถด้าน 1");
const skill2 = ref<string>("ความรู้ความสามารถด้าน 2");
const skill3 = ref<string>("ความรู้ความสามารถด้าน 3");
const skill4 = ref<string>("ความรู้ความสามารถด้าน 4");
const OPskill = [""];
const main = ref<string>("คุณธรรมจริยธรรม");
const main2 = ref<string>("การให้บริการที่ดี");
const main3 = ref<string>("การมุ่งผลสัมฤทธิ์");
const main4 = ref<string>("ทํางานเป็นทีม");
const main5 = ref<string>("การสั่งสมความเชี่ยวชาญในอาชีพ");
const OPmain = [""];
const group = ref<string>("");
const group2 = ref<string>("");
const group3 = ref<string>("");
const OPgroup = [""];
2023-07-10 19:29:15 +07:00
const Other = ref<string>("");
2023-07-10 19:29:15 +07:00
const commander = ref<string>("");
2023-07-10 19:29:15 +07:00
const date1 = ref<Date>(new Date());
const date2 = ref<Date>(new Date());
const date3 = ref<Date>(new Date());
const date4 = ref<Date>(new Date());
</script>
<style lang="scss" scoped>
.border_y {
border-left: 1px solid #d8d8d8;
border-right: 1px solid #d8d8d8;
2023-07-10 19:29:15 +07:00
}
.borderCheck {
border-bottom: 1px solid #d8d8d8;
}
.text-top2 {
font-weight: 500;
padding-bottom: 8px;
color: rgb(70, 68, 68);
}
.text-top0 {
font-weight: 600;
padding-bottom: 8px;
color: rgb(70, 68, 68);
}
.text-Hd {
font-weight: 600;
font-size: 1rem;
padding-bottom: 5px;
color: #02a998;
}
.bin {
align-items: center;
justify-content: center;
}
</style>