ปรับยกเลิกการลา

This commit is contained in:
Warunee Tamkoo 2025-04-29 18:29:46 +07:00
parent 818f9d7723
commit cab7450748
2 changed files with 63 additions and 43 deletions

View file

@ -1125,8 +1125,11 @@ onMounted(async () => {
</div> </div>
<div class="col-12 text-detail"> <div class="col-12 text-detail">
{{ {{
formData.reasonOligarch !== "-" rows && rows.approvers[0]?.approveStatus == "APPROVE"
? formData.status ? "อนุญาต"
: rows &&
rows.approvers[0]?.approveStatus == "REJECT"
? "ไม่อนุญาต"
: "-" : "-"
}} }}
</div> </div>
@ -1137,7 +1140,7 @@ onMounted(async () => {
</div> </div>
<div class="col-12 text-detail"> <div class="col-12 text-detail">
{{ formData.reasonOligarch }} {{ formData.reasonOligarch ?? "-" }}
</div> </div>
</div> </div>
</div> </div>

View file

@ -8,13 +8,11 @@ import config from "@/app.config";
import genReport from "@/plugins/genreport"; import genReport from "@/plugins/genreport";
import { useCounterMixin } from "@/stores/mixin"; import { useCounterMixin } from "@/stores/mixin";
import { useLeavelistDataStore } from "@/modules/09_leave/stores/LeaveStore"; import { useLeavelistDataStore } from "@/modules/09_leave/stores/LeaveStore";
import { checkPermission } from "@/utils/permissions";
/** importType */ /** importType */
import type { import type {
LeaveType, LeaveType,
FormReject, FormReject,
SeqTypeRow,
RowsType, RowsType,
} from "@/modules/09_leave/interface/response/leave"; } from "@/modules/09_leave/interface/response/leave";
import type { FremData } from "@/modules/09_leave/interface/request/leave"; import type { FremData } from "@/modules/09_leave/interface/request/leave";
@ -33,7 +31,6 @@ import FormLeaveToTraining from "@/modules/09_leave/components/05_Leave/formDeta
import FormLeaveToWorkInternational from "@/modules/09_leave/components/05_Leave/formDetail/formLeaveToWorkInternational.vue"; // import FormLeaveToWorkInternational from "@/modules/09_leave/components/05_Leave/formDetail/formLeaveToWorkInternational.vue"; //
import FormSpouse from "@/modules/09_leave/components/05_Leave/formDetail/formSpouse.vue"; // import FormSpouse from "@/modules/09_leave/components/05_Leave/formDetail/formSpouse.vue"; //
import FormVocationalRehabilitation from "@/modules/09_leave/components/05_Leave/formDetail/formVocationalRehabilitation.vue"; // import FormVocationalRehabilitation from "@/modules/09_leave/components/05_Leave/formDetail/formVocationalRehabilitation.vue"; //
import WorkFlow from "@/components/Workflow/Main.vue";
/** use */ /** use */
const $q = useQuasar(); const $q = useQuasar();
@ -54,8 +51,7 @@ const paramsId = route.params.id.toString();
const typeDocx = ref<string>("docx"); const typeDocx = ref<string>("docx");
const typePdf = ref<string>("pdf"); const typePdf = ref<string>("pdf");
const modalApprove = ref(false); const modalApprove = ref(false);
const dialogTitleUnapprove = ref<string>("ไม่อนุมัติ"); const dialogTitle = ref<string>("อนุญาต");
const dialogTitle = ref<string>("อนุมัติ");
/** /**
* consolelog ไวอน * consolelog ไวอน
@ -364,11 +360,11 @@ function checkLeaveType(leaveTypeId: string, leaveTypeName: string) {
const openModal = async (data: string) => { const openModal = async (data: string) => {
if (data === "approve") { if (data === "approve") {
modalApprove.value = true; modalApprove.value = true;
dialogTitle.value = "อนุมัติการยกเลิก"; dialogTitle.value = "อนุญาตให้ยกเลิกการลา";
} }
if (data === "UnApprove") { if (data === "UnApprove") {
modalApprove.value = true; modalApprove.value = true;
dialogTitle.value = "ไม่อนุมัติการยกเลิก"; dialogTitle.value = "ไม่อนุญาตให้ยกเลิกการลา";
} }
}; };
@ -377,10 +373,11 @@ function clickSave(reason: string) {
const body = { const body = {
reason: reason, reason: reason,
}; };
if (dialogTitle.value === "อนุมัติการยกเลิก") { if (dialogTitle.value === "อนุญาตให้ยกเลิกการลา") {
dialogConfirm( dialogConfirm(
$q, $q,
async () => { async () => {
showLoader();
await http await http
.put(config.API.leaveDeleteApprove(formDataReject.id), body) .put(config.API.leaveDeleteApprove(formDataReject.id), body)
.then(() => { .then(() => {
@ -392,16 +389,18 @@ function clickSave(reason: string) {
.finally(async () => { .finally(async () => {
await fetchDetailDeleteLeave(paramsId); await fetchDetailDeleteLeave(paramsId);
modalApprove.value = false; modalApprove.value = false;
hideLoader();
}); });
}, },
"ยืนยันการอนุมัติการยกเลิก", "ยืนยันการพิจารณา",
"ต้องการยืนยันการอนุมัติการยกเลิกใช่หรือไม่ ?" "ต้องการยืนยันการพิจารณานี้ใช่หรือไม่?"
); );
} }
if (dialogTitle.value === "ไม่อนุมัติการยกเลิก") { if (dialogTitle.value === "ไม่อนุญาตให้ยกเลิกการลา") {
dialogConfirm( dialogConfirm(
$q, $q,
async () => { async () => {
showLoader();
await http await http
.put(config.API.leaveDeleteReject(formDataReject.id), body) .put(config.API.leaveDeleteReject(formDataReject.id), body)
.then(() => { .then(() => {
@ -413,10 +412,11 @@ function clickSave(reason: string) {
.finally(async () => { .finally(async () => {
await fetchDetailDeleteLeave(paramsId); await fetchDetailDeleteLeave(paramsId);
modalApprove.value = false; modalApprove.value = false;
hideLoader();
}); });
}, },
"ยืนยันไม่อนุมัติการยกเลิก", "ยืนยันการพิจารณา",
"ต้องการยืนยันไม่อนุมัติการยกเลิกใช่หรือไม่ ?" "ต้องการยืนยันการพิจารณานี้ใช่หรือไม่?"
); );
} }
} }
@ -720,10 +720,7 @@ async function checkOfficer() {
</div> </div>
<!-- ความคดเหนของผอำนาจ --> <!-- ความคดเหนของผอำนาจ -->
<div <div class="col-xs-12 col-sm-12 row">
class="col-xs-12 col-sm-12 row"
v-if="formDataReject.status !== 'NEW'"
>
<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 <div
class="bg-grey-1 q-pa-sm col-12 row items-center text-primary" class="bg-grey-1 q-pa-sm col-12 row items-center text-primary"
@ -735,12 +732,42 @@ async function checkOfficer() {
<q-separator /> <q-separator />
<div class="row col-12 q-pa-md"> <div class="row col-12 q-pa-md">
<div class="col-12 row bg-white q-col-gutter-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-weight-bold text-top">
- นามสก
</div>
<div class="col-12 text-detail">
{{
rows && rows.approvers[0]?.firstName
? `${rows?.approvers[0].prefix}${rows?.approvers[0].firstName} ${rows?.approvers[0].lastName}`
: "-"
}}
</div>
</div>
<div class="col-xs-6 row items-start">
<div class="col-12 text-weight-bold text-top">
ตำแหน
</div>
<div class="col-12 text-detail">
{{
rows && rows.approvers[0]?.positionName
? rows?.approvers[0].positionName
: "-"
}}
</div>
</div>
<div class="col-xs-6 row items-start"> <div class="col-xs-6 row items-start">
<div class="col-12 text-weight-bold text-top"> <div class="col-12 text-weight-bold text-top">
ผลการพจารณา ผลการพจารณา
</div> </div>
<div class="col-12 text-detail"> <div class="col-12 text-detail">
{{ stores.convertSatatus(formDataReject.status) }} {{
formDataReject.status == "NEW"
? "-"
: stores.convertSatatus(formDataReject.status)
}}
</div> </div>
</div> </div>
<div class="col-xs-6 row items-start"> <div class="col-xs-6 row items-start">
@ -748,7 +775,11 @@ async function checkOfficer() {
ความคดเห ความคดเห
</div> </div>
<div class="col-12 text-detail"> <div class="col-12 text-detail">
{{ formDataReject.leaveReasonDelete }} {{
formDataReject.status == "NEW"
? "-"
: formDataReject.leaveReasonDelete
}}
</div> </div>
</div> </div>
</div> </div>
@ -771,39 +802,25 @@ async function checkOfficer() {
</div> --> </div> -->
</div> </div>
</div> </div>
<q-separator <q-separator v-if="formDataReject.status == 'NEW'" />
v-if="
checkPermission($route)?.attrIsUpdate &&
statusCheck == 'NEW' &&
(isOfficer || isStaff)
"
/>
<div <div
class="row q-pa-md q-gutter-md justify-end" class="row q-pa-md q-gutter-sm justify-end"
v-if="statusCheck == 'NEW' && (isOfficer || isStaff)" v-if="formDataReject.status == 'NEW'"
> >
<q-btn <q-btn
v-if="
formDataReject.status === 'NEW' &&
checkPermission($route)?.attrIsUpdate
"
unelevated unelevated
:disable="rows?.approvers.length == 0 || rows?.commanders.length == 0" :disable="rows?.approvers.length == 0 || rows?.commanders.length == 0"
color="orange-5" color="orange-5"
label="ไม่อนุมัติการยกเลิก" label="ไม่อนุญาต"
@click="openModal('UnApprove')" @click="openModal('UnApprove')"
><q-tooltip>ไมอนการยกเล</q-tooltip> ><q-tooltip>ไมอนญาตใหทำการยกเล</q-tooltip>
</q-btn> </q-btn>
<q-btn <q-btn
v-if="
formDataReject.status === 'NEW' &&
checkPermission($route)?.attrIsUpdate
"
unelevated unelevated
color="primary" color="primary"
label="อนุมัติการยกเลิก" label="อนุญาต"
@click="openModal('approve')" @click="openModal('approve')"
><q-tooltip>อนการยกเล</q-tooltip> ><q-tooltip>อนญาตใหทำการยกเล</q-tooltip>
</q-btn> </q-btn>
</div> </div>
</q-card> </q-card>