fix รายกายกเลิกขอลาออก
This commit is contained in:
parent
9c668368c1
commit
6bde04376f
2 changed files with 97 additions and 141 deletions
|
|
@ -19,7 +19,6 @@ import type {
|
|||
|
||||
import DialogHeader from "@/components/DialogHeader.vue";
|
||||
import CardProfile from "@/components/CardProfile.vue";
|
||||
import WorkFlow from "@/components/Workflow/Main.vue";
|
||||
import DialogAddCommander from "@/modules/06_retirement/components/DialogAddCommander.vue";
|
||||
|
||||
/** Use */
|
||||
|
|
@ -43,7 +42,8 @@ const {
|
|||
/** ตัวแปร */
|
||||
const roleUser = ref<string>("");
|
||||
const dataProfile = ref<DataProfile>();
|
||||
|
||||
const group = ref<string>("");
|
||||
const approveStep = ref<string>("");
|
||||
const approveCheck = computed(() => {
|
||||
return (
|
||||
rowsApprover.value?.commanders?.every(
|
||||
|
|
@ -191,7 +191,6 @@ const dataDetail = ref<any>({
|
|||
statusMain: "",
|
||||
});
|
||||
|
||||
const workflowRef = ref<any>(null);
|
||||
const organizationPositionOld = ref<string>("");
|
||||
const positionTypeOld = ref<string>("");
|
||||
const positionLevelOld = ref<string>("");
|
||||
|
|
@ -208,32 +207,21 @@ const actionPass = ref<boolean>(false);
|
|||
const reasonReign = ref<string>("");
|
||||
const dateBreak = ref<Date | null>(null);
|
||||
|
||||
const isCheckData = computed(() => {
|
||||
if (
|
||||
organizationPositionOld.value !== "" &&
|
||||
positionTypeOld.value !== "" &&
|
||||
positionLevelOld.value !== "" &&
|
||||
posNo.value !== "" &&
|
||||
date.value !== null &&
|
||||
dataDetail.value.commanderReject !== null &&
|
||||
dataDetail.value.oligarchReject !== null
|
||||
) {
|
||||
return true;
|
||||
} else return false;
|
||||
});
|
||||
|
||||
/**เปิด-ปิด modal */
|
||||
function closeModal() {
|
||||
modal.value = false;
|
||||
}
|
||||
function openModal() {
|
||||
modal.value = true;
|
||||
}
|
||||
|
||||
const isNoDebt = ref<boolean>(false);
|
||||
const isNoBurden = ref<boolean>(false);
|
||||
const isDiscipline = ref<boolean>(false);
|
||||
|
||||
/** ฟังก์ชันปิด popup อนุญาตหรือยับยั้ง*/
|
||||
function closeModal() {
|
||||
modal.value = false;
|
||||
}
|
||||
|
||||
/** ฟังก์ชันเปิด popup อนุญาตหรือยับยั้ง*/
|
||||
function openModal() {
|
||||
modal.value = true;
|
||||
}
|
||||
|
||||
/** ฟังก์ชันตรวจสอบวันที่ขอลาออกจากราชการน้อยกว่า 30 วัน*/
|
||||
function diffDate() {
|
||||
if (date.value !== null && dateLeave.value !== null) {
|
||||
const time = dateLeave.value.getTime() - date.value.getTime();
|
||||
|
|
@ -247,9 +235,11 @@ function diffDate() {
|
|||
return false;
|
||||
}
|
||||
|
||||
/** นำข้อมูลมาจาก API*/
|
||||
/**
|
||||
* ฟังก์ชันดึงข้อมูลรายละเอียดการยกเลิกการลาออก
|
||||
* @param id id ของผู้ใช้งาน
|
||||
*/
|
||||
async function fetchData(id: string) {
|
||||
showLoader();
|
||||
await http
|
||||
.get(config.API.listResign() + `/cancel/${id}`)
|
||||
.then(async (res) => {
|
||||
|
|
@ -271,6 +261,8 @@ async function fetchData(id: string) {
|
|||
isNoDebt.value = data.isNoDebt;
|
||||
isNoBurden.value = data.isNoBurden;
|
||||
isDiscipline.value = data.isDiscipline;
|
||||
approveStep.value = data.approveStep;
|
||||
group.value = data.group;
|
||||
|
||||
statusCheck.value = data.status;
|
||||
profileType.value = data.profileType;
|
||||
|
|
@ -282,13 +274,14 @@ async function fetchData(id: string) {
|
|||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
}
|
||||
|
||||
/**Pop up */
|
||||
/**
|
||||
* ฟังก์ชันเปิด pop up อนุญาตหรือยับยั้ง
|
||||
* @param action action อนุญาตหรือยับยั้ง
|
||||
* @param type ประเภทผู้ใช้งาน
|
||||
*/
|
||||
function popUp(action: "pass" | "passNot", type: string) {
|
||||
reasonReign.value = "";
|
||||
dateBreak.value = null;
|
||||
|
|
@ -297,7 +290,7 @@ function popUp(action: "pass" | "passNot", type: string) {
|
|||
openModal();
|
||||
}
|
||||
|
||||
//เงื่อนไขpop up
|
||||
/** ฟังก์ชันยืนยันการอนุญาตหรือยับยั้งการยกเลิกการลาออก*/
|
||||
function onSubmit() {
|
||||
dialogConfirm($q, async () => {
|
||||
showLoader();
|
||||
|
|
@ -321,9 +314,7 @@ function onSubmit() {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* กดยกเลิก
|
||||
*/
|
||||
/** ฟังก์ชันยกเลิกการแก้ไขข้อมูลแนบท้าย*/
|
||||
async function clickCancel() {
|
||||
edit.value = false;
|
||||
const data = dataDetail.value;
|
||||
|
|
@ -346,7 +337,7 @@ async function clickCancel() {
|
|||
myForm.value?.resetValidation();
|
||||
}
|
||||
|
||||
/** Function บันทึก ,แก้ไขข้อมูลเพื่อลงบัญชีแนบท้าย*/
|
||||
/** ฟังก์ชันบันทึกข้อมูลเพื่อลงบัญชีแนบท้าย*/
|
||||
function onSubmitAttached() {
|
||||
dialogConfirm($q, () => {
|
||||
const formData = new FormData();
|
||||
|
|
@ -381,7 +372,7 @@ function onSubmitAttached() {
|
|||
}
|
||||
|
||||
/**
|
||||
* Function เพิ่ม Class เวลา Edit
|
||||
* ฟังก์ชันเปลี่ยน Class
|
||||
* @param val เมื่อเป็นEdit จะเปลี่ยน Class
|
||||
*/
|
||||
function getClass(val: boolean) {
|
||||
|
|
@ -391,22 +382,16 @@ function getClass(val: boolean) {
|
|||
};
|
||||
}
|
||||
|
||||
/** แปลง StatusOrder */
|
||||
function statusOrder(val: boolean) {
|
||||
switch (val) {
|
||||
case true:
|
||||
return "ยับยั้ง";
|
||||
case false:
|
||||
return "อนุญาต";
|
||||
}
|
||||
}
|
||||
|
||||
/** เปิด POP UP */
|
||||
/**
|
||||
* ฟังก์ชันเปิด popup เพิ่มผู้บังคับบัญชา, ผู้มีอำนาจ
|
||||
* @param type ผู้บังคับบัญชา, ผู้มีอำนาจ
|
||||
*/
|
||||
function onAddPerson(type: string) {
|
||||
modalAdd.value = true;
|
||||
typeAdd.value = type;
|
||||
}
|
||||
|
||||
/** ฟังก์ดึงข้อมูลสิทธ์ สกจ,กจ*/
|
||||
async function checkOfficer() {
|
||||
try {
|
||||
const data = await fetchDataCheckIsoffice("SYS_RESIGN");
|
||||
|
|
@ -417,6 +402,7 @@ async function checkOfficer() {
|
|||
}
|
||||
}
|
||||
|
||||
/** ฟังก์ชันส่งไปพิจารณา*/
|
||||
function onSend() {
|
||||
dialogConfirm(
|
||||
$q,
|
||||
|
|
@ -424,20 +410,23 @@ function onSend() {
|
|||
showLoader();
|
||||
http
|
||||
.get(config.API.sendApproveRetirement("", id.value))
|
||||
.then(async (res) => {
|
||||
.then(async () => {
|
||||
await fetchData(id.value);
|
||||
success($q, "ส่งไปพิจารณา");
|
||||
})
|
||||
.catch((e) => {
|
||||
messageError($q, e);
|
||||
})
|
||||
.finally(() => {});
|
||||
.finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
},
|
||||
"ยืนยันการส่งไปพิจารณา",
|
||||
"ต้องการส่งไปพิจารณาใช่หรือไม่"
|
||||
);
|
||||
}
|
||||
|
||||
/** ฟังก์ชันดึงข้อมูลตำแหน่งจาก Keycloak*/
|
||||
async function fetchKeycloakPosition() {
|
||||
if (keycloakId.value == "") {
|
||||
await http
|
||||
|
|
@ -452,11 +441,16 @@ async function fetchKeycloakPosition() {
|
|||
}
|
||||
}
|
||||
|
||||
/** Hook */
|
||||
/** hook ฟังก์ชันเมื่อโหลดคอมโพเนนต์*/
|
||||
onMounted(async () => {
|
||||
await fetchData(id.value);
|
||||
await fetchKeycloakPosition();
|
||||
await checkOfficer();
|
||||
showLoader();
|
||||
await Promise.all([
|
||||
fetchData(id.value),
|
||||
fetchKeycloakPosition(),
|
||||
checkOfficer(),
|
||||
]).finally(() => {
|
||||
hideLoader();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
@ -573,10 +567,14 @@ onMounted(async () => {
|
|||
<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="q-pl-sm text-weight-bold text-dark">
|
||||
ผลการพิจารณาของผู้บังคับบัญชา
|
||||
ผลการพิจารณาของผู้บังคับบัญชา {{ group }}
|
||||
</div>
|
||||
<q-btn
|
||||
v-if="statusCheck == 'WAITTING' && (isOfficer || isStaff)"
|
||||
v-if="
|
||||
!checkRoutePermisson &&
|
||||
((isStaff && group === '1.1' && approveStep === 'st1') ||
|
||||
(isStaff && group !== '1.1' && approveStep === 'st1'))
|
||||
"
|
||||
flat
|
||||
round
|
||||
icon="add"
|
||||
|
|
@ -588,34 +586,6 @@ onMounted(async () => {
|
|||
<q-tooltip>เพิ่มรายชื่อผู้บังคับบัญชา</q-tooltip>
|
||||
</q-btn>
|
||||
<q-space />
|
||||
<!-- workflowRef?.permission.isUpdate && -->
|
||||
|
||||
<!-- <div
|
||||
class="q-gutter-x-sm"
|
||||
v-if="
|
||||
dataDetail.commanderReject === null &&
|
||||
dataDetail.statusMain === 'WAITTING'
|
||||
"
|
||||
>
|
||||
<q-btn
|
||||
outline
|
||||
color="primary"
|
||||
dense
|
||||
icon-right="check"
|
||||
class="q-px-sm"
|
||||
label="อนุญาต"
|
||||
@click="popUp('pass', 'commander')"
|
||||
/>
|
||||
<q-btn
|
||||
outline
|
||||
color="red"
|
||||
dense
|
||||
icon-right="close"
|
||||
class="q-px-sm"
|
||||
label="ยับยั้ง"
|
||||
@click="popUp('passNot', 'commander')"
|
||||
/>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<div class="col-12"><q-separator /></div>
|
||||
|
|
@ -648,23 +618,16 @@ onMounted(async () => {
|
|||
<div
|
||||
v-if="
|
||||
props.row.approveStatus == 'PENDING' &&
|
||||
props.row.comment == ''
|
||||
props.row.comment == '' &&
|
||||
approveStep === 'st2'
|
||||
"
|
||||
>
|
||||
<q-btn
|
||||
:disable="
|
||||
statusCheck == 'NEW' ||
|
||||
!approvePendingCheck ||
|
||||
(props.row.profileId !== keycloakId &&
|
||||
checkPermission($route)?.attrIsUpdate)
|
||||
"
|
||||
:outline="
|
||||
props.row.profileId !== keycloakId ||
|
||||
statusCheck == 'NEW' ||
|
||||
!approvePendingCheck
|
||||
? false
|
||||
: true
|
||||
v-if="
|
||||
props.row.profileId === keycloakId &&
|
||||
approveStep === 'st2'
|
||||
"
|
||||
outline
|
||||
dense
|
||||
color="primary"
|
||||
icon-right="check"
|
||||
|
|
@ -673,19 +636,11 @@ onMounted(async () => {
|
|||
@click="popUp('pass', 'commander')"
|
||||
/>
|
||||
<q-btn
|
||||
:disable="
|
||||
statusCheck == 'NEW' ||
|
||||
!approvePendingCheck ||
|
||||
(props.row.profileId !== keycloakId &&
|
||||
checkPermission($route)?.attrIsUpdate)
|
||||
"
|
||||
:outline="
|
||||
props.row.profileId !== keycloakId ||
|
||||
statusCheck == 'NEW' ||
|
||||
!approvePendingCheck
|
||||
? false
|
||||
: true
|
||||
v-if="
|
||||
props.row.profileId === keycloakId &&
|
||||
approveStep === 'st2'
|
||||
"
|
||||
outline
|
||||
color="red"
|
||||
dense
|
||||
icon-right="close"
|
||||
|
|
@ -722,7 +677,11 @@ onMounted(async () => {
|
|||
ผลการพิจารณาของผู้มีอำนาจ
|
||||
</div>
|
||||
<q-btn
|
||||
v-if="statusCheck == 'WAITTING' && (isOfficer || isStaff)"
|
||||
v-if="
|
||||
!checkRoutePermisson &&
|
||||
((isStaff && group === '1.1' && approveStep === 'st1') ||
|
||||
(isOfficer && group !== '1.1' && approveStep === 'st3'))
|
||||
"
|
||||
flat
|
||||
round
|
||||
icon="add"
|
||||
|
|
@ -819,16 +778,30 @@ onMounted(async () => {
|
|||
</div>
|
||||
</div>
|
||||
</q-card>
|
||||
|
||||
<!-- ส่งไปพิจารณา -->
|
||||
<q-card
|
||||
bordered
|
||||
class="row col-12 text-dark q-mt-sm q-pa-sm"
|
||||
v-if="statusCheck == 'WAITTING' && (isOfficer || isStaff)"
|
||||
v-if="
|
||||
!checkRoutePermisson &&
|
||||
((isStaff && group === '1.1' && approveStep === 'st1') ||
|
||||
(isStaff && group !== '1.1' && approveStep === 'st1') ||
|
||||
(isOfficer && group !== '1.1' && approveStep === 'st3'))
|
||||
"
|
||||
>
|
||||
<q-btn
|
||||
@click="onSend"
|
||||
:disable="
|
||||
rowsApprover?.approvers.length == 0 ||
|
||||
rowsApprover?.commanders.length == 0
|
||||
(group === '1.1' &&
|
||||
(rowsApprover?.approvers.length == 0 ||
|
||||
rowsApprover?.commanders.length == 0)) ||
|
||||
(group !== '1.1 ' &&
|
||||
rowsApprover?.commanders.length == 0 &&
|
||||
approveStep === 'st1') ||
|
||||
(group !== '1.1 ' &&
|
||||
rowsApprover?.approvers.length == 0 &&
|
||||
approveStep === 'st3')
|
||||
"
|
||||
label="ส่งไปพิจารณา"
|
||||
color="secondary"
|
||||
|
|
@ -836,6 +809,7 @@ onMounted(async () => {
|
|||
><q-tooltip>คลิกเพื่อส่งไปพิจารณา</q-tooltip></q-btn
|
||||
>
|
||||
</q-card>
|
||||
|
||||
<!-- แก้ไขข้อมูลเพื่อลงบัญชีแนบท้าย -->
|
||||
<q-card bordered class="row col-12 text-dark q-mt-sm">
|
||||
<q-form
|
||||
|
|
@ -851,7 +825,14 @@ onMounted(async () => {
|
|||
</div>
|
||||
<q-space />
|
||||
<!-- && workflowRef?.permission.isUpdate -->
|
||||
<div v-if="!checkRoutePermisson">
|
||||
<div
|
||||
v-if="
|
||||
!checkRoutePermisson &&
|
||||
(dataDetail.statusMain === 'APPROVE' ||
|
||||
dataDetail.statusMain === 'REJECT') &&
|
||||
((isStaff && group === '1.1') || (isOfficer && group !== '1.1'))
|
||||
"
|
||||
>
|
||||
<div class="q-gutter-sm" v-if="!edit">
|
||||
<q-btn
|
||||
outline
|
||||
|
|
@ -955,24 +936,7 @@ onMounted(async () => {
|
|||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="col-xs-6 col-sm-3 row">
|
||||
<div class="col-12">
|
||||
<q-input
|
||||
v-model="salary"
|
||||
:outlined="edit"
|
||||
dense
|
||||
:readonly="!edit"
|
||||
:borderless="!edit"
|
||||
hide-bottom-space
|
||||
:label="`${'เงินเดือน'}`"
|
||||
:rules="[(val:number) => !!val || `${'กรุณากรอกเงินเดือน'}`]"
|
||||
lazy-rules
|
||||
:class="getClass(edit)"
|
||||
mask="###,###,###,###"
|
||||
reverse-fill-mask
|
||||
/>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="col-12"><q-separator /></div>
|
||||
<div class="col-xs-4 row">
|
||||
<div class="col-12">
|
||||
|
|
@ -1075,13 +1039,6 @@ onMounted(async () => {
|
|||
</div>
|
||||
</q-form>
|
||||
</q-card>
|
||||
|
||||
<!-- <WorkFlow
|
||||
ref="workflowRef"
|
||||
v-model:is-check-data="isCheckData"
|
||||
:id="id"
|
||||
sys-name="RETIREMENT_CANCEL"
|
||||
/> -->
|
||||
</div>
|
||||
|
||||
<q-dialog v-model="modal" persistent>
|
||||
|
|
@ -1115,7 +1072,6 @@ onMounted(async () => {
|
|||
><q-tooltip>บันทึกข้อมูล</q-tooltip></q-btn
|
||||
>
|
||||
</q-card-actions>
|
||||
<!-- <DialogFooter :editvisible="true" :save="conditionPopup" /> -->
|
||||
</q-form>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ export const useDataStore = defineStore("resign", () => {
|
|||
group: "1",
|
||||
},
|
||||
{
|
||||
name: "อนุมัติแล้ว",
|
||||
name: "อนุมัติ/ยับยั้ง",
|
||||
value: "APPROVE",
|
||||
group: "1",
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue