fix ==> โหลดไฟล์คำสั่งรายการแจ้งเตือน
This commit is contained in:
parent
d39753fbde
commit
31755747da
2 changed files with 42 additions and 5 deletions
|
|
@ -1,8 +1,18 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, reactive, watch } from "vue";
|
import { ref, reactive, watch } from "vue";
|
||||||
|
import { useQuasar } from "quasar";
|
||||||
|
|
||||||
|
import http from "@/plugins/http";
|
||||||
|
import genReport from "@/plugins/genreport";
|
||||||
|
import { useCounterMixin } from "@/stores/mixin";
|
||||||
|
|
||||||
import PopupReplyInbox from "@/components/PopupReplyInbox.vue";
|
import PopupReplyInbox from "@/components/PopupReplyInbox.vue";
|
||||||
|
|
||||||
|
import type { Attachments } from "@/modules/01_dashboard/interface/Main";
|
||||||
|
|
||||||
|
const $q = useQuasar();
|
||||||
|
const { showLoader, hideLoader, messageError } = useCounterMixin();
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
modal: {
|
modal: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
|
|
@ -60,9 +70,29 @@ watch(
|
||||||
|
|
||||||
const modalReply = ref<boolean>(false);
|
const modalReply = ref<boolean>(false);
|
||||||
|
|
||||||
function fileOpen(url: string) {
|
const fileOpen = async (attachmentsData: Attachments) => {
|
||||||
window.open(url, "_blank");
|
if (attachmentsData.isReport) {
|
||||||
|
showLoader();
|
||||||
|
await http
|
||||||
|
.get(attachmentsData.url)
|
||||||
|
.then(async (res) => {
|
||||||
|
const result = res.data;
|
||||||
|
if (attachmentsData.isTemplate) {
|
||||||
|
await genReport(result.result, attachmentsData.name, "pdf");
|
||||||
|
} else {
|
||||||
|
window.open(result.downloadUrl, "_blank");
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
messageError($q, err);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
hideLoader();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
window.open(attachmentsData.url, "_blank");
|
||||||
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<q-dialog v-model="modal">
|
<q-dialog v-model="modal">
|
||||||
|
|
@ -116,7 +146,7 @@ function fileOpen(url: string) {
|
||||||
v-for="(item, index) in detail.payload.attachments"
|
v-for="(item, index) in detail.payload.attachments"
|
||||||
:key="index"
|
:key="index"
|
||||||
>
|
>
|
||||||
<q-item clickable v-close-popup @click.stop="fileOpen(item.url)">
|
<q-item clickable v-close-popup @click.stop="fileOpen(item)">
|
||||||
<q-item-section>{{ item.name }}</q-item-section>
|
<q-item-section>{{ item.name }}</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-separator />
|
<q-separator />
|
||||||
|
|
|
||||||
|
|
@ -31,4 +31,11 @@ interface MenuMainList {
|
||||||
active: boolean;
|
active: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type { InboxList, InboxDetail, MenuMainList };
|
interface Attachments {
|
||||||
|
name: string;
|
||||||
|
url: string;
|
||||||
|
isReport: boolean;
|
||||||
|
isTemplate: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type { InboxList, InboxDetail, MenuMainList, Attachments };
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue