Merge branch 'develop' into devTee
This commit is contained in:
commit
98e5eaad27
13 changed files with 234 additions and 61 deletions
|
|
@ -53,8 +53,9 @@ const typeSelectPerson = ref<string>("");
|
||||||
//รายการระบบที่ต้องการ disable step 3 หรือรองสุดท้าย
|
//รายการระบบที่ต้องการ disable step 3 หรือรองสุดท้าย
|
||||||
const displayArray = <string[]>[
|
const displayArray = <string[]>[
|
||||||
"REGISTRY_PROFILE",
|
"REGISTRY_PROFILE",
|
||||||
"SYS_RETIREMENT",
|
"SYS_RESIGN",
|
||||||
"SYS_LEAVE_LIST",
|
"SYS_LEAVE_LIST",
|
||||||
|
"SYS_LEAVE_EMP",
|
||||||
];
|
];
|
||||||
|
|
||||||
async function fetchCheckState() {
|
async function fetchCheckState() {
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,13 @@ async function fetchOrganizationActive() {
|
||||||
const data = await res.data.result;
|
const data = await res.data.result;
|
||||||
if (data) {
|
if (data) {
|
||||||
await store.fetchDataActive(data);
|
await store.fetchDataActive(data);
|
||||||
await fetchCheckIslock(data.draftId);
|
// ต้องมี id ของแบบร่างถึงจะเช็ค isLock
|
||||||
|
if (data.draftId) {
|
||||||
|
await fetchCheckIslock(data.draftId);
|
||||||
|
} else {
|
||||||
|
store.isLosck = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (data.activeName === null && data.draftName === null) {
|
if (data.activeName === null && data.draftName === null) {
|
||||||
isStatusData.value = false;
|
isStatusData.value = false;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted, ref, reactive, computed } from "vue";
|
import { onMounted, ref, reactive, computed, readonly } from "vue";
|
||||||
import { useQuasar } from "quasar";
|
import { useQuasar } from "quasar";
|
||||||
|
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
|
|
@ -20,7 +20,9 @@ import DialogUpdateCouple from "@/modules/04_registryPerson/components/Dialog/06
|
||||||
const $q = useQuasar();
|
const $q = useQuasar();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const typeEmp = ref<string>("");
|
const typeEmp = ref<string>(
|
||||||
|
route.name === "registryNewRequestEditEmpDetail" ? "employee" : ""
|
||||||
|
);
|
||||||
const store = useRequestEditStore();
|
const store = useRequestEditStore();
|
||||||
const {
|
const {
|
||||||
dialogConfirm,
|
dialogConfirm,
|
||||||
|
|
@ -72,8 +74,6 @@ const isCheckData = computed(() => {
|
||||||
/** function fetch ข้อมูลคำร้องแก้ไข*/
|
/** function fetch ข้อมูลคำร้องแก้ไข*/
|
||||||
async function fetchDataRequest() {
|
async function fetchDataRequest() {
|
||||||
showLoader();
|
showLoader();
|
||||||
typeEmp.value =
|
|
||||||
route.name === "registryNewRequestEditEmpDetail" ? "employee" : "";
|
|
||||||
await http
|
await http
|
||||||
.get(
|
.get(
|
||||||
config.API.requestEditByType(
|
config.API.requestEditByType(
|
||||||
|
|
@ -86,6 +86,7 @@ async function fetchDataRequest() {
|
||||||
|
|
||||||
formData.status = data.status;
|
formData.status = data.status;
|
||||||
formData.remark = data.remark;
|
formData.remark = data.remark;
|
||||||
|
|
||||||
if (data.status !== "PENDING") {
|
if (data.status !== "PENDING") {
|
||||||
isReadOnly.value = true;
|
isReadOnly.value = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -239,8 +240,22 @@ function topicConvert(type: string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isStaff = ref<boolean>(false);
|
||||||
|
function fetchCheckIsofficer() {
|
||||||
|
if (typeEmp.value === "employee") {
|
||||||
|
http
|
||||||
|
.get(config.API.workflowKeycloakSystem("REGISTRY_PROFILE_EMP"))
|
||||||
|
.then((res) => {
|
||||||
|
isStaff.value = res.data.result.isStaff;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
messageError($q, err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await fetchDataRequest();
|
await Promise.all([fetchDataRequest(), fetchCheckIsofficer()]);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -261,8 +276,14 @@ onMounted(async () => {
|
||||||
<q-space />
|
<q-space />
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
(typeEmp !== 'employee' &&
|
||||||
topicConvert(dataRequest.topic) !== ''
|
workflowRef?.permission.isUpdate &&
|
||||||
|
topicConvert(dataRequest.topic) !== '' &&
|
||||||
|
!isReadOnly) ||
|
||||||
|
(typeEmp === 'employee' &&
|
||||||
|
isStaff &&
|
||||||
|
topicConvert(dataRequest.topic) !== '' &&
|
||||||
|
!isReadOnly)
|
||||||
"
|
"
|
||||||
color="public"
|
color="public"
|
||||||
:label="topicConvert(dataRequest.topic)"
|
:label="topicConvert(dataRequest.topic)"
|
||||||
|
|
@ -413,11 +434,17 @@ onMounted(async () => {
|
||||||
<q-select
|
<q-select
|
||||||
:class="
|
:class="
|
||||||
classInput(
|
classInput(
|
||||||
isReadOnly || !workflowRef?.permission.isUpdate
|
isReadOnly ||
|
||||||
|
(typeEmp === 'employee' && !isStaff) ||
|
||||||
|
(typeEmp !== 'employee' &&
|
||||||
|
!workflowRef?.permission.isUpdate)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:readonly="
|
:readonly="
|
||||||
isReadOnly || !workflowRef?.permission.isUpdate
|
isReadOnly ||
|
||||||
|
(typeEmp === 'employee' && !isStaff) ||
|
||||||
|
(typeEmp !== 'employee' &&
|
||||||
|
!workflowRef?.permission.isUpdate)
|
||||||
"
|
"
|
||||||
v-model="formData.status"
|
v-model="formData.status"
|
||||||
label="สถานะ"
|
label="สถานะ"
|
||||||
|
|
@ -450,11 +477,17 @@ onMounted(async () => {
|
||||||
<q-input
|
<q-input
|
||||||
:class="
|
:class="
|
||||||
classInput(
|
classInput(
|
||||||
isReadOnly || !workflowRef?.permission.isUpdate
|
isReadOnly ||
|
||||||
|
(typeEmp === 'employee' && !isStaff) ||
|
||||||
|
(typeEmp !== 'employee' &&
|
||||||
|
!workflowRef?.permission.isUpdate)
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:readonly="
|
:readonly="
|
||||||
isReadOnly || !workflowRef?.permission.isUpdate
|
isReadOnly ||
|
||||||
|
(typeEmp === 'employee' && !isStaff) ||
|
||||||
|
(typeEmp !== 'employee' &&
|
||||||
|
!workflowRef?.permission.isUpdate)
|
||||||
"
|
"
|
||||||
v-model="formData.remark"
|
v-model="formData.remark"
|
||||||
label="หมายเหตุ"
|
label="หมายเหตุ"
|
||||||
|
|
@ -467,7 +500,10 @@ onMounted(async () => {
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="row col-12 justify-end"
|
class="row col-12 justify-end"
|
||||||
v-if="!isReadOnly && workflowRef?.permission.isUpdate"
|
v-if="
|
||||||
|
(!isReadOnly && workflowRef?.permission.isUpdate) ||
|
||||||
|
(typeEmp === 'employee' && isStaff && !isReadOnly)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<q-btn label="บันทึก" color="secondary" type="submit"
|
<q-btn label="บันทึก" color="secondary" type="submit"
|
||||||
><q-tooltip>บันทึก</q-tooltip></q-btn
|
><q-tooltip>บันทึก</q-tooltip></q-btn
|
||||||
|
|
|
||||||
|
|
@ -351,9 +351,9 @@ onMounted(async () => {
|
||||||
:readonly="!edit"
|
:readonly="!edit"
|
||||||
:borderless="!edit"
|
:borderless="!edit"
|
||||||
:model-value="date !== null ? date2Thai(date) : null"
|
:model-value="date !== null ? date2Thai(date) : null"
|
||||||
:rules="[(val:string) => !!val || `${'กรุณาเลือกตั้งแต่วัน'}`]"
|
:rules="[(val:string) => !!val || `${'กรุณาเลือกตั้งแต่วันที่'}`]"
|
||||||
hide-bottom-space
|
hide-bottom-space
|
||||||
:label="`${'ตั้งแต่วัน'}`"
|
:label="`${'ตั้งแต่วันที่'}`"
|
||||||
>
|
>
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<q-icon
|
<q-icon
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,8 @@ const dataDetail = ref<any>({
|
||||||
status: "",
|
status: "",
|
||||||
statustext: "",
|
statustext: "",
|
||||||
fullname: "",
|
fullname: "",
|
||||||
|
statusMain: "",
|
||||||
|
cancelReason: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const workflowRef = ref<any>(null);
|
const workflowRef = ref<any>(null);
|
||||||
|
|
@ -628,6 +630,18 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="col-xs-12 col-sm-12 row items-start"
|
||||||
|
v-if="dataDetail.statusMain === 'CANCEL'"
|
||||||
|
>
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="col-12 text-top">เหตุผลการขอยกเลิก</div>
|
||||||
|
<div class="col-12 text-detail text-red">
|
||||||
|
{{ dataDetail.cancelReason }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
|
|
@ -744,7 +758,11 @@ onMounted(async () => {
|
||||||
<q-space />
|
<q-space />
|
||||||
|
|
||||||
<div
|
<div
|
||||||
v-if="!checkRoutePermisson && workflowRef?.permission.isUpdate"
|
v-if="
|
||||||
|
!checkRoutePermisson &&
|
||||||
|
workflowRef?.permission.isUpdate &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<div v-if="!conditions">
|
<div v-if="!conditions">
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
@ -819,7 +837,9 @@ onMounted(async () => {
|
||||||
<div class="col-12 row">
|
<div class="col-12 row">
|
||||||
<q-file
|
<q-file
|
||||||
v-if="
|
v-if="
|
||||||
!checkRoutePermisson && workflowRef?.permission.isUpdate
|
!checkRoutePermisson &&
|
||||||
|
workflowRef?.permission.isUpdate &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
class="col-12"
|
class="col-12"
|
||||||
for="#evidenceFiles"
|
for="#evidenceFiles"
|
||||||
|
|
@ -875,8 +895,8 @@ onMounted(async () => {
|
||||||
<div>
|
<div>
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="
|
v-if="
|
||||||
dataDetail.status == 'WAITTING' &&
|
!checkRoutePermisson &&
|
||||||
!checkRoutePermisson
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
dense
|
dense
|
||||||
flat
|
flat
|
||||||
|
|
@ -959,7 +979,8 @@ onMounted(async () => {
|
||||||
class="q-gutter-x-sm"
|
class="q-gutter-x-sm"
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
workflowRef?.permission.isUpdate &&
|
||||||
dataDetail.commanderReject === null
|
dataDetail.commanderReject === null &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
@ -1031,7 +1052,8 @@ onMounted(async () => {
|
||||||
class="q-gutter-x-sm"
|
class="q-gutter-x-sm"
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
workflowRef?.permission.isUpdate &&
|
||||||
dataDetail.oligarchReject === null
|
dataDetail.oligarchReject === null &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
@ -1106,7 +1128,13 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
<q-space />
|
<q-space />
|
||||||
|
|
||||||
<div v-if="!checkRoutePermisson && workflowRef?.permission.isUpdate">
|
<div
|
||||||
|
v-if="
|
||||||
|
!checkRoutePermisson &&
|
||||||
|
workflowRef?.permission.isUpdate &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
|
"
|
||||||
|
>
|
||||||
<div class="q-gutter-sm" v-if="!edit">
|
<div class="q-gutter-sm" v-if="!edit">
|
||||||
<q-btn
|
<q-btn
|
||||||
outline
|
outline
|
||||||
|
|
@ -1335,7 +1363,7 @@ onMounted(async () => {
|
||||||
ref="workflowRef"
|
ref="workflowRef"
|
||||||
v-model:is-check-data="isCheckData"
|
v-model:is-check-data="isCheckData"
|
||||||
:id="id"
|
:id="id"
|
||||||
sys-name="SYS_RETIREMENT"
|
sys-name="SYS_RESIGN"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@ const dataDetail = ref<any>({
|
||||||
status: "",
|
status: "",
|
||||||
statustext: "",
|
statustext: "",
|
||||||
fullname: "",
|
fullname: "",
|
||||||
|
statusMain: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const workflowRef = ref<any>(null);
|
const workflowRef = ref<any>(null);
|
||||||
|
|
@ -380,7 +381,8 @@ onMounted(async () => {
|
||||||
class="q-gutter-x-sm"
|
class="q-gutter-x-sm"
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
workflowRef?.permission.isUpdate &&
|
||||||
dataDetail.commanderReject === null
|
dataDetail.commanderReject === null &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
@ -453,7 +455,8 @@ onMounted(async () => {
|
||||||
class="q-gutter-x-sm"
|
class="q-gutter-x-sm"
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
workflowRef?.permission.isUpdate &&
|
||||||
dataDetail.oligarchReject === null
|
dataDetail.oligarchReject === null &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
|
||||||
|
|
@ -282,7 +282,7 @@ watchEffect(() => {
|
||||||
|
|
||||||
<DialogCreateCommand
|
<DialogCreateCommand
|
||||||
v-model:modal="modalCommand"
|
v-model:modal="modalCommand"
|
||||||
:command-type-code="props.mainTabs === '1' ? 'C-PM-17' : 'C-PM-41'"
|
:command-type-code="props.mainTabs === '1' ? 'C-PM-23' : 'C-PM-42'"
|
||||||
:persons="dataMapToSend"
|
:persons="dataMapToSend"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,8 @@ const dataDetail = ref<any>({
|
||||||
status: "",
|
status: "",
|
||||||
statustext: "",
|
statustext: "",
|
||||||
fullname: "",
|
fullname: "",
|
||||||
|
statusMain: "",
|
||||||
|
cancelReason: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const workflowRef = ref<any>(null);
|
const workflowRef = ref<any>(null);
|
||||||
|
|
@ -516,10 +518,29 @@ function removeFile(fileName: string) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isDirector = ref<boolean>(false);
|
||||||
|
const isStaff = ref<boolean>(false);
|
||||||
|
|
||||||
|
function fetchCheckIsofficer() {
|
||||||
|
http
|
||||||
|
.get(config.API.workflowKeycloakSystem("SYS_RESIGN_EMP"))
|
||||||
|
.then((res) => {
|
||||||
|
isStaff.value = res.data.result.isStaff;
|
||||||
|
isDirector.value = res.data.result.isDirector;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
messageError($q, err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/** Hook */
|
/** Hook */
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
showLoader();
|
showLoader();
|
||||||
await Promise.all([fetchData(id.value), fetchFile()]).finally(() => {
|
await Promise.all([
|
||||||
|
fetchData(id.value),
|
||||||
|
fetchFile(),
|
||||||
|
fetchCheckIsofficer(),
|
||||||
|
]).finally(() => {
|
||||||
hideLoader();
|
hideLoader();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -628,6 +649,18 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div
|
||||||
|
class="col-xs-12 col-sm-12 row items-start"
|
||||||
|
v-if="dataDetail.statusMain === 'CANCEL'"
|
||||||
|
>
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="col-12 text-top">เหตุผลการขอยกเลิก</div>
|
||||||
|
<div class="col-12 text-detail text-red">
|
||||||
|
{{ dataDetail.cancelReason }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</q-card>
|
</q-card>
|
||||||
|
|
@ -742,8 +775,14 @@ onMounted(async () => {
|
||||||
เงื่อนไขต่าง ๆ
|
เงื่อนไขต่าง ๆ
|
||||||
</div>
|
</div>
|
||||||
<q-space />
|
<q-space />
|
||||||
<!-- && workflowRef?.permission.isUpdate -->
|
|
||||||
<div v-if="!checkRoutePermisson">
|
<div
|
||||||
|
v-if="
|
||||||
|
!checkRoutePermisson &&
|
||||||
|
isStaff &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
|
"
|
||||||
|
>
|
||||||
<div v-if="!conditions">
|
<div v-if="!conditions">
|
||||||
<q-btn
|
<q-btn
|
||||||
outline
|
outline
|
||||||
|
|
@ -815,9 +854,12 @@ onMounted(async () => {
|
||||||
<div class="col-12"><q-separator /></div>
|
<div class="col-12"><q-separator /></div>
|
||||||
<div class="row col-12 q-col-gutter-y-sm q-pa-sm">
|
<div class="row col-12 q-col-gutter-y-sm q-pa-sm">
|
||||||
<div class="col-12 row">
|
<div class="col-12 row">
|
||||||
<!-- && workflowRef?.permission.isUpdate -->
|
|
||||||
<q-file
|
<q-file
|
||||||
v-if="!checkRoutePermisson"
|
v-if="
|
||||||
|
!checkRoutePermisson &&
|
||||||
|
isStaff &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
|
"
|
||||||
class="col-12"
|
class="col-12"
|
||||||
for="#evidenceFiles"
|
for="#evidenceFiles"
|
||||||
outlined
|
outlined
|
||||||
|
|
@ -872,8 +914,9 @@ onMounted(async () => {
|
||||||
<div>
|
<div>
|
||||||
<q-btn
|
<q-btn
|
||||||
v-if="
|
v-if="
|
||||||
dataDetail.status == 'WAITTING' &&
|
!checkRoutePermisson &&
|
||||||
!checkRoutePermisson
|
isStaff &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
dense
|
dense
|
||||||
flat
|
flat
|
||||||
|
|
@ -955,8 +998,9 @@ onMounted(async () => {
|
||||||
<div
|
<div
|
||||||
class="q-gutter-x-sm"
|
class="q-gutter-x-sm"
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
isDirector &&
|
||||||
dataDetail.commanderReject === null
|
dataDetail.commanderReject === null &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
@ -1027,8 +1071,9 @@ onMounted(async () => {
|
||||||
<div
|
<div
|
||||||
class="q-gutter-x-sm"
|
class="q-gutter-x-sm"
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
isDirector &&
|
||||||
dataDetail.oligarchReject === null
|
dataDetail.oligarchReject === null &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
@ -1102,8 +1147,13 @@ onMounted(async () => {
|
||||||
แก้ไขข้อมูลเพื่อลงบัญชีแนบท้าย
|
แก้ไขข้อมูลเพื่อลงบัญชีแนบท้าย
|
||||||
</div>
|
</div>
|
||||||
<q-space />
|
<q-space />
|
||||||
<!-- && workflowRef?.permission.isUpdate -->
|
<div
|
||||||
<div v-if="!checkRoutePermisson">
|
v-if="
|
||||||
|
!checkRoutePermisson &&
|
||||||
|
isStaff &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
|
"
|
||||||
|
>
|
||||||
<div class="q-gutter-sm" v-if="!edit">
|
<div class="q-gutter-sm" v-if="!edit">
|
||||||
<q-btn
|
<q-btn
|
||||||
outline
|
outline
|
||||||
|
|
@ -1331,7 +1381,7 @@ onMounted(async () => {
|
||||||
ref="workflowRef"
|
ref="workflowRef"
|
||||||
v-model:is-check-data="isCheckData"
|
v-model:is-check-data="isCheckData"
|
||||||
:id="id"
|
:id="id"
|
||||||
sys-name="SYS_RETIREMENT"
|
sys-name="SYS_RESIGN"
|
||||||
/> -->
|
/> -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,7 @@ const dataDetail = ref<any>({
|
||||||
status: "",
|
status: "",
|
||||||
statustext: "",
|
statustext: "",
|
||||||
fullname: "",
|
fullname: "",
|
||||||
|
statusMain: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
const workflowRef = ref<any>(null);
|
const workflowRef = ref<any>(null);
|
||||||
|
|
@ -176,7 +177,10 @@ function onSubmit() {
|
||||||
reject: !actionPass.value,
|
reject: !actionPass.value,
|
||||||
};
|
};
|
||||||
await http
|
await http
|
||||||
.put(config.API.resignRejectEMP(`${roleUser.value}-cancel`, id.value), body)
|
.put(
|
||||||
|
config.API.resignRejectEMP(`${roleUser.value}-cancel`, id.value),
|
||||||
|
body
|
||||||
|
)
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
await fetchData(id.value);
|
await fetchData(id.value);
|
||||||
closeModal();
|
closeModal();
|
||||||
|
|
@ -255,9 +259,24 @@ function statusOrder(val: boolean) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isDirector = ref<boolean>(false);
|
||||||
|
const isStaff = ref<boolean>(false);
|
||||||
|
|
||||||
|
function fetchCheckIsofficer() {
|
||||||
|
http
|
||||||
|
.get(config.API.workflowKeycloakSystem("RETIREMENT_CANCEL_EMP"))
|
||||||
|
.then((res) => {
|
||||||
|
isStaff.value = res.data.result.isStaff;
|
||||||
|
isDirector.value = res.data.result.isDirector;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
messageError($q, err);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/** Hook */
|
/** Hook */
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await fetchData(id.value);
|
await Promise.all([fetchData(id.value), fetchCheckIsofficer()]);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
@ -379,8 +398,9 @@ onMounted(async () => {
|
||||||
<div
|
<div
|
||||||
class="q-gutter-x-sm"
|
class="q-gutter-x-sm"
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
isDirector &&
|
||||||
dataDetail.commanderReject === null
|
dataDetail.commanderReject === null &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
@ -452,8 +472,9 @@ onMounted(async () => {
|
||||||
<div
|
<div
|
||||||
class="q-gutter-x-sm"
|
class="q-gutter-x-sm"
|
||||||
v-if="
|
v-if="
|
||||||
workflowRef?.permission.isUpdate &&
|
isDirector &&
|
||||||
dataDetail.oligarchReject === null
|
dataDetail.oligarchReject === null &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<q-btn
|
<q-btn
|
||||||
|
|
@ -528,7 +549,13 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
<q-space />
|
<q-space />
|
||||||
<!-- && workflowRef?.permission.isUpdate -->
|
<!-- && workflowRef?.permission.isUpdate -->
|
||||||
<div v-if="!checkRoutePermisson">
|
<div
|
||||||
|
v-if="
|
||||||
|
!checkRoutePermisson &&
|
||||||
|
isStaff &&
|
||||||
|
dataDetail.statusMain === 'WAITTING'
|
||||||
|
"
|
||||||
|
>
|
||||||
<div class="q-gutter-sm" v-if="!edit">
|
<div class="q-gutter-sm" v-if="!edit">
|
||||||
<q-btn
|
<q-btn
|
||||||
outline
|
outline
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ export default [
|
||||||
component: Main,
|
component: Main,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT",
|
Key: "SYS_RESIGN",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -60,7 +60,7 @@ export default [
|
||||||
component: Listretirement,
|
component: Listretirement,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT",
|
Key: "SYS_RESIGN",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -70,7 +70,7 @@ export default [
|
||||||
component: ListretirementDetail,
|
component: ListretirementDetail,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT",
|
Key: "SYS_RESIGN",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -80,7 +80,7 @@ export default [
|
||||||
component: Listretirement,
|
component: Listretirement,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT",
|
Key: "SYS_RESIGN",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -141,7 +141,7 @@ export default [
|
||||||
component: resign_EMP,
|
component: resign_EMP,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT_EMP",
|
Key: "SYS_RESIGN_EMP",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -172,7 +172,7 @@ export default [
|
||||||
component: resignByidEMP,
|
component: resignByidEMP,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT_EMP",
|
Key: "SYS_RESIGN_EMP",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -182,7 +182,7 @@ export default [
|
||||||
component: resignByidEMP,
|
component: resignByidEMP,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT_EMP",
|
Key: "SYS_RESIGN_EMP",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -214,7 +214,7 @@ export default [
|
||||||
component: resignRejectEMP,
|
component: resignRejectEMP,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT_EMP",
|
Key: "SYS_RESIGN_EMP",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -224,7 +224,7 @@ export default [
|
||||||
component: resignRejectEMP,
|
component: resignRejectEMP,
|
||||||
meta: {
|
meta: {
|
||||||
Auth: true,
|
Auth: true,
|
||||||
Key: "SYS_RETIREMENT_EMP",
|
Key: "SYS_RESIGN_EMP",
|
||||||
Role: "STAFF",
|
Role: "STAFF",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -121,13 +121,17 @@ const formData = reactive<FremData>({
|
||||||
approveStep: "",
|
approveStep: "",
|
||||||
dear: "",
|
dear: "",
|
||||||
leaveRange: "",
|
leaveRange: "",
|
||||||
|
profileType: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const isLoadData = ref<boolean>(false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function fetch รายละเอียดของข้อมูล
|
* Function fetch รายละเอียดของข้อมูล
|
||||||
* @param paramsId รับ ID จาก paramID
|
* @param paramsId รับ ID จาก paramID
|
||||||
*/
|
*/
|
||||||
async function fetchDetailLeave(paramsId: string) {
|
async function fetchDetailLeave(paramsId: string) {
|
||||||
|
isLoadData.value = false;
|
||||||
showLoader();
|
showLoader();
|
||||||
await http
|
await http
|
||||||
.get(config.API.leaveListById(paramsId))
|
.get(config.API.leaveListById(paramsId))
|
||||||
|
|
@ -264,6 +268,9 @@ async function fetchDetailLeave(paramsId: string) {
|
||||||
: "-";
|
: "-";
|
||||||
formData.approveStep = data.approveStep ? data.approveStep : "-";
|
formData.approveStep = data.approveStep ? data.approveStep : "-";
|
||||||
formData.dear = data.dear ? data.dear : "-";
|
formData.dear = data.dear ? data.dear : "-";
|
||||||
|
formData.profileType = data.profileType;
|
||||||
|
|
||||||
|
isLoadData.value = true;
|
||||||
|
|
||||||
/** ส่งประเภทของการลาไป Function เช็คประเภทการลา*/
|
/** ส่งประเภทของการลาไป Function เช็คประเภทการลา*/
|
||||||
await fectOptionType();
|
await fectOptionType();
|
||||||
|
|
@ -802,12 +809,16 @@ onMounted(async () => {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Workflow -->
|
<!-- Workflow -->
|
||||||
<div class="col-xs-12 col-sm-12">
|
<div class="col-xs-12 col-sm-12" v-if="isLoadData">
|
||||||
<WorkFlow
|
<WorkFlow
|
||||||
ref="workflowRef"
|
ref="workflowRef"
|
||||||
:id="paramsId"
|
:id="paramsId"
|
||||||
v-model:is-check-data="isCheckData"
|
v-model:is-check-data="isCheckData"
|
||||||
sys-name="SYS_LEAVE_LIST"
|
:sys-name="
|
||||||
|
formData.profileType === 'OFFICER'
|
||||||
|
? 'SYS_LEAVE_LIST'
|
||||||
|
: 'SYS_LEAVE_LIST_EMP'
|
||||||
|
"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -147,8 +147,11 @@ const formData = reactive<FremData>({
|
||||||
coupleDaySumTotalHistory: "", //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
coupleDaySumTotalHistory: "", //ประวัติ ในกรณีลาติดต่อกับครั้งก่อน รวมทั้งนี้ด้วย เป็นเวลา กี่ปี กี่เดือน กี่วัน (ลาติดตามคู่สมรส)
|
||||||
approveStep: "",
|
approveStep: "",
|
||||||
dear: "",
|
dear: "",
|
||||||
|
profileType: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const isLoadData = ref<boolean>(false);
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
if (paramsId) {
|
if (paramsId) {
|
||||||
showLoader();
|
showLoader();
|
||||||
|
|
@ -192,6 +195,7 @@ async function fetchDetailDeleteLeave(paramsId: string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
async function fetchDetailLeave(paramsId: string) {
|
async function fetchDetailLeave(paramsId: string) {
|
||||||
|
isLoadData.value = false;
|
||||||
await http
|
await http
|
||||||
.get(config.API.leaveListById(paramsId))
|
.get(config.API.leaveListById(paramsId))
|
||||||
.then(async (res) => {
|
.then(async (res) => {
|
||||||
|
|
@ -275,6 +279,8 @@ async function fetchDetailLeave(paramsId: string) {
|
||||||
formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory;
|
formData.coupleDaySumTotalHistory = data.coupleDaySumTotalHistory;
|
||||||
formData.approveStep = data.approveStep;
|
formData.approveStep = data.approveStep;
|
||||||
formData.dear = data.dear ? data.dear : "-";
|
formData.dear = data.dear ? data.dear : "-";
|
||||||
|
formData.profileType = data.profileType;
|
||||||
|
isLoadData.value = true;
|
||||||
await fectOptionType();
|
await fectOptionType();
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
|
|
@ -708,11 +714,15 @@ async function onClickDownloadFile(id: string, fileName: string, type: string) {
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Workflow -->
|
<!-- Workflow -->
|
||||||
<div class="col-xs-12 col-sm-12">
|
<div class="col-xs-12 col-sm-12" v-if="isLoadData">
|
||||||
<WorkFlow
|
<WorkFlow
|
||||||
ref="workflowRef"
|
ref="workflowRef"
|
||||||
:id="paramsId"
|
:id="paramsId"
|
||||||
sys-name="SYS_LEAVE_LIST"
|
:sys-name="
|
||||||
|
formData.profileType === 'OFFICER'
|
||||||
|
? 'SYS_LEAVE_LIST'
|
||||||
|
: 'SYS_LEAVE_LIST_EMP'
|
||||||
|
"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,7 @@ interface FremData {
|
||||||
approveStep: string;
|
approveStep: string;
|
||||||
dear: string;
|
dear: string;
|
||||||
leaveRange?: string;
|
leaveRange?: string;
|
||||||
|
profileType: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type { ListsData, FremData, QuerySting, DateFilter };
|
export type { ListsData, FremData, QuerySting, DateFilter };
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue