diff --git a/src/modules/05_placement/components/probation/FormAssign.vue b/src/modules/05_placement/components/probation/FormAssign.vue index 1490768cd..9a2c6a945 100644 --- a/src/modules/05_placement/components/probation/FormAssign.vue +++ b/src/modules/05_placement/components/probation/FormAssign.vue @@ -2881,6 +2881,7 @@ onMounted(async () => { ? probationStore.dataPermissions?.tab1.isEdit : false " + :is-delete-file="true" /> diff --git a/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluate.vue b/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluate.vue index 98b1a8df5..80b7eafee 100644 --- a/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluate.vue +++ b/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluate.vue @@ -1094,6 +1094,7 @@ onMounted(async () => { ? probationStore.dataPermissions?.tab4.isEdit : false " + :is-delete-file="true" /> diff --git a/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluateScore.vue b/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluateScore.vue index eb0bb9ca4..6017dcaa3 100644 --- a/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluateScore.vue +++ b/src/modules/05_placement/components/probation/FormEvaluation/FormEvaluateScore.vue @@ -1410,6 +1410,7 @@ onMounted(async () => { : false " v-model:is-check-file="isCheckFile" + :is-delete-file="true" /> { ? probationStore.dataPermissions?.tab2.isEdit : false " + :is-delete-file="true" /> { - + @@ -1281,6 +1284,7 @@ onMounted(async () => { ? probationStore.dataPermissions?.tab3.isEdit : false " + :is-delete-file="true" /> -import { onMounted, ref } from "vue"; +import { onMounted, ref, computed } from "vue"; import { useQuasar } from "quasar"; import axios from "axios"; import { useRoute } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; +import { checkPermission } from "@/utils/permissions"; import http from "@/plugins/http"; import config from "@/app.config"; const $q = useQuasar(); const route = useRoute(); const mixin = useCounterMixin(); -const { - messageError, - date2Thai, - showLoader, - hideLoader, - success, - dialogConfirm, - dialogRemove, -} = mixin; +const { messageError, showLoader, hideLoader, success, dialogRemove } = mixin; const group = defineModel("group", { required: true }); const isCheckFile = defineModel("isCheckFile", { required: true }); const round = defineModel("round", { default: "" }); const passResult = defineModel("passResult", { default: 0 }); +const isDeleteFile = defineModel("isDeleteFile", { + required: false, + default: false, +}); const checkRoutePermisson = defineModel("checkRoutePermisson", { required: true, @@ -37,6 +34,15 @@ const assignId = ref(route.params.form as string); const file = ref(); const dataDownload = ref(); +const isCanDeleteFile = computed(() => { + return ( + isDeleteFile.value && + checkPermission(route)?.attrIsDelete && + dataPermissions.value && + checkRoutePermisson.value + ); +}); + function onUploadFiles() { showLoader(); http @@ -95,7 +101,7 @@ async function uploadFileURL(uploadUrl: string) { /** function เช็คไฟล์*/ async function fetchCheckfile() { isCheckFile.value = false; - http + await http .get(config.API.file("ทดลองงาน", group.value, assignId.value)) .then(async (res) => { if (res.data.length >= 1) { @@ -135,6 +141,25 @@ async function onUpdateStatusAssign() { }); } +function onDeleteFile() { + dialogRemove($q, async () => { + const fileName = dataDownload.value.fileName; // ชื่อไฟล์ที่ต้องการลบ + try { + showLoader(); + await http.delete( + config.API.fileByFile("ทดลองงาน", group.value, assignId.value, fileName) + ); + + await fetchCheckfile(); + success($q, `ลบไฟล์สำเร็จ`); + } catch (e) { + messageError($q, e); + } finally { + hideLoader(); + } + }); +} + onMounted(() => { fetchCheckfile(); }); @@ -179,13 +204,22 @@ onMounted(() => { -
+
+ + + ลบไฟล์ +