เพิ่มเงื่อนไขกรอกให้ครบก่อนส่ง
This commit is contained in:
parent
2143c05a42
commit
0bbf5cde0b
3 changed files with 778 additions and 1099 deletions
|
|
@ -6,13 +6,30 @@
|
||||||
<div v-if="routeName == 'addTransfer'">เพิ่มเรื่องขอโอน</div>
|
<div v-if="routeName == 'addTransfer'">เพิ่มเรื่องขอโอน</div>
|
||||||
<div v-else>รายละเอียดเรื่องขอโอน</div>
|
<div v-else>รายละเอียดเรื่องขอโอน</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<q-form ref="myform" class="col-12">
|
||||||
<q-card bordered>
|
<q-card bordered>
|
||||||
<div class="col-12 row q-col-gutter-md q-pa-md">
|
<div class="col-12 row q-col-gutter-md q-pa-md">
|
||||||
<div class="col-xs-12 col-sm-12">
|
<div class="col-xs-12 col-sm-12">
|
||||||
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
||||||
<q-input class="col-12" dense outlined v-model="tranferOrg" label="หน่วยงานที่ขอโอนไป" :readonly="routeName != 'addTransfer'" />
|
<q-input
|
||||||
<q-input class="col-12" dense outlined v-model="noteReason" label="เหตุผล" type="textarea" :readonly="routeName != 'addTransfer'" />
|
class="col-12"
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
v-model="tranferOrg"
|
||||||
|
label="หน่วยงานที่ขอโอนไป"
|
||||||
|
:readonly="routeName != 'addTransfer'"
|
||||||
|
:rules="[(val:string) => !!val || `${'กรุณากรอกหน่วยงานที่ขอโอนไป'}`]"
|
||||||
|
/>
|
||||||
|
<q-input
|
||||||
|
class="col-12"
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
v-model="noteReason"
|
||||||
|
label="เหตุผล"
|
||||||
|
type="textarea"
|
||||||
|
:readonly="routeName != 'addTransfer'"
|
||||||
|
:rules="[(val:string) => !!val || `${'กรุณากรอกเหตุผล'}`]"
|
||||||
|
/>
|
||||||
<div class="col-12 row">
|
<div class="col-12 row">
|
||||||
<q-uploader
|
<q-uploader
|
||||||
bordered
|
bordered
|
||||||
|
|
@ -25,261 +42,16 @@
|
||||||
@added="fileUploadDoc"
|
@added="fileUploadDoc"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
multiple
|
|
||||||
v-model="file"
|
|
||||||
label="เอกสารเพิ่มเติม"
|
|
||||||
hide-bottom-space
|
|
||||||
accept=".jpg,.png,.pdf,.csv,.doc"
|
|
||||||
lazy-rules
|
|
||||||
:rules="[val => val || 'กรุณาเลือกไฟล์เอกสารเพิ่มเติม']"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="col-12 row q-col-gutter-md q-pa-md">
|
|
||||||
<div class="col-xs-12 col-sm-8 row">
|
|
||||||
<q-card bordered flat>
|
|
||||||
<div class="q-pa-xs bg-grey-2 row items-center q-py-sm q-px-md justify-center text-bold">ข้อมูลการดํารงตําแหน่ง</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
|
||||||
<q-input class="col-12" dense outlined v-model="typeServant" label="ประเภทข้าราชการ(สามัญ/ครู)" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="position" label="ตําแหน่ง" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="level" label="ระดับ" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="positionNum" label="ตําแหน่งเลขที่" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="groupOrga" label="ฝ่าย/กลุ่มงานที่สังกัด" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="affiliation" label="ส่วนที่สังกัด (ถ้ามี)" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="affiliationPart" label="ส่วนราชการที่สังกัด" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="OrganizationPart" label="หน่วยงานที่สังกัด" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="servantAge" label="อายุราชการ" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="salary" label="อัตราเงินเดือน" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="extraSalary" label="เงินเพิ่มพิเศษ" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input
|
|
||||||
class="col-12"
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
v-model="positionHistory"
|
|
||||||
label="ประวัติการดํารงตําแหน่ง (ดึงข้อมูลจากระบบทะเบียนประวัติในส่วนของการแต่งตั้งย้ายเลื่อน)"
|
|
||||||
:readonly="routeName != 'addTransfer'"
|
|
||||||
/>
|
|
||||||
<q-input class="col-12" dense outlined v-model="transfer" label=" ประวัติเกี่ยวกับวินัย" type="textarea" :readonly="routeName != 'addTransfer'" />
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-8 row">
|
|
||||||
<q-card bordered flat>
|
|
||||||
<div class="q-pa-xs bg-grey-2 row items-center q-py-sm q-px-md justify-center text-bold">ตําแหน่ง ระดับ เลขที่ตําแหน่ง และสังกัดที่ขอโอน</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
|
||||||
<q-input class="col-xs-12 col-sm-6" dense outlined v-model="positionNew" label="ตำแหน่ง" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-xs-12 col-sm-6" dense outlined v-model="salaryNew" label="ระดับ" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="transfer" label="เลขที่ตําแหน่ง" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12 col-sm-6" dense outlined v-model="note" label="สังกัดที่ขอโอน" :readonly="routeName != 'addTransfer'" />
|
|
||||||
<q-input class="col-12" dense outlined v-model="note" label="เหตุผลที่ขอโอน" type="textarea" :readonly="routeName != 'addTransfer'" />
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
</div>
|
|
||||||
<div class="col-xs-12 col-sm-4 row">
|
|
||||||
<q-card bordered flat>
|
|
||||||
<div class="q-pa-xs bg-grey-2 row items-center q-py-sm q-px-md justify-center text-bold">เอกสารหลักฐานที่แนบ</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
|
||||||
<q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="fileEdu"
|
|
||||||
label="สําเนาหลักฐานการศึกษา (ปริญญาบัตรประกาศนียบัตร)"
|
|
||||||
hide-bottom-space
|
|
||||||
lazy-rules
|
|
||||||
:rules="[val => val || 'กรุณาเลือกไฟล์สําเนาหลักฐานการศึกษา (ปริญญาบัตรประกาศนียบัตร)']"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="fileKorkor1"
|
|
||||||
label="สําเนาประวัติราชการ (ก.ก.1)"
|
|
||||||
hide-bottom-space
|
|
||||||
lazy-rules
|
|
||||||
:rules="[val => val || 'กรุณาเลือกไฟล์สําเนาประวัติราชการ (ก.ก.1)']"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file class="col-xs-12 col-sm-12" outlined dense v-model="fileEtc" label="สําเนาเอกสารหลักฐานอื่นๆ" hide-bottom-space lazy-rules>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
<div class="col-xs-12 col-sm-12 row">
|
|
||||||
<q-card bordered flat>
|
|
||||||
<div class="q-pa-xs bg-grey-2 row items-center q-py-sm q-px-md justify-center text-bold">ความเห็น</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
|
||||||
<q-input
|
|
||||||
class="col-12 col-sm-12"
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
v-model="note"
|
|
||||||
label="ความเห็นผู้บังคับบัญชาชั้นต้น (หัวหน้าฝ่าย/กลุ่มงาน)"
|
|
||||||
type="textarea"
|
|
||||||
:readonly="routeName != 'addTransfer'"
|
|
||||||
/>
|
|
||||||
<q-input
|
|
||||||
class="col-12 col-sm-12"
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
v-model="note"
|
|
||||||
label="ความเห็นผู้บังคับบัญชาเหนือขึ้นไป (ผู้อํานวยการส่วน) (ถ้ามี)"
|
|
||||||
type="textarea"
|
|
||||||
:readonly="routeName != 'addTransfer'"
|
|
||||||
/>
|
|
||||||
<q-input
|
|
||||||
class="col-12 col-sm-12"
|
|
||||||
dense
|
|
||||||
outlined
|
|
||||||
v-model="note"
|
|
||||||
label="ความเห็นหัวหน้าส่วนราชการผู้ขอโอน (ผอ. กอง)"
|
|
||||||
type="textarea"
|
|
||||||
:readonly="routeName != 'addTransfer'"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="col-xs-12 col-sm-12 row">
|
|
||||||
<q-card bordered flat>
|
|
||||||
<div class="q-pa-xs bg-grey-2 row items-center q-py-sm q-px-md justify-center text-bold">เอกสารหลักฐาน</div>
|
|
||||||
<q-separator />
|
|
||||||
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
|
||||||
<q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="fileEdu"
|
|
||||||
label="หนังสือถึงหน่วยงานที่รับโอน"
|
|
||||||
hide-bottom-space
|
|
||||||
lazy-rules
|
|
||||||
:rules="[val => val || 'กรุณาเลือกไฟล์หนังสือถึงหน่วยงานที่รับโอน']"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="fileKorkor1"
|
|
||||||
label="หนังสือถึงสกจ. เพื่อตรวจสอบพฤติการณ์ทางวินัยและภาระหนี้สิน (เงินกู้สวัสดิการข้าราชการ) ของข้าราชการ"
|
|
||||||
hide-bottom-space
|
|
||||||
lazy-rules
|
|
||||||
:rules="[val => val || 'กรุณาเลือกไฟล์หนังสือถึงสกจ. เพื่อตรวจสอบพฤติการณ์ทางวินัยและภาระหนี้สิน (เงินกู้สวัสดิการข้าราชการ) ของข้าราชการ']"
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="fileEtc"
|
|
||||||
label="หนังสือถึงสพท. เพื่อตรวจสอบภาระผูกพันกับกรุงเทพมหานครเกี่ยวกับการลาศึกษาอบรมของข้าราชการ"
|
|
||||||
hide-bottom-space
|
|
||||||
lazy-rules
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="fileEtc"
|
|
||||||
label="หนังสือถึงผู้จัดการสหกรณ์ออมทรัพย์กทม. เพื่อตรวจสอบหนี้สินและภาระผูกพันของข้าราชการ"
|
|
||||||
hide-bottom-space
|
|
||||||
lazy-rules
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="fileEtc"
|
|
||||||
label="หนังสือสําคัญการโอนอัตราและจ่ายเงินเดือนสําหรับรับรองการจ่ายเงินเดือนครั้งสุดท้ายและโอนอัตราเงินเดือนตามตัวไปตั้งจ่าย"
|
|
||||||
hide-bottom-space
|
|
||||||
lazy-rules
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file
|
|
||||||
class="col-xs-12 col-sm-12"
|
|
||||||
outlined
|
|
||||||
dense
|
|
||||||
v-model="fileEtc"
|
|
||||||
label="แบบประเมินประสิทธิภาพและประสิทธิผลการปฏิบัติงานของข้าราชการพลเรือนสามัญ"
|
|
||||||
hide-bottom-space
|
|
||||||
lazy-rules
|
|
||||||
>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file class="col-xs-12 col-sm-12" outlined dense v-model="fileEtc" label="หนังสือรับรองวันลา" hide-bottom-space lazy-rules>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file class="col-xs-12 col-sm-12" outlined dense v-model="fileEtc" label="หนังสือขอโอนจากกทม. ถึงหน่วยงานที่ประสงค์จะโอน" hide-bottom-space lazy-rules>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file class="col-xs-12 col-sm-12" outlined dense v-model="fileEtc" label="หนังสือตอบรับการโอนจากหน่วยงานที่ประสงค์จะโอน" hide-bottom-space lazy-rules>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
<q-file class="col-xs-12 col-sm-12" outlined dense v-model="fileEtc" label="คําสั่งรับโอนจากหน่วยงานที่ประสงค์จะโอน" hide-bottom-space lazy-rules>
|
|
||||||
<template v-slot:prepend>
|
|
||||||
<q-icon name="attach_file" />
|
|
||||||
</template>
|
|
||||||
</q-file>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
</div>-->
|
|
||||||
<q-separator v-if="routeName == 'addTransfer'" />
|
<q-separator v-if="routeName == 'addTransfer'" />
|
||||||
<div class="row col-12 q-pa-md" v-if="routeName == 'addTransfer'">
|
<div class="row col-12 q-pa-md" v-if="routeName == 'addTransfer'">
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-btn unelevated dense class="q-px-md items-center" color="primary" label="ยื่นเรื่องขอโอน" @click="saveTransfer" />
|
<q-btn unelevated dense class="q-px-md items-center" color="primary" label="ยื่นเรื่องขอโอน" @click="saveData" />
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
</q-form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -291,11 +63,13 @@ import { useRouter, useRoute } from "vue-router"
|
||||||
import { useCounterMixin } from "@/stores/mixin"
|
import { useCounterMixin } from "@/stores/mixin"
|
||||||
import http from "@/plugins/http"
|
import http from "@/plugins/http"
|
||||||
import config from "@/app.config"
|
import config from "@/app.config"
|
||||||
|
import type { QForm } from "quasar"
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const $q = useQuasar()
|
const $q = useQuasar()
|
||||||
const mixin = useCounterMixin()
|
const mixin = useCounterMixin()
|
||||||
const { date2Thai, dateToISO, success, messageError, showLoader, hideLoader } = mixin
|
const myform = ref<QForm | null>(null)
|
||||||
|
const { date2Thai, fails, success, messageError, showLoader, hideLoader } = mixin
|
||||||
const fileDocDataUpload = ref<File[]>([])
|
const fileDocDataUpload = ref<File[]>([])
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const files = ref<any>()
|
const files = ref<any>()
|
||||||
|
|
@ -313,6 +87,17 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const saveData = async () => {
|
||||||
|
console.log(myform.value)
|
||||||
|
if (myform.value != null) {
|
||||||
|
await myform.value.validate().then(async (saveDataTest: Boolean) => {
|
||||||
|
if (saveDataTest) {
|
||||||
|
saveTransfer()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const saveTransfer = () => {
|
const saveTransfer = () => {
|
||||||
$q.dialog({
|
$q.dialog({
|
||||||
title: "ยืนยันการยื่นข้อมูลการโอน",
|
title: "ยืนยันการยื่นข้อมูลการโอน",
|
||||||
|
|
@ -327,7 +112,9 @@ const saveTransfer = () => {
|
||||||
createTransfer()
|
createTransfer()
|
||||||
})
|
})
|
||||||
.onCancel(() => {})
|
.onCancel(() => {})
|
||||||
.onDismiss(() => {})
|
.onDismiss(() => {
|
||||||
|
fails($q, "กรุณากรอกอัพโหลดเอกสารเพิ่มเติม")
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const createTransfer = async () => {
|
const createTransfer = async () => {
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,20 @@
|
||||||
<div v-if="routeName == 'AddLeave'">เพิ่มเรื่องลาออก</div>
|
<div v-if="routeName == 'AddLeave'">เพิ่มเรื่องลาออก</div>
|
||||||
<div v-else>รายละเอียดเรื่องลาออก</div>
|
<div v-else>รายละเอียดเรื่องลาออก</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<q-form ref="myform" class="col-12">
|
||||||
<q-card bordered>
|
<q-card bordered>
|
||||||
<div class="col-12 row q-col-gutter-md q-pa-md">
|
<div class="col-12 row q-col-gutter-md q-pa-md">
|
||||||
<div class="col-xs-12 col-sm-12">
|
<div class="col-xs-12 col-sm-12">
|
||||||
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
<div class="col-12 row q-pa-sm q-col-gutter-sm">
|
||||||
<q-input class="col-8" dense outlined v-model="tranferOrg" label="สถานที่ยื่นขอลาออกจากราชการ" :readonly="routeName != 'AddLeave'" />
|
<q-input
|
||||||
|
class="col-8"
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
v-model="tranferOrg"
|
||||||
|
label="สถานที่ยื่นขอลาออกจากราชการ"
|
||||||
|
:readonly="routeName != 'AddLeave'"
|
||||||
|
:rules="[(val:string) => !!val || `${'กรุณากรอกสถานที่ยื่นขอลาออกจากราชการ'}`]"
|
||||||
|
/>
|
||||||
<datepicker class="col-2" menu-class-name="modalfix" v-model="dateCommand" :locale="'th'" autoApply readonly borderless :enableTimePicker="false" week-start="0">
|
<datepicker class="col-2" menu-class-name="modalfix" v-model="dateCommand" :locale="'th'" autoApply readonly borderless :enableTimePicker="false" week-start="0">
|
||||||
<template #year="{ year }">
|
<template #year="{ year }">
|
||||||
{{ year + 543 }}
|
{{ year + 543 }}
|
||||||
|
|
@ -70,7 +78,16 @@
|
||||||
</q-input>
|
</q-input>
|
||||||
</template>
|
</template>
|
||||||
</datepicker>
|
</datepicker>
|
||||||
<q-input class="col-12" dense outlined v-model="noteReason" label="เหตุผลที่ลาออกจากราชการ" type="textarea" :readonly="routeName != 'AddLeave'" />
|
<q-input
|
||||||
|
class="col-12"
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
v-model="noteReason"
|
||||||
|
label="เหตุผลที่ลาออกจากราชการ"
|
||||||
|
type="textarea"
|
||||||
|
:readonly="routeName != 'AddLeave'"
|
||||||
|
:rules="[val => !!val || `${'กรุณากรอกเหตุผลที่ลาออกจากราชการ'}`]"
|
||||||
|
/>
|
||||||
|
|
||||||
<div class="col-12 row">
|
<div class="col-12 row">
|
||||||
<q-uploader
|
<q-uploader
|
||||||
|
|
@ -88,128 +105,80 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<q-card bordered class="row col-12 text-dark q-mt-sm">
|
<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="bg-grey-1 q-pa-sm col-12 row items-center text-primary">
|
||||||
<div class="q-pl-sm text-weight-bold text-dark">
|
<div class="q-pl-sm text-weight-bold text-dark">ผลการพิจารณาของผู้บังคับบัญชา</div>
|
||||||
ผลการพิจารณาของผู้บังคับบัญชา
|
</div>
|
||||||
</div>
|
<q-separator />
|
||||||
</div>
|
<div class="row col-12 q-pa-md">
|
||||||
<q-separator />
|
<div class="col-12 row bg-white q-col-gutter-md">
|
||||||
<div class="row col-12 q-pa-md">
|
<div class="col-xs-6 row items-start">
|
||||||
<div class="col-12 row bg-white q-col-gutter-md">
|
<div class="col-12 text-top">สถานะ</div>
|
||||||
<div class="col-xs-6 row items-start">
|
<div class="col-12 text-detail">
|
||||||
<div class="col-12 text-top">สถานะ</div>
|
{{ dataDetail.commanderReject !== null ? statusOrder(dataDetail.commanderReject) : "-" }}
|
||||||
<div class="col-12 text-detail">
|
</div>
|
||||||
{{
|
</div>
|
||||||
dataDetail.commanderReject !== null
|
<div class="col-xs-6 row items-start">
|
||||||
? statusOrder(dataDetail.commanderReject)
|
<div class="col-12 text-top">วันสุดท้ายที่ยับยั้ง</div>
|
||||||
: "-"
|
<div class="col-12 text-detail">
|
||||||
}}
|
{{ dataDetail.commanderRejectDate !== null ? date2Thai(dataDetail.commanderRejectDate) : "-" }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 row items-start">
|
<div class="col-xs-12 row items-start">
|
||||||
<div class="col-12 text-top">วันสุดท้ายที่ยับยั้ง</div>
|
<div class="col-12 text-top">ความคิดเห็นและเหตุผล</div>
|
||||||
<div class="col-12 text-detail">
|
<div class="col-12 text-detail" v-if="dataDetail.commanderReject === false">
|
||||||
{{
|
{{ dataDetail.commanderApproveReason !== null ? dataDetail.commanderApproveReason : "-" }}
|
||||||
dataDetail.commanderRejectDate !== null
|
</div>
|
||||||
? date2Thai(dataDetail.commanderRejectDate)
|
<div class="col-12 text-detail" v-if="dataDetail.commanderReject === true">
|
||||||
: "-"
|
{{ dataDetail.commanderRejectReason !== null ? dataDetail.commanderRejectReason : "-" }}
|
||||||
}}
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 row items-start">
|
</div>
|
||||||
<div class="col-12 text-top">ความคิดเห็นและเหตุผล</div>
|
</q-card>
|
||||||
<div
|
|
||||||
class="col-12 text-detail"
|
|
||||||
v-if="dataDetail.commanderReject === false"
|
|
||||||
>
|
|
||||||
{{
|
|
||||||
dataDetail.commanderApproveReason !== null
|
|
||||||
? dataDetail.commanderApproveReason
|
|
||||||
: "-"
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="col-12 text-detail"
|
|
||||||
v-if="dataDetail.commanderReject === true"
|
|
||||||
>
|
|
||||||
{{
|
|
||||||
dataDetail.commanderRejectReason !== null
|
|
||||||
? dataDetail.commanderRejectReason
|
|
||||||
: "-"
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
|
|
||||||
<q-card bordered class="row col-12 text-dark q-mt-sm">
|
<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="bg-grey-1 q-pa-sm col-12 row items-center text-primary">
|
||||||
<div class="q-pl-sm text-weight-bold text-dark">
|
<div class="q-pl-sm text-weight-bold text-dark">ผลการพิจารณาของผู้มีอำนาจ</div>
|
||||||
ผลการพิจารณาของผู้มีอำนาจ
|
</div>
|
||||||
</div>
|
<q-separator />
|
||||||
</div>
|
<div class="row col-12 q-pa-md">
|
||||||
<q-separator />
|
<div class="col-12 row bg-white q-col-gutter-md">
|
||||||
<div class="row col-12 q-pa-md">
|
<div class="col-xs-6 row items-start">
|
||||||
<div class="col-12 row bg-white q-col-gutter-md">
|
<div class="col-12 text-top">สถานะ</div>
|
||||||
<div class="col-xs-6 row items-start">
|
<div class="col-12 text-detail">
|
||||||
<div class="col-12 text-top">สถานะ</div>
|
{{ dataDetail.oligarchReject !== null ? statusOrder(dataDetail.oligarchReject) : "-" }}
|
||||||
<div class="col-12 text-detail">
|
</div>
|
||||||
{{
|
</div>
|
||||||
dataDetail.oligarchReject !== null
|
<div class="col-xs-6 row items-start">
|
||||||
? statusOrder(dataDetail.oligarchReject)
|
<div class="col-12 text-top">วันสุดท้ายที่ยับยั้ง</div>
|
||||||
: "-"
|
<div class="col-12 text-detail">
|
||||||
}}
|
{{ dataDetail.oligarchRejectDate !== null ? date2Thai(dataDetail.oligarchRejectDate) : "-" }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-6 row items-start">
|
<div class="col-xs-12 row items-start">
|
||||||
<div class="col-12 text-top">วันสุดท้ายที่ยับยั้ง</div>
|
<div class="col-12 text-top">ความคิดเห็นและเหตุผล</div>
|
||||||
<div class="col-12 text-detail">
|
<div class="col-12 text-detail" v-if="dataDetail.oligarchReject == false">
|
||||||
{{
|
{{ dataDetail.oligarchApproveReason !== null ? dataDetail.oligarchApproveReason : "-" }}
|
||||||
dataDetail.oligarchRejectDate !== null
|
</div>
|
||||||
? date2Thai(dataDetail.oligarchRejectDate)
|
<div class="col-12 text-detail" v-else-if="dataDetail.oligarchReject == true">
|
||||||
: "-"
|
{{ dataDetail.oligarchRejectReason !== null ? dataDetail.oligarchRejectReason : "-" }}
|
||||||
}}
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 row items-start">
|
</div>
|
||||||
<div class="col-12 text-top">ความคิดเห็นและเหตุผล</div>
|
</q-card>
|
||||||
<div
|
<div class="row col-12 q-pa-md" v-if="routeName != 'AddLeave'">
|
||||||
class="col-12 text-detail"
|
<q-space />
|
||||||
v-if="dataDetail.oligarchReject == false"
|
<q-btn unelevated dense class="q-px-md items-center" color="orange" label="ยกเลิกการลาออก" @click="cancelResing" :disable="tranferOrg == '' && noteReason == ''" />
|
||||||
>
|
</div>
|
||||||
{{
|
|
||||||
dataDetail.oligarchApproveReason !== null
|
|
||||||
? dataDetail.oligarchApproveReason
|
|
||||||
: "-"
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="col-12 text-detail"
|
|
||||||
v-else-if="dataDetail.oligarchReject == true"
|
|
||||||
>
|
|
||||||
{{
|
|
||||||
dataDetail.oligarchRejectReason !== null
|
|
||||||
? dataDetail.oligarchRejectReason
|
|
||||||
: "-"
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</q-card>
|
|
||||||
<div class="row col-12 q-pa-md" v-if="routeName != 'AddLeave'">
|
|
||||||
<q-space />
|
|
||||||
<q-btn unelevated dense class="q-px-md items-center" color="orange" label="ยกเลิกการลาออก" @click="cancelResing(id.value)" :disable="tranferOrg == '' && noteReason == ''" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<q-separator v-if="routeName == 'AddLeave'" />
|
<q-separator v-if="routeName == 'AddLeave'" />
|
||||||
<div class="row col-12 q-pa-md" v-if="routeName == 'AddLeave'">
|
<div class="row col-12 q-pa-md" v-if="routeName == 'AddLeave'">
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-btn unelevated dense class="q-px-md items-center" color="primary" label="ยื่นเรื่องขอลาออก" @click="saveResing" :disable="tranferOrg == '' && noteReason == ''" />
|
<q-btn unelevated dense class="q-px-md items-center" color="primary" label="ยื่นเรื่องขอลาออก" @click="saveData" :disable="tranferOrg == '' && noteReason == ''" />
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
</div>
|
</q-form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -221,11 +190,13 @@ import { useRouter, useRoute } from "vue-router"
|
||||||
import { useCounterMixin } from "@/stores/mixin"
|
import { useCounterMixin } from "@/stores/mixin"
|
||||||
import http from "@/plugins/http"
|
import http from "@/plugins/http"
|
||||||
import config from "@/app.config"
|
import config from "@/app.config"
|
||||||
|
import type { QForm } from "quasar"
|
||||||
|
|
||||||
const mixin = useCounterMixin()
|
const mixin = useCounterMixin()
|
||||||
const { date2Thai, dateToISO, success, messageError, showLoader, hideLoader } = mixin
|
const { date2Thai, dateToISO, success, messageError, showLoader, hideLoader, fails } = mixin
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
const myform = ref<QForm | null>(null)
|
||||||
const $q = useQuasar()
|
const $q = useQuasar()
|
||||||
const routeName = router.currentRoute.value.name
|
const routeName = router.currentRoute.value.name
|
||||||
const id = ref<string>("")
|
const id = ref<string>("")
|
||||||
|
|
@ -238,36 +209,36 @@ const noteReason = ref("")
|
||||||
const nameFile = ref<string>("")
|
const nameFile = ref<string>("")
|
||||||
|
|
||||||
const dataDetail = ref<any>({
|
const dataDetail = ref<any>({
|
||||||
datetext: "",
|
datetext: "",
|
||||||
activeDate: new Date(),
|
activeDate: new Date(),
|
||||||
createdAt: new Date(),
|
createdAt: new Date(),
|
||||||
firstName: "",
|
firstName: "",
|
||||||
id: "",
|
id: "",
|
||||||
isActive: true,
|
isActive: true,
|
||||||
lastName: "",
|
lastName: "",
|
||||||
location: "",
|
location: "",
|
||||||
organizationPositionOld: "",
|
organizationPositionOld: "",
|
||||||
positionLevelOld: "",
|
positionLevelOld: "",
|
||||||
positionNumberOld: "",
|
positionNumberOld: "",
|
||||||
positionTypeOld: "",
|
positionTypeOld: "",
|
||||||
prefix: "",
|
prefix: "",
|
||||||
profileId: "",
|
profileId: "",
|
||||||
reason: "",
|
reason: "",
|
||||||
salary: 0,
|
salary: 0,
|
||||||
sendDate: new Date(),
|
sendDate: new Date(),
|
||||||
status: "",
|
status: "",
|
||||||
statustext: "",
|
statustext: "",
|
||||||
fullname: "",
|
fullname: "",
|
||||||
});
|
})
|
||||||
|
|
||||||
const statusOrder = (val: boolean) => {
|
const statusOrder = (val: boolean) => {
|
||||||
switch (val) {
|
switch (val) {
|
||||||
case true:
|
case true:
|
||||||
return "ยับยั้งการลาออก";
|
return "ยับยั้งการลาออก"
|
||||||
case false:
|
case false:
|
||||||
return "อนุมัติการลาออก";
|
return "อนุมัติการลาออก"
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
if (route.params.id !== undefined) {
|
if (route.params.id !== undefined) {
|
||||||
|
|
@ -275,6 +246,18 @@ onMounted(() => {
|
||||||
fectDataresign(id.value)
|
fectDataresign(id.value)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const saveData = async () => {
|
||||||
|
console.log(myform.value)
|
||||||
|
if (myform.value != null) {
|
||||||
|
await myform.value.validate().then(async (saveDataTest: Boolean) => {
|
||||||
|
if (saveDataTest) {
|
||||||
|
saveResing()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const saveResing = () => {
|
const saveResing = () => {
|
||||||
$q.dialog({
|
$q.dialog({
|
||||||
title: "ยืนยันการยื่นข้อมูลแบบสอบถาม",
|
title: "ยืนยันการยื่นข้อมูลแบบสอบถาม",
|
||||||
|
|
@ -289,11 +272,13 @@ const saveResing = () => {
|
||||||
createFormresign()
|
createFormresign()
|
||||||
})
|
})
|
||||||
.onCancel(() => {})
|
.onCancel(() => {})
|
||||||
.onDismiss(() => {})
|
.onDismiss(() => {
|
||||||
|
fails($q, "กรุณากรอกอัพโหลดเอกสารเพิ่มเติม")
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const cancelResing = () => {
|
const cancelResing = () => {
|
||||||
console.log(id);
|
console.log(id)
|
||||||
|
|
||||||
$q.dialog({
|
$q.dialog({
|
||||||
title: "ยืนยันการยกเลิกการลาออก",
|
title: "ยืนยันการยกเลิกการลาออก",
|
||||||
|
|
@ -305,33 +290,30 @@ const cancelResing = () => {
|
||||||
persistent: true,
|
persistent: true,
|
||||||
})
|
})
|
||||||
.onOk(async () => {
|
.onOk(async () => {
|
||||||
if (route.params.id !== undefined) {
|
if (route.params.id !== undefined) {
|
||||||
id.value = route.params.id.toString()
|
id.value = route.params.id.toString()
|
||||||
deleteResting(id.value)
|
deleteResting(id.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
.onCancel(() => {})
|
.onCancel(() => {})
|
||||||
.onDismiss(() => {})
|
.onDismiss(() => {})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const deleteResting = async (id: string) => {
|
||||||
const deleteResting = async(id :string) => {
|
|
||||||
showLoader()
|
showLoader()
|
||||||
await http
|
await http
|
||||||
.delete(config.API.resingByid(id))
|
.delete(config.API.resingByid(id))
|
||||||
.then(() => {
|
.then(() => {
|
||||||
success($q, "ยกเลิกการลาออกขอสำเร็จ");
|
success($q, "ยกเลิกการลาออกขอสำเร็จ")
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch(e => {
|
||||||
messageError($q, e);
|
messageError($q, e)
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
hideLoader();
|
hideLoader()
|
||||||
});
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const createFormresign = async () => {
|
const createFormresign = async () => {
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
const blob = files.value.slice(0, files.value[0].size)
|
const blob = files.value.slice(0, files.value[0].size)
|
||||||
|
|
@ -364,8 +346,12 @@ const fectDataresign = async (id: string) => {
|
||||||
.then((res: any) => {
|
.then((res: any) => {
|
||||||
let data = res.data.result
|
let data = res.data.result
|
||||||
// console.log(data);
|
// console.log(data);
|
||||||
;(tranferOrg.value = data.location), (dateCommand.value = data.sendDate), (dateLeave.value = data.activeDate), (noteReason.value = data.reason), (files.value = data.docs) ,(dataDetail.value = data)
|
;(tranferOrg.value = data.location),
|
||||||
|
(dateCommand.value = data.sendDate),
|
||||||
|
(dateLeave.value = data.activeDate),
|
||||||
|
(noteReason.value = data.reason),
|
||||||
|
(files.value = data.docs),
|
||||||
|
(dataDetail.value = data)
|
||||||
})
|
})
|
||||||
.catch((e: any) => {
|
.catch((e: any) => {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
|
|
|
||||||
1260
src/stores/mixin.ts
1260
src/stores/mixin.ts
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue