Merge branch 'nice_dev' into develop

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2023-10-05 17:55:00 +07:00
commit 12d6456069
12 changed files with 812 additions and 151 deletions

View file

@ -528,6 +528,11 @@ const tabListPlacement = readonly<tabType[]>([
label: "การคัดกรองคุณสมบัติ",
tag: "qualification",
},
{
key: 6,
label: "เอกสารหลักฐาน",
tag: "document",
},
]);
export { menuList, tabList, tabListPlacement };

View file

@ -202,7 +202,7 @@
<div class="col-xs-2 col-sm-2 q-pr-xs text-grey-7">คะแนน</div>
<div class="col-xs-4 col-sm-5 text-weight-bold q-pt-sm">
ผลการสอบ
ผลการสอบx
</div>
<div
class="col-xs-8 col-sm-6 q-pr-xs text-weight-bold text-subtitle1"

View file

@ -16,6 +16,7 @@ import Certicate from "@/modules/05_placement/components/PersonalDetail/Informat
import ExamResult from "@/modules/05_placement/components/PersonalDetail/ExamResult.vue";
import Qualification from "@/modules/05_placement/components/PersonalDetail/Qualification.vue";
import Familyvue from "@/modules/05_placement/components/PersonalDetail/Information/Family.vue";
import Document from "@/modules/05_placement/components/PersonalDetail/Information/Document.vue";
import {
AddressDataDefualt,
@ -114,7 +115,7 @@ const fetchData = async () => {
.get(config.API.placementPersonalId(examId.value))
.then((res: any) => {
const data = res.data.result;
personalData.value.fullName = data.fullName;
personalData.value.id = data.personalId;
@ -309,6 +310,14 @@ const fetchData = async () => {
:fetch="fetchData"
/>
</div>
<div id="document" name="6" class="col-12 q-pa-sm">
<div class="col-12 q-px-md">
<q-separator size="4px" />
</div>
<!-- v-model:data="QualificationData" -->
<Document v-model:statusEdit="statusEdit" :fetch="fetchData" />
</div>
</q-card>
</div>
</template>

View file

@ -32,7 +32,7 @@ const props = defineProps({
<span class="text-bold text-subtitle2">ผลการสอบ</span>
</div>
<div class="row q-px-md">
<div class="col-7">
<!-- <div class="col-7">
<q-card class="card-exam">
<div class="row q-px-md q-py-sm">
<div class="col q-pa-xs header-sub-text-exam">
@ -64,7 +64,7 @@ const props = defineProps({
</div>
</div>
</q-card>
</div>
</div> -->
<div class="col q-pl-xl">
<q-card class="q-pt-xs">
<div class="header-text-right q-px-xs">ผลการสอบ</div>

View file

@ -102,7 +102,7 @@ const fetchPlacementData = async () => {
class="q-mr-sm"
@click="router.push(`/placement`)"
/>
รายชอผสอบในรอบ {{ title }} ครงท {{ round }} {{ year }}
รายชอผสอบในรอบs {{ title }} ครงท {{ round }} {{ year }}
</div>
<q-card bordered class="q-py-sm row col-12">
<div class="col-12 row bg-white">

View file

@ -361,12 +361,13 @@ const getClass = (val: boolean) => {
};
//
const selectData = (pid: string) => {
if (roleAdmin.value === true) {
personalId.value = pid;
modal.value = true;
} else {
router.push("/placement/personal-detail/" + pid);
}
router.push("/placement/personal-detail/" + pid);
// if (roleAdmin.value === true) {
// personalId.value = pid;
// modal.value = true;
// } else {
// router.push("/placement/personal-detail/" + pid);
// }
};
const getNumFile = ref(0);
const dataInfo = reactive({

View file

@ -326,7 +326,8 @@ onMounted(async () => {
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
การทดลองปฎหนาทราชการ<span class="text-primary q-pr-sm">{{
"ครั้งที่ " + assign.round_no
}}</span> งแตนท
}}</span>
งแตนท
<span class="text-black q-px-sm">{{
date2Thai(assign.date_start)
}}</span>
@ -342,13 +343,85 @@ onMounted(async () => {
"ครั้งที่ " + round
}}</span>
ระหวางวนท
<span class="text-black q-px-sm">{{
date2Thai(start_date)
}}</span>
<span class="text-black q-px-sm">
<datepicker
menu-class-name="modalfix"
v-model="start_date"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
start_date != null ? date2Thai(start_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>
</span>
งวนท
<span class="text-black q-px-sm">{{
date2Thai(date_finish)
}}</span>
<span class="text-black q-px-sm">
<datepicker
menu-class-name="modalfix"
v-model="date_finish"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
date_finish != null ? date2Thai(date_finish) : 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>
</span>
</div>
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />

View file

@ -434,9 +434,11 @@ watch(lengthdiscipline_level, (newLength) => {
</div>
</div>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
การทดลองปฎหนาทราชการ<span class="text-primary q-pr-sm">{{
"ครั้งที่ " + assign.round_no
}}</span> งแตนท
การทดลองปฎหนาทราชการ<span
class="text-primary q-pr-sm"
>{{ "ครั้งที่ " + assign.round_no }}</span
>
งแตนท
<span class="text-black q-px-sm">{{
date2Thai(assign.date_start)
}}</span>
@ -452,13 +454,85 @@ watch(lengthdiscipline_level, (newLength) => {
`ครั้งที่ ${evaluate_no}`
}}</span>
ระหวางวนท
<span class="text-black q-px-sm">{{
date2Thai(start_date)
}}</span>
<span class="text-black q-px-sm">
<datepicker
menu-class-name="modalfix"
v-model="start_date"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
start_date != null ? date2Thai(start_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>
</span>
งวนท
<span class="text-black q-px-sm">{{
date2Thai(date_finish)
}}</span>
<span class="text-black q-px-sm">
<datepicker
menu-class-name="modalfix"
v-model="date_finish"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
date_finish != null ? date2Thai(date_finish) : 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>
</span>
</div>
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />

View file

@ -399,13 +399,85 @@ const getBordered = (i: boolean) => {
"ครั้งที่ " + round
}}</span>
ระหวางวนท
<span class="text-black q-px-sm">{{
date2Thai(start_date)
}}</span>
<span class="text-black q-px-sm">
<datepicker
menu-class-name="modalfix"
v-model="start_date"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
start_date != null ? date2Thai(start_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>
</span>
งวนท
<span class="text-black q-px-sm">{{
date2Thai(date_finish)
}}</span>
<span class="text-black q-px-sm">
<datepicker
menu-class-name="modalfix"
v-model="date_finish"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
date_finish != null ? date2Thai(date_finish) : 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>
</span>
</div>
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />

View file

@ -97,7 +97,9 @@ const fecthFormdata = async (id: string) => {
person.value = res.data.data.person;
assign.value = res.data.data.assign;
option.value.push(res.data.data.director);
Autherise.value = res.data.data.director.name + ` (${res.data.data.director.PositionLineName}, ${res.data.data.director.PositionLevelName}, ${res.data.data.director.Oc})`;
Autherise.value =
res.data.data.director.name +
` (${res.data.data.director.PositionLineName}, ${res.data.data.director.PositionLevelName}, ${res.data.data.director.Oc})`;
list1_1.value = res.data.data.assign_output;
res.data.data.assign_output.forEach((e: any) => {
@ -170,7 +172,6 @@ const savaForm = () => {
achievement_strengthRef.value.validate();
behavio_strengthRef.value.validate();
let hasError = false;
if (
lengthevaluate_expenct_level.value !==
@ -309,13 +310,11 @@ ArrayCountbotton.forEach((variable, index) => {
});
watch(lengthevaluate_expenct_level, (newLength) => {
if (newLength === evaluate_expenct_level.value.length) {
alerts[0].value = false;
}
});
watch(lengthevaluate_ouptut, (newLength) => {
if (newLength === evaluate_ouptut.value.length) {
alerts[1].value = false;
}
});
@ -370,21 +369,30 @@ onMounted(async () => {
<div class="col-12 row">
<div class="col-12 row text-top0">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
ทดลองปฏหนาทราชการ {{person.name}}
ทดลองปฏหนาทราชการ {{ person.name }}
</div>
<div class="col-12 q-pl-md q-pb-md">
<!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> -->
<div class="col-12"><span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> {{ person.PositionLineName }}</div>
<div class="col-12"><span class="text-top0 q-pl-sm">ระด</span> {{ person.PositionLevelName }} </div>
<div class="col-12"><span class="text-top0 q-pl-sm">งก</span> {{ person.Oc }}</div>
<div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ person.PositionLineName }}
</div>
<div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span>
{{ person.PositionLevelName }}
</div>
<div class="col-12">
<span class="text-top0 q-pl-sm">งก</span> {{ person.Oc }}
</div>
</div>
<div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
การทดลองปฎหนาทราชการ<span class="text-primary q-pr-sm">{{
"ครั้งที่ " + assign.round_no
}}</span> งแตนท
}}</span>
งแตนท
<span class="text-black q-px-sm">{{
date2Thai(assign.date_start)
}}</span>
@ -399,13 +407,85 @@ onMounted(async () => {
"ครั้งที่ " + round
}}</span>
ระหวางวนท
<span class="text-black q-px-sm">{{
date2Thai(start_date)
}}</span>
<span class="text-black q-px-sm">
<datepicker
menu-class-name="modalfix"
v-model="start_date"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
start_date != null ? date2Thai(start_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>
</span>
งวนท
<span class="text-black q-px-sm">{{
date2Thai(date_finish)
}}</span>
<span class="text-black q-px-sm">
<datepicker
menu-class-name="modalfix"
v-model="date_finish"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
date_finish != null ? date2Thai(date_finish) : 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>
</span>
</div>
<div class="col-12 q-pt-md">
<q-separator size="3px" color="grey-2" />

View file

@ -45,7 +45,9 @@ const list1_1 = ref<any>([]);
const option = ref<any>([]);
// part 1
const evaluate_expenct_level = ref<any>([{ id: "1", label: "ผลผลิตของงานที่คาดหวัง 1", level: 0 }]);
const evaluate_expenct_level = ref<any>([
{ id: "1", label: "ผลผลิตของงานที่คาดหวัง 1", level: 0 },
]);
const evaluate_ouptut = ref<any>([{ level: 0, text: "" }]);
const knowledge_level = ref<number>(0);
const skill_level = ref<number>(0);
@ -88,7 +90,7 @@ const edit = () => {
const cancel = () => {
status.value = false;
props.fecthAssign?.(assignId.value)
props.fecthAssign?.(assignId.value);
};
const props = defineProps({
tab: String,
@ -104,7 +106,7 @@ const fecthFormdata = async () => {
await fecthAssignoutput(res.data.data);
await fectFormfull();
})
.catch((e: any) => { })
.catch((e: any) => {})
.finally(() => {
if (props.action == "edit") {
fecthFormRound();
@ -112,7 +114,9 @@ const fecthFormdata = async () => {
});
};
const fectFormfull = async () => {
Autherise.value = probationStore.director.name + ` (${probationStore.director.PositionLineName}, ${probationStore.director.PositionLevelName}, ${probationStore.director.Oc})`;
Autherise.value =
probationStore.director.name +
` (${probationStore.director.PositionLineName}, ${probationStore.director.PositionLevelName}, ${probationStore.director.Oc})`;
list1_1.value = probationStore.assignOutput;
evaluate_expenct_level.value = await probationStore.assignOutput.map(
(e: any) => ({
@ -161,7 +165,7 @@ const fecthFormRound = async () => {
self_learning.value = data.self_learning.toString();
training_seminar.value = data.training_seminar.toString();
other_training.value = data.other_training.toString();
dateAutherise.value = data.assessor_dated
dateAutherise.value = data.assessor_dated;
if (
data.achievement_other_desc !== "" &&
@ -323,7 +327,6 @@ const editData = async (data: any) => {
});
};
watch(props, async () => {
if (props.tab && props.action == "edit") {
evaluate_no.value = Number(props.tab.charAt(4));
@ -345,7 +348,14 @@ onMounted(async () => {
<div class="toptitle text-dark col-12 row items-center q-gutter-md">
<div>แบบบนทกผล (งคบบญชา)</div>
<div v-if="status == false">
<q-btn dense flat round color="primary" @click="edit()" icon="mdi-pencil-outline">
<q-btn
dense
flat
round
color="primary"
@click="edit()"
icon="mdi-pencil-outline"
>
<q-tooltip>แกไขขอม</q-tooltip>
</q-btn>
</div>
@ -353,14 +363,21 @@ onMounted(async () => {
<q-btn dense flat round color="red" @click="cancel()" icon="mdi-undo">
<q-tooltip>ยกเล</q-tooltip>
</q-btn>
<q-btn dense flat round class="q-ml-md" color="public" @click="savaForm()" icon="mdi-content-save-outline">
<q-btn
dense
flat
round
class="q-ml-md"
color="public"
@click="savaForm()"
icon="mdi-content-save-outline"
>
<q-tooltip>นทกขอม</q-tooltip>
</q-btn>
</div>
</div>
<div class="col-12 row q-gutter-lg">
<div class="col-12 row">
<div class="col-12 row text-top0">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
ทดลองปฏหนาทราชการ {{ probationStore.person.name }}
@ -368,18 +385,26 @@ onMounted(async () => {
<div class="col-12 q-pl-md q-pb-md">
<!-- <div class="col-12"><span class="text-top0 q-pl-sm">ตำแหน</span> {{ person.Position }}</div> -->
<div class="col-12"><span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span> {{
probationStore.person.PositionLineName }}</div>
<div class="col-12"><span class="text-top0 q-pl-sm">ระด</span> {{ probationStore.person.PositionLevelName }}
<div class="col-12">
<span class="text-top0 q-pl-sm">ตำแหนงในสายงาน</span>
{{ probationStore.person.PositionLineName }}
</div>
<div class="col-12">
<span class="text-top0 q-pl-sm">ระด</span>
{{ probationStore.person.PositionLevelName }}
</div>
<div class="col-12">
<span class="text-top0 q-pl-sm">งก</span>
{{ probationStore.person.Oc }}
</div>
<div class="col-12"><span class="text-top0 q-pl-sm">งก</span> {{ probationStore.person.Oc }}</div>
</div>
<div class="col-12 text-top0 row items-center">
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
การทดลองปฎหนาทราชการ<span class="text-primary q-pr-sm">{{
"ครั้งที่ " + assign.round_no
}}</span> งแตนท
}}</span>
งแตนท
<span class="text-black q-px-sm">{{
date2Thai(assign.date_start)
}}</span>
@ -419,15 +444,27 @@ onMounted(async () => {
<div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
ผลผลตของงานทคาดหว
</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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="evaluate_expenct_level[i].level"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -454,16 +491,37 @@ onMounted(async () => {
<div class="col-xs-12 col-sm-11 col-md-10 offset-md-1 text-top2">
ผลผลตของงานทเกดขนจร
</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-input outlined dense v-model="evaluate_ouptut[i].text" lazy-rules autogrow hide-bottom-space :row="1"
:rules="evaluate_ouptutRules" :disable="!status" />
<q-input
outlined
dense
v-model="evaluate_ouptut[i].text"
lazy-rules
autogrow
hide-bottom-space
:row="1"
:rules="evaluate_ouptutRules"
:disable="!status"
/>
</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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="evaluate_ouptut[i].level"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -493,11 +551,19 @@ onMounted(async () => {
<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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="knowledge_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -525,11 +591,19 @@ onMounted(async () => {
<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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="skill_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -557,11 +631,19 @@ onMounted(async () => {
<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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="competency_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -589,11 +671,19 @@ onMounted(async () => {
<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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="learn_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -622,11 +712,19 @@ onMounted(async () => {
<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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="apply_level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -654,29 +752,55 @@ onMounted(async () => {
<q-item-label>
<q-icon name="mdi-label" color="grey-4" class="q-pr-sm" />
1.7 นๆ
<q-checkbox class="q-ml-sm" dense v-model="etc" @click="
(achievement_other.text = ''),
(achievement_other.level = 0)
" :disable="!status" /></q-item-label>
<q-checkbox
class="q-ml-sm"
dense
v-model="etc"
@click="
(achievement_other.text = ''),
(achievement_other.level = 0)
"
:disable="!status"
/></q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-card>
<q-card v-if="etc" class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg">
<q-card
v-if="etc"
class="text-top0 col-xs-12 col-sm-11 q-pa-xs q-pl-lg"
>
<q-list dense>
<q-item dense tag="label" v-ripple>
<q-item-section class="q-ml-md">
<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) || 'กรุณากรอกข้อความ',
]" :disable="!status" />
]"
:disable="!status"
/>
</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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="achievement_other.level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -705,18 +829,39 @@ onMounted(async () => {
<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" :disable="!status" />
<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"
:disable="!status"
/>
</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"
ref="achievement_inproveRef" :disable="!status" />
<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"
ref="achievement_inproveRef"
:disable="!status"
/>
</div>
</div>
@ -732,15 +877,27 @@ onMounted(async () => {
<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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="conduct_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -768,15 +925,27 @@ onMounted(async () => {
<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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="moral_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -804,15 +973,27 @@ onMounted(async () => {
<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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="discipline_level[i]"
:val="list.id"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -839,23 +1020,50 @@ onMounted(async () => {
<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)" :disable="!status" />
<q-checkbox
class="q-ml-sm"
dense
v-model="etc2"
@click="(behavio_orther.text = ''), (behavio_orther.level = 0)"
:disable="!status"
/>
</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) || 'กรุณากรอกข้อความ',
]" :disable="!status" />
]"
:disable="!status"
/>
</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="ระดับการประเมินพฤติกรรม" :disable="!status">
<q-rating
v-model="behavio_orther.level"
max="5"
size="sm"
color="grey"
:color-selected="ratingColors"
label="ระดับการประเมินพฤติกรรม"
:disable="!status"
>
<template v-slot:tip-1>
<q-tooltip>ำกวาความคาดหวงมาก (1)</q-tooltip>
</template>
@ -884,18 +1092,39 @@ onMounted(async () => {
<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" :disable="!status" />
<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"
:disable="!status"
/>
</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"
ref="behavio_inproveRef" :disable="!status" />
<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"
ref="behavio_inproveRef"
:disable="!status"
/>
</div>
</div>
</div>
@ -908,7 +1137,11 @@ onMounted(async () => {
<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>
@ -916,10 +1149,22 @@ onMounted(async () => {
</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="ดำเนินการเเล้ว" :disable="!status" />
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="orientation" val="0"
label=" ยังไม่ได้ดำเนินการ" :disable="!status" />
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="1"
label="ดำเนินการเเล้ว"
:disable="!status"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="orientation"
val="0"
label=" ยังไม่ได้ดำเนินการ"
:disable="!status"
/>
</div>
</q-item-section>
</q-item>
@ -930,10 +1175,22 @@ onMounted(async () => {
</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="ดำเนินการเเล้ว" :disable="!status" />
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="self_learning" val="0"
label=" ยังไม่ได้ดำเนินการ" :disable="!status" />
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="1"
label="ดำเนินการเเล้ว"
:disable="!status"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="self_learning"
val="0"
label=" ยังไม่ได้ดำเนินการ"
:disable="!status"
/>
</div>
</q-item-section>
</q-item>
@ -944,24 +1201,50 @@ onMounted(async () => {
</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="ดำเนินการเเล้ว" :disable="!status" />
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="training_seminar" val="0"
label=" ยังไม่ได้ดำเนินการ" :disable="!status" />
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="1"
label="ดำเนินการเเล้ว"
:disable="!status"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="training_seminar"
val="0"
label=" ยังไม่ได้ดำเนินการ"
:disable="!status"
/>
</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="ดำเนินการเเล้ว" :disable="!status" />
<q-radio checked-icon="task_alt" unchecked-icon="panorama_fish_eye" v-model="other_training" val="0"
label=" ยังไม่ได้ดำเนินการ" :disable="!status" />
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="1"
label="ดำเนินการเเล้ว"
:disable="!status"
/>
<q-radio
checked-icon="task_alt"
unchecked-icon="panorama_fish_eye"
v-model="other_training"
val="0"
label=" ยังไม่ได้ดำเนินการ"
:disable="!status"
/>
</div>
</q-item-section>
</q-item>
@ -978,11 +1261,27 @@ onMounted(async () => {
งคบบญชา/มอบหมายงาน
</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" :readonly="!status">
<datepicker
menu-class-name="modalfix"
v-model="dateAutherise"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
:readonly="!status"
>
<template #year="{ year }">
{{ year + 543 }}
</template>
@ -990,11 +1289,23 @@ onMounted(async () => {
{{ 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 || `${'กรุณาเลือกลงวันที่'}`]"
:disable="!status">
<q-input
outlined
dense
class="full-width datepicker col-3"
:model-value="
dateAutherise != null ? date2Thai(dateAutherise) : null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
:disable="!status"
>
<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>
@ -1004,7 +1315,10 @@ onMounted(async () => {
</div>
</div>
</div>
<q-toolbar class="text-primary" v-if="routeName == 'probationFormAddresult'">
<q-toolbar
class="text-primary"
v-if="routeName == 'probationFormAddresult'"
>
<q-space />
<q-btn label="บันทึก" color="secondary" @click="savaForm" />
</q-toolbar>

View file

@ -44,6 +44,8 @@ const modalData = ref<any>({
salaryAmount: null,
positionSalaryAmount: null,
monthSalaryAmount: null,
remarkVertical: "",
remarkHorizontal: "",
});
const myForm = ref<QForm | null>(null);
const myFormAdd = ref<QForm | null>(null);
@ -172,6 +174,18 @@ const statuscode = computed(() => {
}
return true;
});
//
const checkNote = computed(() => {
if (
orderTypeCode.value === "c-pm-01" ||
orderTypeCode.value === "c-pm-02" ||
orderTypeCode.value === "c-pm-03" ||
orderTypeCode.value === "c-pm-04"
) {
return true;
}
return false;
});
//
const dialogDeleteData = async (id: string) => {
dialogRemove($q, () => deleteData(id));
@ -257,6 +271,8 @@ const fetchSalary = async (personalId: string) => {
.get(config.API.salaryOrder(personalId))
.then((res: any) => {
const data = res.data.result;
console.log(data);
modalData.value = {
salaryAmount:
data.salaryAmount === 0 &&
@ -276,6 +292,8 @@ const fetchSalary = async (personalId: string) => {
data.monthSalaryAmount === 0
? null
: data.monthSalaryAmount,
// remarkVertical: data.remarkVertical,
// remarkHorizontal: data.remarkHorizontal,
};
})
.catch((e) => {
@ -645,6 +663,21 @@ const pagination = ref({
hide-bottom-space
/>
</div>
<div class="col-xs-6 col-sm-6 col-md-12" v-if="checkNote">
<q-input
outlined
v-model="modalData.remarkVertical"
label="หมายเหตุแนวตั้ง"
/>
</div>
<div class="col-xs-6 col-sm-6 col-md-12" v-if="checkNote">
<q-input
outlined
v-model="modalData.remarkHorizontal"
type="textarea"
label="หมายเหตุแนวนอน"
/>
</div>
</div>
</div>
</div>