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

This commit is contained in:
Thanit Konmek 2023-08-22 15:25:00 +07:00
commit 33681a0b37
37 changed files with 1740 additions and 806 deletions

View file

@ -42,7 +42,7 @@ const salary = ref<string>("");
const educationOld = ref<string>("");
const reason = ref<string>("");
const date = ref<Date | null>(null);
const status = ref<string>("");
onMounted(async () => {
await fecthappointmentByid();
});
@ -61,7 +61,8 @@ const fecthappointmentByid = async () => {
title.value.organizationPositionOld = data.organizationPositionOld ?? "-";
title.value.positionLevelOld = data.positionLevelOld ?? "-";
title.value.positionTypeOld = data.positionTypeOld ?? "-";
status.value = data.status,
console.log("🚀 ~ file: Detail.vue:65 ~ .then ~ status:", status.value)
educationOld.value = data.educationOld;
organizationPositionOld.value = data.organizationPositionOld;
positionTypeOld.value = data.positionTypeOld;
@ -71,6 +72,7 @@ const fecthappointmentByid = async () => {
// organization.value = data.organization; //
reason.value = data.reason;
date.value = data.positionDate;
})
.catch((e) => {
messageError($q, e);
@ -189,7 +191,8 @@ const getClass = (val: boolean) => {
แกไขขอมลเพอลงบญชแนบทาย
</div>
<q-space />
<div class="q-gutter-sm" v-if="!edit">
<div v-if="status !== 'DONE' && status !== 'REPORT'" >
<div class="q-gutter-sm" v-if="!edit">
<q-btn outline color="primary" dense icon-right="mdi-file-edit-outline" class="q-px-sm" label="แก้ไข"
style="width: 80px" @click="edit = !edit" />
</div>
@ -198,6 +201,10 @@ const getClass = (val: boolean) => {
<q-btn outline color="red" dense class="q-px-sm" label="ยกเลิก" style="width: 80px" @click="edit = !edit" />
</div>
</div>
</div>
<div class="col-12"><q-separator /></div>
<q-form ref="myForm">
<div class="row col-12 q-pa-md">

View file

@ -8,6 +8,7 @@ import DialogOrgTree from "@/modules/05_placement/components/AppointMent/Appoint
import { useCounterMixin } from "@/stores/mixin";
import http from "@/plugins/http";
import config from "@/app.config";
import { WeekNumberContainer } from "@fullcalendar/core/internal";
const mixin = useCounterMixin(); //
const {
showLoader,
@ -53,6 +54,7 @@ const visibleColumns = ref<string[]>([
"fullname",
"organizationName",
"birthday",
"createdAt",
"status",
]);
const visibleColumns2 = ref<string[]>([
@ -105,6 +107,8 @@ const fecthlistappointment = async () => {
positionNumber: e.positionNumber,
positionPath: e.positionPath,
status: status(e.status),
createdAt:date2Thai(e.createdAt),
birthday: e.dateOfBirth == null ? "-" : date2Thai(e.dateOfBirth),
}));
// console.log(rows.value);
@ -169,8 +173,7 @@ const columns = ref<QTableProps["columns"]>([
field: "organizationName",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a: string, b: string) =>
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
},
{
name: "birthday",
@ -181,6 +184,17 @@ const columns = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "createdAt",
align: "left",
label: "วันที่ดำเนินการ",
sortable: true,
field: "createdAt",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
sort: (a, b) => (b.createdAt) - (a.createdAt)
},
{
name: "status",
align: "left",
@ -191,6 +205,7 @@ const columns = ref<QTableProps["columns"]>([
style: "font-size: 14px",
},
]);
const columns2 = ref<QTableProps["columns"]>([
{
name: "no",
@ -239,6 +254,7 @@ const columns2 = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
const openModalTree = (id: string) => {
@ -390,7 +406,7 @@ const status = (val: string) => {
:columns="columns"
:rows="rows"
:filter="filterKeyword"
row-key="fullname"
row-key="citizenId"
:visible-columns="visibleColumns"
>
<template v-slot:header="props">
@ -469,11 +485,19 @@ const status = (val: string) => {
>
{{ props.row.birthday }}
</q-td>
<q-td
key="createdAt"
:props="props"
@click="nextPage(props.row)"
>
{{ props.row.createdAt }}
</q-td>
<q-td key="status" :props="props" @click="nextPage(props.row)">
{{ props.row.status }}
</q-td>
<q-td auto-width>
<q-btn
v-if="props.row.status !== 'ส่งรายชื่อไปออกคำสั่ง' && props.row.status !== 'ออกคำสั่งแล้ว'"
icon="mdi-dots-vertical"
size="12px"
color="grey-7"

View file

@ -5,9 +5,7 @@ import { useRoute, useRouter } from "vue-router";
import { useCounterMixin } from "@/stores/mixin";
import type { ResponseTitle } from "@/modules/05_placement/interface/response/Receive";
import type {
ResponseDataDetail,
} from "@/modules/05_placement/interface/response/Transfer";
import type { ResponseDataDetail } from "@/modules/05_placement/interface/response/Transfer";
import type { QTableProps, QForm } from "quasar";
import http from "@/plugins/http";
@ -237,37 +235,43 @@ const getClass = (val: boolean) => {
แกไขขอมลเพอลงบญชแนบทาย
</div>
<q-space />
<div class="q-gutter-sm" v-if="!edit">
<q-btn
outline
color="primary"
dense
icon-right="mdi-file-edit-outline"
class="q-px-sm"
label="แก้ไข"
style="width: 80px"
@click="edit = !edit"
/>
</div>
<div class="q-gutter-sm" v-else>
<q-btn
outline
color="public"
dense
class="q-px-sm"
label="บันทึก"
style="width: 80px"
@click="clickEdit"
/>
<q-btn
outline
color="red"
dense
class="q-px-sm"
label="ยกเลิก"
style="width: 80px"
@click="(edit = !edit), fecthOther()"
/>
<div
v-if="
responseData.status !== 'DONE' && responseData.status !== 'REPORT'
"
>
<div class="q-gutter-sm" v-if="!edit">
<q-btn
outline
color="primary"
dense
icon-right="mdi-file-edit-outline"
class="q-px-sm"
label="แก้ไข"
style="width: 80px"
@click="edit = !edit"
/>
</div>
<div class="q-gutter-sm" v-else>
<q-btn
outline
color="public"
dense
class="q-px-sm"
label="บันทึก"
style="width: 80px"
@click="clickEdit"
/>
<q-btn
outline
color="red"
dense
class="q-px-sm"
label="ยกเลิก"
style="width: 80px"
@click="(edit = !edit), fecthOther()"
/>
</div>
</div>
</div>
<div class="col-12"><q-separator /></div>

View file

@ -54,7 +54,7 @@ const visibleColumns = ref<string[]>([
"position",
"positionLevel",
"organizationPositionOld",
"createdAt",
"statustext",
]);
@ -92,7 +92,7 @@ const fecthlistOthet = async () => {
// listRecevice.value = response;
console.log(response);
rows.value = response.map((r: any) => ({
createdAt: new Date(),
createdAt: date2Thai(r.createdAt),
date: new Date(),
firstName: r.firstname ?? "",
personalId: r.id ?? "",
@ -214,6 +214,15 @@ const columns = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "createdAt",
align: "left",
label: "วันที่ดำเนินการ",
sortable: true,
field: "createdAt",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "statustext",
align: "left",
@ -380,7 +389,7 @@ const status = (val: string) => {
color="add"
icon="mdi-account-arrow-right"
>
<q-tooltip>งไปออกคำสงรายการอนๆ</q-tooltip>
<q-tooltip>ประเภทคำสงรายการอนๆ</q-tooltip>
</q-btn>
<q-space />
@ -472,11 +481,19 @@ const status = (val: string) => {
</q-tooltip> -->
</div>
</q-td>
<q-td key="createdAt" :props="props">
{{ props.row.createdAt }}
</q-td>
<q-td key="statustext" :props="props">
{{ props.row.statustext }}
</q-td>
<q-td key="statustext" :props="props">
<q-td auto-width>
<q-btn
v-if="
props.row.status !== 'DONE' &&
props.row.status !== 'REPORT'
"
flat
round
class="text-red-14"
@ -496,7 +513,7 @@ const status = (val: string) => {
<q-dialog v-model="modal">
<q-card style="width: 1200px; max-width: 80vw">
<DialogHeader title="ส่งไปออกคำสั่งอื่นๆ" :close="clickClose" />
<DialogHeader title="ประเภทคำสั่งอื่นๆ" :close="clickClose" />
<q-separator />
<q-card-section class="q-pt-none">
<div class="row justify-between">

View file

@ -45,6 +45,8 @@ const visibleColumns = ref<string[]>([
"fullname",
"organizationName",
"dateOfBirth",
"createdAt",
"statusText",
"btn",
]);
const visibleColumns2 = ref<string[]>([
@ -113,6 +115,25 @@ const columns = ref<QTableProps["columns"]>([
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "createdAt",
align: "left",
label: "วันที่ดำเนินการ",
sortable: true,
field: "createdAt",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "statusText",
align: "left",
label: "สถานะ",
sortable: true,
field: "statusText",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "btn",
align: "left",
@ -238,7 +259,7 @@ const getData = async () => {
positionLevelOld: item.positionLevelOld,
positionNumberOld: item.positionNumberOld,
organizationPositionOld: item.organizationPositionOld,
createdAt: item.createdAt,
createdAt:date2Thai(item.createdAt),
}));
console.log(rows.value);
})
@ -449,6 +470,13 @@ onMounted(async () => {
props.row.dateOfBirth !== null ? props.row.dateOfBirth : "-"
}}
</q-td>
<q-td
key="createdAt"
:props="props"
@click="openDetail(props.row.id)"
>
{{ props.row.createdAt }}
</q-td>
<q-td
key="organizationPositionOld"
:props="props"
@ -486,6 +514,7 @@ onMounted(async () => {
</q-td>
<q-td auto-width>
<q-btn
v-if="props.row.status !== 'DONE' && props.row.status !== 'REPORT'"
icon="mdi-dots-vertical"
size="12px"
color="grey-7"

View file

@ -294,7 +294,7 @@ onMounted(async () => {
แกไขขอมลเพอลงบญชแนบทาย
</div>
<q-space />
<div class="q-gutter-sm" v-if="!edit">
<div v-if="status !== 'REPORT' && status !== 'DONE'"> <div class="q-gutter-sm" v-if="!edit">
<q-btn
outline
color="primary"
@ -325,7 +325,8 @@ onMounted(async () => {
style="width: 80px"
@click="cancelBtn"
/>
</div>
</div></div>
</div>
<div class="col-12"><q-separator /></div>
<q-form ref="myForm">

View file

@ -63,7 +63,7 @@
<q-card bordered class="row col-12 text-dark q-mt-sm">
<div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary">
<div class="q-pl-sm text-weight-bold text-dark">
แกไขขอมลเพอลงบญช
แกไขขอมลเพอลงบญชแนบทาย
</div>
<q-space />
<div class="q-gutter-sm" v-if="!edit">

View file

@ -13,10 +13,38 @@
@click="router.go(-1)"
v-if="routeName == 'probationWorkAdd'"
/>
<div v-if="routeName !== 'probationWorkAdd'">
<div v-if="routeName == 'probationWorkAdd'">
เพมแบบมอบหมายงานการทดลองปฏหนาทราชการ
</div>
<div v-else>แบบมอบหมายงานการทดลองปฏิบัติหน้าที่ราชการ</div>
<div v-else class="col-12 row">
<div>แบบมอบหมายงานการทดลองปฏหนาทราชการ</div>
<q-space />
<div v-if="status == false">
<q-btn
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-tooltip>ยกเล</q-tooltip>
</q-btn>
<q-btn
flat
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'"
@ -34,10 +62,10 @@
<q-input
:rules="[(val) => !!val || 'กรุณากรอกชื่อ']"
hide-bottom-space
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="fullname"
label="ชื่อ-สกุล"
/>
@ -46,10 +74,10 @@
<q-input
:rules="[(val) => !!val || 'กรุณากรอกตำเเหน่ง']"
hide-bottom-space
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="position"
label="ตำแหน่ง"
/>
@ -63,12 +91,12 @@
hide-bottom-space
:options="monthOp"
class="col-xs-12 col-sm-6"
:readonly="routeName !== 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
option-label="label"
option-value="value"
:outlined="routeName === 'probationWorkAdd'"
:outlined="status == true"
v-model="monthSelect"
:label="`ระยะเวลากี่เดือน`"
/>
@ -82,7 +110,7 @@
borderless
:enableTimePicker="false"
week-start="0"
:readonly="routeName !== 'probationWorkAdd'"
:readonly="status != true"
>
<template #year="{ year }">
{{ year + 543 }}
@ -94,8 +122,8 @@
<q-input
dense
borderless
:readonly="routeName != 'probationWorkAdd'"
:outlined="routeName == 'probationWorkAdd'"
:readonly="status != true"
:outlined="status == true"
:rules="[(val) => !!val || 'กรุณาเลือกวันที่']"
hide-bottom-space
class="full-width datepicker q-mb-md"
@ -117,9 +145,7 @@
:locale="'th'"
autoApply
borderless
:readonly="
isDatePicker2Readonly || routeName !== 'probationWorkAdd'
"
:readonly="isDatePicker2Readonly || status != true"
:enableTimePicker="false"
week-start="0"
>
@ -133,7 +159,7 @@
<q-input
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
readonly
class="full-width datepicker q-mb-md"
:model-value="
@ -166,26 +192,26 @@
option-value="id"
:options="filtermantor(OPcaretaker, [caretaker2])"
class="col-xs-12 col-sm-6"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
hide-bottom-space
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="caretaker1"
:label="`ผู้ดูแลคนที่ 1`"
option-label="fullName"
option-label="name"
/>
<q-select
:rules="[(val) => !!val || 'กรุณาเลือกผู้ดูเเล']"
:options="filtermantor(OPcaretaker, [caretaker1])"
option-value="id"
option-label="fullName"
option-label="name"
hide-bottom-space
class="col-xs-12 col-sm-6"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="caretaker2"
:label="`ผู้ดูแลคนที่ 2`"
/>
@ -196,11 +222,11 @@
option-value="id"
:options="filtermantor(OPcaretaker, [caretaker2])"
class="col-xs-12 col-sm-6"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
hide-bottom-space
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="caretaker1"
:label="`ผู้ดูแลคนที่ 1`"
option-label="name"
@ -212,10 +238,10 @@
option-label="name"
hide-bottom-space
class="col-xs-12 col-sm-6"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="caretaker2"
:label="`ผู้ดูแลคนที่ 2`"
/>
@ -234,7 +260,7 @@
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.1 องาน / ภารกจงานทมอบหมาย (ควรมมากกว 1 ภารกจงาน)
<q-btn
v-if="routeName == 'probationWorkAdd'"
v-if="status == true"
round
color="primary"
dense
@ -259,10 +285,10 @@
index < 2 ? [(val) => !!val || 'กรุณากรอกข้อมูล'] : []
"
hide-bottom-space
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
class="bg-white"
type="textarea"
v-model="activity_desc[index]"
@ -275,10 +301,10 @@
index < 2 ? [(val) => !!val || 'กรุณากรอกข้อมูล'] : []
"
hide-bottom-space
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
class="bg-white"
type="textarea"
v-model="goal_desc[index]"
@ -296,7 +322,7 @@
color="red"
icon="mdi-trash-can-outline"
@click="deleteactivity(index)"
v-if="routeName === 'probationWorkAdd'"
v-if="status == true"
/>
</div>
</div>
@ -315,7 +341,7 @@
<div class="col-12 text-top2 row items-center">
ความรความสามารถในการปฏงาน
<q-btn
v-if="routeName == 'probationWorkAdd'"
v-if="status == true"
round
color="primary"
dense
@ -345,10 +371,10 @@
hide-bottom-space
:options="OPknowledge"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="knowledge[index]"
:label="`ความรู้ความสามารถในการปฏิบัติงาน ${
index + 1
@ -360,7 +386,7 @@
class="col-xs-12 col-sm-1 flex justify-center items-center"
>
<q-btn
v-if="routeName == 'probationWorkAdd'"
v-if="status == true"
flat
round
color="red"
@ -375,7 +401,7 @@
<div class="col-12 text-top2 row items-center">
ความรเรองกฎหมายและกฎระเบยบ (ไมเก 20 วข)
<!-- <q-btn
v-if="routeName == 'probationWorkAdd'"
v-if="status == true"
round
color="primary"
dense
@ -404,7 +430,7 @@
v-if="item.status_select === 1"
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
:disable="status != true"
/>
</div>
<div v-if="index === 0" class="col-11">
@ -443,7 +469,7 @@
:false-value="0"
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
:disable="status != true"
/>
</div>
<div class="col-9 q-pl-xl">
@ -471,7 +497,7 @@
:false-value="0"
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
:disable="status != true"
/>
</div>
<div class="col-9 q-pl-xl">
@ -499,7 +525,7 @@
:false-value="0"
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
:disable="status != true"
/>
</div>
<div class="col-9 q-pl-xl">
@ -527,7 +553,7 @@
:false-value="0"
v-model="item.checked"
dense
:disable="routeName != 'probationWorkAdd'"
:disable="status != true"
/>
</div>
<div class="col-9 q-pl-xl">
@ -566,10 +592,10 @@
<div class="col-12">
<q-input
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="OtherLaw"
type="textarea"
/>
@ -592,11 +618,11 @@
]"
:options="OPcomputer"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
map-options
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="skill"
label="ด้านที่ 1"
>
@ -623,10 +649,10 @@
]"
:options="OPenglish"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="skill2"
label="ด้านที่ 2"
>
@ -651,11 +677,11 @@
]"
:options="OPinfomation"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
map-options
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="skill3"
label="ด้านที่ 3"
>
@ -680,11 +706,11 @@
]"
:options="OPresourse"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
map-options
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="skill4"
label="ด้านที่ 4"
>
@ -724,11 +750,11 @@
filterMain(OPmain, [main2, main3, main4, main5])
"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
map-options
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="main"
label="ตัวที่ 1"
>
@ -752,11 +778,11 @@
filterMain(OPmain, [main, main3, main4, main5])
"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
map-options
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="main2"
label="ตัวที่ 2"
>
@ -780,11 +806,11 @@
filterMain(OPmain, [main, main2, main4, main5])
"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
map-options
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="main3"
label="ตัวที่ 3"
>
@ -808,11 +834,11 @@
filterMain(OPmain, [main, main2, main3, main5])
"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
map-options
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="main4"
label="ตัวที่ 4"
>
@ -837,11 +863,11 @@
"
option-value="id"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
map-options
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="main5"
label="ตัวที่ 5"
>
@ -870,11 +896,11 @@
]"
:options="filterData(OPgroup, [group2, group3])"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
map-options
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="group"
label="ตัวที่ 1"
>
@ -898,11 +924,11 @@
]"
:options="filterData(OPgroup, [group, group3])"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
map-options
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="group2"
label="ตัวที่ 2"
>
@ -927,10 +953,10 @@
]"
:options="filterData(OPgroup, [group, group2])"
class="bg-white"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="group3"
label="ตัวที่ 3"
>
@ -1031,10 +1057,10 @@
<div class="col-12 row q-col-gutter-md">
<div class="col-12">
<q-input
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="Other"
/>
</div>
@ -1045,7 +1071,7 @@
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
3.6 ผลผลตของงานทคาดหวงและตวชดความสาเรจของงาน
<q-btn
v-if="routeName == 'probationWorkAdd'"
v-if="status == true"
round
color="primary"
dense
@ -1072,10 +1098,10 @@
"
class="bg-white"
type="textarea"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="output_desc[index]"
label="ผลผลิตของงานที่คาดหวัง (ไม่เกิน 10 บรรทัด)"
/>
@ -1088,10 +1114,10 @@
hide-bottom-space
class="bg-white"
type="textarea"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="indicator_desc[index]"
label="ตัวชี้วัดความสําเร็จของงาน (ไม่เกิน 10 บรรทัด)"
/>
@ -1102,7 +1128,7 @@
>
<q-btn
flat
v-if="routeName == 'probationWorkAdd'"
v-if="status == true"
round
color="red"
icon="mdi-trash-can-outline"
@ -1177,10 +1203,10 @@
<li>
นๆ (าม)
<q-input
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="Other5"
label="กรอกอื่นๆ"
/>
@ -1267,20 +1293,20 @@
<div class="col-12 row q-col-gutter-md">
<div class="col-xs-12 col-sm-4">
<q-input
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="fullname"
label="ชื่อ-สกุล"
/>
</div>
<div class="col-xs-12 col-sm-4">
<q-input
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="position"
label="ตำแหน่ง"
/>
@ -1291,7 +1317,7 @@
v-model="date1"
:locale="'th'"
autoApply
:readonly="routeName !== 'probationWorkAdd'"
:readonly="status != true"
borderless
:enableTimePicker="false"
week-start="0"
@ -1306,10 +1332,10 @@
<q-input
hide-bottom-space
:rules="[(val) => !!val || 'กรุณาเลือกวันที่']"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
class="full-width datepicker"
:model-value="date1 != null ? date2Thai(date1) : null"
label="ลงวันที่"
@ -1338,12 +1364,12 @@
v-if="status == true"
:options="filtermantor(OPcaretaker, [caretaker2])"
option-value="id"
option-label="fullName"
option-label="name"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="caretaker1"
label="ผู้ดูแลคนที่ 1"
/>
@ -1353,10 +1379,10 @@
option-value="id"
option-label="name"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="caretaker1"
label="ผู้ดูแลคนที่ 1"
/>
@ -1368,7 +1394,7 @@
autoApply
borderless
:enableTimePicker="false"
:readonly="routeName !== 'probationWorkAdd'"
:readonly="status != true"
week-start="0"
>
<template #year="{ year }">
@ -1381,10 +1407,10 @@
<q-input
hide-bottom-space
:rules="[(val) => !!val || 'กรุณาเลือกวันที่']"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
class="full-width datepicker"
:model-value="date2 != null ? date2Thai(date2) : null"
label="ลงวันที่"
@ -1405,12 +1431,12 @@
v-if="status == true"
:options="filtermantor(OPcaretaker, [caretaker1])"
option-value="id"
option-label="fullName"
option-label="name"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="caretaker2"
label="ผู้ดูแลคนที่ 2"
/>
@ -1420,10 +1446,10 @@
option-value="id"
option-label="name"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="caretaker2"
label="ผู้ดูแลคนที่ 2"
/>
@ -1436,7 +1462,7 @@
borderless
:enableTimePicker="false"
week-start="0"
:readonly="routeName !== 'probationWorkAdd'"
:readonly="status != true"
>
<template #year="{ year }">
{{ year + 543 }}
@ -1448,11 +1474,11 @@
<q-input
:rules="[(val) => !!val || 'กรุณาเลือกวันที่']"
hide-bottom-space
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
s
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
class="full-width datepicker"
:model-value="date3 != null ? date2Thai(date3) : null"
label="ลงวันที่"
@ -1481,12 +1507,12 @@
v-if="status == true"
:options="OPcommander"
option-value="id"
option-label="fullName"
option-label="name"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="commander"
label="ผู้บังคับบัญชา"
/>
@ -1496,10 +1522,10 @@
option-value="id"
option-label="name"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="commander"
label="ผู้บังคับบัญชา"
/>
@ -1510,7 +1536,7 @@
:locale="'th'"
autoApply
borderless
:readonly="routeName !== 'probationWorkAdd'"
:readonly="status != true"
:enableTimePicker="false"
week-start="0"
>
@ -1524,10 +1550,10 @@
<q-input
hide-bottom-space
:rules="[(val) => !!val || 'กรุณาเลือกวันที่']"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
class="full-width datepicker"
:model-value="date4 != null ? date2Thai(date4) : null"
label="ลงวันที่"
@ -1556,12 +1582,12 @@
v-if="status == true"
:options="OPchairman"
option-value="id"
option-label="fullName"
option-label="name"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="chairman"
label="ประธานกรรมการ"
/>
@ -1571,10 +1597,10 @@
option-value="id"
option-label="name"
class="col-xs-12 col-sm-8"
:readonly="routeName != 'probationWorkAdd'"
:readonly="status != true"
dense
borderless
:outlined="routeName == 'probationWorkAdd'"
:outlined="status == true"
v-model="chairman"
label="ประธานกรรมการ"
/>
@ -1615,6 +1641,34 @@ const val1 = ref([
},
]);
const status = ref<boolean>(true);
const dataEdit = async (id:string) => {
const data = putDataEdit(id);
await http
.put(config.API.saveEditAssign(id),data)
.then((res) =>{
console.log("success put==>",res)
console.log("save")
})
.catch((e) => {})
.finally(async () => {
status.value = false
getAssign()
hideLoader();
});
}
const saveEdit = (id:string) => {
dialogConfirm($q,() => dataEdit(id))
}
const edit = () => {
status.value = true;
console.log(status.value);
};
const cancel = () => {
status.value = false;
};
const router = useRouter();
const mixin = useCounterMixin();
const {
@ -1723,7 +1777,7 @@ const OPcaretaker = ref<
prefix: string;
firstName: string;
lastName: string;
fullName: string;
name: string;
citizenId: number;
isDirector: boolean;
}>[]
@ -1735,7 +1789,7 @@ const OPcommander = ref<
prefix: string;
firstName: string;
lastName: string;
fullName: string;
name: string;
citizenId: number;
isDirector: boolean;
}>[]
@ -1746,7 +1800,7 @@ const OPchairman = ref<
prefix: string;
firstName: string;
lastName: string;
fullName: string;
name: string;
citizenId: number;
isDirector: boolean;
}>[]
@ -1845,7 +1899,7 @@ const getUser = async () => {
prefix: item.prefix,
firstName: item.firstName,
lastName: item.lastName,
fullName: item.prefix + "" + item.firstName + " " + item.lastName,
name: item.prefix + "" + item.firstName + " " + item.lastName,
citizenId: item.citizenId,
isDirector: item.isDirector,
}));
@ -1854,7 +1908,7 @@ const getUser = async () => {
prefix: item.prefix,
firstName: item.firstName,
lastName: item.lastName,
fullName: item.prefix + "" + item.firstName + " " + item.lastName,
name: item.prefix + "" + item.firstName + " " + item.lastName,
citizenId: item.citizenId,
isDirector: item.isDirector,
}));
@ -1863,7 +1917,7 @@ const getUser = async () => {
prefix: item.prefix,
firstName: item.firstName,
lastName: item.lastName,
fullName: item.prefix + "" + item.firstName + " " + item.lastName,
name: item.prefix + "" + item.firstName + " " + item.lastName,
citizenId: item.citizenId,
isDirector: item.isDirector,
}));
@ -1945,9 +1999,122 @@ const postDateTime = async () => {
hideLoader();
});
};
const putDataEdit = (id: string) => {
const GUID = personalId;
const assign_job = activityArray.value.map((item, index) => {
const activityDesc = activity_desc.value[index]?.trim();
const goalDesc = goal_desc.value[index]?.trim();
if (activityDesc !== "" && goalDesc !== "") {
return {
activity_desc: activityDesc,
goal_desc: goalDesc,
};
} else {
return null;
}
});
const know_ledge = knowledge.value.map((item) => ({
level: item ? item.level : null,
}));
const Productivity_assign = ProductivityArray.value.map((item, index) => {
const outputDesc = output_desc.value[index]?.trim();
const indicatorDesc = indicator_desc.value[index]?.trim();
if (outputDesc !== "" && indicatorDesc !== "") {
return {
output_desc: outputDesc,
indicator_desc: indicatorDesc,
};
} else {
return null;
}
});
const allGroup = [];
if (group.value) allGroup.push({ level: group.value.level });
if (group2.value) allGroup.push({ level: group2.value.level });
if (group3.value) allGroup.push({ level: group3.value.level });
const allSkills = [];
if (skill.value) allSkills.push({ level: skill.value.level });
if (skill2.value) allSkills.push({ level: skill2.value.level });
if (skill3.value) allSkills.push({ level: skill3.value.level });
if (skill4.value) allSkills.push({ level: skill4.value.level });
const allCompetency = [];
if (main.value) allCompetency.push({ level: main.value.level });
if (main2.value) allCompetency.push({ level: main2.value.level });
if (main3.value) allCompetency.push({ level: main3.value.level });
if (main4.value) allCompetency.push({ level: main4.value.level });
if (main5.value) allCompetency.push({ level: main5.value.level });
const assign_director = [
{
personal_id: caretaker1.value.personal_id,
role: "mentor",
dated: date2.value instanceof Date ? dateToISO(date2.value) : dateToISO(new Date(date2.value)),
},
{
personal_id: caretaker2.value.personal_id,
role: "mentor",
dated: date3.value instanceof Date ? dateToISO(date3.value) : dateToISO(new Date(date3.value)),
},
{
personal_id: commander.value.personal_id,
role: "commander",
dated: date4.value instanceof Date ? dateToISO(date4.value) : dateToISO(new Date(date4.value)),
},
{
personal_id: chairman.value.personal_id,
role: "chairman",
},
];
const data = {
personal_id: GUID,
fullname: fullname.value,
position: position.value,
monthSelect:
monthSelect.value !== null ? parseInt(monthSelect.value) : null,
date_start:
date_start.value instanceof Date
? dateToISO(date_start.value)
: new Date(),
date_finish:
date_finish.value instanceof Date
? dateToISO(date_finish.value)
: dateToISO(new Date(date_finish.value)),
// caretaker_1: caretaker1.value,
// caretaker_2: caretaker2.value,
assign_knowledges: know_ledge,
assign_jobs: assign_job.filter((item) => item !== null),
other_desc: OtherLaw.value,
assign_skill: allSkills,
assign_competency: allCompetency,
assign_competency_group: allGroup,
other4_desc: Other.value,
other5_no1_desc: Other5.value,
assign_outputs: Productivity_assign.filter((item) => item !== null),
// commander: commander.value,
assign_director: assign_director,
experimenter_dated:date1.value instanceof Date ? dateToISO(date1.value) : new Date(),
// date_2: date2.value instanceof Date ? dateToISO(date2.value) : new Date(),
// date_3: date3.value instanceof Date ? dateToISO(date3.value) : new Date(),
// date_4: date4.value instanceof Date ? dateToISO(date4.value) : new Date(),
// caretaker_foot: caretakerFoot.value,
// caretaker_foot2: caretakerFoot2.value,
assign_law: checkRule.value
.filter((item) => item.checked === 1)
.map((item) => ({
id: item.id,
checked: item.checked,
})),
};
return data;
};
const putData = (id: string) => {
const GUID = id;
const GUID = personalId;
const assign_job = activityArray.value.map((item, index) => {
const activityDesc = activity_desc.value[index]?.trim();
const goalDesc = goal_desc.value[index]?.trim();
@ -2001,24 +2168,23 @@ const putData = (id: string) => {
{
personal_id: caretaker1.value.id,
role: "mentor",
dated: date2.value instanceof Date ? dateToISO(date2.value) : null,
dated: date2.value instanceof Date ? dateToISO(date2.value) : dateToISO(new Date(date2.value)),
},
{
personal_id: caretaker2.value.id,
role: "mentor",
dated: date3.value instanceof Date ? dateToISO(date3.value) : null,
dated: date3.value instanceof Date ? dateToISO(date3.value) : dateToISO(new Date(date3.value)),
},
{
personal_id: commander.value.id,
role: "commander",
dated: date4.value instanceof Date ? dateToISO(date4.value) : null,
dated: date4.value instanceof Date ? dateToISO(date4.value) : dateToISO(new Date(date4.value)),
},
{
personal_id: chairman.value.id,
role: "chairman",
},
];
const data = {
personalId: GUID,
fullname: fullname.value,
@ -2064,7 +2230,7 @@ const putData = (id: string) => {
};
const saveData = (id: string) => {
dialogConfirm($q, () => DataSave(id));
dialogConfirm($q, async () => await DataSave(id));
};
const DataSave = async (id: string) => {
await myForm.value.validate().then((result: boolean) => {
@ -2142,8 +2308,8 @@ const getAssign = async () => {
activityCount.value = data.jobs.length;
caretaker1.value = data.mentors[0];
caretaker2.value = data.mentors[1];
chairman.value = data.chairman.name;
commander.value = data.commander.name;
chairman.value = data.chairman;
commander.value = data.commander;
knowledge.value = data.knowledges.map((id: any) => id.id);
knowledgeCount.value = data.knowledges.length;
other_desc.value = data.assign.other_desc;
@ -2174,7 +2340,7 @@ const getAssign = async () => {
productivityCount.value = data.outputs.length;
checkRule.value = data.laws.map((law: any) => ({
id: law.law_id,
id: law.id,
checked: law.selected,
description: law.description,
status_select: law.status_select,

View file

@ -110,10 +110,6 @@ const onSubmit = () => {
message: "ส่งแบบประเมินเเล้ว",
});
};
const onReset = () => {
router.push({ name: "probation" });
};
</script>
<style lang="scss" scoped>

View file

@ -162,11 +162,7 @@ const list1_1 = ref<any>([]);
// { id: "5", label: " 5" },
const list1_2 = [
{ id: "1", label: "ผลผลิตของงานที่เกิดขึ้น 1" },
{ id: "2", label: "ผลผลิตของงานที่เกิดขึ้น 2" },
{ id: "3", label: "ผลผลิตของงานที่เกิดขึ้น 3" },
{ id: "4", label: "ผลผลิตของงานที่เกิดขึ้น 4" },
{ id: "5", label: "ผลผลิตของงานที่เกิดขึ้น 5" },
{ id: "", label: "" },
];
const list2_1 = [
{ id: "1", label: "ให้บริการประชาชนหรือผู้รับบริการด้วยอัธยาศัยดี" },
@ -437,7 +433,7 @@ const saveformdata = async (data: any) => {
1.1 ความสำเรจของงานทไดบมอบหมาย
</div>
<div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
1.ผลผลตของงานทคาดหว
ผลผลตของงานทคาดหว
</div>
<q-card
flat
@ -488,7 +484,7 @@ const saveformdata = async (data: any) => {
1.2 ความสำเรจของงานทไดบมอบหมาย
</div>
<div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
1.ผลผลตของงานทเกดข
ผลผลตของงานทเกดขจร
</div>
<q-card
flat

View file

@ -24,6 +24,7 @@ const {
} = mixin;
const { ratingColors } = probationStore;
const assignId = ref<string>(route.params.form.toString());
const personalId = ref<string>(route.params.id.toString());
const person = ref<any>([]);
const assign = ref<any>([]);
@ -77,10 +78,10 @@ const list1_1 = ref<any>([
]);
const list1_2 = [
{ id: "1", label: "ผลผลิตของงานที่เกิดขึ้น 1" },
{ id: "2", label: "ผลผลิตของงานที่เกิดขึ้น 2" },
{ id: "3", label: "ผลผลิตของงานที่เกิดขึ้น 3" },
{ id: "4", label: "ผลผลิตของงานที่เกิดขึ้น 4" },
{ id: "5", label: "ผลผลิตของงานที่เกิดขึ้น 5" },
// { id: "2", label: " 2" },
// { id: "3", label: " 3" },
// { id: "4", label: " 4" },
// { id: "5", label: " 5" },
];
const list2_1 = [
{ id: "1", label: "ให้บริการประชาชนหรือผู้รับบริการด้วยอัธยาศัยดี" },
@ -248,12 +249,16 @@ const savaForm = () => {
behavio_orther.value.level == 0))
) {
hasError = true;
} else putformData();
}
if (hasError === true) {
notifyError($q, "กรุณากรอกข้อมูลให้ครบ");
} else {
putformData()
}
};
const putformData = () => {
const data = {
evaluate_no: evaluate_no.value,
@ -302,8 +307,11 @@ const saveformdata = async (data: any) => {
await http
.post(config.API.createformevaluate(assignId.value), data)
.then((res: any) => {
console.log(res);
// console.log(res);
success($q, "บันทึกสำเร็จ");
router.push(
`/probation/detail/${personalId.value}/${assignId.value}`
);
})
.catch((e: any) => {
messageError($q, e);
@ -316,19 +324,9 @@ const saveformdata = async (data: any) => {
<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)"
/>
<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>
@ -381,28 +379,17 @@ const saveformdata = async (data: any) => {
1.1 ความสำเรจของงานทไดบมอบหมาย
</div>
<div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
1.ผลผลตของงานทคาดหว
ผลผลตของงานทคาดหว
</div>
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-list dense v-for="(list, i) in list1_1" :key="i">
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>{{ list.output_desc }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="evaluate_expenct_level[i].level"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="evaluate_expenct_level[i].level" :val="list.id" max="5" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -431,40 +418,20 @@ const saveformdata = async (data: any) => {
1.2 ความสำเรจของงานทไดบมอบหมาย
</div>
<div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
1.ผลผลตของงานทเกดข
ผลผลตของงานทเกดขจร
</div>
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-list dense v-for="(list, i) in list1_2" :key="i">
<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"
label="ผลผลิตของงานที่เกิดขึ้นจริง"
hide-bottom-space
:row="1"
:rules="evaluate_ouptutRules"
/>
<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"
label="ผลผลิตของงานที่เกิดขึ้นจริง" hide-bottom-space :row="1" :rules="evaluate_ouptutRules" />
</q-item-section>
<q-item-section side>
<q-rating
v-model="evaluate_ouptut[i].level"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="evaluate_ouptut[i].level" :val="list.id" max="5" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -495,18 +462,11 @@ const saveformdata = async (data: any) => {
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.2. ความรความสามารถ</q-item-label
>
1.2. ความรความสามารถ</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="knowledge_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="knowledge_level" max="5" size="sm" color="grey" :color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -534,18 +494,11 @@ const saveformdata = async (data: any) => {
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.3. กษะ</q-item-label
>
1.3. กษะ</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="skill_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="skill_level" max="5" size="sm" color="grey" :color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -573,18 +526,11 @@ const saveformdata = async (data: any) => {
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.4. สมมรถนะ</q-item-label
>
1.4. สมมรถนะ</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="competency_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="competency_level" max="5" size="sm" color="grey" :color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -612,18 +558,11 @@ const saveformdata = async (data: any) => {
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.5. ความสามารถในการเรยนรงาน</q-item-label
>
1.5. ความสามารถในการเรยนรงาน</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="learn_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="learn_level" max="5" size="sm" color="grey" :color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -652,18 +591,11 @@ const saveformdata = async (data: any) => {
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.6.
ความสามารถในการปรบใชความรบงานในหนาท</q-item-label
>
ความสามารถในการปรบใชความรบงานในหนาท</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="apply_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="apply_level" max="5" size="sm" color="grey" :color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -691,18 +623,11 @@ const saveformdata = async (data: any) => {
<q-item-section>
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.7. ความสำเรจของงานทไดบมอบหมาย</q-item-label
>
1.7. ความสำเรจของงานทไดบมอบหมาย</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="success_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="success_level" max="5" size="sm" color="grey" :color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -731,15 +656,10 @@ const saveformdata = async (data: any) => {
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.8 นๆ
<q-checkbox
class="q-ml-sm"
dense
v-model="etc"
@click="
(achievement_other.text = ''),
(achievement_other.level = 0)
"
/></q-item-label>
<q-checkbox class="q-ml-sm" dense v-model="etc" @click="
(achievement_other.text = ''),
(achievement_other.level = 0)
" /></q-item-label>
</q-item-section>
</q-item>
</q-list>
@ -750,31 +670,16 @@ const saveformdata = async (data: any) => {
<q-item dense tag="label" v-ripple>
<q-item-section class="q-ml-md">
<q-item-label>
<q-input
v-model="achievement_other.text"
label="กรอกอื่นๆ"
dense
lazy-rules
autogrow
hide-bottom-space
outlined
class="bg-white"
:rules="[
<q-input v-model="achievement_other.text" label="กรอกอื่นๆ" dense lazy-rules autogrow
hide-bottom-space outlined class="bg-white" :rules="[
(val) =>
(val && val.length > 0) || 'กรุณากรอกข้อความ',
]"
/>
]" />
</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="achievement_other.level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="achievement_other.level" max="5" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -803,38 +708,18 @@ const saveformdata = async (data: any) => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
ดเด (ไมเก 5 บรรท)
</div>
<q-input
outlined
dense
v-model="achievement_strength_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules
type="textarea"
label="กรอกจุดเด่น"
hide-bottom-space
:row="5"
:rules="achievement_strengthRules"
ref="achievement_strengthRef"
/>
<q-input outlined dense v-model="achievement_strength_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1" lazy-rules type="textarea" label="กรอกจุดเด่น"
hide-bottom-space :row="5" :rules="achievement_strengthRules" ref="achievement_strengthRef" />
</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" />
งทควรปรบปร (ไมเก 5 บรรท)
</div>
<q-input
outlined
dense
v-model="achievement_improve_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules
type="textarea"
hide-bottom-space
label="กรอกสิ่งที่ควรปรับปรุง"
:row="5"
:rules="achievement_inproveRules"
ref="achievement_inproveRef"
/>
<q-input outlined dense v-model="achievement_improve_desc" class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules type="textarea" hide-bottom-space label="กรอกสิ่งที่ควรปรับปรุง" :row="5"
:rules="achievement_inproveRules" ref="achievement_inproveRef" />
</div>
</div>
@ -850,26 +735,15 @@ const saveformdata = async (data: any) => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.1 ความประพฤต
</div>
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-list dense v-for="(list, i) in list2_1" :key="i">
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>{{ list.label }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="conduct_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="conduct_level[i]" :val="list.id" max="5" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -897,26 +771,15 @@ const saveformdata = async (data: any) => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.2 ความมณธรรมจรยธรรม
</div>
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-list dense v-for="(list, i) in list2_2" :key="i">
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>{{ list.label }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="moral_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="moral_level[i]" :val="list.id" max="5" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -944,26 +807,15 @@ const saveformdata = async (data: any) => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.3 การรกษาว
</div>
<q-card
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-card flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-list dense v-for="(list, i) in list2_3" :key="i">
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>{{ list.label }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="discipline_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="discipline_level[i]" :val="list.id" max="5" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -990,50 +842,25 @@ const saveformdata = async (data: any) => {
<div class="col-12 text-top0 row items-center q-pl-lg">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
2.4 นๆ
<q-checkbox
class="q-ml-sm"
dense
v-model="etc2"
@click="
(behavio_orther.text = ''), (behavio_orther.level = 0)
"
/>
<q-checkbox class="q-ml-sm" dense v-model="etc2" @click="
(behavio_orther.text = ''), (behavio_orther.level = 0)
" />
</div>
<q-card
v-if="etc2"
flat
bordered
class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1"
>
<q-card v-if="etc2" flat bordered class="col-xs-12 col-sm-11 col-md-10 offset-md-1 q-pa-sm bg-grey-1">
<q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label>
<q-input
v-model="behavio_orther.text"
label="กรอกอื่นๆ"
dense
lazy-rules
autogrow
hide-bottom-space
outlined
class="bg-white"
:rules="[
<q-input v-model="behavio_orther.text" label="กรอกอื่นๆ" dense lazy-rules autogrow
hide-bottom-space outlined class="bg-white" :rules="[
(val) =>
(val && val.length > 0) || 'กรุณากรอกข้อความ',
]"
/>
]" />
</q-item-label>
</q-item-section>
<q-item-section side>
<q-rating
v-model="behavio_orther.level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
>
<q-rating v-model="behavio_orther.level" max="5" size="sm" color="grey"
:color-selected="ratingColors" label="ระดับการประเมินพฤติกรรม">
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก</q-tooltip>
</template>
@ -1062,38 +889,18 @@ const saveformdata = async (data: any) => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
ดเด (ไมเก 5 บรรท)
</div>
<q-input
outlined
dense
v-model="behavior_strength_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules
type="textarea"
label="กรอกจุดเด่น"
hide-bottom-space
:row="5"
:rules="behavio_strengthRules"
ref="behavio_strengthRef"
/>
<q-input outlined dense v-model="behavior_strength_desc" class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules type="textarea" label="กรอกจุดเด่น" hide-bottom-space :row="5" :rules="behavio_strengthRules"
ref="behavio_strengthRef" />
</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" />
งทควรปรบปร (ไมเก 5 บรรท)
</div>
<q-input
outlined
dense
v-model="behavior_improve_desc"
class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules
type="textarea"
hide-bottom-space
label="กรอกสิ่งที่ควรปรับปรุง"
:row="5"
:rules="behavio_inproveRules"
ref="behavio_inproveRef"
/>
<q-input outlined dense v-model="behavior_improve_desc" class="col-xs-12 col-sm-11 col-md-10 offset-md-1"
lazy-rules type="textarea" hide-bottom-space label="กรอกสิ่งที่ควรปรับปรุง" :row="5"
:rules="behavio_inproveRules" ref="behavio_inproveRef" />
</div>
</div>
</div>
@ -1106,11 +913,7 @@ const saveformdata = async (data: any) => {
<q-avatar class="bg-grey-2 q-mr-sm" size="28px">3</q-avatar>
การพฒนาผทดลองปฏหนาทราชการ
</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">
<q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section>
@ -1118,20 +921,10 @@ const saveformdata = async (data: any) => {
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="orientation" val="1"
label="ดำเนินการเเล้ว" />
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="orientation" val="0"
label=" ยังไม่ได้ดำเนินการ" />
</div>
</q-item-section>
</q-item>
@ -1142,20 +935,10 @@ const saveformdata = async (data: any) => {
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="self_learning"
val="1" label="ดำเนินการเเล้ว" />
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="self_learning"
val="0" label=" ยังไม่ได้ดำเนินการ" />
</div>
</q-item-section>
</q-item>
@ -1166,47 +949,25 @@ const saveformdata = async (data: any) => {
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="training_seminar"
val="1" label="ดำเนินการเเล้ว" />
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="training_seminar"
val="0" label=" ยังไม่ได้ดำเนินการ" />
</div>
</q-item-section>
</q-item>
<q-separator class="q-my-xs" />
<q-item dense tag="label" v-ripple>
<q-item-section>
<q-item-label
>4. การอบรมอ ตามทหนวยงานกำหนด
(าม)</q-item-label
>
<q-item-label>4. การอบรมอ ตามทหนวยงานกำหนด
(าม)</q-item-label>
</q-item-section>
<q-item-section side>
<div class="row">
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="1"
label="ดำเนินการเเล้ว"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="0"
label=" ยังไม่ได้ดำเนินการ"
/>
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="other_training"
val="1" label="ดำเนินการเเล้ว" />
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="other_training"
val="0" label=" ยังไม่ได้ดำเนินการ" />
</div>
</q-item-section>
</q-item>
@ -1223,26 +984,11 @@ const saveformdata = async (data: any) => {
งคบบญชา/มอบหมายงาน
</div>
<div class="col-12 row q-col-gutter-md">
<q-select
class="col-xs-12 col-sm-8"
dense
v-model="Autherise"
outlined
:options="option"
label="ผู้บังคับบัญชา"
option-label="name"
disable
/>
<q-select class="col-xs-12 col-sm-8" dense v-model="Autherise" outlined :options="option"
label="ผู้บังคับบัญชา" option-label="name" disable />
<div class="col-xs-12 col-sm-4">
<datepicker
menu-class-name="modalfix"
v-model="dateAutherise"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<datepicker menu-class-name="modalfix" v-model="dateAutherise" :locale="'th'" autoApply borderless
:enableTimePicker="false" week-start="0">
<template #year="{ year }">
{{ year + 543 }}
</template>
@ -1250,24 +996,12 @@ const saveformdata = async (data: any) => {
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
dateAutherise != null
? date2Thai(dateAutherise)
: null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
>
<q-input outlined dense class="full-width datepicker col-3" :model-value="dateAutherise != null
? date2Thai(dateAutherise)
: null
" :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
<template v-slot:prepend>
<q-icon
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
</q-icon>
</template>
</q-input>

View file

@ -8,7 +8,7 @@
flat
color="primary"
class="q-mr-sm"
@click="router.go(-1)"
@click="router.push(`/probation/`)"
/>
รายละเอยดงานทไดบมอบหมายของ {{ name }}
</div>