Merge branch 'develop' of github.com:Frappet/bma-ehr-frontend into me

This commit is contained in:
Thanit Konmek 2023-08-24 17:06:29 +07:00
commit b99d8c7360
19 changed files with 7837 additions and 5814 deletions

5616
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -27,6 +27,10 @@ export default {
// record
noteround: () => `${insignia}/request/note`,
requestDocNote: (id:string) => `${insignia}/request/note/doc/${id}`,
noteSearch: () => `${insignia}/request/note/search`,
noteAdd: (insigniaId: string) => `${insignia}/request/note/${insigniaId}`,
noteByid: (id: string) => `${insignia}/request/note/${id}`,
};

View file

@ -757,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">
@ -799,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>
@ -933,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>
@ -1089,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">
@ -1103,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">
@ -1117,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">
@ -1131,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">
@ -1213,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">
@ -1230,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">
@ -1244,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">
@ -1258,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">
@ -1690,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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,55 @@
import { defineStore } from "pinia";
import { ref, } from "vue";
export const useResultDataStore = defineStore("insignia", () => {
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