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 // record
noteround: () => `${insignia}/request/note`, noteround: () => `${insignia}/request/note`,
requestDocNote: (id:string) => `${insignia}/request/note/doc/${id}`, 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> <template>
<q-form ref="myForm"> <q-form ref="myForm">
<div class="q-pb-md"> <div class="q-pa-sm">
<div class="toptitle text-dark col-12 row items-center"> <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)" <q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm" @click="router.go(-1)"
v-if="routeName == 'probationWorkAdd'" /> v-if="routeName == 'probationWorkAdd'" />
<div v-if="routeName == 'probationWorkAdd'"> <div v-if="routeName == 'probationWorkAdd'">
เพมแบบมอบหมายงานการทดลองปฏหนาทราชการ เพมแบบมอบหมายงานการทดลองปฏหนาทราชการ
</div> </div>
<div v-else class="col-12 row"> <div v-else class="col-12 row q-gutter-md">
<div>แบบมอบหมายงานการทดลองปฏหนาทราชการ</div> <div>แบบมอบหมายงานการทดลองปฏหนาทราชการ</div>
<q-space /> <!-- <q-space /> -->
<div v-if="status == false"> <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-tooltip>แกไขขอม</q-tooltip>
</q-btn> </q-btn>
</div> </div>
<div v-else> <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-tooltip>ยกเล</q-tooltip>
</q-btn> </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-tooltip>นทกขอม</q-tooltip>
</q-btn> </q-btn>
</div> </div>
</div> </div>
</div> </div>
<q-card :bordered="routeName == 'probationWorkAdd'" class="col-12 text-dark"> <div class="col-12 text-dark">
<div class="row col-12 q-pa-lg"> <div class="row col-12">
<div class="row col-12 q-gutter-lg"> <div class="row col-12 q-gutter-lg">
<div class="col-12 row"> <div class="col-12 row">
<div class="col-12 text-top0 items-center"> <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" <q-input :rules="[(val) => !!val || 'กรุณากรอกตำเเหน่ง']" hide-bottom-space :readonly="status != true"
dense borderless :outlined="status == true" v-model="position" label="ตำแหน่ง" /> dense borderless :outlined="status == true" v-model="position" label="ตำแหน่ง" />
</div> </div>
<div class="col-12 text-top0 items-center"> <div class="col-12 row">
ระยะเวลาการทดลองปฎหนาทราชการ <div class="col-12 text-top0 items-center">
</div> ระยะเวลาการทดลองปฎหนาทราชการ
<div class="col-xs-12 col-sm-4"> </div>
<q-select :rules="[(val) => !!val || 'กรุณาเลือกระยะเวลา']" hide-bottom-space :options="monthOp" <div class="col-12 row q-col-gutter-md">
class="col-xs-12 col-sm-6" :readonly="status != true" dense borderless option-label="label" <div class="col-xs-12 col-sm-4">
option-value="value" :outlined="status == true" v-model="monthSelect" :label="`ระยะเวลากี่เดือน`" /> <q-select :rules="[(val) => !!val || 'กรุณาเลือกระยะเวลา']" hide-bottom-space :options="monthOp"
</div> class="col-xs-12 col-sm-6" :readonly="status != true" dense borderless option-label="label"
<div class="col-xs-12 col-sm-4"> option-value="value" :outlined="status == true" v-model="monthSelect" :label="`ระยะเวลากี่เดือน`" />
<datepicker menu-class-name="modalfix" v-model="date_start" :locale="'th'" autoApply borderless </div>
:enableTimePicker="false" week-start="0" :readonly="status != true"> <div class="col-xs-12 col-sm-4">
<template #year="{ year }"> <datepicker menu-class-name="modalfix" v-model="date_start" :locale="'th'" autoApply borderless
{{ year + 543 }} :enableTimePicker="false" week-start="0" :readonly="status != true">
</template> <template #year="{ year }">
<template #year-overlay-value="{ value }"> {{ year + 543 }}
{{ parseInt(value + 543) }} </template>
</template> <template #year-overlay-value="{ value }">
<template #trigger> {{ parseInt(value + 543) }}
<q-input dense borderless :readonly="status != true" :outlined="status == true" </template>
:rules="[(val) => !!val || 'กรุณาเลือกวันที่']" hide-bottom-space <template #trigger>
class="full-width datepicker q-mb-md" :model-value="date_start != null ? date2Thai(date_start) : undefined <q-input dense borderless :readonly="status != true" :outlined="status == true"
" :label="`${'ตั้งเเต่วันที่'}`" clearable @clear="clearDateExam"> :rules="[(val) => !!val || 'กรุณาเลือกวันที่']" hide-bottom-space
</q-input> class="full-width datepicker" :model-value="date_start != null ? date2Thai(date_start) : undefined
</template> " :label="`${'ตั้งเเต่วันที่'}`" clearable @clear="clearDateExam">
</datepicker> </q-input>
</div> </template>
<div class="col-xs-12 col-sm-4"> </datepicker>
<datepicker menu-class-name="modalfix" v-model="date_finish" :locale="'th'" autoApply borderless </div>
:readonly="isDatePicker2Readonly || status != true" :enableTimePicker="false" week-start="0"> <div class="col-xs-12 col-sm-4">
<template #year="{ year }"> <datepicker menu-class-name="modalfix" v-model="date_finish" :locale="'th'" autoApply borderless
{{ year + 543 }} :readonly="isDatePicker2Readonly || status != true" :enableTimePicker="false" week-start="0">
</template> <template #year="{ year }">
<template #year-overlay-value="{ value }"> {{ year + 543 }}
{{ parseInt(value + 543) }} </template>
</template> <template #year-overlay-value="{ value }">
<template #trigger> {{ parseInt(value + 543) }}
<q-input dense borderless :outlined="status == true" readonly class="full-width datepicker q-mb-md" </template>
:model-value="date_finish != null <template #trigger>
? date2Thai(date_finish) <q-input hide-bottom-space dense borderless :outlined="status == true" readonly class="full-width datepicker"
: undefined :model-value="date_finish != null
" :label="`${'ถึงวันที่'}`" clearable @clear="clearDateExam2"> ? date2Thai(date_finish)
</q-input> : undefined
</template> " :label="`${'ถึงวันที่'}`" clearable @clear="clearDateExam2">
</datepicker> </q-input>
</template>
</datepicker>
</div>
</div>
</div> </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 v-for="(item, index) in knowledgeArray" :key="index" class="col-12 row q-col-gutter-sm">
<div class="col-11 q-my-xs"> <div class="col-11 q-my-xs">
<q-select :option-label="(item) => `${item.title}-${item.description}` <q-select :option-label="(item) => `${item.title}-${item.description}`
" option-value="id" map-options :rules="index < 3 " option-value="id" map-options :rules="index < 3? [(val) => !!val || 'กรุณาเลือกความสามารถ']: []"
? [(val) => !!val || 'กรุณาเลือกความสามารถ'] hide-bottom-space :options="OPknowledge" class="bg-white" :readonly="status != true" dense
: []
" hide-bottom-space :options="OPknowledge" class="bg-white" :readonly="status != true" dense
borderless :outlined="status == true" v-model="knowledge[index]" :label="`ความรู้ความสามารถในการปฏิบัติงาน ${index + 1 borderless :outlined="status == true" v-model="knowledge[index]" :label="`ความรู้ความสามารถในการปฏิบัติงาน ${index + 1
}`" /> }`" />
</div> </div>
@ -1089,9 +1091,8 @@ watch(knowledge.value, () => {
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select :option-label="(item) => <q-select :option-label="(item) =>
`${item.title} - ${item.level_description}` `${item.title} - ${item.level_description}`
" option-value="id" hide-bottom-space :rules="[ " option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',]"
(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ', :options="OPcomputer" class="bg-white" :readonly="status != true" dense borderless
]" :options="OPcomputer" class="bg-white" :readonly="status != true" dense borderless
map-options :outlined="status == true" v-model="skill" label="ด้านที่ 1"> map-options :outlined="status == true" v-model="skill" label="ด้านที่ 1">
<template v-slot:selected-item="scope"> <template v-slot:selected-item="scope">
<div class="ellipsis-2-lines"> <div class="ellipsis-2-lines">
@ -1103,9 +1104,8 @@ watch(knowledge.value, () => {
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select ellipsis-2-lines :option-label="(item) => <q-select ellipsis-2-lines :option-label="(item) =>
`${item.title} - ${item.level_description}` `${item.title} - ${item.level_description}`
" option-value="id" map-options hide-bottom-space :rules="[ " option-value="id" map-options hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',]"
(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ', :options="OPenglish" class="bg-white" :readonly="status != true" dense borderless
]" :options="OPenglish" class="bg-white" :readonly="status != true" dense borderless
:outlined="status == true" v-model="skill2" label="ด้านที่ 2"> :outlined="status == true" v-model="skill2" label="ด้านที่ 2">
<template v-slot:selected-item="scope"> <template v-slot:selected-item="scope">
<div class="ellipsis-2-lines"> <div class="ellipsis-2-lines">
@ -1117,9 +1117,8 @@ watch(knowledge.value, () => {
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select :option-label="(item) => <q-select :option-label="(item) =>
`${item.title} - ${item.level_description}` `${item.title} - ${item.level_description}`
" option-value="id" hide-bottom-space :rules="[ " option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',]"
(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ', :options="OPinfomation" class="bg-white" :readonly="status != true" dense map-options
]" :options="OPinfomation" class="bg-white" :readonly="status != true" dense map-options
borderless :outlined="status == true" v-model="skill3" label="ด้านที่ 3"> borderless :outlined="status == true" v-model="skill3" label="ด้านที่ 3">
<template v-slot:selected-item="scope"> <template v-slot:selected-item="scope">
<div class="ellipsis-2-lines"> <div class="ellipsis-2-lines">
@ -1131,9 +1130,8 @@ watch(knowledge.value, () => {
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select :option-label="(item) => <q-select :option-label="(item) =>
`${item.title} - ${item.level_description}` `${item.title} - ${item.level_description}`
" option-value="id" hide-bottom-space :rules="[ " option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ',]"
(val) => !!val || 'กรุณาเลือกความรู้ความสามารถ', :options="OPresourse" class="bg-white" :readonly="status != true" dense map-options
]" :options="OPresourse" class="bg-white" :readonly="status != true" dense map-options
borderless :outlined="status == true" v-model="skill4" label="ด้านที่ 4"> borderless :outlined="status == true" v-model="skill4" label="ด้านที่ 4">
<template v-slot:selected-item="scope"> <template v-slot:selected-item="scope">
<div class="ellipsis-2-lines"> <div class="ellipsis-2-lines">
@ -1213,8 +1211,8 @@ watch(knowledge.value, () => {
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะ']" :options="filterMain(OPmain, [main, main2, main3, main4]) <q-select hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะ']" :options="filterMain(OPmain, [main, main2, main3, main4])
" :option-label="(item) => `${item.title} - ${item.description}` " :option-label="(item) => `${item.title} - ${item.description}`"
" option-value="id" class="bg-white" :readonly="status != true" dense map-options borderless option-value="id" class="bg-white" :readonly="status != true" dense map-options borderless
:outlined="status == true" v-model="main5" label="ตัวที่ 5"> :outlined="status == true" v-model="main5" label="ตัวที่ 5">
<template v-slot:selected-item="scope"> <template v-slot:selected-item="scope">
<div class="ellipsis-2-lines"> <div class="ellipsis-2-lines">
@ -1230,9 +1228,8 @@ watch(knowledge.value, () => {
<div class="col-12 row q-col-gutter-sm"> <div class="col-12 row q-col-gutter-sm">
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select :option-label="(item) => `${item.title} - ${item.description}` <q-select :option-label="(item) => `${item.title} - ${item.description}`
" option-value="id" hide-bottom-space :rules="[ " option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',]"
(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน', :options="filterData(OPgroup, [group2, group3])" class="bg-white"
]" :options="filterData(OPgroup, [group2, group3])" class="bg-white"
:readonly="status != true" dense borderless map-options :outlined="status == true" :readonly="status != true" dense borderless map-options :outlined="status == true"
v-model="group" label="ตัวที่ 1"> v-model="group" label="ตัวที่ 1">
<template v-slot:selected-item="scope"> <template v-slot:selected-item="scope">
@ -1244,9 +1241,8 @@ watch(knowledge.value, () => {
</div> </div>
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select :option-label="(item) => `${item.title} - ${item.description}` <q-select :option-label="(item) => `${item.title} - ${item.description}`
" option-value="id" hide-bottom-space :rules="[ " option-value="id" hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',]"
(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน', :options="filterData(OPgroup, [group, group3])" class="bg-white"
]" :options="filterData(OPgroup, [group, group3])" class="bg-white"
:readonly="status != true" dense borderless map-options :outlined="status == true" :readonly="status != true" dense borderless map-options :outlined="status == true"
v-model="group2" label="ตัวที่ 2"> v-model="group2" label="ตัวที่ 2">
<template v-slot:selected-item="scope"> <template v-slot:selected-item="scope">
@ -1258,9 +1254,8 @@ watch(knowledge.value, () => {
</div> </div>
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select :option-label="(item) => `${item.title} - ${item.description}` <q-select :option-label="(item) => `${item.title} - ${item.description}`
" option-value="id" map-options hide-bottom-space :rules="[ " option-value="id" map-options hide-bottom-space :rules="[(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน',]"
(val) => !!val || 'กรุณาเลือกสมรรถนะประจํากลุ่มงาน', :options="filterData(OPgroup, [group, group2])" class="bg-white"
]" :options="filterData(OPgroup, [group, group2])" class="bg-white"
:readonly="status != true" dense borderless :outlined="status == true" v-model="group3" :readonly="status != true" dense borderless :outlined="status == true" v-model="group3"
label="ตัวที่ 3"> label="ตัวที่ 3">
<template v-slot:selected-item="scope"> <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"> <div v-show="routeName == 'probationWorkAdd'" class="flex justify-end q-pa-sm q-gutter-sm">
<q-btn unelevated label="บันทึก" color="public" @click="saveData(personalId)" /> <q-btn unelevated label="บันทึก" color="public" @click="saveData(personalId)" />
</div> </div>
</q-card> </div>
</div> </div>
</q-form> </q-form>
</template> </template>

View file

@ -262,35 +262,31 @@ const putformData = () => {
<template> <template>
<q-card class="my-card" flat bordered> <q-card class="my-card" flat bordered>
<q-item> <q-toolbar>
<q-item-section> <div
<q-toolbar> class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md"
<div >
class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md" <q-btn
> icon="mdi-arrow-left"
<q-btn unelevated
icon="mdi-arrow-left" round
unelevated dense
round flat
dense color="primary"
flat class="q-mr-sm"
color="primary" @click="router.go(-1)"
class="q-mr-sm" />
@click="router.go(-1)" การทดลองปฏหนาทราชการของ {{ person.name }}
/> </div>
การทดลองปฏหนาทราชการของ {{ person.name }} </q-toolbar>
</div>
</q-toolbar>
</q-item-section>
</q-item>
<q-separator /> <q-separator />
<q-card-section> <q-card-section>
<q-separator vertical /> <div class="row col-12 no-margin q-px-md q-pt-sm">
<q-card-section class="col-4"> <div class="toptitle text-dark col-12 row items-center">
<div class="row col-12 q-gutter-lg no-margin"> <div>แบบประเมนผล (งคบบญชา)</div>
<div class="toptitle text-dark col-12 row items-center"> </div>
<div>แบบประเมนผล (งคบบญชา)</div>
</div> <div class="row col-12 q-gutter-lg">
<div class="col-12 row"> <div class="col-12 row">
<div class="col-12 text-top0 row items-center"> <div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <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">{{ <span class="text-black q-px-sm">{{
date2Thai(assign.date_start) date2Thai(assign.date_start)
}}</span> }}</span>
งวนท งวนท
<span class="text-black q-px-sm">{{ <span class="text-black q-px-sm">{{
date2Thai(assign.date_finish) date2Thai(assign.date_finish)
}}</span> }}</span>
</div> </div>
<div class="col-12 text-top0 row items-center"> <div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <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">{{ <span class="text-black q-px-sm">{{
date2Thai(start_date) date2Thai(start_date)
@ -327,7 +323,7 @@ const putformData = () => {
</div> </div>
</div> </div>
<div class="col-12 row no-margin"> <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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -367,7 +363,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -407,7 +403,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -447,7 +443,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -487,7 +483,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -528,7 +524,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -568,7 +564,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -590,7 +586,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section class="q-ml-md"> <q-item-section class="q-ml-md">
@ -1038,8 +1034,8 @@ const putformData = () => {
</div> </div>
<!-- Footer --> <!-- Footer -->
<div class="row col-12 q-gutter-lg no-margin"> <div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-12 row"> <div class="col-xs-12 col-sm-11 row">
<div class="col-12 text-top2 row items-center"> <div class="col-12 text-top2 row items-center">
งคบบญชา งคบบญชา
</div> </div>
@ -1099,8 +1095,12 @@ const putformData = () => {
</div> </div>
</div> </div>
</div> </div>
<div class="col-12">
<q-separator size="3px" color="grey-2" />
</div>
<!-- <Footer /> --> <!-- <Footer /> -->
<q-toolbar class="text-primary"> <div class="row col-12">
<q-space /> <q-space />
<q-btn <q-btn
label="บันทึก" label="บันทึก"
@ -1108,9 +1108,9 @@ const putformData = () => {
@click="savaForm" @click="savaForm"
v-if="status" v-if="status"
/> />
</q-toolbar> </div>
</div> </div>
</q-card-section> </div>
</q-card-section> </q-card-section>
</q-card> </q-card>
</template> </template>

View file

@ -358,26 +358,21 @@ const putformData = () => {
<template> <template>
<q-card class="my-card" flat bordered> <q-card class="my-card" flat bordered>
<q-item> <q-toolbar>
<q-item-section> <div class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md">
<q-toolbar> <q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm"
<div class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md"> @click="router.go(-1)" />
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm" การทดลองปฏหนาทราชการของ {{ person.name }}
@click="router.go(-1)" /> </div>
การทดลองปฏหนาทราชการของ {{ person.name }} </q-toolbar>
</div>
</q-toolbar>
</q-item-section>
</q-item>
<q-separator /> <q-separator />
<q-card-section> <q-card-section >
<q-separator vertical /> <div class="row col-12 no-margin q-px-md q-pt-sm">
<q-card-section class="col-4"> <div class="toptitle text-dark col-12 row items-center">
<div class="row col-12 q-gutter-lg no-margin"> <div>แบบประเมนผล (คณะกรรมการ)</div>
<div class="toptitle text-dark col-12 row items-center"> </div>
<div>แบบประเมนผล (คณะกรรมการ)</div>
</div> <div class="row col-12 q-gutter-lg">
<div class="col-12 row"> <div class="col-12 row">
<div class="col-12 text-top0 row items-center"> <div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <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">{{ <span class="text-black q-px-sm">{{
date2Thai(assign.date_start) date2Thai(assign.date_start)
}}</span> }}</span>
งวนท งวนท
<span class="text-black q-px-sm">{{ <span class="text-black q-px-sm">{{
date2Thai(assign.date_finish) date2Thai(assign.date_finish)
}}</span> }}</span>
</div> </div>
<div class="col-12 text-top0 row items-center"> <div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <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">{{ <span class="text-black q-px-sm">{{
date2Thai(start_date) date2Thai(start_date)
@ -414,7 +409,7 @@ const putformData = () => {
</div> </div>
</div> </div>
<div class="col-12 row no-margin"> <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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -446,7 +441,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -479,7 +474,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -511,7 +506,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -527,7 +522,7 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section class="q-ml-md"> <q-item-section class="q-ml-md">
@ -562,24 +557,13 @@ const putformData = () => {
</q-item> </q-item>
</q-list> </q-list>
</q-card> </q-card>
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg">
<q-list dense> <div class="text-top0 col-xs-12 col-sm-11 q-px-lg">
<q-item dense tag="label" v-ripple> <div class="row col-12 justify-between q-pa-sm ">
<q-item-section> <div class="text-black">คะแนนรวมผลสมฤทธของการทดลองฯ</div>
<q-item-label> คะแนนรวมผลสมฤทธของการทดลองฯ</q-item-label> <div class="text-weight-bold text-black">{{ score1 }}</div>
</q-item-section> </div>
<q-item-section side> </div>
<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> </div>
<!-- Part 2 --> <!-- Part 2 -->
@ -741,31 +725,16 @@ const putformData = () => {
</q-list> </q-list>
</q-card> </q-card>
</div> </div>
<div class="col-12 row"> <div class="text-top0 col-xs-12 col-sm-11 q-pt-sm q-px-md q-my-none">
<q-card class="text-top0 col-12 q-pa-sm q-pl-lg"> <div class="row col-12 justify-between q-py-sm ">
<q-list dense> <div class="text-black">คะแนนรวมพฤตกรรมการปฎราชการ</div>
<q-item dense tag="label" v-ripple> <div class="text-weight-bold text-black">{{ score2 }}</div>
<q-item-section> </div>
<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> </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 row justify-center">
<div class="col-12 text-top0 items-center"> <div class="col-12 text-top0 items-center">
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar> <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>
<q-item-section side v-if="percent_score1 > 60"> <q-item-section side v-if="percent_score1 > 60">
าน(งกวารอยละ 60) าน (งกวารอยละ 60)
</q-item-section> </q-item-section>
<q-item-section side v-else> <q-item-section side v-else>
ไมาน(ำกวารอยละ 60) ไมาน (ำกวารอยละ 60)
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
@ -830,10 +799,10 @@ const putformData = () => {
</q-item-section> </q-item-section>
<q-item-section side v-if="percent_score2 > 60"> <q-item-section side v-if="percent_score2 > 60">
าน(งกวารอยละ 60) าน (งกวารอยละ 60)
</q-item-section> </q-item-section>
<q-item-section side v-else> <q-item-section side v-else>
ไมาน(ำกวารอยละ 60) ไมาน (ำกวารอยละ 60)
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> </q-list>
@ -842,7 +811,7 @@ const putformData = () => {
<q-list dense> <q-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <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-section> <q-item-section>
<q-item-label style="color: gray"> <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> <q-avatar class="bg-grey-2 q-mr-sm" size="28px">4</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ การพฒนาผทดลองปฏหนาทราชการ
</div> </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"> <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-8">1. การปฐมนเทศ</div>
<div class="col"> <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>
<div class="col"> <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>
</div> </div>
<q-separator class="q-my-xs" /> <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-8">2. การเรยนรวยตนเอง</div>
<div class="col"> <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>
<div class="col"> <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>
</div> </div>
<q-separator class="q-my-xs" /> <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-8">3. การอบรมสมนารวมก</div>
<div class="col"> <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>
<div class="col"> <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>
</div> </div>
<q-separator class="q-my-xs" /> <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"> <div class="col-8">
4. การอบรมอ ตามทหนวยงานกำหนด (าม) 4. การอบรมอ ตามทหนวยงานกำหนด (าม)
</div> </div>
<div class="col"> <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>
<div class="col"> <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>
</div> </div>
<!-- <q-list dense> <!-- <q-list dense>
@ -1025,23 +995,20 @@ const putformData = () => {
</q-item-section> </q-item-section>
</q-item> </q-item>
</q-list> --> </q-list> -->
</q-card> <q-separator class="q-my-xs" />
<q-card class="text-top0 col-12"> <div class="col-xs-12 col-sm-11 col-md-11 q-my-sm">
<div class="col-xs-12 col-sm-11 col-md-11 q-pa-sm"> <div class="row q-gutter-md q-pl-sm">
<div class="row q-gutter-md"> <div class="col-8 text-weight-medium"><q-item-label> ผลคะแนนรวม</q-item-label></div>
<div class="col-8"> <div class="col q-pl-md">{{ score4 }}</div>
<q-item-label> ผลคะแนนรวม</q-item-label> <div class="col q-pl-md">{{ score5 }}</div>
</div>
<div class="col">{{ score4 }}</div>
<div class="col">{{ score5 }}</div>
</div> </div>
</div> </div>
</q-card> </q-card>
</div> </div>
</div> </div>
<div class="row col-12 q-gutter-lg no-margin"> <div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-12 row justify-center"> <div class=" col-xs-12 col-sm-11 row justify-center">
<div class="col-12 text-top0 items-center"> <div class="col-12 text-top0 items-center">
<!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> --> <!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> -->
สรปผลการพฒนา สรปผลการพฒนา
@ -1054,8 +1021,8 @@ const putformData = () => {
</div> </div>
</div> </div>
<div class="row col-12 q-gutter-lg no-margin"> <div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-12 row justify-center"> <div class=" col-xs-12 col-sm-11 row justify-center">
<div class="col-12 text-top0 items-center"> <div class="col-12 text-top0 items-center">
<!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> --> <!-- <q-avatar class="bg-grey-2 q-mr-sm" size="28px">5</q-avatar> -->
สรปผล การประเมนผลทดลองปฎหนาทราชการ สรปผล การประเมนผลทดลองปฎหนาทราชการ
@ -1070,13 +1037,13 @@ const putformData = () => {
<!-- Footer --> <!-- Footer -->
<!-- <Footer /> --> <!-- <Footer /> -->
<div class="row col-12 q-gutter-lg no-margin"> <div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-12 row"> <div class="col-xs-12 col-sm-11 ">
<div class="col-12 text-top2 row items-center"> <div class="col-12 text-top2 row items-center">
งคบบญชาผมอบหมายงาน งคบบญชาผมอบหมายงาน
</div> </div>
<div class="col-12 row q-col-gutter-md"> <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 /> disable />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'" autoApply borderless <datepicker menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'" autoApply borderless
@ -1088,7 +1055,7 @@ const putformData = () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <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) ? date2Thai(dateAutherise)
: null : null
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"> " :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
@ -1100,9 +1067,7 @@ const putformData = () => {
</template> </template>
</datepicker> </datepicker>
</div> </div>
</div> <q-select hide-bottom-space class="col-xs-12 col-sm-8" dense v-model="mentors[0].name" outlined label="ผู้บังคับบัญชา"
<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="ผู้บังคับบัญชา"
disable /> disable />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker :readonly="!status" menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'" <datepicker :readonly="!status" menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'"
@ -1114,7 +1079,7 @@ const putformData = () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <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) ? date2Thai(dateAutherise)
: null : null
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"> " :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
@ -1126,10 +1091,7 @@ const putformData = () => {
</template> </template>
</datepicker> </datepicker>
</div> </div>
</div> <q-select hide-bottom-space class="col-xs-12 col-sm-8" dense v-model="mentors[1].name" outlined label="ผู้บังคับบัญชา" disable />
<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 />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker :readonly="!status" menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'" <datepicker :readonly="!status" menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'"
autoApply borderless :enableTimePicker="false" week-start="0"> autoApply borderless :enableTimePicker="false" week-start="0">
@ -1140,7 +1102,7 @@ const putformData = () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <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) ? date2Thai(dateAutherise)
: null : null
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"> " :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
@ -1156,8 +1118,8 @@ const putformData = () => {
</div> </div>
</div> </div>
<div class="row col-12 q-gutter-lg no-margin"> <div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-12 row"> <div class="col-xs-12 col-sm-11 ">
<div class="col-12 text-top2 row items-center">คณะกรรมการ</div> <div class="col-12 text-top2 row items-center">คณะกรรมการ</div>
<div class="col-12 row q-col-gutter-md"> <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 /> <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>
</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-space />
<q-btn label="บันทึก" color="secondary" @click="savaForm" v-if="status" /> <q-btn
</q-toolbar> label="บันทึก"
color="secondary"
@click="savaForm"
v-if="status"
/>
</div>
</div> </div>
</q-card-section> </div>
</q-card-section> </q-card-section>
</q-card> </q-card>
</template> </template>

View file

@ -152,13 +152,14 @@ const postData = async () => {
</script> </script>
<template> <template>
<div class="row col-12 q-ma-xs"> <div class="row col-12">
<div class="toptitle text-dark col-12 row items-center"> <div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div>แบบรายงานการประเมนฯ</div> <div>แบบรายงานการประเมนฯ</div>
<q-space /> <!-- <q-space /> -->
<div v-if="action == 'edit'"> <div v-if="action == 'edit'">
<div v-if="status == false"> <div v-if="status == false">
<q-btn <q-btn
dense
flat flat
round round
color="primary" color="primary"
@ -169,12 +170,14 @@ const postData = async () => {
</q-btn> </q-btn>
</div> </div>
<div v-else> <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-tooltip>ยกเล</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
dense
flat flat
round round
class="q-ml-sm"
color="public" color="public"
@click="saveEdit(assignId)" @click="saveEdit(assignId)"
icon="mdi-content-save-outline" icon="mdi-content-save-outline"
@ -295,11 +298,7 @@ const postData = async () => {
v-model="develop" v-model="develop"
label="การพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ" label="การพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ"
/> />
</div> </div>
</div>
</div>
<div class="col-12 row q-mt-lg">
<div class="col-12 row q-col-gutter-md">
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select <q-select
:rules="[ :rules="[
@ -344,7 +343,7 @@ const postData = async () => {
<q-separator size="3px" color="grey-2" /> <q-separator size="3px" color="grey-2" />
</div> </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 row">
<div class="col-12 text-top2 row items-center"> <div class="col-12 text-top2 row items-center">
ประธานคณะกรรมการประเมนผลการปฏหนาทราชการ ประธานคณะกรรมการประเมนผลการปฏหนาทราชการ
@ -356,7 +355,7 @@ const postData = async () => {
v-model="director_id" v-model="director_id"
outlined outlined
:options="commander" :options="commander"
label="" label="ชื่อ-นามสกุล"
option-label="name" option-label="name"
disable disable
/> />
@ -415,9 +414,9 @@ const postData = async () => {
dense dense
v-model="director_id2" v-model="director_id2"
outlined outlined
label="ชื่อ-นามสกุล"
:disable="!status" :disable="!status"
:options="optionDirector" :options="optionDirector"
label=""
option-label="name" option-label="name"
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
@ -477,9 +476,9 @@ const postData = async () => {
dense dense
v-model="director_id3" v-model="director_id3"
outlined outlined
label="ชื่อ-นามสกุล"
:options="optionDirector" :options="optionDirector"
:disable="!status" :disable="!status"
label=""
option-label="name" option-label="name"
/> />
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
@ -530,13 +529,12 @@ const postData = async () => {
</div> </div>
</q-form> </q-form>
<q-toolbar class="text-primary"> <q-toolbar class="text-primary" v-if="action == 'add'">
<q-space /> <q-space />
<q-btn <q-btn
label="บันทึก" label="บันทึก"
color="secondary" color="secondary"
@click="savaForm" @click="savaForm"
v-if="action == 'add'"
/> />
</q-toolbar> </q-toolbar>
</div> </div>

View file

@ -319,25 +319,17 @@ const saveformdata = async (data: any) => {
<template> <template>
<q-card class="my-card" flat bordered> <q-card class="my-card" flat bordered>
<q-item> <q-toolbar>
<q-item-section> <div class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md">
<q-toolbar> <q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm"
<div class="text-h6 text-weight-medium text-dark col-12 row items-center q-py-md"> @click="router.go(-1)" />
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm" การทดลองปฏหนาทราชการของ {{ person.name }}
@click="router.go(-1)" /> </div>
การทดลองปฏหนาทราชการของ {{ person.name }} </q-toolbar>
</div>
</q-toolbar>
</q-item-section>
</q-item>
<q-separator /> <q-separator />
<q-card-section> <q-card-section>
<q-separator vertical /> <div class="row col-12 no-margin q-px-md q-pt-md">
<div class="row col-12 q-gutter-lg">
<q-card-section class="col-4">
<div class="row col-12 q-gutter-lg no-margin">
<div class="col-12 row"> <div class="col-12 row">
<div class="col-12 text-top0 row items-center"> <div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <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">{{ <span class="text-black q-px-sm">{{
date2Thai(assign.date_start) date2Thai(assign.date_start)
}}</span> }}</span>
งวนท งวนท
<span class="text-black q-px-sm">{{ <span class="text-black q-px-sm">{{
date2Thai(assign.date_finish) date2Thai(assign.date_finish)
}}</span> }}</span>
</div> </div>
<div class="col-12 text-top0 row items-center"> <div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" /> <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">{{ <span class="text-black q-px-sm">{{
date2Thai(start_date) date2Thai(start_date)
@ -411,10 +403,7 @@ const saveformdata = async (data: any) => {
</q-card> </q-card>
</div> </div>
<div class="col-12 row"> <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 class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
ผลผลตของงานทเกดขนจร ผลผลตของงานทเกดขนจร
</div> </div>
@ -423,8 +412,7 @@ const saveformdata = async (data: any) => {
<q-item dense tag="label" v-ripple v-if="i < checkArray"> <q-item dense tag="label" v-ripple v-if="i < checkArray">
<q-item-section> <q-item-section>
<!-- <q-item-label>{{ list.label }}</q-item-label> --> <!-- <q-item-label>{{ list.label }}</q-item-label> -->
<q-input outlined dense v-model="evaluate_ouptut[i].text" <q-input outlined dense v-model="evaluate_ouptut[i].text" lazy-rules autogrow
class="col-xs-12 col-sm-11 col-md-10 offset-md-1" lazy-rules type="textarea"
label="ผลผลิตของงานที่เกิดขึ้นจริง" hide-bottom-space :row="1" :rules="evaluate_ouptutRules" /> label="ผลผลิตของงานที่เกิดขึ้นจริง" hide-bottom-space :row="1" :rules="evaluate_ouptutRules" />
</q-item-section> </q-item-section>
<q-item-section side> <q-item-section side>
@ -448,13 +436,13 @@ const saveformdata = async (data: any) => {
</q-rating> </q-rating>
</q-item-section> </q-item-section>
</q-item> </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-list>
</q-card> </q-card>
</div> </div>
<div class="col-12 row"> <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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -486,7 +474,7 @@ const saveformdata = async (data: any) => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -518,7 +506,7 @@ const saveformdata = async (data: any) => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -550,7 +538,7 @@ const saveformdata = async (data: any) => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -582,7 +570,7 @@ const saveformdata = async (data: any) => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -615,7 +603,7 @@ const saveformdata = async (data: any) => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -647,7 +635,7 @@ const saveformdata = async (data: any) => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section> <q-item-section>
@ -663,7 +651,7 @@ const saveformdata = async (data: any) => {
</q-list> </q-list>
</q-card> </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-list dense>
<q-item dense tag="label" v-ripple> <q-item dense tag="label" v-ripple>
<q-item-section class="q-ml-md"> <q-item-section class="q-ml-md">
@ -974,8 +962,8 @@ const saveformdata = async (data: any) => {
<!-- Footer --> <!-- Footer -->
<!-- <Footer /> --> <!-- <Footer /> -->
<div class="row col-12 q-gutter-lg no-margin"> <div class="row col-12 q-gutter-lg no-margin justify-center">
<div class="col-12 row"> <div class="col-xs-12 col-sm-11 ">
<div class="col-12 text-top2 row items-center"> <div class="col-12 text-top2 row items-center">
งคบบญชา/มอบหมายงาน งคบบญชา/มอบหมายงาน
</div> </div>
@ -1007,12 +995,20 @@ const saveformdata = async (data: any) => {
</div> </div>
</div> </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-space />
<q-btn label="บันทึก" color="secondary" @click="savaForm" /> <q-btn
</q-toolbar> label="บันทึก"
color="secondary"
@click="savaForm"
/>
</div>
</div> </div>
</q-card-section> </div>
</q-card-section> </q-card-section>
</q-card> </q-card>
</template> </template>

View file

@ -35,7 +35,7 @@ const nextPage = () => {
<template> <template>
<q-header class="bg-grey-1"> <q-header class="bg-grey-1">
<div class="bg-grey-1"> <div class="bg-grey-1">
|{{ tabHead }}| <!-- |{{ tabHead }}| -->
<div class="col-12 row q-gutter-x-md items-center"> <div class="col-12 row q-gutter-x-md items-center">
<q-tabs <q-tabs
dense dense
@ -44,33 +44,36 @@ const nextPage = () => {
indicator-color="grey-1" indicator-color="grey-1"
class="text-grey-7" class="text-grey-7"
> >
<q-tab v-for="i in loop" :name="`save${i}`" :label="`ครั้งที่ ${i}`"> <q-tab v-for="(i,j) in loop" :name="`save${i}`" :key="j" >
<q-btn <div class="row col-12 items-center">
size="12px" <div class="q-mr-sm">ครงท{{i}}</div>
flat <q-btn
dense size="12px"
icon="mdi-download" flat
:disable="tabHead !== 'save' + i" dense
:color="tabHead !== 'save' + i ? 'grey' : 'add'" icon="mdi-download"
> :disable="tabHead !== 'save' + i"
<q-tooltip>ดาวนโหลด</q-tooltip> :color="tabHead !== 'save' + i ? 'grey' : 'add'"
<q-menu> >
<q-list style="min-width: 150px"> <q-tooltip>ดาวนโหลด</q-tooltip>
<q-item clickable v-close-popup> <q-menu>
<q-item-section avatar <q-list style="min-width: 150px">
><q-icon color="red" name="mdi-file-pdf" <q-item clickable v-close-popup>
/></q-item-section> <q-item-section avatar
<q-item-section>ไฟล .PDF</q-item-section> ><q-icon color="red" name="mdi-file-pdf"
</q-item> /></q-item-section>
<q-item clickable v-close-popup> <q-item-section>ไฟล .PDF</q-item-section>
<q-item-section avatar </q-item>
><q-icon color="blue" name="mdi-file-word" <q-item clickable v-close-popup>
/></q-item-section> <q-item-section avatar
<q-item-section>ไฟล .docx</q-item-section> ><q-icon color="blue" name="mdi-file-word"
</q-item> /></q-item-section>
</q-list> <q-item-section>ไฟล .docx</q-item-section>
</q-menu> </q-item>
</q-btn> </q-list>
</q-menu>
</q-btn>
</div>
</q-tab> </q-tab>
</q-tabs> </q-tabs>
<div> <div>

View file

@ -14,7 +14,7 @@ const FormReport = defineAsyncComponent(
</script> </script>
<template> <template>
<div class="col-12 q-ma-lg"> <div class="col-12 q-ma-sm">
<FormReport /> <FormReport />
</div> </div>
</template> </template>

View file

@ -46,14 +46,14 @@ const personalId = ref<string>(route.params.personalId.toString());
</q-header> </q-header>
<q-drawer v-model="drawer" show-if-above :width="150" :breakpoint="500" class="bg-grey-1" bordered> <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-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 <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'"> :active="activeTab == 'tab1'" @click="activeTab = 'tab1'">
<!-- <q-item-section avatar style="min-width: 40px"> <!-- <q-item-section avatar style="min-width: 40px">
<q-icon size="18px" name="mdi-file" /> <q-icon size="18px" name="mdi-file" />
</q-item-section> --> </q-item-section> -->
<q-item-section> แบบมอบหมายงาน</q-item-section> <q-item-section>แบบมอบหมายงาน </q-item-section>
</q-item> </q-item>
<q-item dense class="q-py-sm" active-class="text-primary bg-teal-1 text-weight-medium" clickable v-ripple <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> -->
<q-item-section> <q-item-section>
แบบประเมนผล<br />(งคบบญชา) แบบประเมนผล<br /><div class="text-caption text-grey-7">(งคบบญชา)</div>
</q-item-section> </q-item-section>
</q-item> </q-item>
@ -85,7 +85,7 @@ const personalId = ref<string>(route.params.personalId.toString());
</q-item-section> --> </q-item-section> -->
<q-item-section> <q-item-section>
แบบประเมนผล<br />(คณะกรรมการ) แบบประเมนผล<br /><div class="text-caption text-grey-7">(คณะกรรมการ)</div>
</q-item-section> </q-item-section>
</q-item> </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 <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'"> :active="activeTab == 'tab6'" @click="activeTab = 'tab6'">
<q-item-section> <q-item-section>
ผลการประเมนการทดลองปฏหนาทราชการ ผลการประเมนการ
</q-item-section> </q-item-section>
</q-item> </q-item>

View file

@ -21,6 +21,35 @@ const {
} = mixin; } = mixin;
const route = useRoute(); 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(() => { onMounted(() => {
// fecthResult(assignId.value); // fecthResult(assignId.value);
}); });
@ -50,12 +79,189 @@ onMounted(() => {
<template> <template>
<div class="row col-12 q-ma-xs"> <div class="row col-12 q-ma-xs">
<div class="toptitle text-dark col-12 row items-center"> <div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div> ผลการประเมนการทดลองปฏหนาทราชการ </div> <div>ผลการประเมนการทดลองปฏหนาทราชการ</div>
<q-space /> <!-- <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>
<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>
</div> </div>
</template> </template>

View file

@ -54,7 +54,17 @@ const columns = ref<QTableProps["columns"]>([
sort: (a: string, b: string) => sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), 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", name: "positionTypeOld",
align: "left", align: "left",
@ -127,6 +137,7 @@ const visibleColumns = ref<string[]>([
"no", "no",
"prefix", "prefix",
"fullname", "fullname",
"location",
"positionTypeOld", "positionTypeOld",
"positionLevelOld", "positionLevelOld",
"positionNumberOld", "positionNumberOld",
@ -172,6 +183,7 @@ const columns2 = ref<QTableProps["columns"]>([
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
}, },
{ {
name: "positionTypeOld", name: "positionTypeOld",
align: "left", align: "left",
@ -442,6 +454,9 @@ const saveOrder = async () => {
<q-td key="fullname" :props="props"> <q-td key="fullname" :props="props">
{{ props.row.fullname }} {{ props.row.fullname }}
</q-td> </q-td>
<q-td key="location" :props="props">
{{ props.row.location }}
</q-td>
<q-td key="positionTypeOld" :props="props"> <q-td key="positionTypeOld" :props="props">
{{ props.row.positionTypeOld }} {{ props.row.positionTypeOld }}
</q-td> </q-td>

View file

@ -167,7 +167,7 @@
{{ props.row.fileName }} {{ props.row.fileName }}
</q-td> </q-td>
<q-td key="btnMicrosoft" :props="props"> <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-tooltip>ไฟล PDF</q-tooltip>
</q-btn> </q-btn>
</q-td> </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