Merge branch 'develop' into devTee

This commit is contained in:
setthawutttty 2024-11-15 16:53:43 +07:00
commit 98e5eaad27
13 changed files with 234 additions and 61 deletions

View file

@ -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() {

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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>

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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

View file

@ -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",
}, },
}, },

View file

@ -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>

View file

@ -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>

View file

@ -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 };