diff --git a/src/components/Workflow/Main.vue b/src/components/Workflow/Main.vue index f13eb5f..2bcc5d0 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 "@/components/Workflow/interface/index/Main"; import type { DataListState } from "@/components/Workflow/interface/response/Main"; import DialogSelectPerson from "@/components/Workflow/DialogSelectPerson.vue"; @@ -21,17 +22,46 @@ const { id, sysName } = defineProps({ const stateId = ref(""); //id state ปัจุบัน const state = ref(1); //state ปัจุบัน +const isPermission = ref(true); //การเข้าถึง Workflow -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 permission = ref({ + isChangeState: false, //ส่งไปยังผู้บังคับบัญชา/ผู้มีอำนาจ + isOperate: false, //เปลี่ยนสถานะ (state) เอกสารได้ + isView: false, //ดูเอกสารได้ + isUpdate: false, //แก้ไขเอกสารได้ + isDelete: false, //ลบเอกสารได้ (ถ้ามี) + isCancel: false, //ลบเอกสารได้ (ถ้ามี) +}); const modalSelectPerson = ref(false); //เลือกรายชื่อ ส่งไปผู้บังคับบัญชา/ผู้มีอำนาจ const itemState = ref([]); +/** ฟังก์ชันเรียกข้อมูล Workflow ที่อยู่ปัจุบัน*/ +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; + }); +} + /** ฟังก์ชันเรียกข้อมูล Workflow ทั้งหมด*/ async function fetchData() { await http @@ -48,29 +78,6 @@ async function fetchData() { }); } -/** ฟังก์ชันเรียกข้อมูล Workflow ที่อยู่ปัจุบัน*/ -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); - }); -} - /** ฟังก์ชันยืนยันการ NextStep*/ function onChangeState() { dialogConfirm($q, async () => { @@ -81,7 +88,7 @@ function onChangeState() { system: sysName, }) .then(async () => { - await Promise.all([fetchData(), fetchCheckState()]); + await fetchCheckState(); }) .catch((err) => { messageError($q, err); @@ -92,18 +99,17 @@ function onChangeState() { }); } -/** ฟังก์ชันเรียกใช้งานฟังก์ชัน fetchData, fetchCheckState*/ -async function fetchAllFunction() { - await Promise.all([fetchData(), fetchCheckState()]); -} - onMounted(async () => { - await fetchAllFunction(); + await fetchCheckState(); +}); + +defineExpose({ + permission, }); diff --git a/src/components/Workflow/interface/index/Main.ts b/src/components/Workflow/interface/index/Main.ts new file mode 100644 index 0000000..ae0e81a --- /dev/null +++ b/src/components/Workflow/interface/index/Main.ts @@ -0,0 +1,10 @@ +interface Permission { + isChangeState: boolean; //ส่งไปยังผู้บังคับบัญชา/ผู้มีอำนาจ + isOperate: boolean; //เปลี่ยนสถานะ (state) เอกสารได้ + isView: boolean; //ดูเอกสารได้ + isUpdate: boolean; //แก้ไขเอกสารได้ + isDelete: boolean; //ลบเอกสารได้ (ถ้ามี) + isCancel: boolean; //ลบเอกสารได้ (ถ้ามี) +} + +export type { Permission }; diff --git a/src/modules/02_transfer/views/AddTransfer.vue b/src/modules/02_transfer/views/AddTransfer.vue index 5bcdd05..e72f495 100644 --- a/src/modules/02_transfer/views/AddTransfer.vue +++ b/src/modules/02_transfer/views/AddTransfer.vue @@ -22,6 +22,7 @@ const id = ref( ? "" : route.params.id.toString() ); //id path + const files = ref(); //ไฟล์ const tranferOrg = ref(""); //ชื่อหน่วยงานที่ขอโอนไป const noteReason = ref(""); //เหตุผล @@ -48,11 +49,11 @@ async function createTransfer() { formData.append("file", files.value); await http .post(config.API.listtransfer(), formData) - .then((res: any) => { + .then((res) => { + router.push(`/transfer/` + res.data.result); success($q, "บันทึกข้อมูลสำเร็จ"); - router.push(`/transfer`); }) - .catch((e: any) => { + .catch((e) => { messageError($q, e); }) .finally(() => {