From 8a3c77f7447e6c78cf55ef66ca95dffcbaf3dfe0 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Tue, 14 Oct 2025 13:44:11 +0700 Subject: [PATCH] fix:fetch operate --- .../components/05_Leave/DetailLeavePage.vue | 10 +++++ .../05_Leave/Dialog/DialogAddCommander.vue | 38 ++++++++++++------- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/src/modules/09_leave/components/05_Leave/DetailLeavePage.vue b/src/modules/09_leave/components/05_Leave/DetailLeavePage.vue index 0cbfbb355..db801d50c 100644 --- a/src/modules/09_leave/components/05_Leave/DetailLeavePage.vue +++ b/src/modules/09_leave/components/05_Leave/DetailLeavePage.vue @@ -155,6 +155,15 @@ const idCheck = computed(() => { } }); +// เช็คสิทธิ์การเลือกผู้มีอำนาจ +const commanderList = computed(() => { + if (typeAdd.value == "COMMANDER") { + return rows.value?.approvers.map((items: SeqTypeRow) => items.profileId); + } else if (typeAdd.value == "APPROVER") { + return rows.value?.commanders.map((items: SeqTypeRow) => items.profileId); + } +}); + // เช็คว่าผู้ใช้มีสิทธิ์อนุมัติหรือไม่ const approveCheck = computed(() => { return ( @@ -1240,5 +1249,6 @@ onMounted(async () => { :fetchDetailLeave="fetchDetailLeave" :id-check="idCheck" :keycloak-user-id="keycloakUserId" + :commanders-list="commanderList" /> diff --git a/src/modules/09_leave/components/05_Leave/Dialog/DialogAddCommander.vue b/src/modules/09_leave/components/05_Leave/Dialog/DialogAddCommander.vue index ec7d1a437..e4168dd0f 100644 --- a/src/modules/09_leave/components/05_Leave/Dialog/DialogAddCommander.vue +++ b/src/modules/09_leave/components/05_Leave/Dialog/DialogAddCommander.vue @@ -10,14 +10,6 @@ import { useCounterMixin } from "@/stores/mixin"; import DialogHeader from "@/components/DialogHeader.vue"; import { useRoute } from "vue-router"; -const modal = defineModel("modal", { required: true }); -const props = defineProps({ - type: String, - profileType: String, - keycloakUserId: String, - fetchDetailLeave: Function, - idCheck: Array, -}); const $q = useQuasar(); const mixin = useCounterMixin(); const route = useRoute(); @@ -30,6 +22,16 @@ const { dialogMessageNotify, } = mixin; +const modal = defineModel("modal", { required: true }); +const props = defineProps({ + type: String, + profileType: String, + keycloakUserId: String, + fetchDetailLeave: Function, + idCheck: Array, + commandersList: Array, +}); + const pageId = ref(route.params.id as string); const keyword = ref(""); const isAct = ref(false); @@ -102,13 +104,13 @@ function getSearch() { } async function getData() { - const url = - props.type == "COMMANDER" - ? config.API.workflowCommanderOperate - : config.API.workflowCommanderSign; + // const url = + // props.type == "COMMANDER" + // ? config.API.workflowCommanderOperate + // : config.API.workflowCommanderSign; showLoader(); await http - .put(url, { + .put(config.API.workflowCommanderOperate, { pageSize: pagination.value.rowsPerPage, page: pagination.value.page, keyword: keyword.value, @@ -148,6 +150,16 @@ function onSubmit() { profileId: items.id, keycloakId: items.keycloakId, })); + + const hasCommander = selected.value.some((e) => + props.commandersList?.some((i: any) => i === e.id) + ); + + if (hasCommander) { + dialogMessageNotify($q, "ไม่สามารถเลือกได้ เนื่องจากเลือกรายชื่อซ้ำ"); + return; + } + showLoader(); http .post(