diff --git a/src/modules/12_evaluatePersonal/components/Detail/step/step3.vue b/src/modules/12_evaluatePersonal/components/Detail/step/step3.vue index f061ad143..e078fb23a 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/step/step3.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/step/step3.vue @@ -94,7 +94,7 @@ async function getPDF(url: string, type: string) { store.urlDownloadFile = url; const blob = new Blob([res.data]); const objectUrl = URL.createObjectURL(blob); - + store.currentObjectUrl = objectUrl; const pdfData = await usePDF(`${objectUrl}`); setTimeout(() => { store.log = 1; diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewPDF.vue b/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewPDF.vue index c4110d1d2..421385123 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewPDF.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewPDF.vue @@ -1,5 +1,5 @@ + + + + + หน้า {{ page }} / {{ numOfPages || "-" }} + + + + + + + + + + + + + ดาวน์โหลดไฟล์ PDF + + + { - + diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep3.vue b/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep3.vue index 2afa8c014..5a35b2677 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep3.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep3.vue @@ -10,7 +10,7 @@ import { useEvaluateDetailStore } from "@/modules/12_evaluatePersonal/store/Eval /** use*/ const store = useEvaluateDetailStore(); -const modalPerview = ref(false); //แสดง Popup เอกสาร +const modalPerview = ref(false); //แสดง Popup เอกสาร @@ -68,21 +68,35 @@ const modalPerview = ref(false); //แสดง Popup เอกสา - - - - - + + + - - - + - diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep7.vue b/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep7.vue index 7f5e1a28f..28ff29b41 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep7.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/viewstep/viewStep7.vue @@ -42,17 +42,31 @@ const modalPerview = ref(false); - - - - - + + + - - - + - + diff --git a/src/modules/12_evaluatePersonal/store/EvaluateDetail.ts b/src/modules/12_evaluatePersonal/store/EvaluateDetail.ts index 2a55289aa..ddd12f85c 100644 --- a/src/modules/12_evaluatePersonal/store/EvaluateDetail.ts +++ b/src/modules/12_evaluatePersonal/store/EvaluateDetail.ts @@ -30,6 +30,7 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => { const urlDownloadFile = ref(""); const pdfSrcStore = ref(); const numOfPagesStore = ref(); + const currentObjectUrl = ref(null); /** คอลัมน์ ใบอนุญาตประกอบวิชาชีพ*/ const columnsCertificates = ref([ @@ -423,6 +424,7 @@ export const useEvaluateDetailStore = defineStore("evaluateDetailStore", () => { columnExperience, pdfSrcStore, + currentObjectUrl, urlDownloadFile, numOfPagesStore, log, diff --git a/src/modules/18_command/components/DialogPreviewCommand.vue b/src/modules/18_command/components/DialogPreviewCommand.vue index 836abb6bd..64e10f9bb 100644 --- a/src/modules/18_command/components/DialogPreviewCommand.vue +++ b/src/modules/18_command/components/DialogPreviewCommand.vue @@ -1,5 +1,5 @@ - - + + - - - - คำสั่ง - + + + + + คำสั่ง + - - เอกสารแนบท้าย + + เอกสารแนบท้าย + + - + + + + + หน้า {{ page }} / {{ numOfPages || "-" }} + + + - - - - - + - - - - - 1 ? page - 1 : page" - > - - - - - หน้าที่ {{ page }} จาก {{ numOfPages }} - - - - - - - - - - - - - - - - + + + - - - - - - - - - 1 ? page - 1 : page" - > - - - - - หน้าที่ {{ page }} จาก {{ numOfPages }} - - - - - - - - - - - - 1 ? page - 1 : page" - > - - - - - หน้าที่ {{ page }} จาก {{ numOfPages }} - - - - - - - - - - + + + + + + + + + + ดาวน์โหลดไฟล์ PDF + + @@ -431,4 +377,24 @@ watch( border: 1px solid #e9eaec; background-color: #e9eaec61; } + +/* สไตล์เพื่อให้ PDF ดูเหมือนวางบนโต๊ะ */ +.pdf-viewer-wrapper { + background-color: white; + width: 100%; + max-width: 900px; /* จำกัดความกว้างเพื่อความสวยงามบนจอใหญ่ */ + transition: all 0.3s ease; +} + +/* ปรับแต่ง Scrollbar ให้ดูสะอาดตา */ +.scroll::-webkit-scrollbar { + width: 8px; +} +.scroll::-webkit-scrollbar-thumb { + background: #bdbdbd; + border-radius: 4px; +} +.scroll::-webkit-scrollbar-thumb:hover { + background: #9e9e9e; +} diff --git a/src/modules/18_command/components/Step/1_Detail.vue b/src/modules/18_command/components/Step/1_Detail.vue index 7123edad6..ddab5c0ef 100644 --- a/src/modules/18_command/components/Step/1_Detail.vue +++ b/src/modules/18_command/components/Step/1_Detail.vue @@ -11,7 +11,6 @@ import { useCommandDetail } from "@/modules/18_command/store/DetailStore"; import type { FormDataDetail } from "@/modules/18_command/interface/request/Main"; import type { DataOperators } from "@/modules/18_command/interface/response/Main"; -import DialogPerview from "@/modules/18_command/components/Step/Dialog1_Perview.vue"; import Dialog1_AddOperator from "@/modules/18_command/components/Step/Dialog1_AddOperetor.vue"; const $q = useQuasar(); @@ -55,7 +54,6 @@ let formData = reactive({ }); const commandVolume = ref(""); //เล่มที่ const commandChapter = ref(""); //ตอนที่ -const modalPreview = ref(false); //แสดงตัวอย่าง const isIdofficer = ref(false); //เช็ค สกจ. const rows = ref>([]); @@ -632,11 +630,6 @@ onMounted(async () => { - - -import { onMounted, ref, watch } from "vue"; +import { onMounted, ref, watch, computed } from "vue"; import { VuePDF, usePDF } from "@tato30/vue-pdf"; import { useQuasar } from "quasar"; import type { PDFDocumentLoadingTask } from "pdfjs-dist/types/src/display/api"; @@ -15,6 +15,8 @@ import type { DataFileOrder } from "@/modules/18_command/interface/response/Main import { useCounterMixin } from "@/stores/mixin"; +import DialogHeader from "@/components/DialogHeader.vue"; + const $q = useQuasar(); const route = useRoute(); const mixin = useCounterMixin(); @@ -140,6 +142,21 @@ watch(tab, () => { } }); +const canGoPrevious = computed(() => page.value > 1); +const canGoNext = computed(() => page.value < numOfPages.value); + +function goToPreviousPage() { + if (canGoPrevious.value) { + page.value -= 1; + } +} + +function goToNextPage() { + if (canGoNext.value) { + page.value += 1; + } +} + /** hook */ onMounted(async () => { showLoader(); @@ -262,76 +279,77 @@ onMounted(async () => { transition-show="slide-up" transition-hide="slide-down" > - - + + + + + + + หน้า {{ page }} / {{ numOfPages || "-" }} + + + - - - 1 ? page - 1 : page" - > - - - - หน้าที่ {{ page }} จาก {{ numOfPages }} - - - - - - - - - - - - 1 ? page - 1 : page" - > - - - - - หน้าที่ {{ page }} จาก {{ numOfPages }} - - - - - + + + + + + + + ดาวน์โหลดไฟล์ PDF + + + ดาวน์โหลดไฟล์ DOCX + + + ดาวน์โหลดไฟล์ XLSX + + + @@ -376,4 +394,28 @@ onMounted(async () => { border: 1px solid #e9eaec; background-color: #e9eaec61; } + +/* สไตล์เพื่อให้ PDF ดูเหมือนวางบนโต๊ะ */ +.pdf-viewer-wrapper { + background-color: white; + width: 100%; + max-width: 900px; /* จำกัดความกว้างเพื่อความสวยงามบนจอใหญ่ */ + transition: all 0.3s ease; +} + +/* ปรับแต่ง Scrollbar ให้ดูสะอาดตา */ +.scroll::-webkit-scrollbar { + width: 8px; +} +.scroll::-webkit-scrollbar-thumb { + background: #bdbdbd; + border-radius: 4px; +} +.scroll::-webkit-scrollbar-thumb:hover { + background: #9e9e9e; +} + +:deep(.q-btn-dropdown__arrow) { + display: none !important; +} diff --git a/src/modules/18_command/components/Step/Dialog1_Perview.vue b/src/modules/18_command/components/Step/Dialog1_Perview.vue deleted file mode 100644 index 144e77eac..000000000 --- a/src/modules/18_command/components/Step/Dialog1_Perview.vue +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - 1 ? page - 1 : page" - > - - - - - หน้าที่ {{ page }} จาก {{ numOfPages }} - - - - - - - - - - - 1 ? page - 1 : page" - > - - - - - หน้าที่ {{ page }} จาก {{ numOfPages }} - - - - - - - - - - - - diff --git a/src/modules/18_command/components/Step/PerviewPDF.vue b/src/modules/18_command/components/Step/PerviewPDF.vue index 4f4b64e27..b242237f8 100644 --- a/src/modules/18_command/components/Step/PerviewPDF.vue +++ b/src/modules/18_command/components/Step/PerviewPDF.vue @@ -1,5 +1,5 @@