workflow => ขอลา

This commit is contained in:
DESKTOP-1R2VSQH\Lenovo ThinkPad E490 2024-10-25 10:41:32 +07:00
parent f0ba8506ee
commit 7914b60af4
2 changed files with 122 additions and 75 deletions

View file

@ -37,12 +37,12 @@ const dataUserComment = ref<any>();
const isPermission = ref<boolean>(true); // Workflow
const permission = ref<Permission>({
isChangeState: false, ///
isOperate: false, // (state)
isOperate: false, // (state)
isView: false, //
isUpdate: false, //
isDelete: false, // ()
isCancel: false, // ()
isSign: false,
isSign: false, //
});
const itemState = ref<DataListState[]>([]);
@ -50,8 +50,12 @@ const modalSelectPerson = ref<boolean>(false);
const modalApprove = ref<boolean>(false);
const typeSelectPerson = ref<string>("");
// disable step 3
const displayArray = <string[]>["REGISTRY_PROFILE"];
// disable step 3
const displayArray = <string[]>[
"REGISTRY_PROFILE",
"RETIREMENT_RESIFNATION",
"LEAVE_LIST",
];
async function fetchCheckState() {
await http

View file

@ -1,5 +1,5 @@
<script setup lang="ts">
import { ref, reactive, onMounted } from "vue";
import { ref, reactive, onMounted, computed } from "vue";
import { useRoute, useRouter } from "vue-router";
import { useQuasar } from "quasar";
@ -45,7 +45,7 @@ const stores = useLeavelistDataStore();
const router = useRouter();
const route = useRoute();
const paramsId = route.params.id.toString();
const workflowRef = ref<any>(null);
const modalApprove = ref(false);
const typeDocx = ref<string>("docx");
const typePdf = ref<string>("pdf");
@ -329,45 +329,31 @@ function checkLeaveType(leaveTypeId: string, formData: FremData) {
}
/** Function dialog*/
// async function openModal(data: string) {
// if (data === "approve") {
// modalApprove.value = true;
// dialogTitle.value = "";
// }
// if (data === "UnApprove") {
// modalApprove.value = true;
// dialogTitle.value = "";
// }
// if (data === "authority") {
// modalApprove.value = true;
// dialogTitle.value = "";
// dialogLabel.value = "";
// }
// }
async function openModal(data: string) {
if (data === "approve") {
modalApprove.value = true;
dialogTitle.value = "อนุมัติ";
}
if (data === "UnApprove") {
modalApprove.value = true;
dialogTitle.value = "ไม่อนุมัติ";
}
if (data === "authority") {
modalApprove.value = true;
dialogTitle.value = "ความคิดเห็นของผู้บังคับบัญชา";
dialogLabel.value = "ความคิดเห็น";
}
}
/** function ส่งไปผู้บังคับบัญชา*/
// function sendToCommand() {
// dialogConfirm(
// $q,
// async () => {
// showLoader();
// await http
// .get(config.API.leaveApproveToComander(formData.id))
// .then(async () => {
// await fetchDetailLeave(paramsId);
// success($q, "");
// })
// .catch((err) => {
// messageError($q, err);
// })
// .finally(async () => {
// hideLoader();
// });
// },
// "",
// " ?"
// );
// }
function sendToCommand() {
dialogConfirm(
$q,
async () => {},
"ยืนยันการส่งไปผู้บังคับบัญชา",
"ต้องการยืนยันการส่งไปผู้บังคับบัญชานี้ใช่หรือไม่ ?"
);
}
/** Function Save */
function clickSave(reason: string) {
@ -422,17 +408,27 @@ function clickSave(reason: string) {
"ต้องการยืนยันไม่อนุมัติใช่หรือไม่ ?"
);
}
if (dialogTitle.value === "ส่งไปยังผู้มีอำนาจ") {
if (dialogTitle.value === "ความคิดเห็นของผู้บังคับบัญชา") {
dialogConfirm(
$q,
async () => {
showLoader();
await http
.put(config.API.leaveComanderApprove(formData.id), body)
.get(config.API.leaveApproveToComander(formData.id))
.then(async () => {
await fetchDetailLeave(paramsId);
success($q, "บันทึกข้อมูลสำเร็จ");
modalApprove.value = false;
await http
.put(config.API.leaveComanderApprove(formData.id), body)
.then(async () => {
await fetchDetailLeave(paramsId);
success($q, "บันทึกข้อมูลสำเร็จ");
modalApprove.value = false;
})
.catch((err) => {
messageError($q, err);
})
.finally(async () => {
hideLoader();
});
})
.catch((err) => {
messageError($q, err);
@ -441,8 +437,8 @@ function clickSave(reason: string) {
hideLoader();
});
},
"ยืนยันการส่งไปยังผู้มีอำนาจ",
"ต้องการยืนยันการส่งไปยังผู้มีอำนาจใช่หรือไม่ ?"
"ยืนยันการแสดงความคิดเห็นของผู้บังคับบัญชา",
"ต้องการยืนยันการแสดงความคิดเห็นของผู้บังคับบัญชานี้ใช่หรือไม่ ?"
);
}
}
@ -467,6 +463,12 @@ function formattedNumber(x: number) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
const isCheckData = computed(() => {
if (formData.reasonCommander !== "-" && formData.reasonOligarch !== "-") {
return true;
} else return false;
});
onMounted(async () => {
if (paramsId) {
await fetchDetailLeave(paramsId);
@ -695,23 +697,29 @@ onMounted(async () => {
</div>
<!-- ความคดเหนของผงคบบญชา -->
<!-- <div
class="col-xs-12 col-sm-12 row"
v-if="
formData.approveStep === 'st3' ||
formData.approveStep === 'st4' ||
formData.approveStep === 'st5'
"
>
<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="col-xs-12 col-sm-12 row">
<q-card bordered class="row col-12 text-dark">
<div class="bg-grey-1 q-pa-sm col-12 row items-center">
<div class="q-pl-sm text-weight-bold text-dark">
ความคดเหนของผงคบบญชา
</div>
<q-space />
<q-btn
v-if="
workflowRef?.permission.isUpdate &&
checkPermission($route)?.attrIsUpdate &&
formData.reasonCommander === '-'
"
unelevated
color="orange-5"
label="ความคิดเห็นของผู้บังคับบัญชา"
@click="openModal('authority')"
><q-tooltip>ความคดเหนของผงคบบญชา</q-tooltip>
</q-btn>
</div>
<q-separator />
<div class="col-12"><q-separator /></div>
<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">
@ -722,24 +730,49 @@ onMounted(async () => {
</div>
</div>
</q-card>
</div> -->
</div>
<!-- ความคดเหนของผอำนาจ -->
<!-- <div
class="col-xs-12 col-sm-12 row"
v-if="
formData.approveStep === 'st4' || formData.approveStep === 'st5'
"
>
<q-card bordered class="row col-12 text-dark q-mt-sm">
<div class="col-xs-12 col-sm-12 row">
<q-card bordered class="row col-12 text-dark">
<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>
<q-space />
<div
class="row q-gutter-sm"
v-if="
workflowRef?.permission.isUpdate &&
checkPermission($route)?.attrIsUpdate &&
formData.reasonOligarch === '-'
"
>
<q-btn
unelevated
color="orange-5"
label="ไม่อนุมัติ"
@click="openModal('UnApprove')"
><q-tooltip>ไมอน</q-tooltip>
</q-btn>
<!-- v-if="
formData.approveStep === 'st3' &&
formData.status !== 'ยกเลิก' &&
checkPermission($route)?.attrIsUpdate
" -->
<q-btn
unelevated
color="primary"
label="อนุมัติ"
@click="openModal('approve')"
><q-tooltip>อน</q-tooltip>
</q-btn>
</div>
</div>
<q-separator />
<div class="col-12"><q-separator /></div>
<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">
@ -747,13 +780,18 @@ onMounted(async () => {
ผลการพจารณา
</div>
<div class="col-12 text-detail">
{{ formData.status }}
{{
formData.reasonOligarch !== "-"
? formData.status
: "-"
}}
</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">
{{ formData.reasonOligarch }}
</div>
@ -761,12 +799,17 @@ onMounted(async () => {
</div>
</div>
</q-card>
</div> -->
</div>
</div>
<!-- Workflow -->
<div class="col-xs-12 col-sm-12">
<WorkFlow ref="workflowRef" :id="paramsId" sys-name="LEAVE_LIST" />
<WorkFlow
ref="workflowRef"
:id="paramsId"
v-model:is-check-data="isCheckData"
sys-name="LEAVE_LIST"
/>
</div>
</div>
</div>