workflow => ขอลา
This commit is contained in:
parent
f0ba8506ee
commit
7914b60af4
2 changed files with 122 additions and 75 deletions
|
|
@ -37,12 +37,12 @@ const dataUserComment = ref<any>();
|
||||||
const isPermission = ref<boolean>(true); //การเข้าถึง Workflow
|
const isPermission = ref<boolean>(true); //การเข้าถึง Workflow
|
||||||
const permission = ref<Permission>({
|
const permission = ref<Permission>({
|
||||||
isChangeState: false, //ส่งไปยังผู้บังคับบัญชา/ผู้มีอำนาจ
|
isChangeState: false, //ส่งไปยังผู้บังคับบัญชา/ผู้มีอำนาจ
|
||||||
isOperate: false, //เปลี่ยนสถานะ (state) เอกสารได้
|
isOperate: false, //เปลี่ยนสถานะ (state) เอกสารได้ ผู้บังคับบัญชา
|
||||||
isView: false, //ดูเอกสารได้
|
isView: false, //ดูเอกสารได้
|
||||||
isUpdate: false, //แก้ไขเอกสารได้
|
isUpdate: false, //แก้ไขเอกสารได้
|
||||||
isDelete: false, //ลบเอกสารได้ (ถ้ามี)
|
isDelete: false, //ลบเอกสารได้ (ถ้ามี)
|
||||||
isCancel: false, //ลบเอกสารได้ (ถ้ามี)
|
isCancel: false, //ลบเอกสารได้ (ถ้ามี)
|
||||||
isSign: false,
|
isSign: false, //ผู้มีอำนาจ
|
||||||
});
|
});
|
||||||
const itemState = ref<DataListState[]>([]);
|
const itemState = ref<DataListState[]>([]);
|
||||||
|
|
||||||
|
|
@ -50,8 +50,12 @@ const modalSelectPerson = ref<boolean>(false);
|
||||||
const modalApprove = ref<boolean>(false);
|
const modalApprove = ref<boolean>(false);
|
||||||
const typeSelectPerson = ref<string>("");
|
const typeSelectPerson = ref<string>("");
|
||||||
|
|
||||||
//รายการระบบที่ต้องการ disable step 3
|
//รายการระบบที่ต้องการ disable step 3 หรือรองสุดท้าย
|
||||||
const displayArray = <string[]>["REGISTRY_PROFILE"];
|
const displayArray = <string[]>[
|
||||||
|
"REGISTRY_PROFILE",
|
||||||
|
"RETIREMENT_RESIFNATION",
|
||||||
|
"LEAVE_LIST",
|
||||||
|
];
|
||||||
|
|
||||||
async function fetchCheckState() {
|
async function fetchCheckState() {
|
||||||
await http
|
await http
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, onMounted } from "vue";
|
import { ref, reactive, onMounted, computed } from "vue";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
|
|
||||||
|
|
@ -45,7 +45,7 @@ const stores = useLeavelistDataStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const paramsId = route.params.id.toString();
|
const paramsId = route.params.id.toString();
|
||||||
|
const workflowRef = ref<any>(null);
|
||||||
const modalApprove = ref(false);
|
const modalApprove = ref(false);
|
||||||
const typeDocx = ref<string>("docx");
|
const typeDocx = ref<string>("docx");
|
||||||
const typePdf = ref<string>("pdf");
|
const typePdf = ref<string>("pdf");
|
||||||
|
|
@ -329,45 +329,31 @@ function checkLeaveType(leaveTypeId: string, formData: FremData) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Function dialog*/
|
/** Function dialog*/
|
||||||
// async function openModal(data: string) {
|
async function openModal(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 = "ไม่อนุมัติ";
|
||||||
// }
|
}
|
||||||
// if (data === "authority") {
|
if (data === "authority") {
|
||||||
// modalApprove.value = true;
|
modalApprove.value = true;
|
||||||
// dialogTitle.value = "ส่งไปยังผู้มีอำนาจ";
|
dialogTitle.value = "ความคิดเห็นของผู้บังคับบัญชา";
|
||||||
// dialogLabel.value = "ความคิดเห็น";
|
dialogLabel.value = "ความคิดเห็น";
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
/** function ส่งไปผู้บังคับบัญชา*/
|
/** function ส่งไปผู้บังคับบัญชา*/
|
||||||
// function sendToCommand() {
|
function sendToCommand() {
|
||||||
// dialogConfirm(
|
dialogConfirm(
|
||||||
// $q,
|
$q,
|
||||||
// async () => {
|
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 Save */
|
/** Function Save */
|
||||||
function clickSave(reason: string) {
|
function clickSave(reason: string) {
|
||||||
|
|
@ -422,17 +408,27 @@ function clickSave(reason: string) {
|
||||||
"ต้องการยืนยันไม่อนุมัติใช่หรือไม่ ?"
|
"ต้องการยืนยันไม่อนุมัติใช่หรือไม่ ?"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if (dialogTitle.value === "ส่งไปยังผู้มีอำนาจ") {
|
if (dialogTitle.value === "ความคิดเห็นของผู้บังคับบัญชา") {
|
||||||
dialogConfirm(
|
dialogConfirm(
|
||||||
$q,
|
$q,
|
||||||
async () => {
|
async () => {
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.put(config.API.leaveComanderApprove(formData.id), body)
|
.get(config.API.leaveApproveToComander(formData.id))
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
await fetchDetailLeave(paramsId);
|
await http
|
||||||
success($q, "บันทึกข้อมูลสำเร็จ");
|
.put(config.API.leaveComanderApprove(formData.id), body)
|
||||||
modalApprove.value = false;
|
.then(async () => {
|
||||||
|
await fetchDetailLeave(paramsId);
|
||||||
|
success($q, "บันทึกข้อมูลสำเร็จ");
|
||||||
|
modalApprove.value = false;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
messageError($q, err);
|
||||||
|
})
|
||||||
|
.finally(async () => {
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
messageError($q, err);
|
messageError($q, err);
|
||||||
|
|
@ -441,8 +437,8 @@ function clickSave(reason: string) {
|
||||||
hideLoader();
|
hideLoader();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
"ยืนยันการส่งไปยังผู้มีอำนาจ",
|
"ยืนยันการแสดงความคิดเห็นของผู้บังคับบัญชา",
|
||||||
"ต้องการยืนยันการส่งไปยังผู้มีอำนาจใช่หรือไม่ ?"
|
"ต้องการยืนยันการแสดงความคิดเห็นของผู้บังคับบัญชานี้ใช่หรือไม่ ?"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -467,6 +463,12 @@ function formattedNumber(x: number) {
|
||||||
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isCheckData = computed(() => {
|
||||||
|
if (formData.reasonCommander !== "-" && formData.reasonOligarch !== "-") {
|
||||||
|
return true;
|
||||||
|
} else return false;
|
||||||
|
});
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
if (paramsId) {
|
if (paramsId) {
|
||||||
await fetchDetailLeave(paramsId);
|
await fetchDetailLeave(paramsId);
|
||||||
|
|
@ -695,23 +697,29 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- ความคิดเห็นของผู้บังคับบัญชา -->
|
<!-- ความคิดเห็นของผู้บังคับบัญชา -->
|
||||||
<!-- <div
|
<div class="col-xs-12 col-sm-12 row">
|
||||||
class="col-xs-12 col-sm-12 row"
|
<q-card bordered class="row col-12 text-dark">
|
||||||
v-if="
|
<div class="bg-grey-1 q-pa-sm col-12 row items-center">
|
||||||
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="q-pl-sm text-weight-bold text-dark">
|
<div class="q-pl-sm text-weight-bold text-dark">
|
||||||
ความคิดเห็นของผู้บังคับบัญชา
|
ความคิดเห็นของผู้บังคับบัญชา
|
||||||
</div>
|
</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>
|
</div>
|
||||||
<q-separator />
|
<div class="col-12"><q-separator /></div>
|
||||||
|
|
||||||
<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-xs-6 row items-start">
|
||||||
|
|
@ -722,24 +730,49 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
</div> -->
|
</div>
|
||||||
|
|
||||||
<!-- ความคิดเห็นของผู้มีอำนาจ -->
|
<!-- ความคิดเห็นของผู้มีอำนาจ -->
|
||||||
<!-- <div
|
<div class="col-xs-12 col-sm-12 row">
|
||||||
class="col-xs-12 col-sm-12 row"
|
<q-card bordered class="row col-12 text-dark">
|
||||||
v-if="
|
|
||||||
formData.approveStep === 'st4' || formData.approveStep === 'st5'
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<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"
|
||||||
>
|
>
|
||||||
<div class="q-pl-sm text-weight-bold text-dark">
|
<div class="q-pl-sm text-weight-bold text-dark">
|
||||||
ความคิดเห็นของผู้มีอำนาจ
|
ความคิดเห็นของผู้มีอำนาจ
|
||||||
</div>
|
</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>
|
</div>
|
||||||
<q-separator />
|
<div class="col-12"><q-separator /></div>
|
||||||
<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-xs-6 row items-start">
|
||||||
|
|
@ -747,13 +780,18 @@ onMounted(async () => {
|
||||||
ผลการพิจารณา
|
ผลการพิจารณา
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 text-detail">
|
<div class="col-12 text-detail">
|
||||||
{{ formData.status }}
|
{{
|
||||||
|
formData.reasonOligarch !== "-"
|
||||||
|
? formData.status
|
||||||
|
: "-"
|
||||||
|
}}
|
||||||
</div>
|
</div>
|
||||||
</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">
|
||||||
{{ formData.reasonOligarch }}
|
{{ formData.reasonOligarch }}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -761,12 +799,17 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
</div> -->
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Workflow -->
|
<!-- Workflow -->
|
||||||
<div class="col-xs-12 col-sm-12">
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue