แก้ รายละเอียดเรื่องลาออก

This commit is contained in:
STW_TTTY\stwtt 2024-03-28 17:04:24 +07:00
parent 97f8799637
commit 0c8e21d122

View file

@ -1,425 +1,584 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, onMounted } from "vue" import { ref, onMounted } from "vue";
import { useQuasar } from "quasar" import { useQuasar } from "quasar";
import { useRouter, useRoute } from "vue-router" 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" import type { QForm } from "quasar";
import Dialog from '@/modules/03_retire/views/DialogRetire.vue' import Dialog from "@/modules/03_retire/views/DialogRetire.vue";
const mixin = useCounterMixin() const mixin = useCounterMixin();
const { date2Thai, dateToISO, success, messageError, showLoader, hideLoader, fails } = mixin const {
const router = useRouter() date2Thai,
const route = useRoute() dateToISO,
const $q = useQuasar() success,
const routeName = router.currentRoute.value.name messageError,
showLoader,
hideLoader,
fails,
} = mixin;
const router = useRouter();
const route = useRoute();
const $q = useQuasar();
const routeName = router.currentRoute.value.name;
/** /**
* วแปรทใชงาน * วแปรทใชงาน
*/ */
const id = ref<string>("") const id = ref<string>("");
const myform = ref<QForm | null>(null) const myform = ref<QForm | null>(null);
const tranferOrg = ref("") const tranferOrg = ref("");
const dateCommand = ref<Date>(new Date()) const dateCommand = ref<Date>(new Date());
const dateLeave = ref<Date>(new Date()) const dateLeave = ref<Date>(new Date());
const noteReason = ref("") const noteReason = ref("");
const modal = ref<boolean>(false) const modal = ref<boolean>(false);
/** ข้อมูล v-model ของฟอร์ม */ /** ข้อมูล v-model ของฟอร์ม */
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 clickBack = () => { const clickBack = () => {
router.push(`/retire`) router.push(`/retire`);
} };
/** /**
* งกนเปลยนเป string ของ status * งกนเปลยนเป string ของ status
* @param val value ของ status true/false * @param val value ของ status true/false
*/ */
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) {
id.value = route.params.id.toString() id.value = route.params.id.toString();
fectDataresign(id.value) fectDataresign(id.value);
} }
}) });
/** /**
* นทกขอมลการลาออก * นทกขอมลการลาออก
*/ */
const saveData = async () => { const saveData = async () => {
if (myform.value != null) { if (myform.value != null) {
await myform.value.validate().then(async (saveDataTest: Boolean) => { await myform.value.validate().then(async (saveDataTest: Boolean) => {
if (saveDataTest) { if (saveDataTest) {
saveResing() saveResing();
} }
}) });
} }
} };
/** /**
* งกนดาวโหลดอพโหลดไฟล * งกนดาวโหลดอพโหลดไฟล
*/ */
const filesNull = () => { const filesNull = () => {
files.value = null files.value = null;
} };
const nameFile = ref<string>("") const nameFile = ref<string>("");
const fileDocDataUpload = ref<File[]>([]) const fileDocDataUpload = ref<File[]>([]);
const files = ref<any>() const files = ref<any>();
// //
const fileUploadDoc = async (file: any) => { const fileUploadDoc = async (file: any) => {
fileDocDataUpload.value.push(file) fileDocDataUpload.value.push(file);
nameFile.value = file[0].name nameFile.value = file[0].name;
files.value = file files.value = file;
} };
/** /**
* งกนเซฟขอมลลาออกเเลวเรยกใชงานApi * งกนเซฟขอมลลาออกเเลวเรยกใชงานApi
*/ */
const saveResing = () => { const saveResing = () => {
$q.dialog({ $q.dialog({
title: "ยืนยันการยื่นข้อมูลลาออก", title: "ยืนยันการยื่นข้อมูลลาออก",
message: "ต้องการยื่นข้อมูลลาออกนี้ใช่หรือไม่?", message: "ต้องการยื่นข้อมูลลาออกนี้ใช่หรือไม่?",
cancel: { cancel: {
flat: true, flat: true,
color: "negative", color: "negative",
}, },
persistent: true, persistent: true,
}) })
.onOk(() => { .onOk(() => {
createFormresign() createFormresign();
}) })
.onCancel(() => {}) .onCancel(() => {})
.onDismiss(() => {}) .onDismiss(() => {});
} };
// //
const cancelResing = () => { const cancelResing = () => {
modal.value = true modal.value = true;
} };
/** /**
* งกนลบ * งกนลบ
* @param id ไอดของขอมลการลาออก * @param id ไอดของขอมลการลาออก
*/ */
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();
clickBack() clickBack();
}) });
} };
// //
const createFormresign = async () => { const createFormresign = async () => {
const formData = new FormData() const formData = new FormData();
if (files.value > 0) { if (files.value.length > 0) {
const blob = files.value.slice(0, files.value[0].size) const blob = files.value.slice(0, files.value[0].size);
const newFile = new File(blob, nameFile.value, { const newFile = new File(blob, nameFile.value, {
type: files.value[0].type, type: files.value[0].type,
}) });
formData.append("file", newFile) formData.append("file", newFile);
} }
formData.append("Location", tranferOrg.value) formData.append("Location", tranferOrg.value);
formData.append("SendDate", dateToISO(dateCommand.value)) formData.append("SendDate", dateToISO(dateCommand.value));
formData.append("ActiveDate", dateToISO(dateLeave.value)) formData.append("ActiveDate", dateToISO(dateLeave.value));
formData.append("Reason", noteReason.value) formData.append("Reason", noteReason.value);
await http await http
.post(config.API.listResign(), formData) .post(config.API.listResign(), formData)
.then((res: any) => { .then((res: any) => {
let data = res.data.result.id let data = res.data.result.id;
success($q, "บันทึกข้อมูลสำเร็จ") success($q, "บันทึกข้อมูลสำเร็จ");
router.push(`/retire/result/${data}`) router.push(`/retire/result/${data}`);
}) })
.catch((e: any) => { .catch((e: any) => {
messageError($q, e) messageError($q, e);
}) });
} };
/** /**
* งกนเรยกขอมลจาก Api * งกนเรยกขอมลจาก Api
* @param id ไอดของขอม * @param id ไอดของขอม
*/ */
const fectDataresign = async (id: string) => { const fectDataresign = async (id: string) => {
showLoader() showLoader();
await http await http
.get(config.API.resingByid(id)) .get(config.API.resingByid(id))
.then((res: any) => { .then((res: any) => {
let data = res.data.result let data = res.data.result;
;(tranferOrg.value = data.location), (tranferOrg.value = data.location),
(dateCommand.value = data.sendDate), (dateCommand.value = data.sendDate),
(dateLeave.value = data.activeDate), (dateLeave.value = data.activeDate),
(noteReason.value = data.reason), (noteReason.value = data.reason),
(files.value = data.docs), (files.value = data.docs),
(dataDetail.value = data) (dataDetail.value = data);
}) })
.catch((e: any) => { .catch((e: any) => {
messageError($q, e) messageError($q, e);
}) })
.finally(() => { .finally(() => {
hideLoader() hideLoader();
}) });
};
function downloadFile(data: string) {
window.open(data, "_blank");
} }
</script> </script>
<template> <template>
<div class="col-12 row justify-center"> <div class="col-12 row justify-center">
<div class="col-xs-12 col-sm-12 col-md-11"> <div class="col-xs-12 col-sm-12 col-md-11">
<div class="toptitle text-white col-12 row items-center"> <div class="toptitle text-white col-12 row items-center">
<q-btn icon="mdi-arrow-left" unelevated round dense flat color="primary" class="q-mr-sm" @click="router.go(-1)" /> <q-btn
<div v-if="routeName == 'AddRetire'">เพิ่มเรื่องลาออก</div> icon="mdi-arrow-left"
<div v-else>รายละเอียดเรื่องลาออก</div> unelevated
</div> round
<q-form ref="myform" class="col-12"> dense
<q-card bordered> flat
<div class="col-12 row q-col-gutter-md q-pa-md"> color="primary"
<div class="col-xs-12 col-sm-12"> class="q-mr-sm"
<div class="col-12 row q-pa-sm q-col-gutter-sm"> @click="router.go(-1)"
<q-input />
class="col-8" <div v-if="routeName == 'AddRetire'">เพิ่มเรื่องลาออก</div>
dense <div v-else>รายละเอียดเรื่องลาออก</div>
outlined </div>
v-model="tranferOrg" <q-form ref="myform" class="col-12">
label="สถานที่ยื่นขอลาออกจากราชการ" <q-card bordered>
:readonly="routeName != 'AddRetire'" <div class="col-12 row q-col-gutter-sm q-pa-md">
:rules="[(val:string) => !!val || `${'กรุณากรอกสถานที่ยื่นขอลาออกจากราชการ'}`]" <div class="col-xs-12 col-sm-12">
/> <div class="col-12 row q-pa-sm q-col-gutter-sm">
<datepicker class="col-2" menu-class-name="modalfix" v-model="dateCommand" :locale="'th'" autoApply readonly borderless :enableTimePicker="false" week-start="0"> <q-input
<template #year="{ year }"> class="col-8"
{{ year + 543 }} dense
</template> outlined
<template #year-overlay-value="{ value }"> v-model="tranferOrg"
{{ parseInt(value + 543) }} hide-bottom-space
</template> label="สถานที่ยื่นขอลาออกจากราชการ"
<template #trigger> :readonly="routeName != 'AddRetire'"
<q-input :rules="[(val:string) => !!val || `${'กรุณากรอกสถานที่ยื่นขอลาออกจากราชการ'}`]"
outlined />
readonly <datepicker
dense class="col-2"
hide-bottom-space menu-class-name="modalfix"
class="full-width datepicker" v-model="dateCommand"
:model-value="dateCommand != null ? date2Thai(dateCommand) : null" :locale="'th'"
:label="`${'วันที่ยื่นขอลาออกจากราชการ'}`" autoApply
:rules="[val => !!val || `${'กรุณาเลือกวันที่ยื่นขอลาออกจากราชการ'}`]" readonly
> borderless
<template v-slot:prepend> :enableTimePicker="false"
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)"> </q-icon> week-start="0"
</template> >
</q-input> <template #year="{ year }">
</template> {{ year + 543 }}
</datepicker> </template>
<datepicker <template #year-overlay-value="{ value }">
class="col-2" {{ parseInt(value + 543) }}
menu-class-name="modalfix" </template>
v-model="dateLeave" <template #trigger>
:locale="'th'" <q-input
autoApply outlined
borderless readonly
:enableTimePicker="false" dense
week-start="0" hide-bottom-space
:readonly="routeName != 'AddRetire'" class="full-width datepicker"
> :model-value="
<template #year="{ year }"> dateCommand != null ? date2Thai(dateCommand) : null
{{ year + 543 }} "
</template> :label="`${'วันที่ยื่นขอลาออกจากราชการ'}`"
<template #year-overlay-value="{ value }"> :rules="[
{{ parseInt(value + 543) }} (val) =>
</template> !!val || `${'กรุณาเลือกวันที่ยื่นขอลาออกจากราชการ'}`,
<template #trigger> ]"
<q-input >
outlined <template v-slot:prepend>
dense <q-icon
hide-bottom-space name="event"
:readonly="routeName != 'AddRetire'" class="cursor-pointer"
class="full-width datepicker" style="color: var(--q-primary)"
:model-value="dateLeave != null ? date2Thai(dateLeave) : null" >
:label="`${'วันที่ขอลาออกจากราชการ'}`" </q-icon>
:rules="[val => !!val || `${'กรุณาเลือกวันที่ขอลาออกจากราชการ'}`]" </template>
> </q-input>
<template v-slot:prepend> </template>
<q-icon name="event" class="cursor-pointer" style="color: var(--q-primary)"> </q-icon> </datepicker>
</template> <datepicker
</q-input> class="col-2"
</template> menu-class-name="modalfix"
</datepicker> v-model="dateLeave"
<q-input :locale="'th'"
class="col-12" autoApply
dense borderless
outlined :enableTimePicker="false"
v-model="noteReason" week-start="0"
label="เหตุผลที่ลาออกจากราชการ" :readonly="routeName != 'AddRetire'"
type="textarea" >
:readonly="routeName != 'AddRetire'" <template #year="{ year }">
:rules="[val => !!val || `${'กรุณากรอกเหตุผลที่ลาออกจากราชการ'}`]" {{ year + 543 }}
/> </template>
<template #year-overlay-value="{ value }">
{{ parseInt(value + 543) }}
</template>
<template #trigger>
<q-input
outlined
dense
hide-bottom-space
:readonly="routeName != 'AddRetire'"
class="full-width datepicker"
:model-value="
dateLeave != null ? date2Thai(dateLeave) : 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>
<q-input
class="col-12"
dense
outlined
v-model="noteReason"
label="เหตุผลที่ลาออกจากราชการ"
type="textarea"
hide-bottom-space
:readonly="routeName != 'AddRetire'"
:rules="[
(val) => !!val || `${'กรุณากรอกเหตุผลที่ลาออกจากราชการ'}`,
]"
/>
<div class="col-12 row" v-if="routeName == 'AddRetire'"> <div class="col-12 row" v-if="routeName == 'AddRetire'">
<q-uploader <q-uploader
flat flat
bordered bordered
class="col-xs-12 col-sm-12" class="col-xs-12 col-sm-12"
accept=".jpg,.png,.pdf,.csv,.doc" accept=".jpg,.png,.pdf,.csv,.doc"
url="http://localhost:4444/upload" url="http://localhost:4444/upload"
label="เอกสารเพิ่มเติม" label="เอกสารเพิ่มเติม"
type="file" type="file"
@added="fileUploadDoc" @added="fileUploadDoc"
@removed="filesNull" @removed="filesNull"
style="max-width: px" style="max-width: px"
/> />
</div> </div>
<div class="col-12 row" v-if="routeName != 'AddRetire'"> <div class="col-12 row">
<div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"> <q-card
<div class="q-pl-sm text-weight-bold text-dark">เอกสารเพมเต</div> bordered
</div> flat
<q-card bordered flat class="full-width"> class="row col-12 text-dark q-mt-sm"
<q-list separator> v-if="routeName != 'AddRetire'"
<q-item v-for="file in files" :key="file.key" class="q-my-xs"> >
<q-item-section> <div
<q-item-label class="full-width ellipsis"> class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"
{{ file.fileName }} >
</q-item-label> <div class="q-pl-sm text-weight-bold text-dark">
เอกสารเพมเต
</div>
</div>
<q-list class="col-12">
<q-item
v-for="file in files"
:key="file.key"
class="q-my-xs"
>
<q-item-section>
<q-item-label class="full-width ellipsis">
{{ file.fileName }}
</q-item-label>
<q-item-label caption> </q-item-label> <q-item-label caption> </q-item-label>
</q-item-section> </q-item-section>
</q-item> <q-space />
</q-list>
</q-card>
</div>
</div>
<q-card bordered class="row col-12 text-dark q-mt-sm" v-if="routeName != 'AddRetire'">
<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>
<q-separator />
<div class="row col-12 q-pa-md">
<div class="col-12 row bg-white q-col-gutter-md">
<div class="col-xs-6 row items-start">
<div class="col-12 text-top">สถานะ</div>
<div class="col-12 text-detail">
{{ dataDetail.commanderReject !== null ? statusOrder(dataDetail.commanderReject) : "-" }}
</div>
</div>
<div class="col-xs-6 row items-start">
<div class="col-12 text-top">นสดทายทบย</div>
<div class="col-12 text-detail">
{{ dataDetail.commanderRejectDate !== null ? date2Thai(dataDetail.commanderRejectDate) : "-" }}
</div>
</div>
<div class="col-xs-12 row items-start">
<div class="col-12 text-top">ความคดเหนและเหตผล</div>
<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" v-if="routeName != 'AddRetire'"> <q-btn
<div class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"> size="12px"
<div class="q-pl-sm text-weight-bold text-dark">ผลการพจารณาของผอำนาจ</div> flat
</div> round
<q-separator /> dense
<div class="row col-12 q-pa-md"> color="blue"
<div class="col-12 row bg-white q-col-gutter-md"> icon="mdi-download"
<div class="col-xs-6 row items-start"> @click="downloadFile(file.pathName)"
<div class="col-12 text-top">สถานะ</div> ><q-tooltip>ดาวนโหลดไฟล</q-tooltip></q-btn
<div class="col-12 text-detail"> >
{{ dataDetail.oligarchReject !== null ? statusOrder(dataDetail.oligarchReject) : "-" }} </q-item>
</div> </q-list>
</div> </q-card>
<div class="col-xs-6 row items-start"> </div>
<div class="col-12 text-top">นสดทายทบย</div> <div class="col-12 row">
<div class="col-12 text-detail"> <q-card
{{ dataDetail.oligarchRejectDate !== null ? date2Thai(dataDetail.oligarchRejectDate) : "-" }} bordered
</div> class="row col-12 text-dark q-mt-sm"
</div> v-if="routeName != 'AddRetire'"
<div class="col-xs-12 row items-start"> >
<div class="col-12 text-top">ความคดเหนและเหตผล</div> <div
<div class="col-12 text-detail" v-if="dataDetail.oligarchReject == false"> class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"
{{ dataDetail.oligarchApproveReason !== null ? dataDetail.oligarchApproveReason : "-" }} >
</div> <div class="q-pl-sm text-weight-bold text-dark">
<div class="col-12 text-detail" v-else-if="dataDetail.oligarchReject == true"> ผลการพจารณาของผงคบบญชา
{{ dataDetail.oligarchRejectReason !== null ? dataDetail.oligarchRejectReason : "-" }} </div>
</div> </div>
</div> <q-separator />
</div> <div class="row col-12 q-pa-md">
</div> <div class="col-12 row bg-white q-col-gutter-md">
</q-card> <div class="col-xs-6 row items-start">
</div> <div class="col-12 text-top">สถานะ</div>
<div class="col-12 text-detail">
{{
dataDetail.commanderReject !== null
? statusOrder(dataDetail.commanderReject)
: "-"
}}
</div>
</div>
<div class="col-xs-6 row items-start">
<div class="col-12 text-top">
นสดทายทบย
</div>
<div class="col-12 text-detail">
{{
dataDetail.commanderRejectDate !== null
? date2Thai(dataDetail.commanderRejectDate)
: "-"
}}
</div>
</div>
<div class="col-xs-12 row items-start">
<div class="col-12 text-top">
ความคดเหนและเหตผล
</div>
<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>
</div>
<div class="col-12 row">
<q-card
bordered
class="row col-12 text-dark q-mt-sm"
v-if="routeName != 'AddRetire'"
>
<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>
<q-separator />
<div class="row col-12 q-pa-md">
<div class="col-12 row bg-white q-col-gutter-md">
<div class="col-xs-6 row items-start">
<div class="col-12 text-top">สถานะ</div>
<div class="col-12 text-detail">
{{
dataDetail.oligarchReject !== null
? statusOrder(dataDetail.oligarchReject)
: "-"
}}
</div>
</div>
<div class="col-xs-6 row items-start">
<div class="col-12 text-top">
นสดทายทบย
</div>
<div class="col-12 text-detail">
{{
dataDetail.oligarchRejectDate !== null
? date2Thai(dataDetail.oligarchRejectDate)
: "-"
}}
</div>
</div>
<div class="col-xs-12 row items-start">
<div class="col-12 text-top">
ความคดเหนและเหตผล
</div>
<div
class="col-12 text-detail"
v-if="dataDetail.oligarchReject == false"
>
{{
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>
</div>
</div>
<div class="row col-12 q-pa-md" v-if="routeName != 'AddRetire'"> <div class="row col-12 q-pa-md" v-if="routeName != 'AddRetire'">
<q-space /> <q-space />
<q-btn <q-btn
v-if="dataDetail.status !== 'DELETE' && dataDetail.status !== 'DONE'" v-if="
unelevated dataDetail.status !== 'DELETE' && dataDetail.status !== 'DONE'
dense "
class="q-px-md items-center" unelevated
color="orange" dense
label="ยกเลิกการลาออก" class="q-px-md items-center"
@click="cancelResing" color="orange"
:disable="tranferOrg == '' && noteReason == ''" label="ยกเลิกการลาออก"
/> @click="cancelResing"
</div> :disable="tranferOrg == '' && noteReason == ''"
</div> />
<q-separator v-if="routeName == 'AddRetire'" /> </div>
<div class="row col-12 q-pa-md" v-if="routeName == 'AddRetire'"> </div>
<q-space /> <q-separator v-if="routeName == 'AddRetire'" />
<q-btn unelevated dense class="q-px-md items-center" color="primary" label="ยื่นเรื่องขอลาออก" @click="saveData" :disable="tranferOrg == '' && noteReason == ''" /> <div class="row col-12 q-pa-md" v-if="routeName == 'AddRetire'">
</div> <q-space />
</q-card> <q-btn
</q-form> unelevated
</div> dense
</div> class="q-px-md items-center"
color="primary"
label="ยื่นเรื่องขอลาออก"
@click="saveData"
:disable="tranferOrg == '' && noteReason == ''"
/>
</div>
</q-card>
</q-form>
</div>
</div>
<Dialog <Dialog v-model:modal="modal" />
v-model:modal="modal"
/>
</template> </template>