- fix bug api ทดลองงาน

- fix status ลาออก
This commit is contained in:
Warunee Tamkoo 2023-08-21 12:33:44 +07:00
parent ac74a83dad
commit c9f4033afe
8 changed files with 72 additions and 260 deletions

View file

@ -41,17 +41,17 @@ export default {
//แบบประเมินผล (ผู้บังคับบัญชา) //แบบประเมินผล (ผู้บังคับบัญชา)
evaluateCreate: (id: string) => `${evaluate}/evaluate/create?assign_id=${id}`, evaluateCreate: (id: string) => `${evaluate}/evaluate/create?assign_id=${id}`,
evaluatecommader: (id: string, no: string) => `${evaluate}/evaluate?assign_id=${id}&evaluate_no=${no}`, evaluatecommader: (id: string, no: string) => `${evaluate}/evaluate?assign_id=${id}&evaluate_no=${no}`,
createformCommader: (id: string) => `${evaluate}/evaluate?id=${id}`, createformCommader: (id: string) => `${evaluate}/evaluate?assign_id=${id}`,
//แบบประเมินผล (คณะกรรมการ) //แบบประเมินผล (คณะกรรมการ)
evaluateChairman: (id: string) => `${evaluate}/evaluate-chairman/create?assign_id=${id}`, evaluateChairman: (id: string) => `${evaluate}/evaluate-chairman/create?assign_id=${id}`,
evaluateRoundChairman: (id: string, no: string) => `${evaluate}/evaluate-chairman?assign_id=${id}&evaluate_no=${no}`, evaluateRoundChairman: (id: string, no: string) => `${evaluate}/evaluate-chairman?assign_id=${id}&evaluate_no=${no}`,
createformChairman: (id: string) => `${evaluate}/evaluate-chairman?id=${id}`, createformChairman: (id: string) => `${evaluate}/evaluate-chairman?assign_id=${id}`,
//แบบรายงาน //แบบรายงาน
evaluateReportcreate: (id: string) => `${evaluate}/evaluate-result/create?assign_id=${id}`, evaluateReportcreate: (id: string) => `${evaluate}/evaluate-result/create?assign_id=${id}`,
evaluateReport: (id: string) => `${evaluate}/evaluate-result?assign_id=${id}`, evaluateReport: (id: string) => `${evaluate}/evaluate-result?assign_id=${id}`,
createformReport: (id: string) => `${evaluate}/evaluate-result?id=${id}`, createformReport: (id: string) => `${evaluate}/evaluate-result?assign_id=${id}`,

View file

@ -26,7 +26,7 @@ const assign = ref<any>([]);
const mentors = ref<any>([]); const mentors = ref<any>([]);
const commander = ref<any>([]); const commander = ref<any>([]);
const status = ref<boolean>(true); const status = ref<boolean>(true);
const evaluate = ref<any>([]); // const evaluate = ref<any>([]);
onMounted(() => { onMounted(() => {
fecthAssign(assignId.value); fecthAssign(assignId.value);
@ -68,7 +68,7 @@ const director1_dated = ref<any>("");
const director2_dated = ref<any>(""); const director2_dated = ref<any>("");
const fecthResult = async (id: string) => { const fecthResult = async (id: string) => {
await http await http
.get(config.API.evaluateReport(id)) .get(config.API.createformReport(id))
.then((res: any) => { .then((res: any) => {
let data = res.data.data.evaluate; let data = res.data.data.evaluate;
console.log(data); console.log(data);
@ -124,7 +124,7 @@ const postData = async () => {
director2_dated: director2_dated.value, director2_dated: director2_dated.value,
}; };
console.log("postData===>", data); // console.log("postData===>", data);
await http await http
.post(config.API.createformReport(assignId.value), data) .post(config.API.createformReport(assignId.value), data)
.then(() => { .then(() => {
@ -146,15 +146,8 @@ const postData = async () => {
<div class="row col-12"> <div class="row col-12">
<div class="col-12 row q-col-gutter-md"> <div class="col-12 row q-col-gutter-md">
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<datepicker <datepicker menu-class-name="modalfix" v-model="date_start" :locale="'th'" autoApply borderless
menu-class-name="modalfix" :enableTimePicker="false" week-start="0">
v-model="date_start"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -162,22 +155,10 @@ const postData = async () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input <q-input outlined dense class="full-width datepicker" :model-value="date_start != null ? date2Thai(date_start) : null
outlined " :label="`${'ระหว่างวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]">
dense
class="full-width datepicker"
:model-value="
date_start != null ? date2Thai(date_start) : null
"
:label="`${'ระหว่างวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon <q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -185,15 +166,8 @@ const postData = async () => {
</datepicker> </datepicker>
</div> </div>
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<datepicker <datepicker menu-class-name="modalfix" v-model="date_finish" :locale="'th'" autoApply borderless
menu-class-name="modalfix" :enableTimePicker="false" week-start="0">
v-model="date_finish"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -201,22 +175,10 @@ const postData = async () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input <q-input outlined dense class="full-width datepicker" :model-value="date_finish != null ? date2Thai(date_finish) : null
outlined " :label="`${'ถึงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]">
dense
class="full-width datepicker"
:model-value="
date_finish != null ? date2Thai(date_finish) : null
"
:label="`${'ถึงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกวันที่'}`]"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon <q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -228,63 +190,29 @@ const postData = async () => {
<div class="col-12 row q-mt-xs"> <div class="col-12 row q-mt-xs">
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select <q-select :rules="[
:rules="[ (val) =>
(val) => !!val || 'กรุณาเลือกการพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ',
!!val || 'กรุณาเลือกการพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ', ]" hide-bottom-space :options="options" class="col-xs-12 col-sm-6" dense borderless emit-value map-options
]" option-label="label" option-value="value" outlined v-model="develop"
hide-bottom-space label="การพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ" />
:options="options"
class="col-xs-12 col-sm-6"
dense
borderless
emit-value
map-options
option-label="label"
option-value="value"
outlined
v-model="develop"
label="การพัฒนาในระหว่างทดลองปฏิบัติหน้าที่ราชการ"
/>
</div> </div>
</div> </div>
<div class="col-12 row q-mt-lg"> <div class="col-12 row q-mt-lg">
<div class="col-xs-12 col-sm-6"> <div class="col-xs-12 col-sm-6">
<q-select <q-select :rules="[
:rules="[ (val) =>
(val) => !!val || 'กรุณาเลือกผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ',
!!val || 'กรุณาเลือกผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ', ]" hide-bottom-space :options="optionsResult" class="col-xs-12 col-sm-6" dense borderless emit-value
]" map-options option-label="label" option-value="value" outlined v-model="result"
hide-bottom-space label="ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ" />
:options="optionsResult"
class="col-xs-12 col-sm-6"
dense
borderless
emit-value
map-options
option-label="label"
option-value="value"
outlined
v-model="result"
label="ผลการประเมินการทดลองปฏิบัติหน้าที่ราชการ"
/>
</div> </div>
</div> </div>
<div class="col-12 row q-mt-lg"> <div class="col-12 row q-mt-lg">
<div class="col-12"> <div class="col-12">
<q-input <q-input hide-bottom-space :readonly="edit" dense borderless :outlined="!edit" class="bg-white" type="textarea"
hide-bottom-space v-model="reson" label="เหตุผล" :rules="[(val) => !!val || 'กรุณาระบุเหตุผล']" />
:readonly="edit"
dense
borderless
:outlined="!edit"
class="bg-white"
type="textarea"
v-model="reson"
label="เหตุผล"
:rules="[(val) => !!val || 'กรุณาระบุเหตุผล']"
/>
</div> </div>
</div> </div>
@ -298,26 +226,11 @@ const postData = async () => {
ประธานคณะกรรมการประเมนผลการปฏหนาทราชการ ประธานคณะกรรมการประเมนผลการปฏหนาทราชการ
</div> </div>
<div class="col-12 row q-col-gutter-md"> <div class="col-12 row q-col-gutter-md">
<q-select <q-select class="col-xs-12 col-sm-8" dense v-model="director_id" outlined :options="commander" label=""
class="col-xs-12 col-sm-8" option-label="name" disable />
dense
v-model="director_id"
outlined
:options="commander"
label=""
option-label="name"
disable
/>
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker <datepicker menu-class-name="modalfix" v-model="chairman_dated" :locale="'th'" autoApply borderless
menu-class-name="modalfix" :enableTimePicker="false" week-start="0">
v-model="chairman_dated"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -325,22 +238,10 @@ const postData = async () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input <q-input outlined dense class="full-width datepicker col-3" :model-value="chairman_dated != null ? date2Thai(chairman_dated) : null
outlined " :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
dense
class="full-width datepicker col-3"
:model-value="
chairman_dated != null ? date2Thai(chairman_dated) : null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon <q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -356,25 +257,11 @@ const postData = async () => {
<!-- ความเหนของผอำนาจสงบรรจตามมาตรา 52 --> <!-- ความเหนของผอำนาจสงบรรจตามมาตรา 52 -->
</div> </div>
<div class="col-12 row q-col-gutter-md"> <div class="col-12 row q-col-gutter-md">
<q-select <q-select class="col-xs-12 col-sm-8" dense v-model="director_id2" outlined :options="optionDirector" label=""
class="col-xs-12 col-sm-8" option-label="name" />
dense
v-model="director_id2"
outlined
:options="optionDirector"
label=""
option-label="name"
/>
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker <datepicker menu-class-name="modalfix" v-model="director1_dated" :locale="'th'" autoApply borderless
menu-class-name="modalfix" :enableTimePicker="false" week-start="0">
v-model="director1_dated"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -382,24 +269,12 @@ const postData = async () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input <q-input outlined dense class="full-width datepicker col-3" :model-value="director1_dated != null
outlined ? date2Thai(director1_dated)
dense : null
class="full-width datepicker col-3" " :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
:model-value="
director1_dated != null
? date2Thai(director1_dated)
: null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon <q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -415,25 +290,11 @@ const postData = async () => {
<!-- อำนาจสงบรรจตามมาตรา 52 --> <!-- อำนาจสงบรรจตามมาตรา 52 -->
</div> </div>
<div class="col-12 row q-col-gutter-md"> <div class="col-12 row q-col-gutter-md">
<q-select <q-select class="col-xs-12 col-sm-8" dense v-model="director_id3" outlined :options="optionDirector" label=""
class="col-xs-12 col-sm-8" option-label="name" />
dense
v-model="director_id3"
outlined
:options="optionDirector"
label=""
option-label="name"
/>
<div class="col-xs-12 col-sm-4"> <div class="col-xs-12 col-sm-4">
<datepicker <datepicker menu-class-name="modalfix" v-model="director2_dated" :locale="'th'" autoApply borderless
menu-class-name="modalfix" :enableTimePicker="false" week-start="0">
v-model="director2_dated"
:locale="'th'"
autoApply
borderless
:enableTimePicker="false"
week-start="0"
>
<template #year="{ year }"> <template #year="{ year }">
{{ year + 543 }} {{ year + 543 }}
</template> </template>
@ -441,24 +302,12 @@ const postData = async () => {
{{ parseInt(value + 543) }} {{ parseInt(value + 543) }}
</template> </template>
<template #trigger> <template #trigger>
<q-input <q-input outlined dense class="full-width datepicker col-3" :model-value="director2_dated != null
outlined ? date2Thai(director2_dated)
dense : null
class="full-width datepicker col-3" " :label="`${'ลงวันที่'}`" :rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]">
:model-value="
director2_dated != null
? date2Thai(director2_dated)
: null
"
:label="`${'ลงวันที่'}`"
:rules="[(val) => !!val || `${'กรุณาเลือกลงวันที่'}`]"
>
<template v-slot:prepend> <template v-slot:prepend>
<q-icon <q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)">
name="event"
class="cursor-pointer"
style="color: var(--q-primary)"
>
</q-icon> </q-icon>
</template> </template>
</q-input> </q-input>
@ -471,12 +320,7 @@ const postData = async () => {
<q-toolbar class="text-primary"> <q-toolbar class="text-primary">
<q-space /> <q-space />
<q-btn <q-btn label="บันทึก" color="secondary" @click="savaForm" v-if="status" />
label="บันทึก"
color="secondary"
@click="savaForm"
v-if="status"
/>
</q-toolbar> </q-toolbar>
</q-form> </q-form>
</div> </div>

View file

@ -41,10 +41,11 @@ const props = defineProps({
}); });
onMounted(async () => { onMounted(async () => {
// console.log("tab===>", props.tab); console.log("form tab===>", props.tab);
if (props.tab !== undefined) { if (props.tab !== undefined) {
round.value = props.tab.charAt(4); round.value = props.tab.charAt(4);
console.log("round===>", round.value);
// await fecthFormRound(assignId.value, round.value); // await fecthFormRound(assignId.value, round.value);
} }
@ -55,7 +56,7 @@ const fecthFormdata = async (id: string) => {
await http await http
.get(config.API.formevaluateRecord(id)) .get(config.API.formevaluateRecord(id))
.then(async (res: any) => { .then(async (res: any) => {
console.log(res); // console.log(res);
evaluate_no.value = res.data.data.evaluate_no; evaluate_no.value = res.data.data.evaluate_no;
start_date.value = res.data.data.start_date; start_date.value = res.data.data.start_date;
date_finish.value = res.data.data.end_date; date_finish.value = res.data.data.end_date;

View file

@ -48,7 +48,7 @@ const fecthAssign = async (id: string) => {
// console.log(tabs.value); // console.log(tabs.value);
}) })
.catch((e: any) => { .catch((e: any) => {
console.log(e); // console.log(e);
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {
@ -75,40 +75,7 @@ const addData = () => {
:loop="tabs.length" :loop="tabs.length"
v-if="tabs.length > 0" v-if="tabs.length > 0"
/> />
<!-- <q-header class="bg-grey-1">
<div class="bg-grey-1">
<div class="col-12 row q-gutter-xs-md items-center">
<q-tabs dense v-model="tabHead" active-class="text-primary text-weight-medium" indicator-color="grey-1"
class="text-grey-7">
<q-tab v-for="tabData in tabs" :key="tabData.no" :name="tabData.no" :label="'ครั้งที่' + tabData.no"
@click="changeTab('save' + tabData.no)">
<q-btn size="12px" flat dense icon="mdi-download" :disable="tabHead !== tabData.no"
:color="tabHead !== tabData.no ? 'grey' : 'add'">
<q-tooltip>ดาวนโหลด</q-tooltip>
<q-menu>
<q-list style="min-width: 150px">
<q-item clickable v-close-popup>
<q-item-section avatar><q-icon color="red" name="mdi-file-pdf" /></q-item-section>
<q-item-section>ไฟล .PDF</q-item-section>
</q-item>
<q-item clickable v-close-popup>
<q-item-section avatar><q-icon color="blue" name="mdi-file-word" /></q-item-section>
<q-item-section>ไฟล .docx</q-item-section>
</q-item>
</q-list>
</q-menu>
</q-btn>
</q-tab>
</q-tabs>
<div>
<q-btn color="blue" flat dense icon="mdi-plus" @click="nextPage">
<q-tooltip> เพ </q-tooltip>
</q-btn>
</div>
</div>
<q-separator />
</div>
</q-header> -->
<q-page-container> <q-page-container>
<q-tab-panels v-model="tab" animated> <q-tab-panels v-model="tab" animated>
<q-tab-panel <q-tab-panel

View file

@ -41,14 +41,14 @@ onMounted(() => {
const fecthAssign = async (id: string) => { const fecthAssign = async (id: string) => {
showLoader(); showLoader();
await http await http
.get(config.API.evaluateCreate(id)) .get(config.API.createformCommader(id))
.then((res: any) => { .then((res: any) => {
if (res.data.data.evaluate_no > 0) { if (res.data.data.evaluate_no > 0) {
tabs.value = res.data.data.evaluate; tabs.value = res.data.data.evaluate;
} }
}) })
.catch((e: any) => { .catch((e: any) => {
console.log(e); // console.log(e);
messageError($q, e); messageError($q, e);
}) })
.finally(() => { .finally(() => {

View file

@ -37,7 +37,7 @@ onMounted(() => {
const fecthAssign = async (id: string) => { const fecthAssign = async (id: string) => {
showLoader(); showLoader();
await http await http
.get(config.API.evaluateChairman(id)) .get(config.API.createformChairman(id))
.then((res: any) => { .then((res: any) => {
if (res.data.data.evaluate_no > 0) { if (res.data.data.evaluate_no > 0) {
tabs.value = res.data.data.evaluate; tabs.value = res.data.data.evaluate;

View file

@ -1,13 +1,13 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, defineAsyncComponent } from "vue"; import { ref, defineAsyncComponent } from "vue";
const tab = ref<string>("save1"); // const tab = ref<string>("save1");
const changeTab = (tabVal: string) => { // const changeTab = (tabVal: string) => {
tab.value = tabVal // tab.value = tabVal
} // }
const Header = defineAsyncComponent( // const Header = defineAsyncComponent(
() => import("@/modules/05_placement/components/probation/FormEvaluation/Header.vue") // () => import("@/modules/05_placement/components/probation/FormEvaluation/Header.vue")
); // );
const FormReport = defineAsyncComponent( const FormReport = defineAsyncComponent(
() => import("@/modules/05_placement/components/probation/FormEvaluation/FormReport.vue") () => import("@/modules/05_placement/components/probation/FormEvaluation/FormReport.vue")
) )

View file

@ -75,7 +75,7 @@
<div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"> <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> <div class="q-pl-sm text-weight-bold text-dark">อมลการลาออก</div>
<q-space /> <q-space />
<div class="q-gutter-x-sm" v-if="dataDetail.status === 'PENDING'"> <div class="q-gutter-x-sm" v-if="dataDetail.status === 'WAITTING'">
<q-btn <q-btn
outline outline
color="primary" color="primary"