From f251ae03d7958ccbe5eec7e391ebe1da3f10e01f Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Thu, 17 Oct 2024 13:37:13 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A=20workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Workflow/Main.vue | 86 ++++++++++--------- src/interface/index/Main.ts | 0 src/interface/index/workflow/Main.ts | 10 +++ .../components/Transfer/TransferDetail.vue | 14 ++- 4 files changed, 66 insertions(+), 44 deletions(-) create mode 100644 src/interface/index/Main.ts create mode 100644 src/interface/index/workflow/Main.ts diff --git a/src/components/Workflow/Main.vue b/src/components/Workflow/Main.vue index 8ccf93e46..35703d950 100644 --- a/src/components/Workflow/Main.vue +++ b/src/components/Workflow/Main.vue @@ -6,6 +6,7 @@ import { useCounterMixin } from "@/stores/mixin"; import http from "@/plugins/http"; import config from "@/app.config"; +import type { Permission } from "@/interface/index/workflow/Main"; import type { DataListState } from "@/interface/response/workflow/Main"; import DialogSelectPerson from "@/components/Workflow/DialogSelectPerson.vue"; @@ -23,17 +24,44 @@ const { id, sysName } = defineProps({ const stateId = ref(""); //id state ปัจุบัน const state = ref(1); //state ปัจุบัน -const isChangeState = ref(false); //ส่งไปยังผู้บังคับบัญชา/ผู้มีอำนาจ -const isOperate = ref(true); //เปลี่ยนสถานะ (state) เอกสารได้ -const isView = ref(true); //ดูเอกสารได้ -const isUpdate = ref(true); //แก้ไขเอกสารได้ -const isDelete = ref(true); //ลบเอกสารได้ (ถ้ามี) -const isCancel = ref(true); //ลบเอกสารได้ (ถ้ามี) +const isPermission = ref(true); //การเข้าถึง Workflow +const permission = ref({ + isChangeState: false, //ส่งไปยังผู้บังคับบัญชา/ผู้มีอำนาจ + isOperate: false, //เปลี่ยนสถานะ (state) เอกสารได้ + isView: false, //ดูเอกสารได้ + isUpdate: false, //แก้ไขเอกสารได้ + isDelete: false, //ลบเอกสารได้ (ถ้ามี) + isCancel: false, //ลบเอกสารได้ (ถ้ามี) +}); +const itemState = ref([]); const modalSelectPerson = ref(false); const modalApprove = ref(false); -const itemState = ref([]); +async function fetchCheckState() { + await http + .post(config.API.workflow + `check-user-now`, { + refId: id, + system: sysName, + }) + .then(async (res) => { + await fetchData(); + const data = await res.data.result; + stateId.value = data.stateId; + state.value = data.stateNo === 4 ? 5 : data.stateNo; + permission.value = { + isChangeState: data.can_change_state, + isOperate: data.can_operate, + isView: data.can_view, + isUpdate: data.can_update, + isDelete: data.can_delete, + isCancel: data.can_cancel, + }; + }) + .catch(() => { + isPermission.value = false; + }); +} async function fetchData() { await http @@ -50,28 +78,6 @@ async function fetchData() { }); } -async function fetchCheckState() { - await http - .post(config.API.workflow + `check-user-now`, { - refId: id, - system: sysName, - }) - .then(async (res) => { - const data = await res.data.result; - stateId.value = data.stateId; - state.value = data.stateNo; - isChangeState.value = data.can_change_state; - isOperate.value = data.can_operate; - isView.value = data.can_view; - isUpdate.value = data.can_update; - isDelete.value = data.can_delete; - isCancel.value = data.can_cancel; - }) - .catch((err) => { - messageError($q, err); - }); -} - function onChangeState() { dialogConfirm($q, async () => { showLoader(); @@ -81,7 +87,7 @@ function onChangeState() { system: sysName, }) .then(async () => { - await Promise.all([fetchData(), fetchCheckState()]); + await fetchCheckState(); }) .catch((err) => { messageError($q, err); @@ -92,17 +98,17 @@ function onChangeState() { }); } -async function fetchAllFunction() { - await Promise.all([fetchData(), fetchCheckState()]); -} - onMounted(async () => { - await fetchAllFunction(); + await fetchCheckState(); +}); + +defineExpose({ + permission, });